LoginSignup
0
1

More than 1 year has passed since last update.

3D Migotoの使い方(自分用メモ)

Last updated at Posted at 2023-07-15

自分用の備忘録。毎回やり方を忘れるので。。

【はじめに】 Hunting Mode を有効にする(初回のみ)

ダウンロードしてきた3D Migotoフォルダの中にある d3dx.ini をテキストエディタで開いてください。
「hunting=」で検索し、「hunting=2」に変更してください。
また、「verbose_overlay」で検索し、「verbose_overlay = 1」に変更して、ファイルを保存してください。
Hunting Modeとは、ゲームのシェーダーを分析し、無効化したり、変更したりするためのデバッグモードみたいなものです。

Step1. 必要なファイルを所定のフォルダに置く

ゲームの実行ファイルがある場所( \Path\To\ProjectDir\{GameName}\Binaries\Win64\{GameName}.exe )に、以下のファイルを置きます。
プロジェクトフォルダにあるゲームの実行ファイル( \Path\To\ProjectDir\{GameName}.exe )ではないことに注意してください。

d3d11.dll
d3dcompiler_46.dll
d3dx.ini
nvapi64.dll

ダウンロードしたときに最初から付属してたShaderFixesフォルダは入れないでください

Step2. DirectX11でゲームを起動する

DX12ではHunting Modeが起動しないため。
ゲームの実行ファイル( \Path\To\ProjectDir\{GameName}\Binaries\Win64\{GameName}.exe )のショートカットを作成し、
右クリック→プロパティ→リンク先の末尾に「 "~\{GameName}.exe" -dx11 」をつければ良いです。
後は、そのショートカットをダブルクリックして実行してください。dx11モードでゲームが動きます。
ちなみに、dx12のままだと「ブドゥドゥン♪」みたいな不快な音が鳴って、「d3d11_log.txt」にエラーログが記録されます。

Step3. Hunting Mode を起動する

テクスチャを特定したい場面になったら、Num0キーを押します。
画面下部に Hunting Mode Enabled と緑色で表示されたら成功です。
出来る限り、背景がシンプルな場面で行うのが良いです。
背景が複雑な場所で起動すると、ゲームがクラッシュすることがあります。

以下の操作で、テクスチャを特定します。

1. PS(ピクセルシェーダー)の選択

一度Hunting Modeが起動すると、Num1とNum2キーを使用して、
現在のピクセルシェーダーの次と前のシェーダーを選択できます。
PS: 1/38 みたいな数字の部分です。

Num1とNum2を交互に押して、お目当てのシェーダーが特定できればNum3を押すことで、テクスチャを記録します。
お目当てのシェーダーのハッシュ値はメモしておくと良いです。
特定できなかった場合は次の手順に進みます

2. VS(頂点シェーダー)の選択

Num3とNum4キーを使用して、
現在の頂点シェーダーの次と前のシェーダーを選択できます。
VS: 1/24 みたいな数字の部分です。

Num3とNum4を交互に押して、お目当てのシェーダーが特定できればNum5を押すことで、テクスチャを記録します。
お目当てのシェーダーのハッシュ値はメモしておくと良いです。
特定できなかった場合は次の手順に進みます

3. IB(インデックスバッファ)の選択

Num7とNum8キーを使用して(ry Num9で記録します。

4. Hunting Mode の終了

Num0キーを再度押すことでHunting Modeを終了します。

Step4. ShaderFixesの整理

Binaries\Win64\ フォルダを確認すると、
ShaderFixes というフォルダが出来ていることがわかると思います。

この中に、93dce535a374cb3d_vs_replace.txt みたいなテキストファイルがいくつか生成されていると思います。
お目当てのシェーダーのハッシュ値以外のファイルは全削除してください。
お目当てのテクスチャを非表示にしたい場合は、このままの状態でゲームを再起動すれば、当該のテクスチャが非表示のままになるはずです。

テクスチャを改造したい場合は、ShaderFixesにあるテキストファイルを全削除して、
テキストファイルを適当な名前で新規作成し、
以下のようにhash値を定義して、handlingでオーバーライドしたい動作を記述します。
(handling=skip はテクスチャを無効化します)

[ShaderOverrideRemoveBlur]
hash=93dce535a374cb3d
handling=skip

ShaderOverrideの次の文章はご自身のしたい操作で読み替えてください。

以上。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1