解析の手引き


※このページにはWiiUのハックに関する内容が含まれます。
 実践する際はくれぐれも自己責任でお願いします。
 何らかの問題が発生してもこちらでは責任は負いかねますのでご了承ください。

3DS版発売から2年経った今、解析がどこまで進んでいるのか&何ができるのかをまとめます。
手引きと名乗ったものの、その中身は解析まわりの現状を知ってもらうための記事になりました。

ある程度の解析の知識とやる気がバリバリある人は、早速「具体的な手順」を読んで解析環境を整えちゃってください。やりたいけど何が何やら…という人や、とりあえず見聞を広めたいという人は「おおざっぱな手順」から読みましょう。

解析値を実際に見てみたい人は、



具体的な手順

日本の解析勢であるレタス氏が執筆した優秀な記事があるので丸投げします ←
https://docs.google.com/document/d/1f7-SkwAceFjl4qK3hxm8kzxEOaiLL4TWitgjQn7YK3E/edit

2016/9/14現在、WiiU本体のバージョンは5.5.1でハックが問題なくできるはずです。一度ハックをしてもWiiUを再起動して普通にゲームを始めれば、改造をしていない時と同じように遊ぶことができます。

記事内のさなさん氏のチュートリアルのリンクが切れていると思うのでこちらに。
SDカードは2GBでも大丈夫でした。
http://sumamate.com/diary/2496/
http://sumamate.com/diary/2497/

スマブラのタイトルコード、およびパッチファイルの番号を調べる時は↓が便利。
http://wiiubrew.org/wiki/Title_database

他にリンク切れがある場合はツール名で検索するなどして頑張ること。

どうしても自分で解決できないときは、レタス氏または当wiki管理人のDRAFIXにTwitterなどで質問してください。
今後ずっと対応できるか保証はありませんが…

技の攻撃関連の情報があるgame.binだけを閲覧・編集するだけなら、古いバージョンのSm4shCommand1.25がお勧めです。エフェクト関連のeffect.binなどもいじりたい場合や解析値をコピペしたいときは最新版のNighty-buildが良いでしょう。ただし最新版の方はデータの保存に一工夫要るのでちょっと使いづらいです。

レタス氏の記事にはありませんが、ステージの解析は↓のツールを使いましょう。
PythonをPCにインストールする必要あり。
https://gbatemp.net/threads/release-smash-4-easy-stage-editor.431409/



おおざっぱな手順

解析値を読み書きするまでの流れは、
  1. スマブラディスク内の必要なファイル(dt00,dt01,ls)を、ツールとWiiUの通信機能でパソコンに吸い出す
    • まずここで1回ハックが必要。
    • 吸い出したファイルはパッチ解凍時に補助的に使う。
  2. UWizardで任天堂のサーバーにあるスマブラのパッチファイルをDL
    • 読みたい解析データは基本的に全部アプデのパッチファイル内にある。
    • WiiU版1.0.2から最新版まで、全てのパッチがダウンロード可能。3DS版はよく知らない。
  3. Sm4shExplorerでパッチファイル解凍
    • ここまでの作業は1回やってしまえばOK。
  4. Sm4shCommandやPARAMで解凍したファイルを閲覧&編集
    • 最新版Sm4shExplorer0.07.1にはPARAMが内蔵されている。
  5. Sm4shExplorerで編集したファイルをコンパイルし、SDカードにコピー
  6. ソフト起動時にSDのデータを正規のものの代わりに読み込ませる
    • ここで改めてハックが必要。
    • WiiUを起動するたび、新たに編集データを読み込むたびにネットに繋いでkernel exploitを再度有効にしなければならない。

↓Sm4shExplorer。アプデパッチの解凍・コンパイルをするソフト。


普段よく目にする解析値の場所は、大体FighterフォルダかParamフォルダのどちらかにある。
ステージの解析値はStageフォルダ。他にもフォルダはある。


Fighter(acmd)
MasterCore に載っている形式。技の基本情報。
キャラ本体(body)と飛び道具系(weapon)は別のファイルになっている。
ちなみに剣などの手持ち武器はbodyに含まれる。

↓Sm4shCommandの画面。画像はファルコンの空上。


Param
  • ゲームのシステムを司る値:battle_object、fighter_param_common
  • キャラの運動性能、ステータス:fighter_param
  • キャラの食らい判定、必殺技の挙動など:fighter_param_vl_キャラ名
など。正体の分からない数値が山ほどある。X時代の遺産をもとにしつつ、現在レタス氏や海外の解析勢がそれらのラベリングを進めている。

↓Sm4shexplorerのparam編集画面。


判定可視化


判定可視化は、
  1. acmdのgame.binから、攻撃判定の出る位置と大きさを読み取る
  2. それに基づいて同技のeffect.binを編集し、エフェクトを表示させる
という手順を取っている。読み取りと編集は1つ1つの技に対して手作業で行う必要があり、膨大な労力がかかっていることを心に留めておいていただきたい。

レタス氏の可視化は「キャラのシールドエフェクトを{game.binのサイズ×定数}倍して攻撃部分に表示」という記述法を取っている。gameのサイズをeffectに対応させるための定数は人為的に決めなければならない。このため、技同士のエフェクトの相対的な大きさは正確であるが、絶対的な大きさは微妙に違う可能性もある。ただ、私が試した限りでは可視化の精度は想像よりはるかに良かった。おおむね信頼して問題ないだろう。

最近Paramの分析が進み、食らい判定も可視化できるようになりつつある。



Xの解析

ページ「リンク集」の"X解析"にあるページが役に立つはず。
WiiUの解析データを分析するのにもとても参考になる。
私もX時代の解析についてはあまり詳しくないので、古参の方に聞いてみた方がよいかもしれない。



できること・できないこと

検証・解析で何ができるの?という疑問に対する答え…になりうる事柄を書いてみます。
今できるのは、
  • アナログ検証
    • フレームの計測(キャプチャーボード)
    • 2Fスキップ法による入力猶予などの調査
  • 解析
    • キャラのステータス、システム関連の数値閲覧(意味が分かるところだけ)
    • パラメータを編集し、実機での挙動から数値を意味付け
グラフィック変更系(可視化、キャラのモデル変更、ステージ背景など)は、解析値が上手く分析できている範囲で可能です。
ミュージックハックも2016年春くらいからできているはず。

一方、解析データから仕様・テクニックを調べることはできません。

askなどで「これは仕様なのか?」という質問が来ることがあるのですが、どれが仕様なのかを解析データだけから判断するのはとても難しいです。一見バグに見える挙動にも専用の数値が設定されていることがある(byレタス氏)ので、そういったものは製作者が意図的に組み込んだ仕様である可能性があります。

しかしながら、コントローラーの操作と実機での動作を結びつける処理方法までは流石に読み取れないようです。分かっているのはスティックの入力感度くらいでしょうか。

吹っ飛ばし力やガード硬直の計算式も「処理方法」にあたり、解析値だけでは解明ができません。アナログな検証で式を打ち立てた後、解析値を見て該当するパラメータを探して確認する、という流れで確立されます。

また解析で読み取れるものであっても、
  • 数値は見れるが何の値かわからない
  • パラメータが設定されていると思うのだがどこにあるかわからない
というケースも物凄く沢山あります。そのために解析値の意味付けをするわけですが、見当がつかないと完全に手探りになるのでなかなか厳しいです。



コメント

名前:
コメント: