- マッピングは、Minecraftの難読化されたコードを読みやすい名前へと翻訳する名前表です。
- Mojangはクラス、フィールド、メソッドの名前をスクランブル化し、それはバージョンごとに変更されます。
- よく耳にするマッピングは、MCP、Yarn、そしてMojangのマッピング(Mojmap)の3つです。
- マッピングは実行時にではなく、コンパイル時に適用されるため、プレイヤーには送信されません.
マインクラフトのマッピングは、ゲームの難読化されたコードを読みやすい名前へと変換する名前テーブルです。Mojangは、a.a.aのようなスクランブルされたクラス名やフィールド名でMinecraftを出荷するため、Modやクライアントの開発者は、MCP、Yarn、またはMojangのマッピングといったマッピングセットを適用することで、実際に読めてフックできる名前を取得します.
どこ Opal 合う
マッピングが存在する理由
MojangはMinecraftをリリースする前に難読化します。配布されるjarファイルは、クラス、メソッド、フィールドの名前を短い意味のない文字列に置き換えることで、ファイルサイズを小さくし、コードを読みにくくしています。このスクランブルが、ゲームを開いてすぐに編集できない理由です。
マッピングは、この難読化を元に戻す辞書です。難読化された名前と人間が読める名前をペアリングし、例えばfield_70181_xというフィールドがmotionYになります。マッピングが適用されると、開発者は通常に見えるコードベースを見て、それに対してMODを作成できます。
ここで重要な注意点があります。難読化された名前はMinecraftのバージョンごとに変化するため、同じフィールドが1つのリリースではa、次のリリースではbkになることがあります。マッピングはこのような変化を吸収するため、MODツールチェーンの基盤となっています。
よく耳にする3つのマッピング
MCP(Mod Coder Pack)は、1.14以前のMOD開発を可能にしたコミュニティのマッピングです。これは2層のスキームを使用しており、Seargeプロジェクトが安定しているものの醜い中間的な名前(例:field_70181_x)を生成し、MCPがそれらをmotionYのような親しみやすい名前でラップしていました。多くの古い1.8.9スタンドアロンクライアントは、MCPマッピングされたソースツリーに対してコンパイルされ、MCPとSeargeの名前を基にしてリフレクションを使用しています.
Yarnは、FabricMCがFabricエコシステム向けに維持しているオープンソースのマッピングです。コミュニティ主導で、自由にライセンスされており、新しいMinecraftバージョンがリリースされると迅速に更新されます。これが、FabricのMODが新しいバージョンに迅速に対応できる理由の一つです。
Mojangのマッピング、一般的にMojmapと呼ばれているものは、Mojangが公式リリースごとに1.14.4以降に公開している独自のファーストパーティのマッピングです。Mojangから直接提供されるため、開発者が実際に使用している名前と一致します。これらは、1.21以降をターゲットとする新しいクライアントにとって、MCPとSeargeをデフォルトとして置き換えたものとして機能しています。
比較
| MCP | Yarn | Mojangのマッピング | |
|---|---|---|---|
| 維持者 | コミュニティ(Searge + MCP) | FabricMC | Mojang |
| 時代 | 1.14以前(1.7-1.12) | 1.14以降 | 1.14.4以降 |
| ソース | コミュニティ由来 | コミュニティ由来 | 公式 |
| 使用されるクライアント | レガシークライアント、古いMOD | Fabric | Fabric、Forge |
| 状態 | Mojangのマッピングによって廃止 | アクティブ | アクティブなデフォルト |
マッピングがMODツールチェーンにどのように適合するか
マッピングは、実行時にではなく、コンパイル時に適用されます。ビルドツールは、難読化されたゲームを取り、マッピングを適用し、コードを記述するための読みやすいバージョンを生成します。完成したMODは、プレイヤーのゲームが実際に使用する難読化された名前と一致するように、再度マッピングされます.
異なるローダーは、それぞれ異なる方法でこれを処理します。 Fabric は、プロジェクトに応じて Yarn または Mojang のマッピングを基に構築します。 Forge は従来、ソースコードを読む際に一つのマッピングを使用し、実行時に別のマッピングを使用するなど、処理を分割していました。 Mojang のマッピングのライセンスは、ビルド時に使用しても許容範囲であり、そのため最新のツールチェーンはこれに依存しています。
よくある質問
いいえ。マッピングは開発者向けに名前を変更するだけです。コンパイルされたMODは難読化されたゲームに合うようにリマップされるため、コーディング中に見る名前はプレイヤーには渡されません。
歴史。MCPが最初に登場し、コミュニティをMinecraft 1.14未満のバージョンまで支えました。YarnはFabricと共にオープンな代替手段として成長し、MojangのマッピングはMojangが1.14.4で公式の名前を公開し始めた際に登場しました。
最新のMinecraftでは、MojangのマッピングかYarnが標準的な選択肢です。MCPは、主に古いツールチェーンがまだ使用されている1.8.9以前のプロジェクトで関連性があります。
いいえ、マッピングは名前表です。FabricのようなModローダーは、ゲームにModを読み込むための実行環境です。これらは連携して動作しますが、異なる問題を解決します。