ななづこ/水温25℃ 2021/11/14 11:28

【ティラノスクリプト】スキップ中は演出をカットする

こんにちは、ななづこです。
今回は「スキップ中の待ち時間を減らして、スキップをさくさく快適にしてみよう!」のお話です。
周回プレイが快適になるので、テストプレイの時も助かります。

※下記コードの動作確認は、ティラノスクリプト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"]

以上です!

月別アーカイブ

限定特典から探す

記事を検索