フリーのゲーム製作ソフト『WOLF RPGエディター』の初心者向けコモンイベント講座です。
ウディタでドアを開け閉めする演出をしてみたい! そんなあなたのために、コモンイベントの作り方を解説します。
人物が前に来た時(もしくは決定キーを押したとき)
- 閉まっている状態
- 微妙に開いている状態
- 開いている状態
と切り替わるドアを作っていきます。
変数は3つしか使ってません。
また、なるべくわかりやすく解説していますので安心してくださいね。
ドア開閉コモンイベントの作り方
まずはコモンイベントの用意から
「コモンイベント」の画面を開いてください。
開いているところをクリック。まずは名前を入れます。ここではとりあえず「ドア開閉」としています。そのままですね。起動条件は呼び出しのみ。ここまで設定できたら、「入力の数/結果を返す」というところにある『設定』ボタンを押しましょう。
入力するコモンセルフを設定する
すると、こんな感じの画面が開きます。ここでは、コモンイベントを起動する際、決めることのできる数値を設定できます。
『モード』は『開けるモード』と『閉めるモード』を用意します。
ドアIDです。基本的には開け閉めするドアの『マップイベントID』を入力します。
ただし、『-1』を入力した場合だけ、『マップイベントID』の代わりに、『呼出元マップイベント』のマップイベントIDを使うことにします。
面倒でしたら、『呼出元マップイベント』のみで構いません。
基本的にドアを開閉するのは、そのドアのイベントからですからね。遠隔操作する場合だけ、『マップイベントID』を入力する形になります。
『すり抜ける?』の設定です。
0にするとすり抜けません。
向こう側が黒くなっていたりして、扉を通れてしまうとおかしい場合は0です。
1を入力すると、すり抜けることにします。すり抜ける扉とはつまり、下のような感じです。
開けた後、そこを通れるようにする、ということですね。
では、ここまで用意が整ったところで、実際にコモンイベント本体を作っていきましょう。
コモンイベントを作っていく
どのドアを開閉するのかを取得
まずは、どのドアを開閉させるのかがわからないと話になりません。
「コモンセルフ1:どのドア」に、ドアのマップIDを入れます。
基本的には、このコモンイベントを呼び出すときにすでに入力するようになっていますね。
しかし、-1と、-2の場合だけ、改めて設定してあげる必要があります。
■条件分岐(変数): 【1】CSelf1[どのドア] が -1と同じ 【2】CSelf1[どのドア] が -2と同じ
-◇分岐: 【1】 [ CSelf1[どのドア] が -1と同じ ]の場合↓
|■変数操作+: CSelf1[どのドア] = このマップイベント の イベントID
|■
-1のときは、呼出元マップイベントのIDを取得します。
ここでは-2の場合も設定しています。事前に、ドアのマップイベントIDをマップごとに、手動でデータベースに登録しておきます。そして、その数値を呼び出しています。
-◇分岐: 【2】 [ CSelf1[どのドア] が -2と同じ ]の場合↓
|■DB読込(可変): CSelf1[どのドア] = 可変DB[マップ設定可変:CSelf0[モード]:ドアのマップEvID]
|■
◇分岐終了◇
マップを移動するのと同時に、主人公が通過したドアを閉める、といった演出の際に使います。
おまけ:音を鳴らす
■サウンド:SE 変数[Sys17:選択肢SE番号:決定(Sys3)] 再生 / 遅延:0フレーム
音を鳴らします。今はテスト用に、とりあえず決定音にしています。
木の扉は「パタン」、重たい扉は「ギーッ」など、変えてみるといい感じかもしれません。
マップイベントの向きを変えて開け閉めします
■条件分岐(変数): 【1】CSelf0[モード] が 0と同じ 【2】CSelf0[モード] が 1と同じ
『モード』が「0:開ける」か「1:閉める」のどちらかで条件分岐します。
-◇分岐: 【1】 [ CSelf0[モード] が 0と同じ ]の場合↓
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 下向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 左向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 右向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 上向
|■イベントの挿入[名]: ["マップセルフ管理"] <コモンEv 64> / 1:値を代入 / CSelf1[どのドア] / 0:存在 / 1
|■
ここではドアの画像を、横6つ、縦4つ並んだ画像で用意しています。(キャラチップと同じですね)
そのため、向きを変えることで画像を変えることができます。程よくウェイトを置きながら、向きを変えていきます。
「動作指定」をする際に気を付けることが一つあります。
それは、「動作完了まで待つ」にチェックを入れることです。そうしないと、開いている→半開き→閉じているという画像の切り替わりが一瞬で行われてしまいます。
ここでは「ウェイト」というコモンイベントを使ってウェイトを入れていますが、普通にコマンドで入れて問題ありません。
あまり長いと冗長ですし、短すぎると目でとらえられません。10フレームくらいがいい塩梅ではないでしょうか。
-◇分岐: 【2】 [ CSelf0[モード] が 1と同じ ]の場合↓
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 上向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 右向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 左向
|■イベントの挿入[名]: ["ウェイト"] <コモンEv 14> / 10:短め / 0:通常
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / 下向
|■イベントの挿入[名]: ["マップセルフ管理"] <コモンEv 64> / 1:値を代入 / CSelf1[どのドア] / 0:存在 / 0:オン
|■
◇分岐終了◇
モードが1、つまり閉めるバージョンです。開けるバージョンと違うのは、キャラ動作していの『向き』だけです。
ここでは『マップセルフ管理』というコモンイベントを使って、ドアのマップイベントのセルフ変数を変化させています。
何をしているかというと、ドアのマップイベントそれぞれに、そのドアが今開いているのか閉まっているのかを記録しています。
それにより、『開いていたら閉める』、『閉まっていたら開ける』ということが可能となります。
すり抜けられるかどうかを設定する
■条件分岐(変数): 【1】CSelf2[すり抜ける?] が 0と同じ 【2】CSelf2[すり抜ける?] が 1と同じ
すり抜ける? が0か1かで条件分岐します。
-◇分岐: 【1】 [ CSelf2[すり抜ける?] が 0と同じ ]の場合↓
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / すり抜けOFF
|■
読んで字のごとくですね。そのドアのマップイベントをすり抜けられないようにします。
-◇分岐: 【2】 [ CSelf2[すり抜ける?] が 1と同じ ]の場合↓
|■動作指定:[ウェイト] キャラ[CSelf1[どのドア]] / すり抜けON
|■
◇分岐終了◇
すり抜けられる場合は、すり抜けオンにします。
ここまでで完成です。おつかれさまでした!
まとめ
ウディタでドアを開閉するコモンイベントの作り方をご紹介しました。とどのつまりは、ウェイトを適度にかけながら、マップイベントの向きを変えるイベントですね。
コモンイベントデータ配布
↑ここで作ったコモンイベントは、こちらにあります。空いているところに読み込んで、上に書いてあることを参考に改造していただければ使えます。
コメント