【え!知らないの?】RPGツクールMVのコモンイベントの作り方

2019/12/4ゲーム制作, RPGツクール, 創作

最後まで読んでも 2
【え!知らないの?】RPGツクールMVのコモンイベントの作り方
悩んでいる人

RPGツクールMVを使い始めた。
コモンイベントって何のためにあるんだろう?
何を書けばいいんだろう?
コモンイベントの使い方を教えてほしい!

こんな悩みを解決します。

本記事の内容

  • ゲームの拡張性を高めるRPGツクールMVのコモンイベントの作り方

本記事のコモンイベントを書くことで、ゲームの拡張性をアップできます。

ちなみに私はRPGツクール使用歴10年以上です。
RPGツクールに関しては、けっこう詳しいと自負しています。

ゲーム制作イベントの講師もやったりしていました。

これからゲームを作る方は、ぜひこの記事のコモンイベントを記述してみてくださいね。

 本記事の信頼性

 ドッド工房 (Twitter:@AtelierDodd
 ゲーム制作・創作活動を10年以上継続
 9ゲーム公開16.5万プレイ突破5回受賞
 別名義と合計17ゲーム24万プレイ6回受賞
 ブログは4ヵ月目で月間1.7万PV達成
 PCゲーム・ブラウザゲーム・アプリ公開中!

RPGツクールMVのコモンイベントの作り方

RPGツクールMVのコモンイベントの作り方

そもそもコモンイベントって何?という方に簡単に説明します。

  • コモンイベント:どのマップにいても処理できるイベント。
  • マップイベント:そのマップでしか処理できないイベント。

RPGツクールMVの歯車マークをクリックして[データベース]-[コモンイベント]で記述できるイベントです。

さて、下記が本記事で紹介するコモンイベントです。

※()内はトリガー条件です。

こちらのコモンイベントで下記のことが可能になります。

  • プレイ時間計測
  • 時間イベント等の実装
  • プレイヤー座標の取得
  • プレイヤー向きの取得
  • プレイヤー座標にある地形の取得
  • プレイヤー座標にあるイベントの取得
  • プレイヤー前方にあるイベントの取得
  • プレイヤーが移動したか判別
  • プレイヤーの移動時に足音を再生
  • 通常時とイベント進行中で分けて操作を制御
  • 自作メニュー画面の実装
  • イベント進行中を簡単に切り替え

明らかにゲームの拡張性がアップしますよね。

一気に書いてもよくわからないと思いますので、順番に説明していきます。

コモンイベント:時間計測(並列処理)

  • プレイ時間計測
  • 時間イベント等の実装
時間計測
RPGツクールMVのコモンイベントエディタ:時間計測
◆注釈:/*-----------------------
:  :時間計測
:  :-----------------------*/
◆ウェイト:60フレーム
◆変数の操作:#0002 秒 += 1
◆条件分岐:秒 ≥ 60
  ◆変数の操作:#0003 分 += 1
  ◆変数の操作:#0002 秒 = 0
  ◆
:分岐終了
◆条件分岐:分 ≥ 60
  ◆変数の操作:#0004 時間 += 1
  ◆変数の操作:#0003 分 = 0
  ◆
:分岐終了
◆注釈:/*-----------------------
:  :その他値の増減(任意)
:  :-----------------------*/

記述説明(時間計測)

1秒経ったら秒を1増やす。※1秒は60フレーム
秒が60回カウントされたら分を1増やす。
分が60回カウントされたら時間を1増やす。

用途

こちらはプレイタイム計算に使えます。

また、さらに応用として「その他値の増減」の下に記述を追加をすることで、「時間が経つとアイテムが1つ増えるイベント」等も実装できます。

コモンイベント :プレイヤー位置情報取得(並列処理)

  • プレイヤー座標の取得
  • プレイヤー向きの取得
  • プレイヤー座標にある地形の取得
  • プレイヤー座標にあるイベントの取得
  • プレイヤー前方にあるイベントの取得
  • プレイヤーが移動したか判別
プレイヤー位置情報取得
RPGツクールMVのコモンイベントエディタ: プレイヤー位置情報取得
◆注釈:/*-----------------------
:  :プレイヤーの現在の情報取得
:  :-----------------------*/
◆変数の操作:#0012 プレイヤーX = プレイヤーのマップX
◆変数の操作:#0013 プレイヤーY = プレイヤーのマップY
◆変数の操作:#0014 プレイヤー向き = プレイヤーの向き
◆変数の操作:#0015 マップID = マップID
◆指定位置の情報取得:プレイヤー地形タグ, 地形タグ, ({プレイヤーX},{プレイヤーY})
◆指定位置の情報取得:プレイヤーイベントID, イベントID, ({プレイヤーX},{プレイヤーY})
◆注釈:/*-----------------------
:  :プレイヤー前方マスの情報取得
:  :-----------------------*/
◆変数の操作:#0018 プレイヤーX±1 = プレイヤーX
◆変数の操作:#0019 プレイヤーY±1 = プレイヤーY
◆条件分岐:プレイヤー向き = 2
  ◆変数の操作:#0019 プレイヤーY±1 += 1
  ◆
:分岐終了
◆条件分岐:プレイヤー向き = 4
  ◆変数の操作:#0018 プレイヤーX±1 += -1
  ◆
:分岐終了
◆条件分岐:プレイヤー向き = 6
  ◆変数の操作:#0018 プレイヤーX±1 += 1
  ◆
:分岐終了
◆条件分岐:プレイヤー向き = 8
  ◆変数の操作:#0019 プレイヤーY±1 += -1
  ◆
:分岐終了
◆指定位置の情報取得:プレイヤー前方イベントID, イベントID, ({プレイヤーX±1},{プレイヤーY±1})
◆注釈:/*-----------------------
:  :プレイヤー移動したか判別
:  :-----------------------*/
◆変数の操作:#0021 プレイヤーX*1000+Y = プレイヤーX
◆変数の操作:#0021 プレイヤーX*1000+Y *= 1000
◆変数の操作:#0021 プレイヤーX*1000+Y += プレイヤーY
◆条件分岐:プレイヤーX*1000+Y ≠ プレイヤーX*1000+Y前回
  ◆コモンイベント:2-プレイヤー足音
  ◆変数の操作:#0022 プレイヤーX*1000+Y前回 = プレイヤーX*1000+Y
  ◆
:分岐終了
◆注釈://ループによる処理落ちを抑制
◆ウェイト:2フレーム

記述説明(プレイヤーの現在の情報取得)

プレイヤーの座標・向き・地形タグ・イベントIDを取得。

記述説明(プレイヤー前方マスの情報取得)

プレイヤーの一歩前方のマスの情報を取得。
まずプレイヤーの座標のコピーを作成。
プレイヤーの向きによって、コピーの値を増減する。

  8.上(0,-1)  
4.左(-1,0) プレイヤー(0,0) 6.右(1,0)
  2.下(0,1)  

すると、コピーはプレイヤーの前方座標を記録した変数になる。
その変数でイベントIDを取得すれば、プレイヤーの前方のイベントIDが取得されたことになる。

記述説明(プレイヤー移動したか判別)

座標の変化を簡単に比較するために、1つの変数にプレイヤーの座標情報を入れる。(X座標×1000+Y座標

座標情報(現在)と座標情報(前回)で比較し、値が異なれば足音(コモンイベント)を読み込む
再生が終了したら、座標情報(前回)に座標情報(現在)を上書き

用途

プレイヤーの位置にイベントがあるか判別し、イベントの読み込みなどに利用できます。

また、プレイヤー前方のイベントの有無を確認することにより、プレイヤーの上に「?マーク」をつけたりできます。
つまり、ゲームプレイ中にそこが調べられる場所かどうかを分かりやすくすることができます。

そして、プレイヤーが移動したか確認することにより、足音の再生コモンイベントを読み込むことができます。

コモンイベント:プレイヤー足音(なし)

  • プレイヤーの移動時に足音を再生
プレイヤー足音
RPGツクールMVのコモンイベントエディタ: プレイヤー足音
◆注釈:/*-----------------------
:  :連続再生防止
:  :-----------------------*/
◆条件分岐:足音再生許可がON
  ◆スイッチの操作:#0007 足音再生許可 = OFF
  ◆
:それ以外のとき
  ◆スイッチの操作:#0007 足音再生許可 = ON
  ◆
:分岐終了
◆注釈:/*-----------------------
:  :プレイヤー地形タグによって足音を変更
:  :-----------------------*/
◆条件分岐:足音再生許可がON
  ◆条件分岐:プレイヤー地形タグ = 0
    ◆SEの演奏:Move1 (20, 150, 0)
    ◆
  :分岐終了
  ◆条件分岐:プレイヤー地形タグ = 1
    ◆SEの演奏:Move2 (20, 150, 0)
    ◆
  :分岐終了
  ◆
:分岐終了

記述説明(連続再生防止)

これを入れないとなんだかうるさくなる。
スイッチのON/OFFを切り替える。

記述説明(プレイヤー地形タグによって足音を変更)

スイッチがONのときのみ再生。
地形タグの値によって再生する効果音を分ける。

用途

マスに登録した地形によって、足音を変えることができます。
例えば、沼地を歩くときはビチャビチャといった音を使います。
廊下を歩くときはコツンコツンといった音を使います。

コモンイベント:操作制御(並列処理)

  • 通常時とイベント進行中で分けて操作を制御
操作制御
RPGツクールMVのコモンイベントエディタ: 操作制御
◆注釈:/*-----------------------
:  :操作を一括管理
:  :-----------------------*/
◆条件分岐:ボタン[決定]が押されている
  ◆コモンイベント:4-決定
  ◆
:分岐終了
◆条件分岐:ボタン[キャンセル]が押されている
  ◆コモンイベント:4-キャンセル
  ◆
:分岐終了
◆注釈://ループによる処理落ちを抑制
◆ウェイト:5フレーム

記述説明(操作を一括管理)

押されたキーによって読み込むイベントを管理
今回は「決定キー」「キャンセルキー」を押した場合を管理。
それぞれ各コモンイベントを読み込ませた。

コモンイベント:決定(なし)

決定
RPGツクールMVのコモンイベントエディタ: 決定
◆注釈://通常
◆条件分岐:操作シーン = 0
  ◆
:分岐終了
◆注釈://イベント進行中
◆条件分岐:操作シーン = 1
  ◆
:分岐終了

記述説明

操作シーン」という変数の値によって場合分けする。

  • 0:通常プレイ時。イベント等が何も進行していない状態。
  • 1:イベント進行時。

用途

決定キーを押したときの処理を、通常時かイベント進行時かで分けることができます。
今回は場合分けのみで、具体的な処理は記述していません。

コモンイベント:キャンセル(なし)

  • 自作メニュー画面を実装
キャンセル
RPGツクールMVのコモンイベントエディタ: キャンセル
◆注釈://通常
◆条件分岐:操作シーン = 0
  ◆コモンイベント:6-メニュー
  ◆
:分岐終了
◆注釈://イベント進行中
◆条件分岐:操作シーン = 1
  ◆
:分岐終了

記述説明

操作シーン」という変数の値によって場合分けする。

  • 0:通常プレイ時。イベント等が何も進行していない状態。
  • 1:イベント進行時。

「操作シーン」が0のときメニュー(コモンイベント)を読み込む。

用途

キャンセルキーを押したときの処理を、通常時かイベント進行時かで分けることができます。
今回は通常時にメニュー(コモンイベント)を読み込むように設定しました。

コモンイベント:メニュー(なし)

  • 自作メニュー画面を実装
メニュー
RPGツクールMVのコモンイベントエディタ: メニュー
◆選択肢の表示:セーブ, ロード, 設定, タイトル, 閉じる (ウィンドウ, 中, #1, #5)
:セーブのとき
  ◆セーブ画面を開く
  ◆
:ロードのとき
  ◆スクリプト:SceneManager.push(Scene_Load);
  ◆
:設定のとき
  ◆スクリプト:SceneManager.push(Scene_Options);
  ◆
:タイトルのとき
  ◆タイトル画面に戻す
  ◆
:閉じるのとき
  ◆
:分岐終了

記述説明

選択肢の表示をメニュー画面として代用。

用途

自作メニュー画面の記述等に使用できます。
今回は「選択肢の表示」で自作メニュー画面を実装しました。

コモンイベント:イベント進行中(なし)

  • イベント進行中を簡単に切り替え
イベント進行中
RPGツクールMVのコモンイベントエディタ: イベント進行中
◆スイッチの操作:#0012 イベント中 = ON
◆変数の操作:#0032 操作シーン = 1

用途

イベント進行中に ON/OFFしたいスイッチや、値を変更したい変数を記述できます。
イベントに入ったら、こちらのコモンイベントを呼び出すことで、何度も同じ記述を書く手間がなくなります

コモンイベント:イベント進行解除(なし)

  • イベント進行中を簡単に切り替え
イベント進行解除
RPGツクールMVのコモンイベントエディタ: イベント進行解除
◆スイッチの操作:#0012 イベント中 = OFF
◆変数の操作:#0032 操作シーン = 0

用途

イベントが終わった時にON/OFFしたいスイッチや、値を変更したい変数を記述できます。
イベントが終わったら、こちらのコモンイベントを呼び出すことで、何度も同じ記述を書く手間がなくなります

まとめ:RPGツクールMVのコモンイベントを早速作ってみよう!

まとめ:RPGツクールMVのコモンイベントを早速作ってみよう!

慣れない内はイベント記述は難しいかもしれません。
ですが、ゲームの拡張性を高められるので、書いて損はなしです。

こちらの記事もあわせてどうぞ!

RPGツクールMVを使う以上は、プラグインも使用して拡張性を高めましょう!


RPGツクールMVを使うなら、スクリプトも活用すべきです。

最後まで読んでいただきありがとうございました!
当ブログでは、ゲーム制作・創作活動・ブログ運営に役立つ情報を発信しています。
他の記事もよかったら読んでみてください!🍀

この記事が気に入ったらフォローお願いします!

2019/12/4RPGツクール

Posted by ドッド工房