undertalemodtool
(そのような驚くべきツールを見ると、決意を満たします。)
やあ。 Undertale/DeltaruneのようなGameMakerゲームを深く掘り下げるのが好きだと聞いたので、ここにあなただけのツールがあります!

ダウンロード
最新の安定したリリースと最も最先端のバージョンの両方を、下の表からダウンロードできます! undertalemodtoolの設定メニュー内からいつでも出血エッジリリースに更新できることに注意してください。
UndertaleModtoolには、リリースごとに異なるビルドがあることは注目に値します。違いは次のとおりです。
-
.NET bundled -必要な.NETランタイムバージョンをバンドルします。すべての安定したリリースは.NETバンドルされているため、必要なランタイムをインストールすることを心配する必要はありません。 -
Single file - ツールは1つの実行可能ファイルであり、すべての依存関係が埋め込まれています。これにより、フォルダーがクリーンになりますが、予期しない安定性の問題も発生します。 -
Non-single File - すべての依存関係は実行可能ファイル内に埋め込まれていませんが、現在はそのすぐ隣にあります。 〜300 dllの間に適切な実行可能ファイルを見つけることを気にしない場合、またはSingle fileビルドからの安定性の問題があなたに影響する場合は、これを選択してください。
主な機能
- アンダーテール、デルタルネ、および他のほとんどのゲームメーカーの最新バージョンのデータファイルからすべてのバイトを読み取ることができます:スタジオゲーム(GM:S 1.4およびGMS2バイトバージョン13から17が現在サポートされています)は、すべてのプラットフォームに対して、デコードされたデータからバイトバイバイトの正確なコピーを再現します。
- ファイル内のすべてのポインターを適切に処理して、ものを追加/削除する場合、より長く/短くする場合、それらを動かして、ファイル形式が壊れないようにします。
- 未知の値を含むすべての値を(ほぼ)変更できるエディター。
- シンプルな部屋/レベルエディターが含まれています。
- コードの分解と編集を可能にします。これは、組み込みのGMLコンパイラまたはGMLアセンブリを使用して、カスタムコードをゲームに追加できることを意味します。
- 実験的なハイレベルの逆コンパイラ。出力は正確です(最新のGameMakerバージョンを除く)が、高レベルの構造のクリーンアップをさらに使用できます。
- データファイルを自動的に変更する(または他の不気味なタスクを実行する)スクリプトを実行するサポート - これはMODを配布する方法ですが、それらを作成することは今のところ手動の仕事です。また、HEXエディターのオフセットを共有するための代替品としても機能します。代わりに、ファイル形式の手頃なスクリプトにすると、更新後に壊れた変更がはるかに小さくなります。
- すべてのコアIO機能は、外部ツールで使用するためにライブラリに抽出されました。
- GM:Sデバッガー用の.yydebugファイルを生成して、変数をライブ編集できるようにします。 (こちらを参照)
- すべてのGameMaker関連ファイルの自動ファイル関連。これは、実行可能ファイルの横に
dna.txtファイルを使用することで無効にすることができます。
スクリーンショット
UTMTができることのスクリーンショットは次のとおりです。
リブビット-DeltaruneMod

含まれているスクリプト
いくつかのテストスクリプトが含まれています。それらは次のとおりですが、以下に限定されません。
- ユニバーサル:
- 検索:分解されたコードエントリのテキストの簡単な検索
- さまざまなタイプのアセットファイルをインポートおよびエクスポートするスクリプト。
- Undertaleのみ:
- EnableDeBug:それを行い、Game Startでグローバル変数「デバッグ」を有効にします。 Undertaleのデバッグモードがわからない場合は、Undertaleのデバッグモードのこの書き込みをご覧ください
- DebugToggler:上記に似ていますが、代わりにF1でデバッグモードのオンとオフを切り替えます
- BorderEnabler:PlayStation専用の境界線をPCバージョンにインポートし、すべてのバージョンチェックを適切に表示できるようにすることができます。
- TTFFONTS:スプライトシートフォントを使用する代わりに、現在のディレクトリからTTF形式でゲームロードフォントを作成します。すべてのフォントファイルを自分で追跡する必要があります。ライセンスの理由でここでホストすることはできません:(
- Roomofdetermination:1.08を引き受けるために新しい部屋を追加します。私はそれにもっと何かを追加したかったのですが、決してそれにつながったことがないので、私はそれをそのままリリースしていると思います。ゲームを開始するだけで、表示されます。おそらく、あなたが見つけるものを追加する最も完全なサンプル。
- Deltaruneのみ:
- Deltahate:Deltaruneを破壊するための憎悪に触発されたスクリプト
- Deltamilk:すべての非バックグラウンドスプライトをK.Round Healing Milkに置き換えます。理由を尋ねないでください。
- WholeworldRevolving:世界は回転し、回転しています
- UndertaleとDeltaruneのみ:
- gotoroom:F3ボタンのデバッグモード機能をダイアログに置き換えます。これにより、IDで任意の部屋にジャンプできる
- ShowroomName:デバッグモードで画面に現在の部屋名とIDが表示されます
さらに、コミュニティ製のスクリプトが含まれています。詳細については、scripts.mdファイルを参照してください。
貢献
すべての貢献は大歓迎です!バグ、ロードなどのデータファイルを見つけた場合は、問題ページに報告してください。リクエストを引き出して、フォーマットのデコードのヘルプも大歓迎です!ここに、作業する必要があるものの現在のリストがあります。
- プロファイルシステムで作業します
- 分解者の改善
- Gamemakerの最新バージョンのサポートを追加します(特に2.3)-Decompilerはほとんどの場合機能しません
- 最終的に、可能であればGUIクロスプラットフォームを作成します
編集手順
Repoを自分でコンパイルするには、 .NET Core 6 SDK以降が必要です。
次のプロジェクトをコンパイルできます。
-
UndertaleModLib :他のすべてのプロジェクトで使用されるコアライブラリ。 -
UndertaleModCli :GameMakerデータファイルと対話し、スクリプトを適用するためのコマンドラインインターフェイス。現在、それができることは非常に原始的です。 -
UndertaleModTool :GameMakerデータファイルと対話するためのメイングラフィカルユーザーインターフェイス。これをコンパイルするには、Windowsが必要です。
IDE経由のコンパイル
UndertaleModTool.sln選択したアイデンで開きます(Visual Studio、JetBrains Rider、Visual Studio Codeなど)- コンパイルするプロジェクトを選択します
- コンパイル
コマンドラインを介してコンパイル
- 端末を開き、
UndertaleModTool.slnのディレクトリに移動します dotnet publish <Project>を実行すると、 <Project>は上記のプロジェクトの1つです。 --no-self-containedや-c releaseなど、コンパイルの引数を提供することもできます。引数の完全なリストについては、Microsoftドキュメントを参照してください。
GameMakerデータファイル形式
これに取り組んでいる間に行ったファイルと命令形式の調査に興味がありますか?詳細とドキュメントについては、Wikiをご覧ください。
特別なありがとう
Undertaleの開梱と再コンパイルに関する以前の調査を行ったすべての人に感謝します。それは本当に大きな助けでした:
- ユリシスのアンダーテール逆コンパイル研究
- DonkeybonksのGamemaker data.win bytecode Research
- ポロシオンの祭壇
- WarlockdのGmdsam
他のすべての貢献者と同様に:
そしてもちろん、ゲームを作ってくれたToby FoxとUndertaleチーム全体に感謝します;)