ティラノスクリプトの会話シーンが重かったので原因を探ってみた

会話シーンの作業効率は全力で挑む宮波笹です。

前々から「会話イベントの時なんか動きがもっさりしてない?」「具体的にはクリックした後ワンテンポ遅れてない?」と思っており、過去の自分のゲームと比べても明らかに差があったので今回原因を探ってみました。

■結論

途中でティラノスクリプトのバージョンを変更したのが関係しているようで、最新バージョンにまるっと引っ越ししたら軽くなった(あといろいろ間違った書き方してたのに気づいた)

です。
ここからはそうとは知らない俺の奮闘劇をつらつら書き進めていきます。


■予想1、そもそもマクロが重い

自分が使っているのはティラノスクリプトで、とにかく一番時間がかかる立ち絵表示系をどうにか簡略化させたいと思いつつ取り組み早数年。
俺のシナリオファイルはこんな感じです。

で、ちと長いけど立ち絵表示マクロはこんな感じ

マクロ内でマクロを呼び出しまくるのが重いのかな?と思いだいぶすっきりさせましたがまぁ関係なかったです。
単に立ち絵表示のタグだけを呼び出すマクロでも、変数とかちょっと使うとすぐ重くなるのでさすがにそれはおかしくない?と。変数多用した程度では重くならないはずなんですよね。それ言ったら俺よりえげつないシステム組んでる人べらぼうにいるはず。

■予想2 プロジェクト自体になんか溜まってる

なんかって、なんやねん。ほらキャッシュとか。
長年使ってるとなんかよくわからないデータが溜まるとか。よくわからないけどいらないごみが溜まるみたいな。はいすみませんよくわかってないどころか何も分かってません。

ただそういうのをリフレッシュするタグが重要ってことは分かってるので最初から入ってる重要度高そうなタグはいじってないんですよね。

それもまぁタイトル画面で1回呼び出しとけば済むぐらいな話らしいのでこれも違うと。

昔、別ツールですが「なんか重いから新規プロジェクトに全部移したら軽くなった!」って話を聞いたので、もう原因も分からんしそれっきゃないなと実行。

■新規プロジェクト、なんで動くん?

前から、ティラノスクリプトのアップデートはしたかったんですよ。理由は新作ゲーム作るとき使い慣れた立ち絵システム使いたいから。

ことごとく失敗しました。

まず内部処理が複雑なうえに、途中でフリーズされるともうどこで何がダメになったのか作った本人すらわからない(あるある)

で、今回は……苦戦しながらもなぜか動きました。
ちょっと、どうもがいたのかは覚えてないですが動きました。
今まで何がダメだったんだろう。配列? マクロ呼び出しすぎ?
とりあえず最低限動いたからOK!

■このプラグインV470対応やんけ

立ち絵システムが動いたことで気をよくした俺は残りのシステムも順調に追加していきます。プラグインを追加したところでフリーズ、一体何が……!

……このプラグインV470対応じゃん(俺のティラノスクリプトはV5に更新済み)

なんでV470使ってたの?(動いたから……)

たしか、俺がティラノスクリプト使い始めた頃がちょうどV5が出た時ぐらいで、まだプラグインがV5対応前のもあったんですよね。
でも動くから問題ないかと。(そういう問題ではない)

もう一つもフリーズの原因となってたのですが、最新版に更新したら無事動きました。ありがとう最新版!

■タイトルメニューどこいった

タイトル画面も変えようと思ったら……メニューどこ行った?
いや、その場には存在している。正確には自作したglinkの見た目が反映されていない……!

そもそも自作したglinkどこにいるんだよ!

ティラノのメニュー系いじるときいつも困るんですが、いろんなところにフォルダ・ファイルがあるので目的の場所を見つけるのがめっちゃ大変です。
なるべくメモしてるけど毎回忘れる。コンフィグだけでいくつあるのか

■まさかフォント、貴様か……?

もはや予想はどこ行った。
最大の難所であった立ち絵システム(これが一番バカでかいマクロ)が無事動き、もう敵なんていないとタカをくくっていた俺。
ですがフォントを変えたことで事件が……!

また重くなった。

何で??? まさかフォント!? フォント重いっていうし。でも不要な部分を削るにはシナリオ完全確定しないと無理だぞ!?

いや、よく考えるんだ。フォントで重くなるなら皆そうなるはずだ。つまり俺の設定がおかしい。直前に何をいじった? フォントを反映させるためにそう……コンフィグ!!

■原因はコンフィグ?

原因はコンフィグだ! きっとどこかで重くなる設定をしてしまったんだ!例えばセーブ数とかバックログとか! 1つ1つ設定後に動作チェックすれば原因にたどり着……

……なんか、最新バージョン項目増えてるな。

テストは……順調だな

あれ、設定全部終わったぞ?
テストしても軽いままだぞ?
問題なく動くぞ?

……あれ???

――よくわからんけど、直った。

あれ~?

マジで「新規プロジェクトにまるっと移植すれば問題解決する」パターンだった?

■よくよく考えれば当然というか

俺がティラノスクリプトを始めたのがちょうどV4とV5が切り替わる時期だったっぽくて。さすがにそこまでの大規模アップデートでデータ引き継ぐのは無理と経験上悟ったのでそれはしてなかったのですが、V5になった後ほらglinkが大幅追加されたとか? 中規模のアップデートがあったので?

……今回みたいな新規プロジェクトに引っ越しじゃなくて、
古いデータの一部を新しいのに差し換えて対応したな~と

たしかそれ2回ぐらいやったな~と

もちろんそれが絶対の原因とも、今現在が完全解決かも不明なんですが。

最新バージョンに引っ越したことでティラノ君の性能が良くなり、

同じシナリオ内で同じ名前のラベル2つ使ってたり、
タグの""を片方付け忘れてたりと、
明らかにダメだろっていうミスが浮き彫りになり……

まぁ、こんな中身じゃそりゃ負担増して処理も重くなるよねと。
コンフィグ丸っと差し替えで重くなったのも、必要なはずの設定がなくなったらエラー落ちにはならなくてもスムーズな動作の妨げにはなるだろうし……

結局原因らしい原因は不明なままなんですが、
結果重さも改善されて最新バージョンにアップデートできたのでよかったかなと。

この記事が気に入ったらサポートをしてみませんか?