エフェクトのWaitType


投稿日:2017年1月21日 | 最終更新日:2022年11月2日

WaitTypeは、エフェクトの終了待ちをどうするかの設定です。
通常、TweenやShakeなどのエフェクトは、演出の終了が終わるまで次のコマンドを実行できませんが、
WaitTypeを設定することで、演出の終了を待たずに次のコマンドを実行できるようになります。

リファレンス

WaitType 説明
未記入 このコマンドのエフェクトが終わるまで次のコマンドを実行しません
PageWait 改ページ時にエフェクトの終了待ちをします
InputWait クリック入力後(PageCtrlでInputを使ったときなど)に、エフェクト終了待ちをする
Add 次のエフェクト終了待ちと同じタイミングで終了待ちをします。
複数のエフェクトコマンドを組み合わせるのに使ってみてください
NoWait エフェクトの終了待ちをせず、即座に次のコマンドを実行します。
ただし、ページをまたぐ演出中にセーブしてしまうと正常にロードできないため
セーブをしない使い方をしている場合のみ使ってください
Skippable 基本的にはエフェクト終了まで待つが、スキップ可能
PageWaitSkippable スキップ可能なPageWait
InputWaitSkippable スキップ可能なInputWait
AddSkippable スキップ可能なAdd
SkippableOnWaitThread 演出用スレッド内のエフェクトコマンドのみに設定可能。
基本的にはエフェクト終了まで待つが、
メインスレッドでWaitThreadコマンドが使われているときにスキップ可能となる
SkipOnInput クリック入力待ち終了時点でエフェクトをスキップ
SkipOnBrPage 改ページ時エフェクトをスキップ

スキップ可能なWaitType(Skippable)

SkippableやPageWaitSkippableなど、スキップ可能なWaitTypeは、そのエフェクトの終了待ちをしているタイミングでクリック入力がされると、そのエフェクトを最終地点の状態までスキップして即座に終わらせます。
スキップされるのはあくまでそのエフェクトのみなので、ほかとタイミングを合わせる必要があるときなどは結果がずれしまう可能性があるので、注意してください。
また、キャラクター表示のArg6で時間設定するフェードインフェードアウトはWaitTypeが設定できませんが、WaitFadeObjectsコマンドを使用し、そこでスキップ可能なWaitTypeを設定することで、オブジェクトのフェードもスキップ可能になります。

SkipOnInputとSkipOnBrPage

入力待ちや改ページ待ちの終わった後に、終了していない場合はエフェクトをスキップします。

Skippable系とSkipOn系の違い

Skippable系

基本動作:「演出待ち」→「クリックでスキップ」→「もう一度クリックで読み進みまたは改ページ」(つまり二回クリックが必要)
Auto進行中:エフェクトをスキップせず演出終了を待ってからAutoで進行する。

SkipOn系

基本動作:「クリックで読み進みまたは改ページ」→「同時に演出スキップ」(つまり一回クリックで進む)
Auto進行中:Autoで進行し同時にエフェクトをスキップする
 
長い演出をAuto進行時に省略したい場合はSkipOn系を使用してください。
特に無限ループが含まれている場合はSkippable系はAuto進行時に演出待ちが終わらなくなってしまうため、SkipOn系を使用してください。

ループを含む演出のスキップ

エフェクトスキップはTweenコマンドPlayAnimationコマンドでループが指定されているものであってもスキップ可能です。
無限ループが設定されている場合は1ループの終わりまでスキップしてからループを止めます。

SkipEffectコマンド

「現在の継続中のWaitTypeが設定可能なコマンド(つまりエフェクト系のコマンド)をすべてスキップして強制終了させる」という場合は、SkipEffectコマンドを使用してください。
WaitTypeをSkippable系を設定していないものであっても、特定のタイミングで一括で処理を終わせい。というときに使用することを想定しています。
例えば、「WaitTypeをNoWaitとしてた継続しているかもしれないエフェクトを確実に終わらせる」といった場合に使用してください。

SkipEffectコマンドのリファレンス

Command 説明 Arg1 Arg2 Arg3 Arg4 Arg5 Arg6
SkipEffect 現在実行中のWaitTypeが設定されている演出系のコマンドをスキップして終了させる 空欄の場合すべての継続中のエフェクト系コマンド。
「NoWait」とした場合、NoWaitが設定されているコマンドのみをスキップ
ループエフェクトもスキップするかのTRUE/FALSE
空欄の場合FALSE

SkipEffectコマンドのサンプル