【ティラノスクリプト】スキップ中は演出をカットする
こんにちは、ななづこです。
今回は「スキップ中の待ち時間を減らして、スキップをさくさく快適にしてみよう!」のお話です。
周回プレイが快適になるので、テストプレイの時も助かります。
※下記コードの動作確認は、ティラノスクリプトVer511bで行いました。
スキップ中かどうかの判定
スキップ中は「TG.stat.is_skip」がtrueになるので、それを使ってスキップ中かどうかを判定します。
; スキップの状態を変数に記録
[eval exp="tf.is_skip = TG.stat.is_skip"]
; 処理の出し分け
[if exp="tf.is_skip != true"]
通常時
; スキップ中の処理
[else]
スキップ中
[endif]
このように、スキップをしている時・していない時で処理の出し分けをすることができます。
(TG.stat.is_skipをifに入れても動かなかったので、変数に値を渡してます)
condでも同じです。
; スキップの状態を変数に記録
[eval exp="tf.is_skip = TG.stat.is_skip"]
; スキップしてない時は実行
[wait cond="tf.is_skip != true" time="1000"]
wait・mask・カメラ操作など待ち時間が発生するものや、効果音などはスキップ中に実行されないようにすると、スキップが快適になるかなと思います。
マクロにしておくと便利です。
[macro name="wait_s"]
; スキップの状態を変数に記録
[eval exp="tf.is_skip = TG.stat.is_skip"]
; スキップしてない時は実行
[wait cond="tf.is_skip != true" time="%time"]
[endmacro]
[wait_s time="1000"]
応用
上記の応用ですが、「スキップ中は待ち時間を減らす」という考え方もあります。
処理の出し分けでは不都合がある場合(処理を分けるのがめんどくさい時とか…)に使えます。
; スキップの状態を変数に記録
[eval exp="tf.is_skip = TG.stat.is_skip"]
; 通常時の待ち時間
[eval exp="tf.time = 1000"]
; スキップ中の待ち時間
; ※「time="0"」にすると稀に進行停止することがあるので、10推奨です。
[eval cond="tf.is_skip == true" exp="tf.time = 10"]
; 実行したいタグに変数で待ち時間指定
; ※「&」をつけることで、tf.timeの中にある数値が使われます。
[wait time="&tf.time"]
↓マクロにするとこうなります。
[macro name="wait_s"]
; スキップの状態を変数に記録
[eval exp="tf.is_skip = TG.stat.is_skip"]
; 通常時の待ち時間
; ※「mp」はマクロの中でだけ使える一時変数です。
[eval exp="tf.time = mp.time"]
; スキップ中の待ち時間
[eval cond="tf.is_skip == true" exp="tf.time = 10"]
; 実行したいタグに変数で待ち時間指定
[wait time="&tf.time"]
[endmacro]
[wait_s time="1000"]
以上です!
This article cannot be commented on.