Mixinとは?Minecraftバイトコード改造(2026年)

Mixin は、Minecraft の MOD がゲームのクラスをロード時にパッチできるバイトコード注入ライブラリです。それが何をするのか、そして MOD がなぜそれが必要なのかを以下に示します.

Frameworksby trqUpdated June 4, 2026
Key takeaways
  • Mixin は、Minecraft のコンパイルされたクラスをロード時にパッチする Java ライブラリです。
  • モッドは、コードを注入する場所を記述しますが、ファイルの見た目は記述しません。そのため、パッチはゲームのアップデートに耐えます。
  • Fabric は Mixin を基盤としており、クラスのロード時に各モッドの Mixin を適用します。
  • Mixin をご自身でインストールすることはありません。ローダーがそれをバンドルしています.

Mixinは、ゲームのロード中にModがMinecraftのコンパイルされたクラスを編集することなくパッチを適用できるようにするJavaライブラリです。Modは「このゲームメソッドのこのポイントにこのコードを追加する」という小さなクラスを記述し、Mixinはそれらを実行時にバイトコードに織り込みます。Fabricは、そのコアとなるModdingメカニズムとしてMixinを利用しています.

どこ Opal 合う

OpalはFabricのModなので、内部的にはMixinを拡張しています。Mixinを個別にインストールする必要はありません。セットアップガイドでOpalとFabricの実行方法について説明しています

Mixin の仕組み

Mixin は、クラスがコンパイルされた後、JVM が実行する前に編集します。ある Mod は、実際のゲームクラスを対象とする Mixin クラスを同梱します。そのクラスに付与されたアノテーションは、注入されるコードが配置される場所を示します。メソッドの開始、終了、特定のメソッド呼び出し、または返り値です。Minecraft が対象クラスをロードすると、Mixin はそのバイトコードを書き換え、Mod のコードを挿入します。

これは重要です。なぜなら、Minecraft は拡張を前提として設計されていないからです。ゲームのほとんどの動作には、公式のプラグインポイントがありません。Mixin は、コンパイルされたゲーム自体を拡張面として扱うことで、Mod が侵入するための手段を提供します。

なぜ Mod はゲームを直接編集する代わりにこれを使用するのか

理由は 2 つです。互換性とアップデートです。

ゲームのソースコードを直接編集すると、完全に修正されたコピーを同梱することになり、誰もその上で構築できず、ゲームのアップデートと同時に機能しなくなります。Mixin のパッチは小さく、外科的であるため、多くの Mod がフルフォークを同梱することなく、同じゲームをパッチ化できます。

また、パッチはファイルの内容ではなく、注入場所を記述するため、あるバージョンのゲームに対して書かれた Mixin は、対象メソッドが依然として存在している限り、ゲームのアップデート後でも適用されることがよくあります。

Fabric との関連性

Fabric は Mixin を基盤として構築されています。ローダーは各 Mod の Mixin 設定を読み込み、次に Mixin にリストされた Mixin クラスを渡して、クラスロード中に適用されます。典型的な Fabric Mod は、主に独自のクラスと、変更が必要なゲームメソッドのほんの数か所をフックする少数の Mixin で構成されます。

共通の注入ポイント

アノテーション動作
@Injectターゲットメソッド内の選択された箇所でコードを実行
@Redirectターゲット内の特定のメソッド呼び出しを置き換え
@ModifyArgターゲット内の呼び出しに渡される引数を変更
@ModifyVariableメソッド内でローカル変数を書き換え
@Overwriteメソッド全体を置き換え (最終手段; 壊れやすい)

@Inject は、最も侵襲性が低く、ゲームアップデートに最も耐えられる可能性が高いため、デフォルトのツールです。@Overwrite は、同じメソッドに触れている他の Mod と競合するため避けるべきです。

FAQ