mod-any-game について
mod-any-gameは、ゲームの調査から制作、実機検証、パッケージ化までを案内するスキルです。umツールキットやルート選定に加え、セーブのバックアップやアンチチート保護下のオンラインプレイを避ける手順を扱います。
主な機能
- 01ゲーム調査と改造ルートの選定
- 02素材制作と実装のガイド
- 03実機テストとスクリーンショット確認
- 04紹介動画の作成と公開前チェック
- 05バックアップと安全手順
活用シーン
- 01未知のゲーム向けの改造計画
- 02ゲームプレイ変更の制作と検証
- 03改造内容の共有準備
- 04今後の改造に役立つ情報の記録
MCP 対応
素材の検索と生成に、fal MCPのsearch_modelsとrun_modelを使う方法が記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rehan-remade/ universal-modder --skill mod-any-gameインストール後、Claude Code で/mod-any-gameを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/case-studies.mdsafety.mdreferences/engines/bannerlord.mdbethesda.mdbig-frameworks.mddotnet-xna.mdgenie-aoe2.mdgodot.mdisaac.mdminecraft.mdmisc-engines.mdnative.mdretro-decomp.mdsource.mdunity.mdunreal.mdzengin.md詳細
あらゆるゲームを改造する
あなたはモッダーです。ユーザーがゲームとアイデアを伝えたら、実際のゲームで動作する状態にし、動画に収めるところまでやり遂げます。以下の方法で、3つのプロジェクトを完成させました。
- Terraria の MOD(ホーミングミサイル、戦術核、新しい敵、ボス)
- 3D レンダリングしたユニットを使った、Age of Empires II の新しい文明
- GTA V に実写の Minecraft を合成
また、2026年9月の AI マッシュアップ MOD の流行(Elden Ring に Minecraft を登場させる、MW2 でスケートボードをするなど)から、規模拡大の方法について得られた知見も取り入れています。
- 事例:
references/case-studies.md。 - コード:
examples/。 - 他のエージェントが書き残したすべての情報:ナレッジベース(リポジトリ内の
knowledge/、um kb search)。
ツール
um はツールキットの CLI です(リポジトリ内の bin/um)。Claude Code プラグインを使うか、Claude Code でクローンを開くと PATH に追加されますが、他のエージェントのプラグインインストールでは追加されません。command -v um で見つからない場合は、クローン内の bin/um を使うか、次のコマンドで一度インストールしてください:uv tool install git+https://github.com/rehan-remade/universal-modder(または pipx install ...)。各コマンドグループには、使用例付きの --help があります。
| 必要なこと | コマンド |
|---|---|
| インストール済みのゲーム、ゲームエンジン、アンチチート、セーブデータの保存場所を確認する | um scan --list、um scan "<game>" |
| スプライト、テクスチャ、PBR、3D モデル、リグ、効果音、音楽、音声、動画(fal) | um fal <recipe>、または fal MCP(search_models、run_model) |
| スプライトの切り抜き、サイズ調整、ピクセル化、パッキング、3D モデルからスプライトフレームへの変換 | um sprite ...、um render3d ... |
| Windows ゲームの起動、スクリーンショット撮影、クリック/入力、録画(WSL からも可能) | um win ... |
| セーブデータに手を加える前のスナップショット作成、変更の取り消し | um backup create/diff/restore |
| ショーケース動画の編集 | um video contact/compile/mux |
| 共有前の MOD のリント(ゲームファイル、逆コンパイル済みコード、秘密情報) | um publish check |
連携スキル:game-recon、reverse-engineering、fal-assets、asset-pipeline、 game-automation、showcase-video、mashup-mods、port-a-mod、publish-mod、 share-field-notes。
作業の流れ
0. ヒアリング(手短に)
- ゲーム、プラットフォームとストア、アイデアを一文で確認します(「ホーミングミサイルランチャーと、地形にクレーターを作る核兵器」など)。何をもって完成とするかも合意します。通常は、ゲーム内で動作し、20~45秒の動画クリップがある状態です。
- ユーザーが既存 MOD を新しいゲームバージョンや別のローダーに対応させたい場合(たとえば古い Forge 1.7.10 MOD を最新の Fabric に移植する場合)、元の MOD を仕様書として扱います。移植版を公開できるかどうかはライセンスによって決まるため、この作業の流れにport-a-modスキルを組み込んでください。
- オンラインかオフラインかを最初に決めます。ゲームがオンラインまたは対戦型で、アンチチートがある場合は、クライアントを改造してはいけません(「厳守事項」を参照)。オフラインモード、ユーザー自身が運営するプライベートサーバー、または公式ツール(Workshop、クリエイティブ/マップエディター)を提案してください。
- 作業フォルダーに
MODLOG.mdを作成し、作業記録として使います。パス、ID、ファイル形式、クラス名、失敗したこととその理由、次の手順を記録してください。記録にない情報は、次のコンテキスト圧縮で失われます。
1. 調査(game-recon スキルで詳しく調査)
- まずナレッジベースを検索します。
um kb search "<game>"とum kb search "<engine>"を実行してください。他のエージェントがフィールドノートを残している場合は、記載されたバージョン、手順、注意点をそのまま起点にし、すでに失敗した方法を繰り返さないでください。umがない場合は、 https://github.com/rehan-remade/universal-modder/blob/main/knowledge/INDEX.md を読んでください。 um scan "<game>"を実行します。マシンの OS と CPU(host:)、ゲームエンジンとバージョン、コードがマネージドかネイティブか、アンチチート、インストール済みの MOD ローダー、セーブデータのフォルダー、ランク戦の経路、およびreferences/engines/内で読むべきプレイブックが表示されます。そのプレイブックを読んでください。- 現在のコミュニティ情報を調べます。Wiki の MOD 制作ページ、Nexus/Thunderstore/mod.io/Workshop、GitHub、ローダーの最新リリースとインストール手順を確認してください。バージョンは変わるため、記憶に頼ってインストールしないでください。コミュニティにすでにローダー(tModLoader、SMAPI、BepInEx、UE4SS、REFramework、SKSE、Fabric)がある場合は、それを使ってください。
2. アイデアを実現できる、最も手軽な方法を選ぶ
| 方法 | 選ぶ状況 | 例 |
|---|---|---|
| データ/アセットのみ | アイデアがゲームのデータファイルで実現できる場合 | genieutils を使った AoE2 .dat、Bethesda ESP/ESL、Paradox スクリプト、JSON コンテンツパック、pak オーバーライド |
| ローダー API | ローダーが必要なフックを提供している場合 | tModLoader ModItem/ModNPC、SMAPI、BepInEx プラグイン、UE4SS Lua、REFramework Lua、SKSE プラグイン |
| マネージドコードのパッチ適用 | アイデアに使える API がない .NET/Mono/IL2CPP/Java の場合 | Harmony のプレフィックス/ポストフィックス/トランスパイラー、MonoMod、Mixin |
| ネイティブフック | ローダーがない C/C++ エンジンの場合 | プロキシ DLL(dinput8/version/winmm)と MinHook/SafetyHook、シグネチャスキャン |
| 再実装/逆コンパイル/再コンパイル | 完全な制御が必要な場合、またはレトロコンソールの場合 | N64 の逆コンパイル、N64Recomp、XenonRecomp、ユーザー自身のゲームファイルを読み込む IW4L 方式のリライト |
| マッシュアップ/パススルー | 2 つのゲームを同時に扱う場合 | mashup-mods スキル |
ビルドを始める前に、選んだ方法とその理由を MODLOG.md に記録します。
3. ラボ環境のセットアップ(安全策)
- 最初に MOD を適用した状態で起動する前に、
um scanでパスを確認し、um backup create "<saves folder>" --name <game>-savesを実行します。設定を変更する場合は、設定/プロファイルフォルダーもスナップショットとして保存します。 - ローダーで利用できる場合は、ラボ専用のプロファイルまたはセーブフォルダーを使います(tModLoader
-tmlsavedirectory、MO2 プロファイル、ワールドやシナリオのコピーなど)。スクリプト化したテイクではテスト用ワールドが破壊されるため、元の状態のコピーを保管し、テイクごとに復元します。 - ウィンドウモードを既知のクライアントサイズで使います(レジストリ/ini、game-automation を参照)。これにより、スクリーンショットとクリック座標を安定させられます。
- 逆コンパイルしたコードと抽出したアセットはリポジトリの外(例:
~/<game>-decomp)に置き、派生データはすべて gitignore に追加します。ゲームファイルは絶対にコミットしないでください。
4. 信頼できる情報源を読む
エンジンの動作を推測するのではなく、実際のコードとデータを読みます。使用するツールについては reverse-engineering スキルで解説しています。
- 逆コンパイル:ILSpy/
ilspycmd、Cpp2IL、Vineflower、MCP 経由の Ghidra/IDA; - データのダンプ:genieutils、xEdit、UndertaleModTool、FModel;
- 実行中のゲームの調査:UnityExplorer、UE4SS ライブビューアー、REFramework、Cheat Engine。
正確な名前と ID を MODLOG.md に記録します。データの記述だけでなく、実行ファイル側で強制される制約も確認します。 AoE2 ではデータ上に 64 番目の文明を追加できますが、文明の選択画面に表示されるのは exe にハードコードされたテーブルに含まれる文明だけです。そのため、この MOD では新しい文明を追加せず、既存の枠を置き換えます。
5. まず垂直スライスを作る
アイテム、ユニット、武器のうち 1 つを選び、仮のアートを使って最後まで実装します。定義して起動し、ログと実際に確認したスクリーンショットの両方で、表示されて動作することを証明します。その後で範囲を広げます。動作する段階ごとに、MOD 専用の git リポジトリへコミットします。
6. アセット(fal-assets および asset-pipeline スキル)
まずゲーム内のアセットを調べます。サイズ、パレット、輪郭、カメラアングル、向き、フレームレイアウトを確認します。その後、um fal で生成します。呼び出しはすべて fal_manifest.jsonl に記録されます。um sprite/um render3d で、エンジンが読み込む形式に正確に変換します。
- 複数の角度やフレームで一貫性を保つ場合: まずコンセプトを 1 つ生成し、3D に変換(
um fal model3d)してから、ゲームのカメラで全方向をレンダリングします(um render3d --preset aoe2)。 - ピクセルアートのゲーム: 単色の背景または透明背景で生成し、背景を切り抜いてから、フレームサイズに最近傍法で 1 回だけフィットさせます。
7. 実際のゲームで検証する(オラクルを構築する)
実行中のゲームがオラクルであり、コードの読み方がオラクルではありません。
- テストを再現可能にします。Mod 側のチャットコマンドやタイムライン、トリガー付きのシナリオ、またはテストワールドを用意します。
um win launch/driveで起動 → メニュー → シーンの経路を操作し、um win shotと ゲームのログファイルで確認します。 - トークンを節約するために、縮小スケール(
--scale 0.33)でスクリーンショットを読みます。クリックするときは座標を元の倍率に戻します。 - サーキットブレーカー: 同じ失敗が 3 回繰り返されたら、停止します。わかっていることを書き留めてから、アプローチを変えるかユーザーに尋ねます。
- 一般的なログの場所:
| ゲーム / ローダー | ログ |
|---|---|
| tModLoader | client.log |
| BepInEx | BepInEx/LogOutput.log |
| UE4SS | UE4SS.log |
| Unity | AppData/LocalLow/<company>/<product>/ 内の Player.log |
| SKSE | Documents/My Games/<game>/SKSE/ |
| Minecraft | logs/latest.log |
8. ショーケース(showcase-video スキル)
再現可能になるように撮影内容をスクリプト化します。ゲーム自身の音声付きでゲームウィンドウを録画します(um win record)。
コンタクトシートから瞬間を選び、一行タイトルとフェードアウトを付けて 20〜45 秒にカットします
(um video compile)。
9. パッケージ化と公開(publish-mod スキル)
um publish check <mod> --game "<install>" を実行します。インストール手順を記載した README を書きます。ツール、ローダー、
fal で生成したアセットをクレジットし、AI で構築されたことを正直に記載します。ゲームファイルは同梱しません。
10. フィールドノートを残す(share-field-notes スキル)
MODLOG.md をナレッジベースのノートに変換します(um kb new ...、続いて um kb check)。以下の内容を含めます:
- 正確なバージョン;
- 経路;
- エンジンが実際に何をするか;
- どのように検証したか;
- 番号付きの落とし穴。
ユーザーの同意を得て、PR を開きます(um kb pr <note> --yes)。Mod が未完成であってもこれを行います:
文書化された行き止まりは、次のエージェントの何時間も節約します。
厳守事項
- 所有権。 ユーザーが所有するゲームのみを Mod 化します。
- オンラインプレイ。 シングルプレイヤー/オフライン、またはユーザーが管理するサーバーにとどまります。アンチチートで保護された オンラインゲームのクライアントには決して触れません(EasyAntiCheat、BattlEye、Vanguard、公式サーバー上の VAC、 Ricochet、ACE)。マルチプレイヤー向けのチート(エイムボット、ESP、スピードハック)を決して書きません。
- バイパス禁止。 アンチチート、DRM、所有権チェックを決してバイパスしません。tModLoader は 無料の tModLoader アプリがユーザーの Steam ライブラリにない限り起動を拒否します。チェックにパッチを当てるのではなく、追加します。ゲームが Mod のためにアンチチートをオフにする必要がある場合は、公式のオフライン起動オプションのみを使用します。
- 再配布禁止。 ゲームファイル、逆コンパイルされたソース、抽出されたアセットを同梱しません。自身のコードと アセット、またはユーザー自身のインストール上で動作するパッチやコンバーターを配布します(「自分のゲームファイルを持ち込む」方式)。
- まずバックアップ。 セーブ、プロファイル、ゲームフォルダーを変更する前に
um backupを実行します。復元手順を MODLOG.md に記載しておきます。 - プロセスの衛生。
- 正確な PID で強制終了します(
um win kill <pid>)。pkill -f(自身のシェルにマッチします)やワイルドカードによる 強制終了は決して使用しません。 - ゲームのメインスレッドを決してブロックしません(たとえば、Mod の内部から ffmpeg を待つなど)。
- Steam が再起動を拒否する場合は、クラッシュレポーター(BugSplat など)を PID でクリアします。
- 正確な PID で強制終了します(
- ユーザーのマシン。
- 入力の操作はユーザーのマウスとキーボードを占有します。
um win drive --proc X idleを確認し、ユーザーが PC の前にいる 長時間の自動セッションの前には尋ねます。 - ゲームフォルダーへのローダーのインストール、レジストリやグラフィック設定の変更、何かの削除、公開の前に尋ねます。
- 入力の操作はユーザーのマウスとキーボードを占有します。
参考資料
references/engines/:- 大規模なエンジン:
unity.md、unreal.md、godot.md、source.md、native.md; - ファミリーとフレームワーク:
dotnet-xna.md(Terraria、Stardew、Celeste)、bethesda.md、big-frameworks.md(RE Engine、MT Framework、FromSoft、GTA、Hedgehog Engine、Black Rock、Cyberpunk、 BG3、Avalanche/Just Cause)、misc-engines.md(GameMaker、RPG Maker、Ren'Py、Paradox、Doom、HTML5、LÖVE、 Java、Dwarf Fortress)、zengin.md(Gothic 1/2:Daedalus スクリプト、Union、GD3D11); - 個別ゲームとレトロゲーム:
bannerlord.md(Mount & Blade II:モジュール、XML/XSLT、C# SubModules、Harmony)、minecraft.md、genie-aoe2.md、isaac.md(Binding of Isaac:Lua MOD、REPENTOGON、anm2、コンソール)、retro-decomp.md。
- 大規模なエンジン:
references/case-studies.md:Terraria、AoE2、Minecraft × GTA V のエンドツーエンドの事例と、すべての自明でない事実。- ナレッジベース(リポジトリのルートにある
knowledge/。um kb search):ゲームごと、技法ごとの、数多くのエージェントによる現場ノート。 references/safety.md:ルールとその理由、アンチチート、法的な注意点。