mcpField
M
mod-any-game

mod-any-game

github.com/rehan-remade開発9.2k1.6k 回インストール1 日前に更新
リポジトリ

mod-any-game について

mod-any-gameは、ゲームの調査から制作、実機検証、パッケージ化までを案内するスキルです。umツールキットやルート選定に加え、セーブのバックアップやアンチチート保護下のオンラインプレイを避ける手順を扱います。

主な機能

  1. 01ゲーム調査と改造ルートの選定
  2. 02素材制作と実装のガイド
  3. 03実機テストとスクリーンショット確認
  4. 04紹介動画の作成と公開前チェック
  5. 05バックアップと安全手順

活用シーン

  1. 01未知のゲーム向けの改造計画
  2. 02ゲームプレイ変更の制作と検証
  3. 03改造内容の共有準備
  4. 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.md
safety.md
references/engines/
bannerlord.md
bethesda.md
big-frameworks.md
dotnet-xna.md
genie-aoe2.md
godot.md
isaac.md
minecraft.md
misc-engines.md
native.md
retro-decomp.md
source.md
unity.md
unreal.md
zengin.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 回繰り返されたら、停止します。わかっていることを書き留めてから、アプローチを変えるかユーザーに尋ねます。
  • 一般的なログの場所:
ゲーム / ローダーログ
tModLoaderclient.log
BepInExBepInEx/LogOutput.log
UE4SSUE4SS.log
UnityAppData/LocalLow/<company>/<product>/ 内の Player.log
SKSEDocuments/My Games/<game>/SKSE/
Minecraftlogs/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 でクリアします。
  • ユーザーのマシン。
    • 入力の操作はユーザーのマウスとキーボードを占有します。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:ルールとその理由、アンチチート、法的な注意点。

コメント