ゲームこもごも

RPGツクールMVやゲームなどこもごも

【ツクールMV】カウントアップタイマーむりやり作ってみた

あけましておめでとうございます。シマです。

残り少ないお正月休みをひきこもってすごしております。

 

今日のテーマはタイマーです。

先日、無性に、「カウントアップタイマーを入れたい!」という気持ちになりました。

「0:01」→「0:02」→「0:03」と、数字がだんだん大きくなるやつです。

 

「タイマーの操作」を触ってみたところ、

どうやら開始時間を決めてのカウントダウンタイマーのみ設定できるようですね。

f:id:shima888shima:20160102155921p:plain

▲見た目もシンプルに。

 

ツクール2000はどうだったっけ?と開いてみると、

なつかしい……変数指定とかもできたのですね。

f:id:shima888shima:20160102155451p:plain

▲動作開始オプションもなつかしい。画面表示のチェックボックス、今回もあったらよかったな。

 

ツクール2000のときは、この変数を使ってカウントアップタイマーとか、

ゲーム内時間表示なんかを作ったことがあったような気がする。

よし、じゃ、MVでもやってみますか!

 

でも! 今回は変数入力のコマンドがない!

……だったらスクリプト使えばいいじゃない。そうしましょう。

 

<カウントアップタイマー作ってみた>

f:id:shima888shima:20160102160943p:plain

作り方

①トリガーを「並列処理」に指定。

②実行内容に下記を指定。

 ◆ウェイト:60フレーム

 ◆変数の操作:#0001 +=60

 ◆スクリプト

$gameTimer.start($gameVariables.value(1))

③実行。なんとか、カウントアップタイマーが表示されます。

f:id:shima888shima:20160102161440p:plainf:id:shima888shima:20160102161446p:plain

▲実行時のキャプチャ。静止画なので本当にカウントアップされているのかわからないですが……

 

……こんな感じでなんとかむりやり作ってみました。

ただし、なんとかと書いたのには理由がありまして……注意点がいくつかあります。

 

<注意点>

1.タイマーは1秒後から表示される

実行していただくとおわかりいただけると思いますが、設定上、

「0:00」ではなく「0:01」から表示されます。

スタートからワンテンポというか、1秒おいてからタイマーが開始されます。

実行してみると、見た目が、なんだかもやっとします。

 

2.数字が切り替わる瞬間の表示がちょっとふるえる

例えば、「0:02」→「0:03」など切り替わる瞬間に、数字がふるえて見えます

 

本来カウントダウンするように設定されているタイマーに、

むりやり数字をぶちこんで動かしているので、

ほんとうは、「0:02」の次は「0:01」と表示したいのに、

むりくり「0:03」を表示するように指定しているわけです。ご、ごめんよ。

その関係で表示がふるえるのだと思います。

数字をふるえる姿を見ると、ちょっと、もやっとします。

 

実行してみて、これらのもやっとが「気にならないよ!」という感じであれば、

ぜひ活用してみてください。

 

<活用例>

ミニゲームなどで、クリアまでにどれくらい時間がかかったのかを計る。

・上記などで計った時間に応じて報酬を付与。

・計った時間を別の変数に退避しておいて、ニューレコードなどを管理。

 

ミニゲームの評価などと相性がよさそうな気がします。

 

ちょっと解説。

<タイマーの開始>

------------------------

$gameTimer.start(秒数)

------------------------

タイマーの開始をスクリプトで書く方法。

()に秒数を記載すると、その秒数からスタートしてくれるようです。

ただし、フレーム数のようでした。

秒数×60の数値を記載してあげればよさそうです。

今回は、この数値部分にむりやり変数をつっこんでいるわけです。 

 

……と、書いてみたものの、もっと便利なやり方や、

すてきなプラグインを作成されている方もいらっしゃることかと思います。

なにぶん、むりやりなものなので……何かの参考にでもなりましたら。

 

ちょっと長めになりました。

お読みいただきましてありがとうございました。