NGLE講座
■TriggerGroup=
サンプルレベル
http://www.trlevelmanager.eu/download/mix_sample_1.zip
http://www.trlevelmanager.eu/download/miscellanous2.zip
この他にも多くのサンプルレベルで使用されています。
構文
TriggerGroup=IdGroup, ExportValue1 + TGROUP_flags, ExportValue2, ExportValue3, {Other Values 1/2/3 of exported triggers or conditions)
記述場所
[Level]セクションで使用します。
インスタンスの最大値
レベルセクションの最大インスタンス数:999
使用例
;TriggerGroup1番に「$2000, 53, $12」のトリガを設定する。 TriggerGroup=1, $2000, 53, $12
機能概要
同時に1つ以上のトリガを実行します。
このコマンドは、FLIPEFFECTトリガ118番、345番、371番、372番、373番を使用して、同時に2つ以上のトリガを実行します。
停止するにはFLIPEFFECTトリガ192番を使用します。
このコマンドをCONDITIONトリガ15番を使用して実行することもできます。
STTパネルの『Export Script Trigger』ボタンをクリックしてこのコマンドの入力データを得ることができます。ボタンが表示されない場合は、トリガをスクリプト形式でエクスポートできません。
次のトリガをエクスポートできます。
FLIPEFFECTトリガ
ACTION
CONDITION
スクリプト形式でトリガをエクスポートすると、次のような情報を含むテキストファイルが取得されます。
; Set Trigger Type - FLIPEFFECT 96 ; Exporting: TRIGGER(0:0) for FLIPEFFECT(96) {Tomb_NextGeneration} ; <#> : Lara. (Weapons) Disarm Lara in <&> way ; <&> : Remove All. (Weapons + Ammos) ; (E) : ; Values to add in script command: $2000, 96, $0
太字の3つの値をスクリプトコマンドに追加します。
TriggerGroup=1, $2000, 96, $0 ;エクスポートしたトリガに関する情報 ; Set Trigger Type - FLIPEFFECT 96 ; Exporting: TRIGGER(0:0) for FLIPEFFECT(96) {Tomb_NextGeneration} ; <#> : Lara. (Weapons) Disarm Lara in <&> way ; <&> : Remove All. (Weapons + Ammos) ; (E) : ; Values to add in script command: $2000, 96, $0
テキストファイルで読んだその他の情報は、上記の3つの数字が何であるかを覚えておくために、添えられています。
記述時の注意点・備考
このコマンドに記述したトリガはマップに配置する必要はありません。必要なのはこのコマンドを呼び出すトリガです。
このコマンドを使用するのは、NGLEの新機能を有効化する時、またはトリガの発動条件を細かく設定する時、またはトリガの重複が出来ない場合などです。
従来のトリガの使い方で上手く動作する場合は、無理にこのコマンドを使用する必要はありません。
各フィールドの説明
- IdGroup
- このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
このコマンドの中のトリガをスタートするためにこのフィールドが使われます。例えば、STTパネルでFILPEFFECTの「Object to trigger <#>」フィールドで「Perform <&> Trigger Group」を選択した時、異なるIDを持つTriggerGroupを選択する必要があります。
FLIPEFFECTトリガ118番は255番までしか使用できないため、それ以上になる場合は、FLIPEFFECTトリガ372番等を使用します。
IDの有効範囲は1から9999です。 - Exported Trigger values
- このフィールドには、『Export Script Trigger』で入手した3つの値を入力します。
これらの3つの値は、『Export Script Trigger』ボタンから取得したテキストと同じ順序で入力します。
したがって、TriggerGroupの一般的な構文は次のようになります。
TriggerGroup=IdGroup, {Alfa1, Alfa2, Alfa3}, {Beta1, Beta2, Beta3}, {...}, {Omega1, Omega2, Omega3}
備考:
括弧は本当に書く必要はありません。これらの括弧は、このコマンドに追加するトリガデータを説明するためです。
上記の構文では、「Alfa」、「Beta」、「Omega」は特定のエクスポートされたトリガ、「1/2/3」はエクスポートされた各トリガの3つの値です。
最初の値(「Alfa1」、「Beta1」、「Omega1」など)に現在のトリガに具体的な意味を与えるTGROUP_フラグを追加することはできますが、エクスポートした値は変更しないでください。
エクスポートされた各トリガの最初の値に次のTGROUPを追加できます。
TGROUP_AND
TGROUP_NOT
TGROUP_OR上記のフラグは論理演算子であり、CONDITIONトリガのリンクにのみ使用されます。
論理演算子を使用しない場合、デフォルト値は常にTGROUP_ANDです。これは、入力したすべての条件が成立するためには、同時にすべての条件がtrueでなければならないことを意味します。TGROUP_ORは別々の条件で使用します。
例えば、「ララがクライミング状態」または「ララがモンキースイング状態」のときを条件とする場合は、以下のようにTGROUP_OR演算子を使用する必要があります。Condition1(ララがクライミング状態の条件)
TGROUP_OR + Condition2(ララがモンキースイング状態の条件)このようにして、最終的な条件を満たすためには、少なくとも一つの条件がtrueである必要があります。
TGROUP_NOTは別のやり方で動作します。以前の条件(存在する場合)とリンクしているため、「AND NOT」のようになります。
STTパネルの条件リストで欲しい条件を見つけられないときには、NOTを使用しますが、反対のもののみを使用します。この反対の条件をNOTで使用すると、その条件の意味を反転させます。TGROUP_ELSEは条件または普通のトリガに追加出来ます。
このフラグをトリガに追加すると、「ELSEブロック」が開始されます。
ELSEブロックは、前の条件ブロックが成立しなかった場合にのみ実行されます。
ELSEを使用して、1つの条件ブロックに従って2つの異なるトリガ(またはトリガのブロック)を実行できます。
例えば、ララがすべてのシークレットを見つけた時はボーナスレベルをロードし、ララがすべてのシークレットを見つけられなかった時は、タイトルレベル(冒険を終わらせるため)に戻るには、次のようにELSEを使用して実現できます。Condition(ララは <&> 個のシークレットを見つけた)
(もし条件がtrueなら) Perform trigger(ボーナスレベルをロードします。)
TGROUP_ELSE + Trigger(タイトルレベルに戻ります。)このようにしてララがすべてのシークレットを見つけたらボーナスレベル、それ以外はタイトルレベルが読み込まれます。
TriggerGroupに2つかそれ以上のELSEフラグを配置して、非常に複雑な条件を作成することができます。例えば:
Condition:「ララは1つシークレットを見つけた」
Trigger:レベル5をロードする
ELSE Condition:「ララは2つシークレットを見つけた」
Trigger:レベル6をロードする
ELSE Condition:「ララは3つシークレットを見つけた」
Trigger:レベル7をロードする上記の例では、他の条件に付けられたELSEを使用しました。このようにして、条件のリストをスキャンし、結果ごとに異なるトリガを実行することができます。
TriggerGroupをスキャンするために使用されるルールは次のとおりです。もし現在のトリガが条件の場合:条件が trueであるかどうかを確認する。
もし、その条件がtrueなら他の条件を確認する。他の条件がなければ、最初のトリガが検出され、TriggerGroupの終了または最初のELSEフラグが検出されるまで、トリガがすべて実行されます。
もし現在のトリガが条件でない場合:以下の全てを実行し、最初にELSEフラグが見つかったときに停止します。もし現在のトリガが条件であり、条件がfalseの場合、現在の条件ブロックをスキップし、それ以降の箇所もスキップして、ELSEフラグを見つけるまで解析を継続し、このELSEフラグから条件の確認またはトリガを開始します。
TGROUP_USE_FOUND_ITEM_INDEX
TGROUP_USE_OWNER_ANIM_ITEM_INDEX
TGROUP_USE_TRIGGER_ITEM_INDEX
TGROUPフラグを上のように「ITEM_INDEX」と変更した場合。ここで「ITEM_INDEX」は、トリガ(アクションなど)または条件によって使用されるMoveableインデックスを意味します。
デフォルトでは、各トリガはエクスポート時に既にインデックスを持っていますが、場合によっては、まだわかっていないMoveableのアクション(トリガ)を実行することがあります。
例えば、「ララが敵を攻撃した時、その敵の体力が消耗する。」ような戦闘状況を作成するには
複数の敵がレベル内には存在する可能性があるため、ララが敵と最初に遭遇するトリガが何であるか知ることはできません。
この問題を解決するために、トリガや条件に従うために使用する特別なインデックスをフラグとして追加します。このやり方は、Moveableを動的に見つける方法がある場合にのみ可能です。
例えば、「Lara collides with moveable of <&> slot」のような条件を実行した場合、条件がtrueの場合、TRNGはララに触れているMoveableインデックスを発見します。現在の条件で見つかったインデックスにフラグTGROUP_USE_FOUND_ITEM_INDEXを追加すると、次のトリガや条件が使用され、動的に検出されたこの敵に対して特定のトリガを実行できます。例えば、「Remove vitaltiy to <#> enemy」のようにダメージを与えます。
上記のフラグを使用することがわかっているときは、ソーストリガに任意のオブジェクトを選択して入力することができます。
なぜなら、そのアクションを実行するオブジェクトのインデックスが使用されることがわかっているからです。TGROUP_USE_OWNER_ANIM_ITEM_INDEXフラグは、より理解しやすく使いやすくなりました。
このフラグは、現在のTriggerGroupが、Moveableのアニメーションに挿入されたAnimCommandsによって実行される場合にのみ使用してください。
この場合、TGROUP_USE_OWNER_ANIM_ITEM_INDEXフラグは、このAnimCommandsを挿入したMoveableインデックスを使用するためのインデックスとして強制的に使用されます。TGROUP_USE_TRIGGER_ITEM_INDEXフラグは、Moveableインデックスをリセットし、新たに元の値に強制します。 仮に以前のトリガまたは条件でTGROUP_USE_OWNER_ANIM_ITEM_INDEXまたはTGROUP_USE_FOUND_ITEM_INDEXのようなフラグを使用した場合は、このTGROUP_USE_TRIGGER_ITEM_INDEXフラグを使用して、現在の実際のソースインデックスを新たに使用してトリガまたは条件を使用できます。
備考:
このフラグを使用すると、最初にそのトリガで入力された有効なインデックスを使用するようにTRNGに通知します。
NG_Center【Reference】タブのTGROUP_コンスタンツも参照してください。
関連項目
_NEW KeyPad、_NEW Switch 1/2/3、GlobalTrigger=、Organizer=、StandBy=、Switch=