NGLE講座
■トラブルシューティングの巻
Kurtis(以下K):今回はなんだ?
Alphonse(以下A):トラブルシューティングだ。
K:FAQみたいなもんか。
A:まぁそうだな。俺がレベル製作中に発生した失敗談みたいなものだ。
マップ造形編
Q:「GetBoxOverlap() Too many overlaps」というメッセージが表示され、その後「Invalid Box Number In Zones ??」というメッセージが表示されるのですが?
A:このメッセージはtomファイル作成時にOverlapが制限値を越えていると表示されます。
部屋の接続を減らしたり、柱をなくしたり、部屋を削除するなどしてOverlapが制限値内に収まるようにしてください。
部屋の床に凸凹を作成しただけでもOverlapは増加します。
例えば部屋が1つしかないprjファイルで「Shapes」メニューの「Random Smooth Floor Up」を実行してみてください。Overlapの値が増えているのが確認できると思います。
メッセージを無視しても一応tomファイルは作成されプレイ可能なレベルを作成することは出来ますが、何かしら問題が発生しやすくなるのではないかと思われます。
テクスチャ編
Q:「Texture」メニューの「Load Palette」と「Save Palette」はなんですか?
A:どうやらエディタウィンドウパネルに表示されるパレットをロード/セーブする機能のようです。
TRLEでは「Load Depth Cue」「Save Depth Cue」という名前でした。
TRLEやNGLEでマップをロードするとパレットが変更されてしまいます。
この機能を使えば違うマップでも同じパレットが使用できるようです。
Q:MapConverterの「Modify ONLY tail infos...」オプションはなんですか?
A:どうやらプロジェクトだけv50に変換してTGAは変更したくない場合にチェックを入れるか、あるいは、コンバート時にテクスチャを貼り替えることなく余分なタイル情報を削除してくれる機能のようです。
オブジェクト編
Q:「Objects」メニューの「Edit Object」はどんな機能ですか?
A:オブジェクトにコリジョンを追加する機能です。
オブジェクトを選択し、『+』で加えた数値分(1=1クリック)床と同じようにララが上に立てるコリジョンが発生します。『-』を加えると床の穴のようにララが下に入れるようになります。
TYPEがいろいろありますが、結局FLOOR_TYPEと同じになるようです。
あくまでコリジョンなのでテクスチャを貼ったりすることは出来ません。
TRLEでも同じように機能するようです。
Q:ヘルプにあるDOOR_TYPE1の数値はなんですか?
A:OCBと勘違いしそうですが、オブジェクトインデックスです。
なぜこの説明があるのかはわかりません。
Q:セーブデータをロードすると有効化したはずのWATERFALLMISTが消えるのですが。
A:TRLEの頃からあったバグです。
TRLE同様OCBの1~5までのボタンを押してゲーム起動時からWATERFALLMISTが動作している状態にすることで回避できます。
ただし、この方法ではゲーム起動時からWATERFALLMISTが表示されてしまいます。
その場合は、
- WATERFALLMISTをACTIONトリガ43番で設定します。[E]xtraフィールドは0秒。
- そのトリガをTriggerGroupにエクスポートします。
- そのTriggerGroupをGlobalTriggerにGT_LOADED_SAVEGAMEコンスタンツで呼びます。
;TriggerGroup1番にWATERFALLMISTをACTIONトリガ43番でエクスポートしたものを追加。 TriggerGroup=1,$5000, 9, $2B ;GlobalTrigger1番にGT_LOADED_SAVEGAMEコンスタンツを追加し、TriggerGroup1番を呼ぶ。 GlobalTrigger=1, IGNORE, GT_LOADED_SAVEGAME, IGNORE, 1, IGNORE, IGNORE
これで、ゲーム途中からWATERFALLMISTを有効化しセーブ。その後セーブデータをロードしてもWATERFALLMISTが表示されます。
ゲーム開始時からWATERFALLMISTが表示されるようにするには、GT_LOADED_SAVEGAMEコンスタンツのかわりに、GT_ALWAYSコンスタンツを使用します。
Q:配置した筈のオブジェクトが表示されません。どうすればいいですか?
A:おそらく、レベルが制限値に達していると思われます。1つの部屋のオブジェクト数や総TexturePage(おそらく100ページが限界)などを確認してください。
トリガ編
Q:TriggerGroup内の条件判定が上手くいきません。
A:TriggerGroup内に記述ミスがないか確認してください。あるいは、TriggerGroupを呼ぶFLIPEFFECTトリガ118番のセクターに複数のトリガを配置していないでしょうか。トリガを配置する順番を変更することで上手く動作するかもしれません。
スクリプトコマンド編
Q:IDとインデックスとスロットの違いはなんですか?
A:スロットはオブジェクトが入っている入れ物のようなもの。ヘルプではオブジェクト名のような意味合いで使われています。IDとインデックスはともに数字で表され、ほぼ同じ意味。ヘルプでは厳密な使い分けはされていません。強いて使い分けるとしたら、IDはスクリプトコマンドに対する数字。インデックスはオブジェクトに対する数字。といったところでしょうか。
レベルコンバータ編
Q:NG_Tom2pcのLoadとSaveはなんですか?
A:どうやらTRLE(NGLE)のパス情報を変更する機能のようです。TRLE頃からありました。
実際にSaveしたtbsファイルのパス情報を書き換えLoadするとコンバータのパス情報が書き換わります。しかしコンバートは出来ません。結局正常には動作しないようです。コンバータを再起動すればパス情報は元に戻ります。
Q:tomファイルが作成できません。どうすればいいですか?
A:おそらく、レベルが制限値に達していると思われます。総TexturePageを確認してください。
(総TexturePage118ページで発生しました。)
キーボードコマンド編
Q:左側のShiftキーと1-9キーの組み合わせで速度を調整することができますか?
A:ヘルプの間違いではないかと思います。キー操作しても違いは感じられませんでした。
Q:Ctrl 0(「0」は数字。)はどんな機能ですか?
A:ワイドスクリーンやノートPCなど狭い画面のためにボタンウィンドウを表示し、そのボタンウィンドウを閉じた後、再表示する機能です。
ワイドスクリーンでボタンウィンドウを表示するには、NG_Center\TRNGフォルダにあるWidescreen_buttonswindow.txtをNGLEフォルダにコピーし、Buttonswindow.txtにリネームします。
ノートPCなど狭い画面でボタンウィンドウを表示するには、NG_Center\TRNGフォルダにあるNetbook_buttonswindow.txtをNGLEフォルダにコピーし、Buttonswindow.txtにリネームします。
その後、NGLEを起動すればボタンウィンドウが表示されます。
ボタンウィンドウを閉じた後、このキーボードコマンドでボタンウィンドウを復元できます。
強制終了編
Q:SettingsウィンドウのRemove 'autosave.prj' with normal exitをチェックして、クラッシュが起こってもAutosave.prjは残りますか?
A:問題なく残ります。
このチェックはウィンドウの『X』ボタンでNGLEを終了した際にAutosave.prjを作成しないようにする機能です。
Q:NGLEでクラッシュが頻発します。どうすればいいですか?
A:おそらく、CRSが無効になっていると思われます。NGLEのSettingsウィンドウでCRSが有効になっているか確認してください。
Q:レベルを起動しようとするとロードバーが7割程度進んだ所でクラッシュします。どうすればいいですか?
A:おそらく、レベルが制限値に達していると思われます。1つの部屋のオブジェクト数や総TexturePage(おそらく100ページが限界)などを確認してください。
Q:レベルをプレイしようとするとクラッシュします。どうすればいいですか?
A:おそらく、TRAPDOORのある部屋が他の部屋と接続していないためだと思われます。他の部屋と接続してください。crash reportに問題のあるオブジェクトが表示される場合もあります。表示されたオブジェクトをチェックしてみるのもよいでしょう。
Q:レベル終了のためpボタンを押すとゲームがフリーズします。どうすればいいですか?
A:おそらくゲームと同時に動作しているソフトが原因(メモリリークが発生している?)ではないかと思われます。Windowsを再起動しゲームだけ動作させてみてください。