NGLE講座
■_NEW Switch 1/2/3
サンプルレベル
http://www.trlevelmanager.eu/download/new_mirrors.zip
設定時の注意点
_NEW Switchといっても実際はTRLEのSWITCH_TYPE1/2/3オブジェクトを使用します。
そのため設置方法もTRLEのSWITCH_TYPE1/2/3と変わりません。
設置方法
- wadにSWITCH_TYPE1を追加します。
- マップにSWITCH_TYPE1を配置します。
- SWITCH_TYPE1のトリガをSWITCHトリガとして設置します。
同じ所にスイッチによって動作するトリガを設置します。 - prjファイルをセーブし、コンバートします。
ゲームを起動し、SWITCH_TYPE1が使用できることを確認してください。
OCBの値
- -1(旧OCB)
- 手を穴の中に入れる形になります。スイッチとしては機能しません。アイテム入手などで使用します。
アイテムを入手する前に、ララは穴をのぞくでしょう。(OCB「1」とは異なるアニメーション)
この場合、アイテムの正面がスイッチの方を向いている必要があります。
どこが正面かは、メディパックやトーチなどによって異なるので実際にゲームで確認してください。あるいはアイテムにも同じOCBコード(= 1あるいは-1)を設定する必要があります。 - 0(旧OCB)
- 下に下げるスイッチになります。
- 1(旧OCB)
- 手を穴の中に入れる形になります。OCB「-1」と同じようですがララのアニメーションが違うようです。
- 2(旧OCB)
- 手を穴の中に入れる形のスイッチになります。
- 3(旧OCB)
- 壁を押すようなスイッチになります。
TRLEでは上記のようにスイッチのOCBによって異なるアニメーションを表示していました。
ところが、WADMergerのSwitch Managerを使ってみるとよくわかりますが、TR3で使用されていた小さなボタンのスイッチとTR4の穴に手を入れるスイッチは共存できません。
なぜならOCBに同じ「2」を使用し、同じアニメーション番号を呼んでいるからです。
Switch Managerは同じアニメーション番号をスイッチの形に応じて書きかえています。
NGLEではこの問題を解決するため、スイッチを操作するララのアニメーションを直接呼び出すことが出来るようになりました。それが以下の説明です。
これまで通りの使い方(スイッチの共存をしない)であれば、サンプルレベルのようなOCB、トリガなどを使う必要はありません。
サンプルレベルではアニメーション番号425を呼び出していますが、StaticであるARCHITECTURE5を移動させるためTriggerGroupを使用しています。
しかも、オン/オフのStateIDが通常とは異なる処理まで追加されています。
オフのときに表示されるララのアニメーションは、オンする時に表示されたアニメーション番号425の次のアニメーション番号426でなければならないようです。426を指定する機能がないので、自動的に次のアニメーション番号が呼ばれていると思われます。
Switch1/2/3オブジェクトにアニメーション番号を入力できます。この番号は、ララがスイッチを操作しているときに実行されるアニメーション番号です。アニメーション番号の有効範囲は4から4095です。
このアニメーション機能を使用する場合、OCBに1つまたは次の値を追加することもできます。
- 8192(オン/オフスイッチ)
- OCB「8192」を追加すると、オン/オフ(またはフリップ/フロップ)機能が有効になります。
この場合、2つのカスタムアニメーションを作成し、最初のアニメーション番号を入力する必要があります。
例えば、最初にスイッチを操作するカスタムアニメーションが386の場合は、8192 + 386をOCBに入力します。
スイッチオフ用アニメーションも作成する必要があります。すなわち386に続く387。
備考:
すべてのスイッチがオン/オフ機能を許可しているわけではありません。
オン/オフ機能を持つスイッチには常に4つのアニメーションが必要です。
それらは、通常、次のようになっています。
ヒント:JUMP_SWITCHのようなSWITCH_TYPE1/2/3とは異なるスイッチを見つけて、このオブジェクトをコピーしてSWITCH_TYPE1/2/3にリネームします。例えば、Guard.wadでは、JUMP_SWITCHに優れたオン/オフスイッチがあります。 - 4096(反対のStateID)
- 上記のアニメーションテーブルを見て、それを他のスイッチと比較すると、特に、開始位置のStateIDが「1」(代わりに「0」)で終了位置のStateIDが「0」(代わりに「1」)と、StateIDが異なっていることがわかるでしょう。
この場合、スイッチにOCB「4096」を追加して、TRNGにStateIDのこの反転について通知する必要があります。
備考:
オン/オフ機能を使用していないときにも、このフラグを使用する必要があります。開始位置(または「オフ」状態)が「0」でなく「1」であるたびにこのフラグを使用する必要があります。
オン/オフスイッチのオフ機能は、ドアやフリップマップを有効にする普通のトリガでは正常に機能しますが、何らかの方法でMoveableを移動または変更するような特殊なトリガでは機能しません。この場合、スイッチオブジェクトの現在のStateIDをチェックするTriggerGroupを作成し、この値に応じてスイッチオンまたはスイッチオフに対して異なるトリガを実行する必要があります。
次に、スイッチセクターでこのTriggerGroupのみを実行します。
詳しくはサンプルレベルの最初のスイッチを調べてください。