メインコンテンツまでスキップ

インポートされたゲームとゲームプロファイル

Pokémon Essentials プロジェクト(Pokémon Essentials からのインポート を参照)に加えて、インポーターは、お手持ちのカートリッジのダンプからゲーム全体を取り込むことができます。HeartGold / SoulSilver、FireRed、Black / White です。結果は Assets/ImportedGames/<Game>/ 配下の完全なプロジェクト(ワールド、キャラクター、種、技、アイテム、トレーナー、音楽、スクリプト付き NPC)となり、そのままエンジン内でプレイできます。

インポートとプレイは、意図的に 2 つの別ステップになっています。

  1. インポートは Assets/ImportedGames/<Game>/ 配下にのみ書き込みます。エンジンには一切触れません。
  2. ゲームプロファイルの適用(「Play ...」)で、エンジンがそのゲームを起動するようになります。これはエンジンのアセットを編集するため、バックアップを保持し、元に戻せます(「Restore the demo」)。

Source ティアで利用できます。 Hub 内のすべては Importer タブにあります。

必要なもの​

ゲームインポーターが読み込むフォルダーNode.jsマップの描画
HeartGold / SoulSilversalida/、HGSS エクストラクターの出力エクストラクターに必要カートリッジと同じ 2.5D、または 2D(インポート時に選択)
FireRedsalida-rom/、カートリッジから読み取りエクストラクターに必要2D
Black / White(および Black 2 / White 2)お手持ちの .nds ROM。Hub 自身が読み取る18 以降--(種とバトルのデータ)

カートリッジのダンプをそれらのフォルダーに変換するリーダーは、インポーターと一緒に Assets/OpenMon/Importer/Tools~/(hgss/、firered/、bw/ フォルダー。末尾の ~ により Unity がアセットとしてインポートしないようにしています)に同梱されている小さな Node.js スクリプトです。これらはあなたのダンプを読み取り、あなたが選んだフォルダーに書き込みます。ゲームの内容は MCE とともに配布されません。

Node ツールは、ヘッダーのシグネチャ(Game Boy Advance または Nintendo DS)によってダンプがどのゲームとプラットフォームのものかを認識し、ゲームの世代によってワールドの描画方法が決まります。FireRed は 2D でインポートされ、HeartGold / SoulSilver は 2.5D と 2D を選べます。

ステップ 1:インポート​

Hub(Tools > MCE > OpenMon Hub → Importer タブ)で、お使いのゲームのセクションまでスクロールし、そのインポートボタンを押します。フォルダーを尋ねられ、HeartGold / SoulSilver ではさらに、マップを 2.5D(カートリッジの描画方法)で描くか、2D(上から見た平面)で描くかを尋ねられます。後から Display Mode per Map でマップごとに変更できます。

インポーターは固定の順序で実行されます。各ステップが前のステップの上に成り立ち、ワールドのステップはすべてのシーンを最初から再構築するため、NPC は常に最後になります。

HeartGold / SoulSilver(HgssImportador):

  1. ワールド:マップ、ワープ、屋外の隣接マップ。
  2. マップの 3D モデル(2.5D)。
  3. カートリッジのバトル技、続いてアイテム、続いてショップ(各マシンはカートリッジの技を教え、各ショップはカートリッジのアイテムを販売します)。
  4. バッジと地方。
  5. 種(進化を含む)、続いてそのバトル用スプライトとアイコン。
  6. オーディオ:音楽、効果音、鳴き声。
  7. 野生エンカウントとバトル背景。
  8. キャラクターとフォロワー(フォロワーのセリフを含む)、そしてゲームの感情バルーン。
  9. トレーナー、続いてそのバトル用姿(トレーナーの正面とプレイヤーの背面。トレーナーの背面スプライト を参照)。
  10. スクリプト付きの NPC(CommandGraph に変換されます)。

FireRed(FireRedImportador):まずワールドとキャラクター、次にカートリッジのデータ(技、アイテム、種、スプライト、トレーナー、バトル用の姿、バッジ、エンカウント)、続いてオーディオ、バトル背景、感情バルーン、最後にスクリプト付きの NPC。

Black / White(BwDesdeLaRom):Tools~/bw のエクストラクターで ROM を読み取り、種、その技、鳴き声、アイコン、アニメーションするバトルスプライトをインポートします。ROM から読み取ったデータは Library/OpenMon/BW に残り、インポートされたアセットは Assets/ImportedGames/BW に入ります。

インポーターが遭遇してもマッピングできなかったものは、サマリーダイアログとコンソールで集計され報告されます(たとえば「commands without support yet」や「moves without a template」)。黙って捨てられるものはありません。

フォルダー名

各インポーターは自分のフォルダー内にのみ書き込みます:Assets/ImportedGames/HGSS、Assets/ImportedGames/FireRed、または Assets/ImportedGames/BW。

ステップ 2:プレイする — ゲームプロファイル​

インポートされたゲームは、そのプロファイルを適用するまでエンジンの一部にはなりません。Hub の同じセクションには、さらに 2 つのボタンがあります。

ボタン動作
Play HGSS / Play FireRed (apply its game profile)インポートしたシーンをエンジンが探す場所に登録し、プレイヤーの部屋で新規ゲームを開始し、そのゲームの主人公(男女)をプレイアブルキャラクターとして提示し、新規ゲームのフラグを設定し、ゲームの種、アイテム、音楽、地方、フォロワーを登録し、エンジンのオンラインレイヤーをオフにします(これらのゲームはシングルプレイヤーです)
Restore the demoプロファイルをバイト単位で元に戻し、エンジンを元の状態に戻します

プロファイルが触れるのは、リポジトリにあるエンジンのアセットです。新規ゲーム初期化、キャラクター選択シーン、シーンレジストリ、Build Settings、セーブとワールドのデータベース、モンスターデータベース、オーディオライブラリ、バトルランチャーの音楽、MCESettings のフォロワーと感情バルーンのセット、グローバルゲームデータ、オンライン設定です。そのため、プロファイルはインポートによって適用されることは決してなく、常に意図的に適用します。動作は次のとおりです。

  • まずバックアップ。 何かを変更する前に、プロファイルは元の内容をゲームの Assets/ImportedGames/<Game>/ フォルダー内の perfil-original.json と perfil-original~/ フォルダーに保存します。これは一度だけ作られます。プロファイルを再適用しても、すでに変更された値でバックアップが上書きされることはありません。プロファイルは冪等です。
  • 一度に 1 つのプロファイル。 HGSS プロファイルが適用されている状態で FireRed を適用すると、まず HGSS が復元されます(逆も同様)。これにより、バックアップが別のゲームがすでに入ったエンジンを記録することはありません。
  • エクスポートはブロックされます。 プロファイルが適用されている間、パッケージのエクスポーターは実行を拒否します。エンジンが無視される ImportedGames フォルダーを指したまま出荷されてしまうためです。先に Restore the demo を押してください。
  • バルーンと背面スプライトも付いてきます。 プロファイルはゲームの感情バルーンセット(感情バルーンとエモート)を割り当て、インポートされたプレイヤーキャラクターはカートリッジ自身の背面スプライトと投げ動作のタイミングを持ちます(トレーナーの背面スプライト)。また、プロジェクトにオンラインレイヤーがある場合、インポーターはモンスターをくれるすべての NPC にギフト ID を刻印します(モンスターギフト)。
コミットする前に復元する

プロファイルはエンジンに属するアセットを編集します。プロジェクトがソース管理下にある場合は、コミットする前に Restore the demo を押してください。そうしないと、他の誰も持っていないフォルダーを指すプロジェクトをコミットすることになります。

コマンドライン​

Hub の各ボタンには、Unity のバッチモード(-batchmode -quit -projectPath . -executeMethod <method>)から実行できる静的メソッドがあります。すべてが終了コード付きでエディターを終了します。成功は 0、失敗は 1 です。HeartGold / SoulSilver のインポートと Black / White のインポートでは、開始すらできなかった場合(引数の欠落または無効。Black / White の場合は ROM または Node.js がない)に 2 を使います。

ゲームメソッド引数
HGSSOpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssImportador.ImportarTodoDesdeCli-hgssSalida <salida フォルダー>(必須)、-hgssModo <2D または 2.5D>(任意。省略時は 2.5D)
HGSS プロファイルOpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssPerfil.AplicarDesdeCli-hgssSalida <salida フォルダー>(任意:最後の出力を使用)
HGSS 復元OpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssPerfil.RestaurarDesdeCli--
FireRedOpenMon.MCE.EssentialsImporter.Editor.FireRed.FireRedImportador.ImportarTodoDesdeCli-fireredSalida <salida-rom フォルダー> (任意)
FireRed プロファイルOpenMon.MCE.EssentialsImporter.Editor.FireRed.FireRedImportador.AplicarPerfilDesdeCli-fireredSalida <salida-rom フォルダー> (任意)
FireRed 復元OpenMon.MCE.EssentialsImporter.Editor.FireRed.FireRedImportador.RestaurarPerfilDesdeCli--
Black / WhiteOpenMon.MCE.EssentialsImporter.Editor.BW.BwDesdeLaRom.DesdeLaRomDesdeCli-bwRom <rom.nds> (または MCE_BW_ROM)

FireRed には個別の部分用のメソッド(ImportarDatosDesdeCli、ImportarFondosDesdeCli、ImportarAudioDesdeCli、ImportarEncuentrosDesdeCli)もあり、Black / White には BwImportador.ImportarTodoDesdeCli と ImportarDatosDesdeCli(-bwSalida 付き)があります。

引数が任意の場合、エントリポイントはフォルダー(または ROM)を別の場所から探し、その方法はエントリポイントごとに異なります。

エントリポイント引数がない場合
HGSS のインポート(HgssImportador.ImportarTodoDesdeCli)-hgssSalida は必須です。環境変数も、最後に使ったフォルダーへのフォールバックもありません。falta -hgssSalida <ruta a salida/> をログに出し、終了コード 2 で終了します。
HGSS のプロファイル(HgssPerfil.AplicarDesdeCli)MCE_HGSS_SALIDA。なければ、このエディターで最後にインポートした HeartGold / SoulSilver の出力。
FireRed:フルインポート、部分的なインポート、プロファイルMCE_FIRERED_SALIDA。なければ、このエディターで最後にインポートした FireRed の出力。どちらもなければ、フォルダーが存在しないためインポートは失敗します(終了コード 1)。
ROM からの Black / White(BwDesdeLaRom.DesdeLaRomDesdeCli)MCE_BW_ROM。最後に使ったフォルダーへのフォールバックはありません。ROM がない(または Node.js がない)場合は、2 で終了します。
出力フォルダーからの Black / White(BwImportador)MCE_BW_SALIDA。なければ、このエディターで最後にインポートした Black / White の出力。

HeartGold をスクリプトで最初から最後まで実行する例:

# 1. import
Unity.exe -batchmode -quit -projectPath . \
-executeMethod OpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssImportador.ImportarTodoDesdeCli \
-hgssSalida D:/dumps/hgss/salida -hgssModo 2D

# 2. apply the profile so the engine starts that game
Unity.exe -batchmode -quit -projectPath . \
-executeMethod OpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssPerfil.AplicarDesdeCli \
-hgssSalida D:/dumps/hgss/salida

# 3. ... later, give the engine back
Unity.exe -batchmode -quit -projectPath . \
-executeMethod OpenMon.MCE.EssentialsImporter.Editor.HGSS.HgssPerfil.RestaurarDesdeCli

通常の Pokémon Essentials プロジェクトに相当する入口は、Pokémon Essentials からのインポート にあります。

インポーターの所在​

フォルダー内容
Assets/OpenMon/Importer/Editor/HGSS/HeartGold / SoulSilver のインポーターと、プロファイルの HgssPerfil(FireRed にも使われます)
Assets/OpenMon/Importer/Editor/FireRed/FireRed のインポーターと FireRedImportador
Assets/OpenMon/Importer/Editor/BW/Black / White のインポーター
Assets/OpenMon/Importer/Tools~/カートリッジのダンプを上記のフォルダーに変換する Node.js リーダー