NGLE講座
■タイマートリガ
タイマーのトリガ
NGLEには、タイマーがいくつかあります。
大別すると、以下のようになります。
- Timerフィールドを使ったタイマー
- TIMER_FIELDを使ったタイマー
- Timerスクリプトコマンドを使ったスクリーンタイマー
- ACTIONトリガを使ったスクリーンタイマー
- FLIPEFFECTトリガを使ったスクリーンタイマー
Timerフィールドを使ったタイマー
機能概要
- 正の値を入力すると、指定した秒数後に無効化される。
- 負の値を入力すると、指定した秒数後に有効化される。
- タイマーはトリガの設置場所を離れてから発動。
- 画面に秒数は表示されない。
TIMER_FIELDを使ったタイマー
NGLEから追加されたタイマー。TIMER_FIELDトリガとでも呼べばいいでしょうか。
機能概要
- トリガの重複ルールによって、一つのスクエアにトリガを重ねることができない場合に重宝。
- タイマーはトリガが有効になった時点から発動。
- 画面に秒数は表示されない。
Timerスクリプトコマンドを使ったスクリーンタイマー
TRLEにもあったTimerスクリプトコマンドを使ったスクリーンタイマー。
TRLEではTimerスクリプトコマンドとは別にVON_CROYオブジェクトが必要でしたが、NGLEではTimerコマンドのみで実現出来ます。
↓こんな感じ。
機能概要
- FLIPEFFECTトリガの86番でタイマーが起動/停止。
- タイマーはトリガが有効になった時点から発動。
- 画面に秒数が表示されるが、カウントアップのみ。
- CONDITIONトリガの20番で条件を指定可能。
ACTIONトリガを使ったスクリーンタイマー
NGLEから追加されたタイマー。Enemyスクリーンタイマーと呼ばれることもあります。ACTIONトリガの説明にはEnemyと書かれていますが、敵以外のMoveableでも機能します。
↓こんな感じ。
機能概要
- Timerコマンドは不要。
- ACTIONトリガの52番でタイマーが起動。
- タイマーはトリガが有効になった時点から発動。
- 画面に秒数が表示されるが、カウントダウンのみ。
- TIMER_FIELDトリガやOrganizerスクリプトコマンドで条件を指定。CONDITIONトリガの20番は機能しない。
FLIPEFFECTトリガを使ったスクリーンタイマー
NGLEから追加されたタイマー。FLIPEFFECTトリガを使います。
↓こんな感じ。
機能概要
- Timerコマンドは不要。
- F269番(FはFLIPEFFECTトリガの略。)でタイマー表示。
- F266番でタイマーの初期値を設定。
- F264番でタイマー起動。
- F265番でタイマー終了。
- F270番でタイマー非表示。
- タイマーはトリガが有効になった時点から発動。
- 画面に秒数が表示され、カウントアップ/ダウンの両方が使用可能。
- 変数で条件を指定。CONDITIONトリガの20番は機能しない。
FLIPEFFECTトリガを使ったスクリーンタイマーの例
NGLEヘルプのvariables_trng.htmを参考に設定方法を説明します。
タイマー設置
- F266番でタイマーの初期値を設定。
- F264番でタイマー起動。
ここで使用する変数とカウントアップ/ダウンの指定を行う。
今回はGlobal Timer変数を使用したカウントダウンタイマーとする。 - F269番でタイマー表示。
制限時間オーバーでタイマーを隠す。
- 2秒後にタイマーを消すF270番をTriggerGroup1番として作成。
TriggerGroup=1, $2000, 270, $201
- 以下のGlobalTrigger1番を使ってタイマーをチェックし、制限時間をオーバーしたらTriggerGroup1番を呼び、タイマーを消す。
GlobalTrigger=1, IGNORE, GT_TRNG_G_TIMER_EQUALS, 0, IGNORE, 1
指定した制限時間内でトリガを有効化。
- F271番で現在のタイマーの値をCurrent Valueにコピー。
- タイマーはティックフレーム単位で働くため、F253番でCurrent Valueを30で割る。
- C46番でCurrent Valueが1以上という条件を判定。
- A43番で目的のオブジェクトのトリガを有効化。
- F232番でCurrent Valueをゼロクリア。
ここでゼロクリアするのは、他の処理に影響を及ぼさないため。 - 以上の処理をTriggerGroup2番として作成。
- F118番をマップに配置し、TriggerGroup2番を呼ぶ。
これで制限時間内にF118番のトリガを有効化出来れば、目的のトリガが有効になり、制限時間をオーバーするとタイマーは非表示になります。
Script.txtの[Option]セクションに以下の2行を追加すると、変数の値が確認できるため利用するとよいでしょう。
Diagnostic=ENABLED DiagnosticType=DGX_COMMON_VARIABLES,IGNORE