解析ツール

「解析ツール」の編集履歴(バックアップ)一覧に戻る

解析ツール - (2018/08/06 (月) 01:57:56) のソース

#contents(,fromhere=true,level=3)

検証に使える解析ツールの解説。
これらのツールを導入する前に、[[真・解析の手引き]]を参考に解析環境を整えること。

----
**Sm4sh Command
DL(v1.2.5版):[[https://github.com/Sammi-Husky/Sm4sh-Tools/releases/tag/ACMD_v1.2.5]]
DL(copy&paste)https://gamebanana.com/tuts/12122
DL(Nightly Build版):[[https://github.com/Sammi-Husky/Sm4sh-Tools/releases/tag/SM4SHCommand_Nightly]]
DL(Nightly Latest版)[[https://github.com/Sammi-Husky/Sm4sh-Tools/releases/tag/SM4SH-Tools]]
DL:(改良版 by DRAFIX)[[https://github.com/drafix570/Sm4shCommand_plus/releases]]
開発者:[[https://gbatemp.net/threads/release-sm4shcommand.378245/]]

技スクリプトを閲覧・編集するソフト。使い勝手が違うので、2つのバージョン両方をDLするのがオススメ。違いは、

&u(){v1.2.5}
安定版。技スクリプトを見るだけの場合や、game.binを手軽に編集するならこっち。

&u(){copy&paste}
V1.2.5版をコピー&ペーストを可能にしたもの。
サイトの下(copy&paste support)と書いてあるところにある。

&u(){Nightly Build }
コピー&ペーストに対応しているのが最大のメリットだが、
-Effect.binタブが最初にアクティブになる
-''開いている技タブを全て閉じてからでないと保存が有効にならない''
と使い辛い面も目立つ。

&u(){Nightly Latest版}
最新版ではあるが、Nightl Buildの改良版。多少は改良されたが
-スクリプトの「X,Y,Z」などの配置がずれていたりしている
-''開いている技タブを全て閉じてからでないと保存が有効にならないのは変わりない''
前のと比べると、スクリプトの中身が明確になってきており、他のスクリプトを組むと消えてしまう不具合や、「Set_Loop」スクリプト時「Goto」の下にあるスクリプトが消えてしまう不具合は修正されている。
改良前のと一緒に使っていくのが安定だろう。

****開く(Fighter)
+「File>Open>Fighter」と進み、「body」フォルダを選択する。
+-場所はSm4shExplorerで解凍したフォルダの「data>fighter>(キャラ名)>script>animcmd>body」。
+「View(Nightly版ではTools)>Parse Animation」で「motion」フォルダを選択し、技名を表示する。
+-場所は同フォルダの「data>fighter>(キャラ名)>motion」。
キャラのスクリプトは基本的にこの方法で開く。
game.binと一緒に、対応したeffect.binなどもまとめて開ける。
ただし、一部のスクリプトが抜け落ちた状態で開かれるのがデメリット。

****開く(File)
+「Fileタブ>Open>File」と進み、bodyフォルダ内の「game.bin」を選択する。
+-effect、expression、soundも同様に開ける。
全てのスクリプトを表示できる。並びは番号順、技名表示なし。
開く(Fighter)よりも低機能だが、対応できるファイルも多い。

****編集・保存
テキストエディタの要領で普通に編集する。
文法に沿ってさえいれば、全く新しい行を追加することもできる。
File> SaveまたはSave asで保存。(Nightly版はタブを全て閉じてから)
Saveだと解凍した元のファイルが書き換わってしまうので、保存用フォルダを別に作っておいてSave asで保存することを推奨。

保存したファイルはSm4sh Explorer上の所定の場所にドラッグ&ドロップすることで実機に読み込ませるModファイルとなる。

また、File>Dump as textでスクリプトをテキストファイルに書き出せる。

#image(smashcommand.png,width=480)


**Sm4sh Explorer
***編集
検証で作成するModファイルは、主に
-data>fighter
-data(jp_jp)>param
を編集したものとなる。
前者は上記のSm4sh Commandで予め編集しておき、Sm4sh Explorer上でファイルの置換操作を行う。
後者はSm4sh Explorer上で直接編集できる。

実機ではdataフォルダを読み込んだ後、data(jp_jp)フォルダ内に同名フォルダがあればそれが上書きされる仕組みである。例えばparamフォルダはdata(jp_jp)内に存在するため、キャラステータス系のパラメータをいじったファイルはdata(jp_jp)に適用しないと実機に反映されない。


****ファイル置換
編集済みのファイルをModに組み込む。
Sm4sh Explorer 上でdata>fighter>(キャラ名)>script>animcmd>bodyまで展開し、Sm4sh Commandで保存したファイルを''同名ファイルがあるフォルダへドラッグ&ドロップ''する。置き換えたファイル、およびそれを含む上層のフォルダの色が黒/青から緑に変化すればOK。
コンパイル時間短縮のため、置き換えるのは編集したファイルだけで十分。

''一度置換したファイルはソフトを再起動しても残り続ける''。

↓ドンキーのgame.binを置き換えた状態。攻撃情報だけならeffect.binなどを書き換える必要はない。
#image(donkey.jpg,width=480,blank)


****Param編集
ver0.07.1以降のSm4sh Explorer に組み込まれているツール:PARAM.exeの編集機能を使う。data(jp_jp)>Paramフォルダのファイルなど、一部のみの編集に対応。
+編集したいファイルをダブルクリック。
+Groupと番号(Name)を選んで編集し、File>Saveで上書き保存する。
+「File modified」というウィンドウが出てくるので、「はい」を選択すると次に作るModに変更が適用される。
編集後に右クリック→Extractすると、sm4shexplorer>extract>...フォルダ内に編集済みのファイルを保存できる。

Paramについては、SammiHusky氏がリリースしているソフト「Parameters.exe」で編集しファイル置換するという方法もある。

fighter_param_etc.binなど、一部のファイルはこれらのツール・ソフトを使用すると保存が上手く行かず、Modファイルに取り込めない。現状ではバイナリエディタなどで編集するしかない。

&bold(){&u(){※ゼルダ、ベヨネッタのfighter_param_vl_[キャラ名].binについて}}
これらいずれかを編集したModは、ゲーム内でフリーズを起こす場合がある(問題ない場合もある様子)。フリーズが起きた場合、これらの.binファイルに対して有志制作の修正パッチを当てる必要がある。

修正パッチダウンロード↓
[[https://ux.getuploader.com/ssb4_kensyou/download/38]]

使い方は、編集する.binファイルのあるフォルダに↓の.pyファイルを置いて
 python bayonettazelda_param_fix.py "fighter_param_vl_zelda.bin"
をコマンドプロンプトで実行。(ゼルダの場合)



****Modから除外
緑色になっているフォルダ/ファイルを右クリックして「Remove mod files」を選択すると、そのフォルダ以下の置き換えられているファイルが全てModファイルから除外される。
コンパイルを軽くするため、また編集したファイルを見分けやすくするため、不必要なファイルはRemoveしておくとよい。


***Modファイル作成&WiiUでロード
⓪ SDカードの一番上の階層に「''0005000010110E00''」という名前のフォルダを作成しておく。

① Project>Build the modをクリック。ウィンドウが出るので「OK」をクリックしてModファイルをコンパイルする。
上書きするか?というウィンドウが2回目以降は出るが、構わず「はい」。

②  Sm4sh Explorerフォルダ>export>release>content内に「patch」フォルダが生成され、Modセットが保存される。
これをSDカードの0005…フォルダにコピーする。
2回目以降でSDカード内に既にModファイルがある場合、コンパイル後に「Do you want to copy the newly exported mod to SD?」と表示される。はいを選択すると、ソフトが自動で完成したModファイルをSDカードに上書きコピーしてくれる。

③ SDカードを挿入してWiiUを起動し、Haxchiを選択。15秒ほどでWiiUメニューに戻る。
成功したらそのままソフトを起動。Modが適用されたゲームが始まる。

ロード失敗のケースには
-Haxchi起動時に「-3」などと出て画面が止まる
-ソフト起動後にタイトルロゴが出たまま固まる
がある。固まり方から原因を特定することはできないが、以下を上から順番に試してみると良い。

&u(){<対処法>}
-&bold(){data(jp_jp)>param>fighter 内のファイルを、何でも良いので1つ以上Mod状態にする。}
--管理人は「figter_param_equipment_ability.binをダブルクリック、&br()編集せずそのままsave&Mod組み込みでファイル名表示を青から緑に変える」としている。
-ファイルの設定を見直す。
--1つずつRemove Modしながら試行し、原因のファイルを探すと良い。
--先にも述べたが、fighter_param_etc.binなどは普通にParam編集・保存するとファイルが破損し読み込めなくなる。
--他のファイルでも、システムがオーバーフローするような数値に編集すると固まるかもしれない。
--海外配布のModパックを直接SDカードにコピーすると、地域設定の違いから起動できない。
-SDカードを差し込み直す。
--ただの接触不良の場合もある。
-Build the Modからやり直す。
-WiiUのコンセントプラグを抜き、完全に電源を落としてからやり直す。


#region(close,5.5.1以前)
WiiU本体にSDカードを挿し、
+ブラウザから「''http://wj44.ml/''」にアクセス(1回目)
+''”0x31000000”の文字列を含むリンク''をクリック。自動でホームメニューに戻る
+再び同サイトにアクセス(2回目)
+「Kernel Examples」 → 「SDCafiine」とクリック
+IPアドレスを入力する黒い画面が出る。PCにデータを送れるようだが、特に用がなければ適当にAボタン。
+WiiUメニューに戻ってスマブラを起動。変更が適用されていれば成功。
#image(export.jpg,width=480,blank)
#endregion




**Smash Forge
DL:[[https://github.com/jam1garner/Smash-Forge/releases]]
開発:[[https://gbatemp.net/threads/tutorial-smash-forge-a-smash-4-modding-tool.452935/]]

解説
[[https://github.com/jam1garner/Smash-Forge/wiki]]
[[https://ssbworld.com/blog/127/how-to-use-smash-forge-for-character-hitboxhurtbox-and-stage-visualization]]

PC上でアニメーションを表示できるソフト。
他のソフトに比べ頻繁に更新される(フォルダ内のupdaterが自動更新してくれる)。
2017年末にUIが大きく変更された。新版以降にあたって削除された機能もいくつかある。

#image(forge.png,width=480)

***キャラ・判定可視化
File>open character から、fighter>(キャラ名) のフォルダを指定する。
左側ツリーの main.pac を展開し、アニメーションを選んで表示。
攻撃判定はデフォルトで可視化されている。

#image(forge2.png,width=480)

#region(close,開き方 旧版)
基本的な開き方は同様。
デフォルトカラー以外を表示したいとき、特殊なキャラ(ピクミンなど)を開くときは以下のようにする。
+File>Openから、fighter>(キャラ名)>model>body>c0X>model.nudを開く。
+-c0Xはカラー。
+Animation>Importから、(キャラ名)>motion>body>main.pacを開く。
+-技などのモーションを読み込む。
+Moveset>Importから、(キャラ名)>script>animcmd>body>motion.mtableを開く。
+-技のスクリプトが読み込まれ、判定が赤丸で表示されるようになる。
#endregion

各行動のアニメーションフレーム数(≠全体フレーム)も確認できる。

食らい判定を可視化するには、
 View> RenderSettings> Hit/Hurtboxesタブ> Param directory
に、data>param フォルダのパスを打ち込んでsetする(下図)。

#image(forge3.png,width=480)

SmashForgeには大量の表示オプションがある。
幸いにしてUIは分かりやすいので、自分で色々試してみてほしい。
本家の解説ページも参照のこと。
オプション一部抜粋↓
-視点の変更:拡大縮小、移動、回転
-カメラ位置の固定
-モデルの一部の表示/非表示切り替え
-bone表示/非表示
-Hit/Hurtboxの色分け
-アニメーションgifファイル出力
-ACMD(技スクリプト)書換&反映

何度読み込み直しても判定が表示されないときは
-Hitboxの種類を変える;hitbox→Extended_Hitboxとか
-判定のIDを変える
と上手くいくことがある。


****注意
実機上のキャラクターのサイズは、キャラモデルにキャラサイズ倍率を掛けたものである(Hitboxには掛からない)。一方Smash Forgeでは倍率がかからないので、そのままでは判定の大きさに対するキャラクターのサイズが少しずれてしまう。大体は1に近いので問題ないが、正確に表示したい場合はHitboxSizeやXYZを「1/キャラサイズ倍率」倍にしてやるとよい。
#region(close, キャラサイズ倍率)
CLOSE
|キャラクター|サイズ倍率|h
|マリオ|1|
|ルイージ|1|
|ピーチ|1|
|クッパ|0.82|
|ヨッシー|0.94|
|ロゼッタ|1|
|クッパJr.|1|
|ワリオ|1|
|ドンキー|1|
|ディディー|1|
|Mr.ゲーム&ウォッチ|1|
|リトルマック|1.09|
|リンク|1|
|ゼルダ|1|
|シーク|1|
|ガノンドロフ|0.96|
|トゥーンリンク|1|
|サムス|1|
|ゼロスーツサムス|1|
|ピット|1|
|パルテナ|0.95|
|マルス|0.96|
|アイク|1|
|ルフレ|1|
|ダックハント|1|
|カービィ|0.96|
|デデデ|0.95|
|メタナイト|1|
|フォックス|1.08|
|ファルコ|1.05|
|ピカチュウ|0.96|
|リザードン|1|
|ルカリオ|1.05|
|プリン|1|
|ゲッコウガ|1|
|ロボット|1|
|ネス|1|
|キャプテン・ファルコン|1.05|
|むらびと|1|
|ピクミン&オリマー|0.95|
|WiiFitトレーナー|0.96|
|シュルク|1|
|ドクターマリオ|1|
|ブラックピット|1|
|ルキナ|0.92|
|パックマン|1|
|ロックマン|1|
|ソニック|0.97|
|ミュウツー|1|
|リュカ|1|
|ロイ|0.95|
|リュウ|1|
|クラウド|1|
|カムイ|0.99|
|ベヨネッタ|1.03|
|格闘Mii|1|
|剣術Mii|1|
|射撃Mii|1|
|ギガクッパ|0.9|
|ワリオマン|1|
|ギガマック|1.09|
|メガルカリオ|1.05|
|ザコ格闘Mii|1|
|ザコ剣術Mii|1|
|ザコ射撃Mii|1|
#endregion


***ステージ
File> Open Stage から、ステージのフォルダを選ぶ。
モデルの表示/非表示切り替えやカメラワークなどはキャラクターに準ずる。

中央上部から「LVD Editer」モードを選ぶと、左ツリーから
台、バーストライン、復活位置、カメラ位置などの座標を確認できる。

下のLVD Editerの節も一部参考に。

↓戦場。画像では3DCGモデルは全てOFFにしている。
#image(forge4.png,width=480)



**LVD Editor
※追記
現在はこれのバージョンアップ版がSmash Forgeに組み込まれている。
機能的にはSmashForge版がほぼ上位互換だが、執筆者の環境ではこれ単体の方が軽くて動作が安定している。

DL:[[https://www.dropbox.com/s/4b9slbvdw4ck8mc/Level%20editor.7z?dl=1]]
開発者:[[https://gbatemp.net/threads/release-smash-4-easy-stage-editor.431409/]]
ステージのパラメータを閲覧・編集できるソフト。
前もってSm4sh Explorerでdata>stageフォルダを解凍しておくこと。
data>stage以下の構造は
-end(終点化)
-final(切り札)
-melee(通常)
-other(ホムコンなど特殊ステージ)
--各ステージフォルダ
---paramなど

<手順>
① PCにPythonをインストールする。
Pythonはプログラミング言語の1つだが、ソフトを起動するのに必要なだけで扱える必要はない。

② LVD-Editor.pywを起動する。
「LVD-Editor.pyw」と同じ階層にステージのフォルダが1つだけある場合は自動でエディタが起動する。
そうでない場合は 各ステージフォルダ>param内にあるlvdファイルを指定する。

③ 画面1
カメラ位置の調整などが可能。「Open in LVD Editor」で画面2が開く。
#image(LVD1.jpg,width=480,blank)

④ 画面2
ステージモデルの概形とステージのパラメータが見られる。
-Vertices:ステージを構成する点の座標
-Lines:ステージを構成する線の座標
-Boundaries:カメラ範囲とバーストライン
-Spawns:復活台の位置。最大8か所
-Extra:アイク、オリマー、ネスの切り札の場所関連
#image(LVD2.jpg,width=480,blank)


----
**コメント
- Smash ForgeでCPUのAIファイルの内、attack_dataが編集出来るようです。保存の仕方がどうしても分からず。詳しい方検証願います!  -- 名無しさん  (2018-05-25 23:27:22)
#comment()