【ツクールMV】シューティング?むりやり作ってみた
こんにちは、シマです。
シューティング?ハントゲーム?をむりやり作ってみました。
ついでにWeb公開もしてみました。
PLiCyさんにお世話になっています。
◆PLiCyさん
そしてなんとブログに貼ることができるそうなので、早速試してみました。
砲台の位置を固定している少しクセのある的当てゲームです。
ミニゲームなどの参考になりましたらと思います。
プレイ時間:1ゲーム30秒程度
<操作方法>
方向キー:キャラクターの移動、カーソルの移動
Zキー、Enterキー:決定、エンディング演出スキップ
Xキー、Escキー:キャンセル、戻る
クリック:文章を送る、文章の選択
・可能であれば、方向キー操作推奨です。
・最高ランクはSSです。
◆PLiCyさんでの紹介ページ
最初は解説用にカンタンシューティングのサンプルを作るつもりで いたのですが、
作るうちにだんだん演出も作りたくなり……
オープニングからエンディングまでひととおりまとまった形のものにしてみてしまいました。
なんとか、年始休暇中に作ってみようと思いたち、
ギリギリアウト(翌2:00アップロード完了)でまとまりました。
ぱっと思いついて、ガッと2日で、
なんとなく、つたないながらもゲームの形をしたものを作ることができました。
……やっぱり、RPGツクール素晴らしいですね!!
ツクールでなければこんな速度感で公開までたどり着けなかったと思います。
関係者各位に感謝感謝。
次回以降、カンタンシューティング?の作り方のメモを残してみようかと思います。
ツクールで工夫次第でいろいろできそうだ、というひとつの参考までにでも。
あと、PLiCyさんアップロード体験メモなど。(すごく簡単でした!! オススメです!)
なにかのお役にたちましたら。
お読みいただきましてありがとうございました。
よろしければ、サンプルゲームもお試しくださいませ。
【ツクールMV】カウントアップタイマーむりやり作ってみた
あけましておめでとうございます。シマです。
残り少ないお正月休みをひきこもってすごしております。
今日のテーマはタイマーです。
先日、無性に、「カウントアップタイマーを入れたい!」という気持ちになりました。
「0:01」→「0:02」→「0:03」と、数字がだんだん大きくなるやつです。
「タイマーの操作」を触ってみたところ、
どうやら開始時間を決めてのカウントダウンタイマーのみ設定できるようですね。
▲見た目もシンプルに。
ツクール2000はどうだったっけ?と開いてみると、
なつかしい……変数指定とかもできたのですね。
▲動作開始オプションもなつかしい。画面表示のチェックボックス、今回もあったらよかったな。
ツクール2000のときは、この変数を使ってカウントアップタイマーとか、
ゲーム内時間表示なんかを作ったことがあったような気がする。
よし、じゃ、MVでもやってみますか!
でも! 今回は変数入力のコマンドがない!
……だったらスクリプト使えばいいじゃない。そうしましょう。
<カウントアップタイマー作ってみた>
作り方
①トリガーを「並列処理」に指定。
②実行内容に下記を指定。
◆ウェイト:60フレーム
◆変数の操作:#0001 +=60
$gameTimer.start($gameVariables.value(1))
③実行。なんとか、カウントアップタイマーが表示されます。
▲実行時のキャプチャ。静止画なので本当にカウントアップされているのかわからないですが……
……こんな感じでなんとかむりやり作ってみました。
ただし、なんとかと書いたのには理由がありまして……注意点がいくつかあります。
<注意点>
1.タイマーは1秒後から表示される
実行していただくとおわかりいただけると思いますが、設定上、
「0:00」ではなく「0:01」から表示されます。
スタートからワンテンポというか、1秒おいてからタイマーが開始されます。
実行してみると、見た目が、なんだかもやっとします。
2.数字が切り替わる瞬間の表示がちょっとふるえる
例えば、「0:02」→「0:03」など切り替わる瞬間に、数字がふるえて見えます。
本来カウントダウンするように設定されているタイマーに、
むりやり数字をぶちこんで動かしているので、
ほんとうは、「0:02」の次は「0:01」と表示したいのに、
むりくり「0:03」を表示するように指定しているわけです。ご、ごめんよ。
その関係で表示がふるえるのだと思います。
数字をふるえる姿を見ると、ちょっと、もやっとします。
実行してみて、これらのもやっとが「気にならないよ!」という感じであれば、
ぜひ活用してみてください。
<活用例>
・ミニゲームなどで、クリアまでにどれくらい時間がかかったのかを計る。
・上記などで計った時間に応じて報酬を付与。
・計った時間を別の変数に退避しておいて、ニューレコードなどを管理。
ミニゲームの評価などと相性がよさそうな気がします。
ちょっと解説。
<タイマーの開始>
------------------------
$gameTimer.start(秒数)
------------------------
タイマーの開始をスクリプトで書く方法。
()に秒数を記載すると、その秒数からスタートしてくれるようです。
ただし、フレーム数のようでした。
秒数×60の数値を記載してあげればよさそうです。
今回は、この数値部分にむりやり変数をつっこんでいるわけです。
……と、書いてみたものの、もっと便利なやり方や、
すてきなプラグインを作成されている方もいらっしゃることかと思います。
なにぶん、むりやりなものなので……何かの参考にでもなりましたら。
ちょっと長めになりました。
お読みいただきましてありがとうございました。
【ツクール2000→MV】キー入力の処理がない!→条件分岐
こんにちは、シマです。
以前からRPGツクール2000を使用しておりました。
なんとなく2000の雰囲気を感じるMVは、
できることが増えたり、便利になったりと、触るのがとても楽しいです。
ただ、約2タイトルぶり?の新作ツクール。
触っていると、「あれ、2000でこうやってたやつ、MVだとどうやるんだ?」と思うこともちらほら。
忘れっぽい自分の備忘録として、
2000→MV移行のメモも残していきたいと思います。
同じ境遇の方(いるのかな?)もお役にたちましたら。
まえふり長くなりましたが、本題。
キー入力の処理がない!
<ツクール2000:キー入力の処理>
これです。
ミニゲームや、アクション、シューティングなどを
作る際によく活用していたのですが、MVで見当たりません……。
いろいろ調べて、見つかりました。
<ツクールMV:条件分岐>4>ボタン>
条件分岐>4>ボタン
の中にありました!
変数を用意しなくてよいので、カンタンに活用できそうです。
こちらを利用した処理はまた後日記事にできればと思います。
お読みいただきましてありがとうございました。
【ツクールMV】BGM,BGS,ME,SE、全部停止!
こんにちは、
「BGM止めたい時ってどうするんだ?
フェードアウトはあるけど、最低1秒かかるのかあれぇ?
RPGツクール2000のときどうしてたっけ?」
と思い、がちゃがちゃいじって
「◆BGMの演奏:なし」
を見つけて、
「あっ……うん……」
と思ったシマです。(やり方忘れていただけ)
さて、RPGツクール2000の頃はBGMとSEのみで
オーディオの演出ができていましたが、
MVはなんか、要素が、2倍に増えていました。
BGSとMEですね。
幅が広がって、いろいろできそうでわくわくしております。
そこで、またrpg_manager.jsを読んでいたら、
ちょっと便利そうなやつをみつけました。
BGM,BGS,ME,SE、全部停止!できるようです。
-----
AudioManager.stopAll()
-----
演出上、同時に全部止めて静かにさせたいときなどに使えそうです。
一個一個停止の指定するよりラクになるかと思います。
また、「音はどうやって止めるんだ!?」と冒頭ような状態になった時は、
下記のようなスクリプトで記載する方法もあるようです。
-----
AudioManager.stopBgm()
-----
他、Bgmの箇所を下記に書き換えて書くことができるようです。
・Bgm
・Bgs
・Me
・Se
以上、お読みいただきましてありがとうございました。
【ツクールMV】BGMを好きな秒数から演奏するテスト
こんにちは、シマです。
前回、BGMを好きな秒数から再生する方法を発見したので、
ツクール上でそれをテストする機能?をつくってみました。
(実際にオーディオファイルを開いて
自分でシークして確認すれば済む話なのですが……)
<シークテスター:ゲーム画面>
こんな感じ。
<シークテスター:ツクール画面>
かわいいナビさんに小芝居を打ってもらって喜んで遊んでたので
若干読みづらくてすみませんが……。
機能のキモの部分は、上記の黄色くマークした箇所です。
この2つの動作を入れればテストをすることができます。
◆数値入力の処理
テストしたい秒数を入力するための準備です。
秒数を格納する変数を用意します。
3桁あれば充分かと思われます。
-----
AudioManager.playBgm({"name":"Battle3","volume":90,"pitch":100,"pan":0},$gameVariables.value(1))
-----
pos値に、先ほど作った変数を記述しています。
()の中に、作った変数値を入れています。
今回作った変数は「#0001」なので、(1)と書いています。
忘れずに、"name"にはテストしたいBGMの名前を書いてあげてください。
これでイベントを作成し「トリガー」を「決定ボタン」にして、
……メイドさんなり妖精さんなり好きなキャラクターにしてテスターを作ると、
制作のモチベーションが上がりました(体験談)。
「変数からposを入力する」という部分を応用して
何か演出にも使えそうな気がします。
たいした機能でもないのですが、なにかのお役にたちましたら……!
お読みいただきありがとうございました。
余談:
約10年のブランクを経てブログ復帰したのですが、
近頃は画像をD&Dでアップロードできるんですね……感動しました。
しかも拡大縮小も自由自在だなんて……!
運営さんや、技術に関わられている方々に感謝です!!
【ツクールMV】BGMを好きな秒数から演奏する
こんにちは、シマです。
前回の続きです。
前回、BGMの演奏をスクリプトで実行する方法について確認してみました。
-----
AudioManager.playBgm({"name":"Battle3","volume":90,"pitch":100,"pan":0})
-----
こんな感じ。
で、本題なのですが、ここに新たな指定を入れることができるようでした。
結論から言うと、
BGMを好きな秒数から演奏することができるようです。
--<書き方>--
AudioManager.playBgm({"name":"Battle3","volume":90,"pitch":100,"pan":0},10)
-----
{}の後に10を入力しています。
ここの値は秒数のようです。
(ちゃんと再生して調べたのであっているはず…)
こう記載することで、
指定したBGMを、指定の秒数から演奏することができました。
BGMの前奏などを飛ばして、自分の好きなメロディの所から演奏したい場合に使えそうですね。
…
ちなみに、
rpg_managers.jsの下記の記載から今回の内容を発見できました。
-----
AudioManager.playBgm = function(bgm, pos) (以下略
-----
pos→position
かな?
…
さて、ひととおり、しろうとなりにjsを見てみたのですが、
自分がやりたいことが解決できませんでした……。
やりたいことというのは、
「BGMの保存」(AudioManager.saveBgm)した時の
BGMの演奏位置を変数へ保存したい
という感じです。
つまり、BGM保存時のposの値がとれればいいのですが、
JavaScriptしろうとの自分にはどうしても取ることができず、
ここまでの調査が限界でした……。
それでも、しろうとなりにjsを見たりして少し楽しくなってきましたので、
引き続き頑張ってみようと思います。
お読みいただきありがとうございました。
【ツクールMV】BGMをスクリプトで演奏
こんにちは、シマです。
相変わらずAudio周りをいじっております…
未だに自分が探しているものは見つからないのですが…
また発見があったのでそれについて。
……と、発見の話の前に、「BGMの演奏」について。
まずは、スクリプトでの実行方法を書いておきます。
-----
AudioManager.playBgm({"name":"Battle3","volume":90,"pitch":0,"pan":0})
-----
カッコの中ですが、なんとなく日本語でメモってみます。
----
{"name":"Battle3","volume":90,"pitch":0,"pan":0}
↓
{"name":"演奏したいBGM名","volume":ボリューム,"pitch":ピッチ,"pan":位相}
----
演奏したいBGM名:
ファイル名を記載します。
拡張子はいらないようです。
ボリューム:
数値を記載します。単位は%。
ピッチ:
数値を記載します。単位は%。
デフォルトは100。
ツール上だと、150%まで設定できるようですが、
数値で記載すれば150以上も設定可能なようです。
位相:
数値を記載します。
デフォルトは0。
+の数値で右側からの音量を大きい感じに、
-の数値で左側からの音量を大きい感じにできるようです。
音楽が聞こえてくる方向を表現するときなどに使えそうですね。
さて、案外記事が長くなってしまったので、
発見したことは次回の記事に記載したいと思います。
お読みいただきましてありがとうございました。