top of page

JD-GUIとMCPMappingViewerの使い方

ー JD-GUI ー

・JD-GUI本体をダウンロードする

まずはJD-GUIをダウンロードします。ホームページからDownloadタブをクリックし、一番上のjar版をダウンロードして適当な場所に配置します。

ダブルクリックするとソフトウェアが立ち上がりますが、「このファイルを開く方法を選んでください」と表示される場合は「その他のアプリ↓」からJavaを選択します。Javaが選択肢にない場合、一番下の「このPCで別のアプリを探す」をクリックし、

"Program Files/Java/jre1.○.○_○○○/bin/javaw.exe" (java.exeではない) を選択してください。

そもそもJavaをインストールしてない人はまずそこから始めましょう。



・RTMのデータを用意する

KaizPatchはソースコードが用意されているので簡単に準備ができますが、純正RTMはソースコードが配布されていないので準備する必要があります。


1.まずは中身のファイルを展開するためのフォルダを用意します。わかりやすいようにRTMのバージョンと同じ名前のフォルダ名にしましょう。


-純正RTM版の準備-

2.RTM本体のMODファイル(.jar)を7-Zipなどで開きます。直下にはassets、jp、LICENSE.txt...とあるので、ここからjpフォルダを先程の展開用に用意したフォルダに解凍します。

3.同じ要領でMCTE、NGTLibからもjpフォルダを解凍し、先程のRTMのjpフォルダと統合します。

最終的には

RTM1.7.10.44(展開用に用意したフォルダ)

└jp

 └ngt

  ├mcte

  ├ngtlib

  └rtm

というフォルダ構造になれば準備完了です。


-KaizPatch版の準備-

2.KaizPatchのダウンロードページ(右のReleases)のAssetsの中にSource code (zip)があるのでこれをダウンロードし、展開用のフォルダに配置します。

JD-GUIはzipのままでも読み込めるのでこのままでも良いですが、もし見やすくしたいのであればKaizPatchX1.7.○.zip/KaizPatchX1.7.○/src/main/java

の中にあるjpフォルダを先程用意した展開用フォルダに解凍しても構いません。



・ファイルを読み込んでみる

JD-GUIを起動すると"No files are open"と表示されています。このエリアに○○.javaや○○.classファイルをドロップすると、関連するファイルをまとめて読み込んでくれます。まずはjp/ngt/rtmにあるclassファイルをどれか1個適用に選んでドロップしてみましょう(どれを選んでもいいです)。すると、左にファイルツリー、真ん中にコードが表示されるので、以降はここから必要な情報を探していきます。

KaizPatchをzipのまま読み込む場合は、左のツリーから

KaizPatchX-1.○.○

└src/main

 └jp

  └ngt

   ├mcte

   ├ngtlib

   └rtm

と開くと見つかります。



・試しに車両Entityを探してみよう

車両の描画スクリプトやサーバースクリプトに登場する引数のentityは"EntityTrainBase"というクラスから来ています。EntityTrainBaseはjp/ngt/rtm/entity/train/EntityTrainBase.class(もしくはEntityTrainBase.java)にあるので、これをクリックしてみましょう。すると、コードが表示されます。更にそこから左のツリーを展開すると変数や定数、関数などを表示することができます。

詳しい解説については今後の各記事に載せていく予定ですが、大雑把に言うと緑丸の関数や変数はスクリプトから呼び出しが可能です。赤や黄色はアクセスできないため、直接呼び出すことはできません。




ー MCP Mapping Viewer ー

RTM側の変数や定数、関数は名前の通りで呼び出すことができますが、Minecraft側に実装されている変数や定数、関数には難読化処理が施されており、難読化後の名称で呼び出さないとエラーが発生します。この難読化後の名前と難読化前の名前を調べるのにMCP Mapping Viewerを使用します。



・MCP Mapping Viewerをダウンロードする

純正のMCP Mapping Viewerは現在正常に動作しないためKaiz氏による修正版をダウンロードして使用します。

ただ、現在ホームページにはアクセスできないようなので、Wayback Machineというアーカイブサイトを経由することでツールをダウンロードすることができます。

このページの1月9日にアーカイブが残っているのでここからダウンロードしましょう。



・MCP Mapping Viewerの使い方

1.まず起動したらバージョン一覧の取得から始まります。[Get Versions]をクリックすると一覧が取得されます。

2.ドロップダウンリストからバージョンを選択します。snapshotが大量にありますが、バージョンがあっていれば基本的に問題ないのでバージョンを合わせてください。

3.[Load Mappings]をクリックするとデータが読み込まれます。


以降はSearchの部分に調べたいクラス名や関数/変数/難読化後の名前などを入れて[Go]で検索します。

検索をすると下の3つのリストに色々表示されます。

一番上のリストはクラスの一覧です。リストからクラスをクリックすると、下部にある関数リストと変数リストが更新されます。


・試しにEntity型を探してみよう

先程出てきたEntityTrainBaseはJD-GUIで継承元を辿っていくと"Entity型"にたどり着くのですが、このEntity型はMinecraft側に実装されているためJD-GUIから関数や変数を調べることができません。ここでMCP Mapping viewerの出番となります。"Entity"を検索欄に入れて検索するとEntityという名前がつくクラスや関数/変数が表示されます。

クラス一覧からEntityをクリックすると関数や変数の一覧が更新されます。ここにある関数や変数は継承されてきているものなのでEntityTrainBaseはこれらの関数や変数を包括していることになります。

閲覧数:320回
bottom of page