サイトアイコン はじめてのウディタ

14.戦闘イベントの作成

長らく、「データベース」上での設定作業が続きましたが、ここからは「マップ」上での「イベント」制作が続いていきます。

まずはせっかく「敵キャラ&味方キャラ」の設定をしましたので、その設定内容を確認するのに一番な「戦闘イベント」を作成していきます。
「戦闘イベント」STEP8で行った「マップ間の移動イベント」と同じような1つの「イベント」として「マップ」上に設置していくことになります。

戦闘BGMの設定

まずは簡単な設定で、戦闘用のBGMを1つ設定します。

「ユーザーデータベース」を開き、「15:システム設定」の2ページ目「[戦闘]基本戦闘BGM」に設定します。
「Fileボタン」を押して、戦闘BGMにするファイルを選択します。「BGM/Battle01_Juno.mid」を指定しました。

ここでは、戦闘に関する表示設定やルール設定などができる項目もありますので、好みで設定してみてください。
「戦闘後のHP・SPの扱い」を全快するように設定すれば、ゲームの難易度を手軽に易しくすることができます。

以上で戦闘BGMの設定は完了しましたので、「OKボタン」を押して保存します。

ちなみに戦闘中に再生される各種効果音を変更したい場合には、「ユーザーデータベース 14:画像/音声基本設定」で指定可能です。
今回はデフォルトのものをそのまま使用します。


次にボス戦用のBGMを別に設定します。
ボス戦用のBGMは「システムデータベース 1:BGMリスト」で登録しておく必要があります。

「システムデータベース」を開くには、メイン画面でシステムデータベースのアイコンを押すか、「表示」>「システムデータベース」を実行します。

「1:BGMリスト」を選択し、データ0のIDを「ボス戦」と入力します。
ファイル名はFileボタンを押して「Battle02_Kagamiyomi.mid」を選択します。
これで完了なので、「OKボタン」を押します。

エンカウント方式について

敵と戦闘を行うイベントを作成する前に、一つ決めなければならないことがあります。
なんらかのストーリー上のイベントシーンでそのまま戦闘になる場合もありますが、そこに辿りつくまでの障害となる雑魚敵達との戦闘をどのような形で開始されるようにするかです。

毎回イベントシーンのようにある一定のポイントにいくと雑魚敵が現れて、戦闘が開始されるというのもありですが、一般のRPGでは大きく2種類の雑魚戦を開始する手法があります。

「シンボルエンカウント」「ランダムエンカウント」と呼ばれるものです。
「エンカウント」とはWikipediaによると「遭遇する」という意味の英単語 “encounter” に由来している和製英語だそうですが、ゲームでは「敵と遭遇する」という捉え方になります。

シンボルエンカウント

「シンボルエンカウント」はマップ上を敵キャラ(シンボル)が歩き回っているのが、視覚的にわかるようにし、その歩き回っている敵キャラとプレイヤーキャラが接触することにより、戦闘が開始されるものです。

敵がマップ上で確認できるため、プレイヤーが戦闘するかしないかマップ上で判断できますし、戦闘になった場合の気持ちの準備ができます。代表例は「ロマンシング・サガシリーズ」や「ファイナルファンタジー12・13」などでしょうか。

ランダムエンカウント

「ランダムエンカウント」はマップ上で敵キャラがいるかいないかはわからず、プレイヤーキャラが一歩一歩歩くたびだったり、時間ごとだったりで、戦闘になるかならないかを乱数などで判定して、戦闘を行う判定になった場合に戦闘が開始されるものです。

敵が見えないため、マップ移動中でいつ戦闘になるかというスリルがあります。代表例はやはり「ドラゴンクエストシリーズ1~7」などでしょうか。

ゲーム内でのエンカウント方式の統一

2つの「エンカウント」方法にはそれぞれ特徴があり、場合によって使い分けられればと思うところもありますが、制作上の手間を避ける意味・プレイヤーの混乱を避ける意味でも、ゲーム内で適用する雑魚敵戦闘での「エンカウント」方法を統一しなければいけません。

次の段階ではそれぞれの「エンカウント」方法の作り方を実践していきますので、自分が制作する上でどちらがいいかなど考えていただければと思います。

シンボルエンカウント

マップ上に敵キャラを配置し、その歩き回っている敵キャラとプレイヤーキャラが接触することにより、戦闘が開始されるタイプになります。

「シンボルエンカウント」ではいくつか考えなければならないことがあります。

今回は下記のようにしていきます。

それでは、さっそく「シンボルエンカウント」「戦闘イベント」を作っていきましょう。

「マップエディタ」で森マップを開き、「イベントレイヤー」を選択し、適当なスペースに敵キャラのイベントを配置します。
今回は森の入り口付近にしてみました。

「イベントエディタ」で各項目を設定していきます。

次は右側の「イベントコマンド入力エリア」にイベントコマンドを挿入していきます。
「コモンイベント」を選択し、「イベントの挿入」でプルダウンメニューから「コモン28:バトルの発生」を選択します。

これで、戦闘を開始するイベントの設定ができました。
設定ができたら、下の「入力」ボタンを押します。

続けて、戦闘イベント終了後にマップ上の敵キャラが消える処理を加えます。
「イベント処理」を選択し、「イベントの一時消去」対象を「このイベント」、フェードを「10」フレームに設定します。
敵キャラが少しゆっくりと消えていくようになります。

設定ができたら、下の「入力」ボタンを押します。

「イベントコマンド入力エリア」には以上の2つのイベント処理が入力されました。
これだけで戦闘を行う敵のイベントは完成です。

さっそくテストプレイをしてみましょう。
敵キャラを配置したイベントから少し離れた場所を右クリックして、「ゲーム開始位置に設定」しましょう。敵に近づいていくとどうなるか見ていきます。

テストプレイはメイン画面の右上のアイコンかイベントエディタの右下のボタンから行います。同時にイベント内容を含んだマップのセーブも行われます。

テストプレイしてみるとプレイヤーが敵に近づいていくと、敵キャラが近づいてきて、プレイヤーと接触して「戦闘イベント」が開始されるのが確認できます。

試しに戦闘をしてみたら、狼は強かったためあっさりとやられてしまいました。
この場合はゲームオーバーのイベント処理が実行されます。
下の画面はサンプルゲームのものが実行されている状態です。

弱い敵に変えてもう一度テストしてみましょう。

バトル発生のイベントコマンドをダブルクリックして「敵グループ番号」を修正します。弱い「スライム×1」にして、「OKボタン」を押します。

イベントをセーブして、もう一度テストプレイをします。
まだテストプレイの画面を開いている場合は「セーブ(マップ全体)ボタン」の方を押して、テストプレイ画面でF12キーを押してリセットで、最初からテストプレイをすることができます。

スライムとの戦闘に変わりました。
スライムは弱いので娘1人でも倒せると思います。

敵を倒すと、イベントが消えていきました。
マップを切り替えるためフィールドマップに移動して森に戻ってくると、敵のイベントが復活しています。

「シンボルエンカウント」では、このような敵キャライベントをマップ上に複数配置していけばいいわけです。

敵キャライベントはイベント上で右クリックして「イベントコピー」「イベントペースト」で複製していくことができます。
イベント上で「Cキー」を押してコピー、貼り付けたい場所をクリックして「Vキー」を押して貼付けが手早くできるので、こちらで慣れるのがおすすめです。

イベントを複製してダンジョンの奥に進むにつれて敵が強くなるように出現する「敵グループ」やイベントの「グラフィック」を変えたりとバリエーションを増やしていきましょう。

ランダムエンカウント

マップ上で敵キャラがいるかいないかはわからず、プレイヤーキャラが一歩一歩歩くたびに乱数で判定して、戦闘を行う判定になった場合に戦闘が開始されるタイプになります。

「ランダムエンカウント」で気を使うのは戦闘を行う判定になる確率のバランスになります。いわゆる「エンカウント率」というものです。
あまりにも頻繁に戦闘開始の判定になってしまうと、プレイヤーはストレスを感じて、ゲームプレイのモチベーションを下げてしまう恐れがありますので、ほどほどのバランスというのを見つけていかなければなりません。

それでは、さっそく「ランダムエンカウント」「戦闘イベント」を作っていきましょう。

「マップエディタ」で森マップを開き、「イベントレイヤー」を選択し、適当なスペースにイベントを配置します。
シンボルエンカウントの時と同じ森の入口付近にします。
シンボルエンカウントの時のイベントが残っている場合は削除します。

「イベントエディタ」で各項目を設定していきます。

次は右側の「イベントコマンド入力エリア」にイベントコマンドを挿入していきます。
「コモンイベント」を選択し、「イベントの挿入」「コモン37:ランダムエンカウント処理」を選択します。

この処理では、3つの「敵グループ」を設定し、一定の「歩数」を超えた場合に設定した3つの「敵グループ」の中から1つをランダムで選び、「戦闘」を発生させます。

これで、戦闘を開始するイベントの設定ができました。
設定ができたら、下の「入力」ボタンを押します。

「イベントコマンド入力エリア」にイベント処理が入力されました。
「ランダムエンカウント」の場合はこれだけ完成です。

さっそくテストプレイをしてみましょう。
ゲーム開始位置はシンブルエンカウントの時のままになっています。
イベントを配置した場所に近づいていきましょう。
しばらく付近を移動させていると、「戦闘イベント」が開始されるのが確認できます。

「マップエディタ」に戻って、「イベントレイヤー」を見てみると、赤い枠線で「イベントエディタ」「接触範囲拡張」で設定した範囲が示されています。
これがイベント(戦闘)が発生する範囲になり、この範囲外では何も起こりません。

ランダムエンカウントでは、このようにイベントの「接触範囲拡張」で範囲を広げていくか、イベント上で右クリックして「イベントコピー」「イベントペースト」で複製していくかして、敵が出現するマップ全体やマップ中の特定エリアで戦闘イベントが発生するようにしていくことになります。

さて、今回の制作ではこちらの「ランダムエンカウント」を採用していきますので、実際のマップに「ランダムエンカウント」のイベントをどんどん設定していきます。

敵グループの出現内容を変えつつ、4つの出現エリアとして、下の画像のようにイベントを配置しました。
画面の上部・下部の隙間や小川など移動できないところ、マップ移動イベントが配置してあるところには、戦闘イベントは配置していません。

イベントの接触範囲の設定は四角形になるため、マップによってはうまく配置しにくいかもしれませんが、そういう場合は細く区切り、四角形をうまく組み合わせてイベントを配置していけば良いと思います。また、接触範囲はマップ外にはみ出ても問題有りません。

この中で「敵エリア2-2」、「敵エリア4-2」は「敵エリア2」、「敵エリア4」が一つのイベントでうまく配置出来なかったので、細かく分割したものになります。

イベントの内容は「敵エリア2」と「敵エリア2-2」、「敵エリア4」と「敵エリア4-2」で同じに設定してあるのですが、今後イベントの内容を変更した場合に両方を変更するのは少し面倒です。
そういった場合に片方だけ修正すれば済むように設定することが出来ます。

「敵エリア2-2」の場合はイベントコマンドで「コモンイベント」を選択し、「イベントの挿入」で「敵エリア2」を選択し、ページは「1」とします。
イベント選択のプルダウンメニューで「Ev0~」と表記されているものがマップイベントになります。
このようにイベントコマンド「コモンイベント」ではマップイベントを呼び出すこともできます。

ちなみに敵エリアのランダムエンカウント内容はそれぞれこのように設定しました。

「敵エリア1」

「敵エリア2、敵エリア2-2」

「敵エリア3」

「敵エリア4、敵エリア4-2」

敗北イベント

最後に戦闘で味方が敗北した場合の処理を考えていきます。
いくつか考えられますが、3つほど例を上げてみます。

今回は「全回復して特定の場所(今回の設定では自宅)に移動」を採用していきます。

「シンボルエンカウント」の説明で「コモンイベント24:バトルの発生」を設定する際に「敗北時処理」という項目があり「ゲームオーバーEvへ」と設定されていました。
これは戦闘で味方が全滅した際に実行されるイベントを示しています。
この「ゲームオーバーEv(イベント)」「全回復して特定の場所(今回の設定では自宅)に移動」という処理を設定していくことになります。

「ゲームオーバーEv(イベント)」「ユーザーデータベース 17:システム設定」の2ページ目にある「[戦闘]ゲームオーバー時のEv」で任意のコモンイベントを指定することができます。
基本システムではあらかじめ「コモンイベント213:ゲームオーバーイベント」が用意されていますので、このコモンイベントを編集していきます。

いままでは、イベントコマンド「コモンイベント」で呼び出すだけでしたが、今回は「コモンイベント」の中身を編集していきます。と言っても、通常のイベントを「イベントエディタ」で編集するのとそれほど違いはありません。

まずは「コモンイベントエディタ」を開きます。
「コモンイベントエディタ」を表示するには、「ツールバーのアイコン」をクリックするか、「上部メニューの「表示」」から「コモンイベント」を選択することで、表示されます。

びっしりと文字が並んでいてびっくりすると思いますが、余計な箇所を変更してしまわないように注意しながら、左側のリストから「213:ゲームオーバーイベント」を選択します。一番下の方にあるので、スクロールバーで一気に下まで移動させましょう。

右側の「イベントコマンド表示欄」を見ると、デフォルトで文章表示が行われるだけの設定になっています。
これが現在、戦闘で全滅した時に呼び出される「ゲームオーバーEv(イベント)」の内容になります。
ここを「全回復して特定の場所(今回の設定では自宅)に移動」という処理に書き換えていきます。

デフォルトである文章表示処理は不要なので「Deleteキー」「イベントコマンド」を削除します。

新たな「イベントコマンド」を挿入していくため、マップイベントでイベントコマンドを挿入するのと同じように、「イベントコマンド表示欄」の空白部分を「左ダブルクリック」か、下の「イベンドコマンド挿入ウィンドウ表示」を押します。

まずは、戦闘画面からマップ画面に切り替わった直後なので、若干間をとります。
「イベント制御」を選択し、ウェイトを「60フレーム」と入力、下の「入力ボタン」を押します。

次に村マップの自宅のベット横にキャラクターを移動させる処理を入力していきます。

「場所移動」を選択し、対象を「主人公」、移動先を見ながら指定ボタンを押して、「村マップの自宅ベッド横」を指定、場所移動時オプションを「トランジションを行う[暗転有り・遅い]」とします。
設定できたら「入力ボタン」を押します。

あとは、味方全員が復活して、HPとSPが全回復する処理を加えます。
「コモンイベント」を選択し、イベントの挿入「コモン4:回復・ダメージ処理」を選択します。

処理内容は「完全回復」、誰に?は「パーティ全員」とします。
設定ができたら、下の「入力ボタン」を押します。

あとは見映を整えるため、移動先での主人公の向きや仲間の位置などを調整します。

「イベント制御」を選択し、「■キャラ動作指定ボタン」を押します。
これは主人公キャラクターやイベントを移動させたりするのに使用するコマンドです。

主人公の向きを変えるには、「主人公」と選択し、方向転換コマンドで「↓ボタン」を押します。これで主人公に正面を向かせます。
「OKボタン」を押すと、そのままイベントコマンド表示欄に入力されます。

つぎに「パーティ画像」を選択し、特殊処理で「仲間全員を主人公の位置にワープ」とし、「入力ボタン」を押します。
仲間がいて隊列を組んで移動中に「場所移動」を行うとその隊列状態の仲間の位置はそのままで移動されてしまうため、主人公の位置に揃えます。

「イベント入力エリア」は下図のようになっています。
回復の処理はどの位置にあっても構いません。

テストプレイを行うため、このコモンイベントを保存します。
「OKボタン」でも「更新ボタン」でも「テストプレイボタン」でも、それぞれ保存されます。

テストプレイにて、きちんと動作するか確認します。
強い敵がでるエリアまで移動して戦闘で全滅してみました。
無事に村に移動し、全快したのが確認できました。
ちょっと味気ないので、メッセージなど表示しても良かったかもしれませんね。そのあたりのアレンジは自由にやってみてください。

続いて、「STEP15 ストーリーイベントの作成」に進みましょう。

モバイルバージョンを終了