WOLF RPGエディター(ウディタ)[3.275]/基本システム【サイトトップへ戻る】
■エンカウントで敵を出現
(更新:2024/01/26)


エンカウントで敵を出現させる方法を紹介ます。


ショートカット
■2つのコモンイベント
■コモンイベント[037:◇ランダムエンカウント処理]を使ったエンカウント
■地形ごとに出現する敵グループを変える
■戦闘前に演奏していたBGMを戦闘終了後に続きから演奏させる
■設定できる項目を増やす改造を行う
■補足:2つのエンカウントが重なっている場合
■補足:接触範囲の縦が狭い
■補足:エンカウントを一時停止する


  
■2つのコモンイベント

敵グループを出現させる方法は2つあります。
両方ともイベントコマンド【イベントの挿入】を使って呼び出し、敵グループを出現させます。

コモンイベント エンカウント 敵グループ 逃走 敗北時 BGM 戦闘結果取得
028:◆バトルの発生 なし 指定した1組 可能/不可 ゲームオーバー
イベント続行
指定可能 あり
(勝1/負-1/逃0)
037:◇ランダムエンカウント処理 あり 最大3組の中から
ランダムで1組
可能 ゲームオーバー 固定 なし

基本的に…
028:◆バトルの発生 1回しか出現しない敵(ボス戦)
037:◇ランダムエンカウント処理 歩いていると何度も登場する敵
と使い分けます。

ボスキャラの作り方は別ページで紹介しています。
【ボスキャラを作るのページを開く】


▲トップへ戻る▲


  
■コモンイベント[037:◇ランダムエンカウント処理]を使ったエンカウント

コモンイベント[037:◇ランダムエンカウント処理]を呼び出す事で、エンカウントの処理を使用する事ができます。



コモンイベント[037:◇ランダムエンカウント処理]のイベントコマンド表示欄の解説は別ページに記載しています。
【コモンイベント[037:◇ランダムエンカウント処理]の解説ページを見る】



「出現歩数」を設定すると、その出力歩数に近い歩数を歩いた時に敵が出現します。

コモンイベント[037:◇ランダムエンカウント処理]の処理では、まず一歩歩くごとに「100000÷出現歩数」の値が、
可変DB[18:基本システム用変数]データ[65:[エンカウント]エンカウント値]の変数に保存されます。
そしてこの変数の値が「100000以上」になった時に敵が出現します。

例えば「出現歩数=50」の場合は「100000÷50=2000」と言って計算によって、
一歩歩くごとに「2000 → 4000 → 6000」と2000ずつ変数の値が増えていき、
そして50歩目で変数の値が「100000以上」となって、敵が出現します。

敵が出現すると変数の値は初期化されますが、この時の初期化は「0」ではなく、乱数[-20000〜20000]で初期化されます。
乱数[-20000〜20000]で初期化するで、次の出現歩数からはランダム性が生まれ、「50歩くらいで出現」となります。

なお、この歩数を管理する変数は1つしか無いので、
例えば「出現歩数=10(1歩で10000を加算)」で9歩歩くと変数の値が「90000」になりますが、
この後で「出現歩数=50(1歩で2000を加算)」を歩いた場合、5歩目で「100000以上」となり、敵が出現します。



コモンイベント[037:◇ランダムエンカウント処理]はマップイベントに設定します。

▼サンプルゲームの「サンプルマップB」にあるエンカウントイベント


■マップイベント「敵エンカウントEV」

グラフィック:なし
起動条件:プレイヤー接触
起動条件変数:なし
接触範囲拡張:8×6
当タリ判定■:ON

■イベントの挿入: コモン37:[ ◇ランダムエンカウント処理 ] / 20 / 31:ゴブリン1匹 / -1:<なし> / -1:<なし>



サンプルゲームの接触範囲拡張は「8×6」が設定されています。



「プレイヤー接触」により、この接触範囲内を歩く度にコモンイベント[037:◇ランダムエンカウント処理]が呼び出されます。

サンプルゲームの設定では「出現歩数=20」になっているため、接触範囲内を20歩前後歩くと敵が出現します。



コモンイベント[037:◇ランダムエンカウント処理]3グループまでしか設定する事ができませんが、
複数のコモンイベント[037:◇ランダムエンカウント処理]を設定する事で、4グループ以上の設定が可能になります。

▼4グループの設定例
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 1 〜 4
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 3 以下
-◇分岐: 【1】 [ このEvのセルフ変数0 が 3 以下 ]の場合↓
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            0:オオカミx1 / 2:オオカミx2 / 1:コウモリx3

|■
-◇上記以外
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            3:虹色鳥x1 / -1:<なし> / -1:<なし>

|■
◇分岐終了◇

さらに乱数の設定を工夫する事で…
35%=オオカミx1
30%=コウモリx3
20%=オオカミx2
15%=虹色鳥x1

と言ったように、敵グループごとの出現確率を設定する事もできます。

【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 1 〜 100
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 35 以下
         【2】 このEvのセルフ変数0 が 65 以下
         【3】 このEvのセルフ変数0 が 85 以下
-◇分岐: 【1】 [ このEvのセルフ変数0 が 35 以下 ]の場合↓
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            0:オオカミx1 / -1:<なし> / -1:<なし>

|■
-◇分岐: 【2】 [ このEvのセルフ変数0 が 65 以下 ]の場合↓
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            1:コウモリx3 / -1:<なし> / -1:<なし>

|■
-◇分岐: 【3】 [ このEvのセルフ変数0 が 85 以下 ]の場合↓
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            2:オオカミx2 / -1:<なし> / -1:<なし>

|■
-◇上記以外
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            3:虹色鳥x1 / -1:<なし> / -1:<なし>

|■
◇分岐終了◇


▲トップへ戻る▲


  
■地形ごとに出現する敵グループを変える

「平原ではこの敵」「森ではこの敵」と言ったように、地形ごとに出現させる敵グループや出現歩数を変える場合の設定例です。



マップ作成画面の上部の[表示]→[タイルセットエディタ]を開き、
[タグ番号設定]をクリックすると、タイルの上にタグ番号が表示されます。



このタグ番号を「平原=02」「森=05」などと設定し、
主人公がいるマスのタグ番号を読み取る事で、主人公が現在いるマスの地形内容を知る事ができます。



地形タイルの設定は、3つのレイヤーを重ねて表示しますが、
タグ番号の方も重ねた状態で、最も上にあるタグ番号を読み取るように設定します。

例えば「平原=02」「森=05」の場合、
「平原のみ」のマスの場合は、タグ番号「02」を読み取るのに対し、
「平原+森」の場合は、タグ番号「05」を読み取ります。

レイヤー1 レイヤー2 画面表示 読み取ったタグ番号
 



タグ番号を読み取る設定は、イベントコマンド【変数操作+】を使います。

主人公の現在位置を設定する所には、変数呼び出し値を使います。
【変数呼び出し値についての説明を見る】

0.5マス移動 1マス移動
X:9180002
Y:9180003
精密座標:ON
X:9180000
Y:9180001
精密座標:OFF





エンカウントのマップイベントは以下のように設定。

【イベントコード表示】

■マップイベント

グラフィック:なし
起動条件:プレイヤー接触
起動条件変数:なし
接触範囲拡張:8×6
当タリ判定■:ON

■変数操作+: このEvのセルフ変数0 = X:主人公のX座標(精密) Y:主人公のY座標(精密)の最も上にあるタイルのタグ番号
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 5 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 5 と同じ ]の場合↓
|▼ 森
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 /
            1:コウモリx3 / 3:虹色鳥x1 / -1:<なし>

|■イベント処理中断
|■
◇分岐終了◇
▼ 平原
■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> / 100 /
            0:オオカミx1 / -1:<なし> / -1:<なし>



▲トップへ戻る▲


  
■戦闘前に演奏していたBGMを戦闘終了後に続きから演奏させる

戦闘開始前に演奏していたBGMを戦闘終了後に再演奏させる際、初期設定ではBGMの最初からの演奏になりますが、
これを戦闘開始直前に演奏されていた位置から演奏するように改造します。

改造設定はコモンイベント[188:X◆戦闘処理]にて行います。



コモンイベント[188:X◆戦闘処理]の「セルフ変数使用状況」にて、セルフ変数[97:再生位置記憶]を設定してください。





14行目に以下のイベントを追加してください。

【イベントコード表示】

■変数操作+: CSelf97[再生位置記憶] = BGM現在再生位置(ミリ秒・1周目のみ/MIDIならTick値)



238行目242行目にあるイベントコマンド【サウンド】を開き、それぞれの途中再生に「1600097」を設定してください。




以上で設定完了です。


▲トップへ戻る▲


  
■設定できる項目を増やす改造を行う

【イベントの挿入】コモンイベント[037:◇ランダムエンカウント処理]を呼び出す設定画面では、
5つ目の項目(Self4に格納)が未使用になっています。



これはウディタ[3.00]以前は「Self4に格納」の項目が無かったので、
ウディタ[3.00]以前の仕様に合わせてウディタ[3.00]以降も、5つ目の項目は未使用のままになっています。

今回はこの5つ目の項目に新たな設定ができるように改造します。

当ページで紹介する改造設定は以下の2つです。

敵グループを4つまで設定できるようにする 最大4グループまで設定できるようにします。
戦闘中のBGMが設定できるようにする コモンイベント[028:◆バトルの発生]と同じように、
戦闘中のBGMが設定できるようにします。



*注意点*

既にエンカウントを設定している場合は、改造設定後にエンカウントの再設定(追加した5つ目の項目を設定)が必要になります。


  
■敵グループを4つまで設定できるようにする

コモンイベント[037:◇ランダムエンカウント処理]をクリックし、
入力の数 / 結果を返す」の「設定」をクリックしてください。




入力内容の設定画面にて「数値5/Cself4」のチェックボックスをクリックし、
敵グループ 4」初期値「0」を設定してください。




特殊指定の「入力[数値5]」をクリックし、
データベース参照」をクリックして「ユーザDB」のタイプ「13」番を設定。
「-1」〜「-3」の項目を追加する」にチェックを入れて、右の設定は3つとも「<なし>」にしてください。
設定が宜しければ、画面下のOKをクリックしてください。




45行目にある…
■変数操作: CSelf11[一時変数B] = 1 〜 3
の設定を…
■変数操作: CSelf11[一時変数B] = 1 〜 4
に変えてください。




以上で設定完了です。


  
■戦闘中のBGMが設定できるようにする

コモンイベント[037:◇ランダムエンカウント処理]をクリックし、
入力の数 / 結果を返す」の「設定」をクリックしてください。




入力内容の設定画面にて「数値5/Cself4」のチェックボックスをクリックし、
戦闘BGM」初期値「-3」を設定してください。




特殊指定の「入力[数値5]」をクリックし、
データベース参照」をクリックして「システムDB」のタイプ「1」番を設定。
「-1」〜「-3」の項目を追加する」にチェックを入れて、
右の設定は「<なし>」「<デフォルト>」「<デフォルト>」を設定してください。
設定が宜しければ、画面下のOKをクリックしてください。




55行目にある設定を開いてください。




戦闘BGM」の右側にあるチェックボックスにチェックを入れて「1600004」を設定してください。
設定が宜しければ、画面下の[OK]をクリックしてください。




以上で設定完了です。


▲トップへ戻る▲


  
■補足:2つのエンカウントが重なっている場合

2つのエンカウントの接触範囲が重なっている場合は、イベントIDの小さい方のエンカウントのみが実行されます。



ウディタの処理では、2つの接触範囲が重なっている場合は両方が実行される仕様になっているため、
上図の重なっているマスを歩いた場合は、両方のマップイベントが実行します。

しかしコモンイベント[037:◇ランダムエンカウント処理]の処理では、
同じマス座標では二重にエンカウントが実行しないと言った仕様になっているため、
先に実行したイベントIDの小さいエンカウントのみが実行されます。


▲トップへ戻る▲


  
■補足:接触範囲の縦が狭い

接触範囲を「3×3」にしているのに、なぜか縦の範囲が狭くなる事があります。

▼同じ「3×3」なのに左側のイベントは縦幅が狭い


これはオプション[当タリ判定■]の設定がOFFになっている事が原因であり、
この設定をONにすると、縦横の範囲が同じサイズになります。




▲トップへ戻る▲


  
■補足:エンカウントを一時停止する

テストプレイ時に一時的にエンカウントが発生しないようにしたい時には、
コモンイベント[037:◇ランダムエンカウント処理]0行目に…
■イベント処理中断
を設定してください。


▲トップへ戻る▲



◎関連ページ

◆ボスキャラを作る
◆基本戦闘のBGMを変更

◆[戦闘改造]全ての敵キャラを強くする
◆[戦闘改造]先制攻撃とバックアタックが発生するように改造

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆基本システムで使用しているピクチャ番号
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

YADOT-WOLFトップ  気紛れな空間へ戻る  メール