WOLF RPGエディター(ウディタ)/イベントコマンド【サイトトップへ戻る】
■【使用例】変数操作+の「キャラ」と「位置」
(更新:2024/05/04)


イベントコマンド【変数操作+】にある「キャラ」と「位置」に関する使用例を紹介します。


ショートカット
■【使用例】指定した向きのみイベントが実行可能
「向き(1〜9デンキーに対応)」
■【使用例】主人公の中心からマウスポインタの位置までピクチャで線を表示
「画面X座標」「画面Y座標」「イベントID(キャラ)」
■【使用例】主人公の目の前のイベントIDと影グラフィック番号を調べる
「X座標」「Y座標」「影グラフィック番号」「イベントID(位置)」
■【使用例】タグ番号によって出現させる敵の種類を変える
「現在地点タイルのタグ番号」



以下は【変数操作+】の「キャラ」と「位置」を使った別のページにある使用例です。
クリックするとYADOT-WOLF内の別ページが開きます。

別ページの使用例
■マップイベントでアニメーションを表示
「画面X座標」「画面Y座標」
■ゲーム中にマウスでツボを置く
「通行判定:タイル&イベント(○=0,×=1)」「レイヤー3のチップ番号(0:透明,1-15:オート,16-:etc)」



【変数操作+】の基本説明は別ページに記載しています。
【変数操作+の基本説明を開く】

【変数操作+】の「ピクチャ」と「その他」の使用例も別ページに記載しています。
【【使用例】変数操作+の「ピクチャ」と「その他」を開く】


  
「向き(1〜9デンキーに対応)」
■【使用例】指定した向きのみイベントが実行可能

主人公やマップイベントの向きを取得し、指定した方向を向いている時にイベントを実行させます。



向きの番号は、テンキーの[5]から見た時の向きになります。







 






▼斜めは実行不可

斜めからはイベントを実行する事ができないように設定します。

例えばカウンター属性があるカウンター越しでマップイベントと話す時に、
通常では斜めからでも話しかける事ができますが、今回の設定を行った場合は、
正面から(マップイベントの向きが「2」のみ)しか話しかけられないようにする事ができます。

▼カウンター属性を斜めからイベントを実行(今回の設定を行うと、このような実行はできなくなります)


以下はマップイベントが下向き(向き[2])の時のみ、話しかける事ができるようにしています。

【イベントコード表示】

■変数操作+: このEvのSelf0 = このマップイベント の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 2 以外
-◇分岐: 【1】 [ このEvのSelf0 が 2 以外 ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■文章:こんにちわ!



以下は上下左右の4方向(向き[2][4][6][8])からは話しかける事ができるが、
斜めの方向(向き[1][3][7][9])からは話しかける事ができないようにする時の設定です。

設定例には「余剰を使わない設定例」と「余剰を使った設定例」があります。
どちらか良い方を選択してください。

▼余剰を使わない設定例
【イベントコード表示】

■変数操作+: このEvのSelf0 = このマップイベント の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 2 と同じ
         【2】 このEvのSelf0 が 4 と同じ
         【3】 このEvのSelf0 が 6 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 2 と同じ ]の場合↓
|■
-◇分岐: 【2】 [ このEvのSelf0 が 4 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ このEvのSelf0 が 6 と同じ ]の場合↓
|■
-◇上記以外
|■条件分岐(変数): 【1】 このEvのSelf0 が 8 以外
|-◇分岐: 【1】 [ このEvのSelf0 が 8 以外 ]の場合↓
||■イベント処理中断
||■
|◇分岐終了◇
|■
◇分岐終了◇
■文章:こんにちわ!

▼余剰を使った設定例
【イベントコード表示】

■変数操作+: このEvのSelf0 = このマップイベント の 向き(1〜9)
■変数操作: このEvのSelf0 %= 2 + 0
■条件分岐(変数): 【1】 このEvのSelf0 が 1 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■文章:こんにちわ!



▼斜めを含めた1方向

斜めの向きを含めた1方向のみでイベントが実行するように設定します。

上方向のみ 下方向のみ 左方向のみ 右方向のみ















左右の設定例には「余剰を使わない設定例」と「余剰を使った設定例」があります。
どちらか良い方を選択してください。

▼主人公が上向き
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 6 以下
-◇分岐: 【1】 [ このEvのSelf0 が 6 以下 ]の場合↓
|▼ 上向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 上向きの処理

▼主人公が下向き
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 4 以上
-◇分岐: 【1】 [ このEvのSelf0 が 4 以上 ]の場合↓
|▼ 下向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 下向きの処理

▼主人公が左向き(余剰を使わない設定例)
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 1 と同じ
         【2】 このEvのSelf0 が 4 と同じ
         【3】 このEvのSelf0 が 7 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 1 と同じ ]の場合↓
|■
-◇分岐: 【2】 [ このEvのSelf0 が 4 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ このEvのSelf0 が 7 と同じ ]の場合↓
|■
-◇上記以外
|▼ 左向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 左向きの処理

▼主人公が左向き(余剰を使った設定例)
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■変数操作: このEvのSelf0 %= 3 + 0
■条件分岐(変数): 【1】 このEvのSelf0 が 1 以外
-◇分岐: 【1】 [ このEvのSelf0 が 1 以外 ]の場合↓
|▼ 左向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 左向きの処理

▼主人公が右向き(余剰を使わない設定例)
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 このEvのSelf0 が 3 と同じ
         【2】 このEvのSelf0 が 6 と同じ
         【3】 このEvのSelf0 が 9 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 3 と同じ ]の場合↓
|■
-◇分岐: 【2】 [ このEvのSelf0 が 6 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ このEvのSelf0 が 9 と同じ ]の場合↓
|■
-◇上記以外
|▼ 右向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 右向きの処理

▼主人公が右向き(余剰を使った設定例)
【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 向き(1〜9)
■変数操作: このEvのSelf0 %= 3 + 0
■条件分岐(変数): 【1】 このEvのSelf0 が 0 以外
-◇分岐: 【1】 [ このEvのSelf0 が 0 以外 ]の場合↓
|▼ 右向き以外
|■イベント処理中断
|■
◇分岐終了◇
▼ 右向きの処理


▲トップへ戻る▲


  
「画面X座標」「画面Y座標」「イベントID(キャラ)」
■【使用例】主人公の中心からマウスポインタの位置までピクチャで線を表示

主人公の中心からマウスポインタがある位置までをピクチャの線で繋げます。





今回はマップイベントからコモンイベント「主人公からマウスまで線」【イベントの挿入】で呼び出す事で、
ピクチャの線の色が設定できるように設定します。



コモンイベント「主人公からマウスまで線」の処理の冒頭に…
■変数操作+: CSelf20[イベントID] = このマップイベント の イベントID
があります。

これはマップイベントから【イベントの挿入】でコモンイベントを呼び出した時に、
その呼び出し元であるマップイベントのイベントIDを取得するために設定しています。

コモンイベントの並列実行の場合は「イベントID=-1」になるので…
イベントID[0以上] マップイベントからの呼び出し 選択肢を表示する
イベントID[-1] 並列実行で処理 選択肢を表示しない
と処理を分ける事ができます。

この処理方法の場合、選択肢が表示されている状態でもピクチャの表示処理は並行して処理されます。



主人公の「画面Y座標」の取得位置は、主人公の足元の位置になります。

▼画面位置の取得位置


そのため、Y表示位置がもう少し上に行くようにするため…
■変数操作: CSelf11[Y] -= Sys118:[読]タイルサイズ / 2
を設定して、マスの半分のサイズだけY表示位置が上へ行くようにしています。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「主人公からマウスまで線」

起動条件:並列実行(常時)

■変数操作+: CSelf20[イベントID] = このマップイベント の イベントID
■条件分岐(変数): 【1】 CSelf20[イベントID] が 0 以上
-◇分岐: 【1】 [ CSelf20[イベントID] が 0 以上 ]の場合↓
|■変数操作: Sys73:文・選択肢のマウス入力(1なら受付) = 1 + 0
|■変数操作: Sys4:選択肢ウィンドウ Y座標 = 40 + 0
|■ループ開始
||■文章選択肢:/ 【1】白色 / 【2】黒色 / 【3】赤色 / 【4】紫色 / 【5】橙色 /
         【6】黄色 / 【7】緑色 / 【8】青色 / 【9】水色 / 【10】設定終了
||-◇選択肢:【1】 白色 の場合↓
|||■変数操作: CSelf14[R]〜CSelf16[B] = 100 + 0
|||■
||-◇選択肢:【2】 黒色 の場合↓
|||■変数操作: CSelf14[R]〜CSelf16[B] = 0 + 0
|||■
||-◇選択肢:【3】 赤色 の場合↓
|||■変数操作: CSelf14[R] = 100 + 0
|||■変数操作: CSelf15[G] = 0 + 0
|||■変数操作: CSelf16[B] = 0 + 0
|||■
||-◇選択肢:【4】 紫色 の場合↓
|||■変数操作: CSelf14[R] = 100 + 0
|||■変数操作: CSelf15[G] = 0 + 0
|||■変数操作: CSelf16[B] = 100 + 0
|||■
||-◇選択肢:【5】 橙色 の場合↓
|||■変数操作: CSelf14[R] = 100 + 0
|||■変数操作: CSelf15[G] = 60 + 0
|||■変数操作: CSelf16[B] = 30 + 0
|||■
||-◇選択肢:【6】 黄色 の場合↓
|||■変数操作: CSelf14[R] = 100 + 0
|||■変数操作: CSelf15[G] = 100 + 0
|||■変数操作: CSelf16[B] = 0 + 0
|||■
||-◇選択肢:【7】 緑色 の場合↓
|||■変数操作: CSelf14[R] = 0 + 0
|||■変数操作: CSelf15[G] = 100 + 0
|||■変数操作: CSelf16[B] = 0 + 0
|||■
||-◇選択肢:【8】 青色 の場合↓
|||■変数操作: CSelf14[R] = 0 + 0
|||■変数操作: CSelf15[G] = 0 + 0
|||■変数操作: CSelf16[B] = 100 + 0
|||■
||-◇選択肢:【9】 水色 の場合↓
|||■変数操作: CSelf14[R] = 0 + 0
|||■変数操作: CSelf15[G] = 100 + 0
|||■変数操作: CSelf16[B] = 100 + 0
|||■
||-◇選択肢:【10】 設定終了 の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf17[色の初期設定] が 0 と同じ
-◇分岐: 【1】 [ CSelf17[色の初期設定] が 0 と同じ ]の場合↓
|■変数操作: CSelf17[色の初期設定] = 1 + 0
|■変数操作: CSelf14[R]〜CSelf16[B] = 100 + 0
|■
◇分岐終了◇
■変数操作+: CSelf10[X] = 主人公 の 画面X座標
■変数操作+: CSelf11[Y] = 主人公 の 画面Y座標
■変数操作: CSelf11[Y] -= Sys118:[読]タイルサイズ / 2
■変数操作: CSelf12[距離X] = Sys71:マウスX位置 - CSelf10[X]
■変数操作: CSelf13[距離Y] = Sys72:マウスY位置 - CSelf11[Y]
■ピクチャ表示:1 [左上]ウィンドウ「<LINE>」サイズ[CSelf12[距離X],CSelf13[距離Y]]
       X:CSelf10[X] Y:CSelf11[Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 /
       角 0 / 拡 100% / カラー R[CSelf14[R]] G[CSelf15[G]] B[CSelf16[B]]





線の色を変える場合は、
マップイベントから【イベントの挿入】コモンイベント「主人公からマウスまで線」を呼び出してください。

【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■イベントの挿入[名]: ["主人公からマウスまで線"] <コモンEv 215>

▼動作イメージ



▲トップへ戻る▲


  
「X座標」「Y座標」「影グラフィック番号」「イベントID(位置)」
■主人公の目の前のイベントIDと影グラフィック番号を調べる

サブキー(Shift)を押した時に、主人公の目の前にいるマップイベントの影グラフィック番号を取得します。

▼動作イメージ




影グラフィックとは、キャラクターの足元に表示されるグラフィックの事を言います。





影グラフィックの設定は、システムDB[9:キャラ影グラフィック名]で影グラフィックの画像ファイルを設定し、
マップイベントごとに影グラフィック番号を設定します。







影グラフィック番号の本来の使い方は「キャラクターの足元の影を表示する」ですが、
この影グラフィック番号を利用して、「どんなマップイベントなのか」を判断する処理を作る事ができます。

例えば…
影グラフィック番号 処理内容
0 敵では無い(攻撃不可)
1 敵である (攻撃可能)
と言った感じに、攻撃できるマップイベントなのかどうかを影グラフィック番号で判断する事ができます。



移動幅が「0.5マス」の場合、主人公とマップイベントの位置によっては、
マップイベントの方に向かってサブキーを押しても反応しない事があります。
そのため下記設定では、0.5マスのずれにも対応した設定になっています。

移動幅が「0.5マス」ではなく「1マス」の場合は…
▼ 0.5マス用の処理
の以降の設定は不要です。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「サブキーで影番号表示」

起動条件:並列実行(常時)

■■キー入力:CSelf10[キー][入力待ち] サブキー(12)
■変数操作+: CSelf11[X座標] = 主人公 の X座標(標準)
■変数操作+: CSelf12[Y座標] = 主人公 の Y座標(標準)
■変数操作+: CSelf13[向き] = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 CSelf13[向き] が 1 と同じ
         【2】 CSelf13[向き] が 2 と同じ
         【3】 CSelf13[向き] が 3 と同じ
-◇分岐: 【1】 [ CSelf13[向き] が 1 と同じ ]の場合↓
|■変数操作: CSelf11[X座標] -= 1 + 0
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇分岐: 【2】 [ CSelf13[向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇分岐: 【3】 [ CSelf13[向き] が 3 と同じ ]の場合↓
|■変数操作: CSelf11[X座標] += 1 + 0
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇上記以外
|■条件分岐(変数): 【1】 CSelf13[向き] が 4 と同じ
          【2】 CSelf13[向き] が 6 と同じ
|-◇分岐: 【1】 [ CSelf13[向き] が 4 と同じ ]の場合↓
||■変数操作: CSelf11[X座標] -= 1 + 0
||■
|-◇分岐: 【2】 [ CSelf13[向き] が 6 と同じ ]の場合↓
||■変数操作: CSelf11[X座標] += 1 + 0
||■
|-◇上記以外
||■条件分岐(変数): 【1】 CSelf13[向き] が 7 と同じ
          【2】 CSelf13[向き] が 8 と同じ
          【3】 CSelf13[向き] が 9 と同じ
||-◇分岐: 【1】 [ CSelf13[向き] が 7 と同じ ]の場合↓
|||■変数操作: CSelf11[X座標] -= 1 + 0
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf13[向き] が 8 と同じ ]の場合↓
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||-◇分岐: 【3】 [ CSelf13[向き] が 9 と同じ ]の場合↓
|||■変数操作: CSelf11[X座標] += 1 + 0
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作+: CSelf14[イベントID] = X:CSelf11[X座標] Y:CSelf12[Y座標]のイベントID
■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
|■変数操作+: CSelf16[影番号] = キャラ[CSelf14[イベントID]] の 影グラフィック番号
|■文章:イベントID「\cself[14]」の\n影グラフィック番号は「\cself[16]」です。

|■イベント処理中断
|■
◇分岐終了◇
▼ 0.5マス用の処理
■変数操作+: CSelf17[X座標(0.5用)] = 主人公 の X座標(精密)
■変数操作+: CSelf18[Y座標(0.5用)] = 主人公 の Y座標(精密)
■変数操作: CSelf17[X座標(0.5用)]〜CSelf18[Y座標(0.5用)] %= 2 + 0
■変数操作: CSelf17[X座標(0.5用)] += CSelf11[X座標] + 0
■変数操作: CSelf18[Y座標(0.5用)] += CSelf12[Y座標] + 0
■条件分岐(変数): 【1】 CSelf11[X座標] が CSelf17[X座標(0.5用)] 以外
-◇分岐: 【1】 [ CSelf11[X座標] が CSelf17[X座標(0.5用)] 以外 ]の場合↓
|■変数操作+: CSelf14[イベントID] = X:CSelf17[X座標(0.5用)] Y:CSelf12[Y座標]のイベントID
|■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
|-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
||■変数操作+: CSelf16[影番号] = キャラ[CSelf14[イベントID]] の 影グラフィック番号
||■文章:イベントID「\cself[14]」の\n影グラフィック番号は「\cself[16]」です。
||■イベント処理中断
||■
|◇分岐終了◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf12[Y座標] が CSelf18[Y座標(0.5用)] 以外
-◇分岐: 【1】 [ CSelf12[Y座標] が CSelf18[Y座標(0.5用)] 以外 ]の場合↓
|■変数操作+: CSelf14[イベントID] = X:CSelf11[X座標] Y:CSelf18[Y座標(0.5用)]のイベントID
|■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
|-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
||■変数操作+: CSelf16[影番号] = キャラ[CSelf14[イベントID]] の 影グラフィック番号
||■文章:イベントID「\cself[14]」の\n影グラフィック番号は「\cself[16]」です。
||■
|◇分岐終了◇
|■
◇分岐終了◇


▲トップへ戻る▲


  
「現在地点タイルのタグ番号」
■【使用例】タグ番号によって出現させる敵の種類を変える

主人公がいるマスのタグ番号を取得し、タグ番号によって出現させる敵の種類を変える設定を行います。



予めタイルセットエディタの画面にて、タグ番号の設定を行ってください。
今回は高台のチップにタグ番号[02]を設定します。




例えば以下の場合は、赤枠の左下の高台はタグ番号[02]となり、高台以外はタグ番号[00]になります。




敵を出現させるマップイベントは以下のように設定してください。

【イベントコード表示】

■マップイベント

起動条件:プレイヤー接触
すり抜け:ON
接触範囲拡張:X[4] Y[4]

■変数操作+: このEvのSelf0 = 主人公 の 現在地点タイルのタグ番号
■条件分岐(変数): 【1】 このEvのSelf0 が 2 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 2 と同じ ]の場合↓
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> /
            30 / 3:虹色鳥x1 / 1:コウモリx3 / -1:<なし>
|■
-◇上記以外
|■イベントの挿入[名]: ["◇ランダムエンカウント処理 "] <コモンEv 37> /
            30 / 0:オオカミx1 / 1:コウモリx3 / -1:<なし>
|■
◇分岐終了◇


応用次第では、以下のような場面で道を歩くと敵が出現しなくなったり、敵の出現歩数が違ったり、
道から逸れるとHPが減ったり、毒を受けたり、所持金が減ったりする設定も可能です。




▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

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