ティラノスクリプト製のゲームは重い?
「ティラノスクリプト」でGoogle検索すると「ティラノスクリプト 重い」がサジェストされる問題、第2弾
今回は、ゲームの起動だけでなくゲーム全体の動作の重さについて書いていきます。
重いのではなくいちいちウェイト処理が入るだけ
はいこれ!
これが答えです!!
というだけではあんまりなので、もうちょっと噛み砕いた説明を。
ティラノスクリプトのデフォルトはwait=true
ティラノスクリプトのタグには、waitというパラメータが指定できるものがあります。[image]とか[bg]とか、画像処理系が多いです。
これは画像をフェードイン表示させて、表示が終わるまで次のタグに進ませない、というパラメータなんですが、デフォルトではこのパラメータ、すべてtrueに設定されています。
つまり、常に画像のフェードイン表示完了を待つということ。
加えて、フェードイン表示にかける時間(timeパラメータで指定可能)もデフォルトだとやや長めに取られています。
しかも、クリック連打してもフェード演出はスキップされませんし、スキップモード中でも、演出時間は多少短くなりますが、演出そのものはスキップされません。
このことから、「クリックしても(スキップしても)演出が省略されない=ゲームそのものの動作が重い」とユーザーが感じやすいということです。
スキップ処理をより軽く、早くしよう
ではどうするか。
手軽にカスタマイズするなら、スキップ時の速度をより早くしてやるという手があります。
- 「data/system/config.tjs」を開きます。
-
// ◆ スキップスピード (ミリ秒/文字) //スキップ時にどれくらいの早さで進むかを設定できる ;skipSpeed = 30;
この「skipSpeed」の値を、可能な限り小さく(5とか3とか)にします。
0とかは、多分設定できるけど設定するといろいろ不具合が起きそう…
参考:
ティラノスクリプトでスキップの動作を速くさせたい場合の小技。
— ねこの/milkcat (@nekomilkcat) January 29, 2020
・Config.tjsの中のskipSpeedをデフォルトの30から1に変更する
これだけでスキップの動作が高速化されます。#ティラノスクリプト pic.twitter.com/bgDF8JjlR3
スキップ時にフェード系演出をカット
あとはこんな手もあります。
ただ、現状ティラノスクリプトではフェード系処理を一括カットする機能というものはないので、タグ一つ一つに対して[if]タグとかでスキップ時の動きとそれ以外の動きというのを指定してやる必要があるんですよね…
一応、例を挙げときます。
[macro name="s_image"] [if exp="TYRANO.kag.stat.is_skip==true"] ;スキップ時 [image * time=0] [else] ;通常時 [image *] [endif] [endmacro]
スキップ時はtimeパラメータ他そのまま、スキップ時のみtimeパラメータを0として動かすマクロです。
スキップ時には、[if]タグのexpパラメータに書いている「TYRANO.kag.stat.is_skip」っていう変数にtrueが入るので、ここでスキップ中かを判断しています。
スキップ時には、[if]タグのexpパラメータに書いている「TYRANO.kag.stat.is_skip」っていう変数にtrueが入るので、ここでスキップ中かを判断しています。
スペックによっては、本当に重いこともある
とはいえ、あんまりにもオンボロなPCとかスマホだと、本当にスペックが足りなくて処理が重くなっていることもあります。
世の中には、まじで恐ろしいくらい低スペックの端末を使っている人が案外いるものです。
世の中には、まじで恐ろしいくらい低スペックの端末を使っている人が案外いるものです。