memo

ゲーム制作やデザインについての個人的メモ

【お知らせ】

おばけくんをひたすらクリックするだけのゲーム「おばけアタック!」を公開しました。
ティラノゲームフェス2017にも参加しています。1プレイ30秒程度なのでお気軽にプレイしてみてください!
プレイ&ダウンロードページ→http://novelgame.jp/games/show/508?fes=1

【ティラノスクリプト】オート時の待ち時間を文字数から計算して設定するマクロ

========================================

V450rc10以降で公式に実装されました。

以下は古いバージョン向けの情報です。

========================================

DEMO(オートモードテストを選択)

自分が欲しいのでつくってみたシリーズ。

オートモード実施時に、短い文章のときは待ち時間を少なく、長い文章のときは待ち時間を多くするマクロです。通常は一律で設定されている待ち時間ですが、これを使うことによって文章ごとに異なる待ち時間を設定することができます。

[macro name="p2"]
[iscript]
text = this.kag.stat.current_message_str.length; //文字数
text_wait = 70; //1文字ごとの待ち時間(ミリ秒)
wait_time = 1000; //最小時間(ミリ秒)

auto_wait = (text * text_wait) + wait_time; //【(文字数×1文字ごとの待ち時間)+ 最小時間 】

this.kag.config.autoSpeed = auto_wait;
sf._system_config_auto_speed = auto_wait;
[endscript]
[p]
[iscript]
this.kag.config.autoSpeed = 1300;
sf._system_config_auto_speed = 1300;
[endscript]
[endmacro]

[p]の代わりに[p2]を使うことでオート時の待ち時間の設定が変更されます。初期数値のままなら10文字表示したときの待ち時間は1700ミリ秒(1.7秒)になります。

【ちょっと解説】

text = this.kag.stat.current_message_str.length;

lengthは文字の長さを取得するプロパティです。この場合例えば表示されているテキストが「いろはにほへと」ならtextに7を代入していることになります。

text_wait = 70;
wait_time = 1000;

ここは単に数字を代入しているだけです。数値を変えると待ち時間が変わります。wait_timeは1文字だけ表示したときの待ち時間、と考えるといいと思います。

auto_wait = (text * text_wait) + wait_time;

ここで実際の待ち時間を計算してauto_waitに代入しています。

this.kag.config.autoSpeed = auto_wait;
sf._system_config_auto_speed = auto_wait;

auto_waitに代入した数値をティラノスクリプトの設定に反映させています。

[iscript]
this.kag.config.autoSpeed = 1300;
sf._system_config_auto_speed = 1300;
[endscript]

変更した待ち時間をデフォルトに戻しています。他に[p]や[l]を使う場合はここで戻しておかないと待ち時間が最後に設定された数値になってしまいます。

最終的には全部プレイヤー側で設定できるようにしたいです。目標はシステム面が異常に充実してることで有名な(?)某エロゲ会社のゲームシステムです。