当サイトはプロモーションが含まれています

拡張性を高めるコモンイベントの使い方【RPGツクールMV/MZ】

2019/12/4創作,ゲーム制作

上手に使おう!コモンイベント ツクールMV/MZ向け
悩んでいる人のふきだし
悩んでいる人

RPGツクールMV(RPGツクールMZ)を使ってゲーム制作を始めました。
そこで疑問なのですが、「コモンイベント」と「マップイベント」って何が違うのですか?

また、コモンイベントを使いこなせると、どんな利点があるのですか?
初心者の僕にも分かるように、コモンイベントの上手な使い方を教えてほしいです!

こんなご要望にお応えします。

check 本記事の内容

  • ゲームの拡張性を高めるコモンイベントの使い方と作り方を解説(RPGツクールMV/MZユーザー向け)

check 本記事の信頼性

ドッド工房の自己紹介

この記事を書いている私は、ゲーム制作歴15年目です。
今までに手がけた自作ゲームは20作品以上で、総計40万ダウンロード&プレイを突破。
ゲームコンテストでは7回以上受賞。
ゲーム制作を教える講師の仕事経験もあり、現在はインディーゲームの開発や販売をしています。

RPGツクールMVやMZを使い始めると、「コモンイベント」という機能を目にするはずです。
使い始めて間もないうちは、何のためにある機能なのか分からないと思います。

実はこのコモンイベントは、RPGツクールでゲームを作るうえで、とても重要な役割を果たします。
コモンイベントを上手に活用することで、あなたは下記のようなメリットを得られるのです。

  • ゲームの拡張性を高められる
  • ゲーム制作を効率化できる

なので、コモンイベントを上手に使えるようになっておくと、あとあと苦労せずに済みます。
あなたのゲーム制作スピードをアップできるだけでなく、あなたのゲームで実現できることを大幅に増やすことができるからです。

しかし、なぜか多くのRPGツクールユーザーは、コモンイベントを上手に活用できていません。
これは非常にもったいないことです。

ドッド工房のふきだし
ドッド工房

なのであなたは、今から解説するコモンイベントの使い方をぜひマスターしてください。
そして、他のツクラーたちよりもワンランク上にステップアップしましょう!

今回は、RPGツクール利用歴13年以上の私が、ゲームの拡張性を高める「コモンイベントの使い方」をレクチャーします。
この記事を読めば、あなたは今よりも上のレベルでRPGツクールを使いこなせるようになりますよ。

それではご覧ください!

拡張性を高めるコモンイベントの使い方【RPGツクールMV/MZ】

コモンイベントを使いこなせると強い

まず初めに、「コモンイベント」という機能について簡単に解説します。

「コモンイベント」は、RPGツクールMV/MZの歯車マークをクリックした後に、[データベース]-[コモンイベント]から記述できるイベントのことです。

「コモンイベント」と「マップイベント」それぞれの機能と違いについては、下記のとおりです。

コモンイベントどのマップにいても処理できるイベントのこと。
マップイベントそのマップでしか処理できないイベントのこと。
「コモンイベント」と「マップイベント」それぞれの機能と違い
ドッド工房のふきだし
ドッド工房

つまり、ゲーム全体にかかわる処理は「コモンイベント」に記述することになります。
特定のマップにおいてのみ実行される処理は「マップイベント」に記述するということです。

さて、ここからは「コモンイベントの使い方と作り方」を解説していきます。
ゲームの拡張性を高めるためには、下記のコモンイベントを作成していくことになります。

コモンイベント(トリガー条件)左記のコモンイベントで実現できること
時間計測(並列処理)◆プレイ時間の計測ができる
◆時間にかかわるイベントを実装できる
プレイヤー位置情報取得(並列処理)◆プレイヤーがいる位置の座標を取得できる
◆プレイヤーの向きを取得できる
◆プレイヤーの座標にある地形タグを取得できる
◆プレイヤーの座標にあるイベントIDを取得できる
◆プレイヤーの前方にあるイベントIDを取得できる
◆プレイヤーが移動したかを判別できる
プレイヤー足音(なし)◆プレイヤーの移動時に足音を再生できる
操作制御(並列処理)◆ユーザーのゲームプレイ操作を制御できる
決定(なし)◆決定キーを押したときの反応を変更できる
キャンセル(なし)◆キャンセルキーを押したときの反応を変更できる
メニュー(なし)◆自作のメニュー画面を実装できる
イベント進行中(なし)◆イベント開始時の共通する処理を設定できる
イベント進行解除(なし)◆イベント終了時の共通する処理を設定できる
ゲームの拡張性を高めるコモンイベント一覧

ざっとこんな感じです。
今から順番に、各コモンイベントについて詳しく解説していきます。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • プレイ時間の計測ができる
  • 時間にかかわるイベントを実装できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆注釈:/*-----------------------
:  :時間計測
:  :-----------------------*/
◆ウェイト:60フレーム
◆変数の操作:#0002 秒 += 1
◆条件分岐:秒 ≥ 60
  ◆変数の操作:#0003 分 += 1
  ◆変数の操作:#0002 秒 = 0
  ◆
:分岐終了
◆条件分岐:分 ≥ 60
  ◆変数の操作:#0004 時間 += 1
  ◆変数の操作:#0003 分 = 0
  ◆
:分岐終了
◆注釈:/*-----------------------
:  :その他値の増減(任意)
:  :-----------------------*/

記述内容の解説

1秒(60フレーム)経ったら、「秒の変数」の値に1を加算する。

「秒の変数」の値が60以上になったら、「分の変数」の値に1を加算。
そして、「秒の変数」の値を0にリセットする。

「分の変数」の値が60以上になったら、「時間の変数」の値に1を加算。
そして、「分の変数」の値を0にリセットする。

このコモンイベントの具体的な使い方

このコモンイベントは、主にゲームプレイ時間の計算に使えます。
つまり、ゲームクリア時に「●●時間■■分◆◆秒」と表示することができるのです。

また、応用として「時間が経つとアイテムが1つ増えるイベント」なども作成できます。
これは「その他値の増減」の下の部分に、新たに記述を追加をすることで簡単に実装可能です。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • プレイヤーがいる位置の座標を取得できる
  • プレイヤーの向きを取得できる
  • プレイヤーの座標にある地形タグを取得できる
  • プレイヤーの座標にあるイベントIDを取得できる
  • プレイヤーの前方にあるイベントIDを取得できる
  • プレイヤーが移動したかを判別できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆注釈:/*-----------------------
:  :プレイヤーの現在の情報取得
:  :-----------------------*/
◆変数の操作:#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フレーム

記述内容の解説

check プレイヤーの現在の情報取得

プレイヤーが操作しているキャラクターの、「座標」「向き」「マップID」「地形タグ」「イベントID」をそれぞれ取得。

check プレイヤー前方マスの情報取得

まずは、プレイヤーのX座標とY座標それぞれのコピーを作成。
そしてプレイヤーの向きによって、下記のとおりX座標やY座標の値を増減させる。

8:上(±0,-1)
4:左(-1,±0)プレイヤー(0,0)6:右(+1,±0)
2:下(±0,+1)
プレイヤーの向きによって増減させる値

こうすることで、コピーは「プレイヤーの前方座標を記録した変数」になる。

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

check プレイヤー移動したか判別

プレイヤーの移動(座標の変化)を簡単に比較する工夫として、1つの変数にプレイヤーの座標情報を入れる。
つまり、X座標に1000をかけてY座標を加算した値を変数に入れる。

現在の座標情報と前回の座標情報で値を比較し、それぞれの値が異なればコモンイベント「プレイヤー足音」を読み込む。
足音の再生が終了したら、前回の座標情報を入れる変数に現在の座標情報を上書きする。

このコモンイベントの具体的な使い方

プレイヤーの立っている位置に、イベントが存在するかを判別するのに使用できます。
また、そのイベントを読み込む際にも応用可能です。

そのほか、プレイヤーの前方にイベントがあるかを確認することができます。
これを応用すると、プレイヤーの頭上に「ハテナマーク(?)」を表示できたりもします。

つまり、ゲームプレイ中に調べられる箇所を分かりやすくし、ゲームのユーザビリティ(遊びやすさ)を向上できるというわけです。

ドッド工房のふきだし
ドッド工房

ちなみに、このイベントを作ることにより、次にご紹介するコモンイベント「プレイヤー足音」が使えるようになります。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • プレイヤーの移動時に足音を再生できる

さて、このコモンイベントの記述内容は下記のとおりです。

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

記述内容の解説

check 連続再生防止

足音が連続して再生されるとうるさくなるので必須。
スイッチのON/OFFを切り替える。

check プレイヤー地形タグによって足音を変更

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

このコモンイベントの具体的な使い方

プレイヤーが移動する際に、足音が再生されるようになります。
なお、マスに登録した地形タグによって、再生する足音を変えることもできます。

例えば、沼地を歩くときはビチャビチャといった音を使い、廊下を歩くときはコツンコツンといった音を使い分けるということです。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • ユーザーのゲームプレイ操作を制御できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆注釈:/*-----------------------
:  :操作を一括管理
:  :-----------------------*/
◆条件分岐:ボタン[決定]が押されている
  ◆コモンイベント:4-決定
  ◆
:分岐終了
◆条件分岐:ボタン[キャンセル]が押されている
  ◆コモンイベント:4-キャンセル
  ◆
:分岐終了
◆注釈://ループによる処理落ちを抑制
◆ウェイト:5フレーム

記述内容の解説

押されたキーによって、読み込むイベントを管理する。

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

押されたキー読み込むコモンイベント
決定キー決定
キャンセルキーキャンセル
押されたキーに対して読み込ませるコモンイベント

このコモンイベントの具体的な使い方

ユーザーのキー操作に対して、読み込ませるイベントを設定するのに使います。
つまり、押されたキーによって実行する処理を制御することができるというわけです。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • 決定キーを押したときの反応を変更できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆注釈://通常
◆条件分岐:操作シーン = 0
  ◆
:分岐終了
◆注釈://イベント進行中
◆条件分岐:操作シーン = 1
  ◆
:分岐終了

記述内容の解説

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

0の場合通常プレイ時。イベント等が何も進行していない状態。
1の場合イベント進行時。
変数「操作シーン」による場合分け

このコモンイベントの具体的な使い方

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

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • キャンセルキーを押したときの反応を変更できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆注釈://通常
◆条件分岐:操作シーン = 0
  ◆コモンイベント:6-メニュー
  ◆
:分岐終了
◆注釈://イベント進行中
◆条件分岐:操作シーン = 1
  ◆
:分岐終了

記述内容の解説

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

0の場合通常プレイ時。イベント等が何も進行していない状態。
1の場合イベント進行時。
変数「操作シーン」による場合分け

変数「操作シーン」の値が0の場合、コモンイベント「メニュー」を読み込む。

このコモンイベントの具体的な使い方

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

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • 自作のメニュー画面を実装できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆選択肢の表示:セーブ, ロード, 設定, タイトル, 閉じる (ウィンドウ, 中, #1, #5)
:セーブのとき
  ◆セーブ画面を開く
  ◆
:ロードのとき
  ◆スクリプト:SceneManager.push(Scene_Load);
  ◆
:設定のとき
  ◆スクリプト:SceneManager.push(Scene_Options);
  ◆
:タイトルのとき
  ◆タイトル画面に戻す
  ◆
:閉じるのとき
  ◆
:分岐終了

記述内容の解説

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

選択肢実行内容
セーブセーブ画面を表示
ロードロード画面を表示
設定オプション画面を表示
タイトルタイトル画面に戻る
閉じるメニューを閉じる
イベントコマンド「選択肢の表示」による自作メニュー画面

このコモンイベントの具体的な使い方

自作メニュー画面を表示するイベントの記述に使用できます。
なお、今回は簡単に「選択肢の表示」で自作メニュー画面を実装しました。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • イベント開始時の共通する処理を設定できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆スイッチの操作:#0012 イベント中 = ON
◆変数の操作:#0032 操作シーン = 1

記述内容の解説

イベント中を表すスイッチをONにして、操作シーンをイベント進行時(1)に変更。

このコモンイベントの具体的な使い方

イベント進行中にスイッチのON/OFFを切り替えたり、変数の値を変更できたりします。

ドッド工房のふきだし
ドッド工房

毎回イベントに入る際に、こちらのコモンイベントを呼び出しましょう。
すると、何度も同じイベントを記述する手間がなくなります。

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

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

このコモンイベントを作成することで、下記のことを実現できます。

  • イベント終了時の共通する処理を設定できる

さて、このコモンイベントの記述内容は下記のとおりです。

◆スイッチの操作:#0012 イベント中 = OFF
◆変数の操作:#0032 操作シーン = 0

記述内容の解説

イベント中を表すスイッチをOFFにして、操作シーンを通常時(0)に変更。

このコモンイベントの具体的な使い方

イベント終了時にスイッチのON/OFFを切り替えたり、変数の値を変更できたりします。

ドッド工房のふきだし
ドッド工房

毎回イベントが終わる際に、こちらのコモンイベントを呼び出しましょう。
すると、何度も同じイベントを記述する手間がなくなります。

まとめ:さっそくコモンイベントを作ってみよう!

さっそく作ってみよう!

今回は、RPGツクールMV/MZを例に「ゲームの拡張性を高めるコモンイベントの作り方」を解説しました。

この記事で解説したコモンイベントをもう一度まとめておきますね。

check この記事で解説したコモンイベントまとめ

  • 時間計測(並列処理)
  • プレイヤー位置情報取得(並列処理)
  • プレイヤー足音(なし)
  • 操作制御(並列処理)
  • 決定(なし)
  • キャンセル(なし)
  • メニュー(なし)
  • イベント進行中(なし)
  • イベント進行解除(なし)

以上の9つです。

RPGツクールに慣れないうちは、イベントの記述は少しだけ大変に感じられるかもしれません。

ドッド工房のふきだし
ドッド工房

ですが、ゲームの拡張性を高められるほか、今後のゲーム制作の効率化を図れます。
なので、コモンイベントの使い方はマスターしておいて絶対に損しません。

あなたはコモンイベントを上手に使って、サクサクと楽しくゲームを作っていきましょう!

check RPGツクールをもっと使いこなしたいあなたへ

RPGツクールMV/MZを使いこなしたい場合は、下記の記事もぜひご覧ください。

RPGツクールMV/MZでは、スクリプトとしてJavaScriptが利用できます。
スクリプトを活用することで、あなたのゲーム制作の自由度はさらに高まりますよ。

RPGツクールMV/MZユーザー向けに、コピペで簡単に使えるスクリプトを厳選してご紹介しました。
»知っていると便利なスクリプト一覧【RPGツクールMV/MZ向け】