ティラノ製ゲームが全体的に重い・遅い

ここがわからない

t f B! P L

ティラノスクリプト製のゲームは重い?

「ティラノスクリプト」でGoogle検索すると「ティラノスクリプト 重い」がサジェストされる問題、第2弾

今回は、ゲームの起動だけでなくゲーム全体の動作の重さについて書いていきます。

重いのではなくいちいちウェイト処理が入るだけ

はいこれ!
これが答えです!!

というだけではあんまりなので、もうちょっと噛み砕いた説明を。

ティラノスクリプトのデフォルトはwait=true

ティラノスクリプトのタグには、waitというパラメータが指定できるものがあります。[image]とか[bg]とか、画像処理系が多いです。

これは画像をフェードイン表示させて、表示が終わるまで次のタグに進ませない、というパラメータなんですが、デフォルトではこのパラメータ、すべてtrueに設定されています。
つまり、常に画像のフェードイン表示完了を待つということ。

加えて、フェードイン表示にかける時間(timeパラメータで指定可能)もデフォルトだとやや長めに取られています。

しかも、クリック連打してもフェード演出はスキップされませんし、スキップモード中でも、演出時間は多少短くなりますが、演出そのものはスキップされません。

このことから、「クリックしても(スキップしても)演出が省略されない=ゲームそのものの動作が重い」とユーザーが感じやすいということです。

スキップ処理をより軽く、早くしよう

ではどうするか。
手軽にカスタマイズするなら、スキップ時の速度をより早くしてやるという手があります。

  1. 「data/system/config.tjs」を開きます。
  2. // ◆ スキップスピード (ミリ秒/文字)
    //スキップ時にどれくらいの早さで進むかを設定できる
    ;skipSpeed = 30;
    
  3. この「skipSpeed」の値を、可能な限り小さく(5とか3とか)にします。
    0とかは、多分設定できるけど設定するといろいろ不具合が起きそう…

参考:

スキップ時にフェード系演出をカット

あとはこんな手もあります。
ただ、現状ティラノスクリプトではフェード系処理を一括カットする機能というものはないので、タグ一つ一つに対して[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が入るので、ここでスキップ中かを判断しています。

スペックによっては、本当に重いこともある

とはいえ、あんまりにもオンボロなPCとかスマホだと、本当にスペックが足りなくて処理が重くなっていることもあります。
世の中には、まじで恐ろしいくらい低スペックの端末を使っている人が案外いるものです。

なので、ゲーム制作者諸兄におかれましては、一応低スペック環境でのテストプレイもしてみましょう。
やり方はそんなに難しくありません。

  1. 開発者ツール(DevTools)を開く
    ティラノスタジオを使っているなら、「デバッグを表示する」にチェックを入れてゲーム再生
  2. 「Performance」タブを開く
  3. 右側の歯車アイコンをクリック
  4. 「Network」、「CPU」という項目が表示されるので、それぞれ適当な値を選択

    Networkは「fast 3G」か「slow 3G」、CPUは「x4 slowdown」(自分のPCより4倍遅い)か「x6 slowdown」(自分のPCより6倍遅い)を選ぶといいです。そのへんは自分のPCのスペックとも応相談
  5. これで低スペ環境が最現できたので、その状態でゲームをプレイするとどうなるか確認しましょう。



タグ一覧最初から表示

このブログを検索

連絡先

名前

メール *

メッセージ *

QooQ