内部データの閲覧方法

最終更新日:2013/01/18

スケダー宇宙船<制圧>を例に、内部データの閲覧方法を解説します。

ステージ(ソロ・ミッション)の読み込み

  1. 「File > Open Uncompressed」を選択します。
  2. 「Setup File」(ミッション設定ファイル)を選択します。先頭が「Usetup」、語尾が「Z」のファイル名を選択します。
    <制圧>の場合は「UsetupattackshipZ」を選択します。
    ミッション設定ファイルを選択
  3. 「Pads File」(マップ構成ファイル)を選択します。先頭が「bg_」、語尾が「_pads」のファイル名を選択します。
    ですが、同じステージの「Pads File」は自動で選択してくれているので、そのまま「開く」を選択して大丈夫です。
    <制圧>の場合は、「bg_attackship_pads.bin」です。
  4. タイトルバーに「UsetupattackshipZ.bin」、画面中央に「Edit in progress.」と表示されたらステージ読み込み完了です。
    ステージ読み込み完了

Edit Setupについて

ステージ読み込み後、メニューの「Edit Setup」を利用してステージの内部データを閲覧できます。

Edit Setupの項目

Edit Action Blocks
NPCの動き方やオブジェクトの機能の仕方などを設定します。
Edit Intro Block
初期装備などを設定します。
Edit Paths
NPCの歩くルートを設定します。
Edit Presets/Pads
オブジェクト置き場の座標などを設定します。
Edit Objectives
任務の完了条件や失敗条件などを設定します。
Edit Objects
オブジェクトの詳細を設定します。
Visual Editor
ステージの構造をエディターで確認・編集ができます。

内部データの閲覧

Action Blocks

スケダー宇宙船<制圧>のAction Blocksを見てみましょう。
NPCの体力設定やミッションの流れのルーチンが記述されています。
Action Blocksを開く

左上の「ID」に着目します。
IDは、「04xx」または「10xx」になっています(xxは16進数の値です。「0400」は使用不可能ですが、「1000」は使用可能です)。
「04xx」は、呼び出されてから実行されるルーチンで、「10xx」は、常時実行されるルーチンです。
「04xx」は、NPCに割り当てて使用します。

ここでは、例として「カサンドラのネックレス」の入手条件について見てみましょう。
「カサンドラのネックレス」は、難易度:パーフェクトでしか入手できません。
すなわち、エージェントとアドバンストでは、ネックレスを消去する処理が行われているはずです。

ということで、IDをずらしながら探していきます(IDにフォーカスを当てて、↓キーでずらしていくとやりやすいです)。
「10xx」を探していくと、ID「1026」に、それらしきルーチンが見つかります。
「カサンドラのネックレス」の入手条件のルーチン

命令は、最初の4桁が命令コード、後半がその命令に設定する値を示しています。
各命令をクリックすると、設定されている値とその命令の説明文を見ることができます(説明文がないものもあります)。

0003 Leave the Routine, But When Return Continue from Spot
無限ループを避けるために必要みたいです。
0077 If Difficulty Below Value, return value loop
難易度で条件分岐
難易度の値が設定した値より小さい場合、Value Loopを返します。
難易度の値は、00:エージェント、01:アドバンスト、02:パーフェクトとスペシャルモードです。
この例の場合、「02」より小さい値のエージェント、アドバンストの場合、Value Loop「2C」を返します。
0005 Jal To Function 05?
指定した関数にジャンプ
指定した関数(Action Block)にジャンプします。
「0000」は、ルーチンの終わりを示しています。
0002 Resume if Return Value Loop Met
Value Loopが指定した値の時実行
Value Loopが指定した値になった時に、実行されます。
この場合、Value Loopが「2C」になった時に実行されます。
0117 Hide 16-Object
「16 Tag Object」を隠す
「16 Tag Object」の4A番の「Cassandra De Vries Necklace」を隠します。
Action Blockでは、NPCを「Guard ID」、Objectを「16 Tag」で指定します。
したがって、IDやTagを割り当てておく必要があります(オブジェクトナンバーとは別で、オブジェクトナンバーは恐らく設置順に自動的に割り当てられています)。
0005 Jal To Function 05?
指定した関数にジャンプ
指定した関数(Action Block)にジャンプします。
「0000」は、ルーチンの終わりを示しています。
0004 Terminator
ルーチンの終端を示します(削除することも追加することもできません)。

エージェントとアドバンストの場合、カサンドラのネックレスを隠して入手できないようにしてあることが分かります。

Objects

「Edit Objects」で、オブジェクトの詳細設定を閲覧することができます。
「16 Tag Object」の4A番の「Cassandra De Vries Necklace」を見てみましょう。
Edit Objects

「Goto Object」を選択すると、タグ付けされた「Cassandra De Vries Necklace」の詳細設定を見ることができます。
「Cassandra De Vries Necklace」の詳細設定
※クリックで拡大できます。

オブジェクトIDは「04 Key」に設定されていました。
「Attached to Guard」で「カサンドラ」が設定されていて、カサンドラがネックレスを装備していることが分かります(すなわち、倒すとネックレスを落とす)。
「Visual Editor」を起動している状態で、「Goto Visual」を選択すると、カサンドラが居る位置に飛ぶことができます。

Keyということは、どこかの扉を開けることができます。
どこの扉かは、右下の「Locked Door Tags」が一致した扉です。

オブジェクトIDで「01 Door /Laserbeam」を選択し、全ての扉の「Locked Door Tags」をチェックしましたが、一致する扉は見つかりませんでした。
すなわち、このステージでカサンドラのネックレスを入手しても使いどころがないことが分かります。

あとは、「Edit Intro Block」を見ると、初期装備として、既にハンドガンの弾薬や、ライフルの弾薬を所持していることが分かります。
これは、エルビスは弾薬を渡さずに「AR34」本体のみを渡しているということが分かります(弾薬を渡す命令は存在しない?)。

まとめ

長くなりましたが、このような感じでN64パーフェクトダークの内部データを閲覧することができます。
今まで知らなかったことや、なにかの条件などが気になる場合は、閲覧してみる価値はあると思います。
何かの謎が解明するかもしれませんね。