WOLF RPGエディター(ウディタ)[3.230]/基本システム【サイトトップへ戻る】
■コモンイベント[088:X[移]メニュー描画]の解説
(更新:2023/10/04)


コモンイベント[088:X[移]メニュー描画]について解説します。


ショートカット
■コモンイベント[088:X[移]メニュー描画]って何?
■文字列の設定
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

基本システムに関する説明は別ページに記載しています。
【基本システムに関する説明ページを見る】

コモンイベントの一覧と補足説明のページも用意しています。
【コモンイベントの一覧と補足説明のページを開く】


  
■コモンイベント[088:X[移]メニュー描画]って何?

コモンイベント[088:X[移]メニュー描画]は、メニュー画面を表示する時に使います。



コモンイベント[088:X[移]メニュー描画]では、
「左上の選択肢(カーソルを含む)」「左下の所持金」「背景」の画像を表示する処理を行います。

右側に表示されているステータス画面は、
コモンイベント[090:X[移]キャラクター欄描画]を使って表示します。



このコモンイベント[088:X[移]メニュー描画]の表示処理では、選択肢のカーソルは表示されません。

選択肢のカーソルを表示する場合は…
■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88> / 0:表示 / 0:0以上…カーソル位置設定
と言ったように、このコモンイベント[088:X[移]メニュー描画]を「表示」で呼び出した後に…
■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88> / 1:更新 / CSelf21[現カーソル位置]
と言ったように、このコモンイベント[088:X[移]メニュー描画]を「更新」でもう一度呼び出す必要があります。



ピクチャ番号の使用内容は以下のとおりです。

ピクチャ番号 使用内容 データ取得位置
10001 選択肢の枠  
10002 選択肢のカーソル  
10003 文字列:相談 ユーザーDB[17]項目[3]
10004 文字列:アイテム ユーザーDB[17]項目[4]
10005 文字列:特殊技能 ユーザーDB[17]項目[5]
10006 文字列:装備 ユーザーDB[17]項目[6]
10007 文字列:システム ユーザーDB[17]項目[7]
10008 文字列:セーブ ユーザーDB[17]項目[8]
10009 初期設定では未使用 ユーザーDB[17]項目[9]
10010 初期設定では未使用 ユーザーDB[17]項目[10]
10011 お金表示の枠  
10012 文字列:お金の金額 可変DB[6]項目[0]


▲トップへ戻る▲


  
■文字列の設定

240行目にある所持金の文字列設定について解説します。

文字列 処理内容 処理結果見本
\ax[\cself[13]]
<R>\ay[0]\f[\cself[19]]\cself[11]\f[\cself[18]]
入力位置を右側へ移動します。

ゲーム画面のサイズが[320×240[x2]]の場合は、
2倍の距離を移動させます。
これは特殊文字「\ax」の設定値が、
[640×480]の画面サイズで処理されるためです。
\ax[\cself[13]](改行)
<R>
\ay[0]\f[\cself[19]]\cself[11]\f[\cself[18]]
改行して2行目に入力位置を移動し、
2行目の文字列を右寄せで設定します。
\ax[\cself[13]]
<R>\ay[0]\f[\cself[19]]\cself[11]\f[\cself[18]]
入力位置を「Y=0」へ移動。
\ax[\cself[13]]
<R>\ay[0]\f[\cself[19]]\cself[11]\f[\cself[18]]
現在の所持金を表示。
文字サイズは可変DB[18:基本システム用変数]
データ[5:システム基本フォントサイズ]の値を
セルフ[19]に取得して設定しています。
\ax[\cself[13]]
<R>\ay[0]\f[\cself[19]]\cself[11]
\f[\cself[18]]
最後に少し小さい文字サイズを設定し、
半角スペースを設定。
この後にお金の単位が追加されるので、
この半角スペースは所持金とお金の単位との
間に隙間を作るために設定しています。

文字サイズは可変DB[18:基本システム用変数]
データ[6:システムミニフォントサイズ]の値を
セルフ[18]に取得して設定しています。


▲トップへ戻る▲


  
■こうゆう時にこのコモンイベントを改造する

以下のような改造を行いたい時にこのコモンイベントを改造します。

◆選択肢や所持金表示のサイズを変えたい。

◆所持金の表示を消したい。
 213行目のループ回数を「0回」にすると消えます。

◆メニュー画面の背景として表示する画像を変えたい。

◆使用するピクチャ番号(10000〜10012)を変えたい。


▲トップへ戻る▲


  
■[入力の数/結果を返す]について

コモンイベント[088:X[移]メニュー描画][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「処理モード」

処理方法を設定。
[0]表示 選択肢や所持金を表示します。
[1]更新 選択肢のカーソルの表示を更新します。
[-1]消去 選択肢や所持金を消去します。
▼数値2/コモンセルフ1「カーソル位置」

カーソルの表示位置や表示方法を設定。
[-2]フラッシュ停止 カーソルの点滅を停止。
アイテムの選択画面などを表示している時には、
カーソルの点滅が停止します。
[-1]非表示 カーソルを表示しません。
基本システムでは使用されていません。
[0]0以上…カーソル位置設定 指定した位置にカーソルを表示し、点滅を実行。


▲トップへ戻る▲


  
■コモンイベント呼び出しの一覧

コモンイベント[088:X[移]メニュー描画]を呼び出しているコモンイベントの一覧です。
なお、コモンイベント[088:X[移]メニュー描画]から呼び出しているコモンイベントはありません。

コモンイベント[088:X[移]メニュー描画]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
127:X[移]メニュー起動 メニュー画面を表示する時や消去する時に呼び出されます。
131:X┣[移]セーブ欄実行 セーブを実行した時に呼び出されます。

【コモンイベント呼び出しの一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[088:X[移]メニュー描画]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 処理モード 処理方法を設定。
0 選択肢や所持金を表示します。
1 選択肢のカーソルの表示を更新します。
-1 選択肢や所持金を消去します。
1 カーソル位置 カーソルの表示位置や表示方法を設定。
-2 カーソルの点滅を停止。
-1 カーソルを表示しません。
0 指定した位置にカーソルを表示し、点滅を実行。
6 オプション枠用 所持金の文字列を設定。
7 表示項目名 選択肢の文字列を設定。
8 ウィンドウ画像ファイル ユーザーDB[16:画像/音声設定]項目[0:ウィンドウ画像ファイル]を取得。
9 カーソル画像ファイル ユーザーDB[16:画像/音声設定]項目[1:カーソル画像ファイル]を取得。
10 一時変数A 一時的な計算処理で使用。
11 一時変数B 一時的な計算処理やデータベースの取得、ピクチャの横サイズの取得などに使用。
12 一時変数C 所持金の文字列のX表示位置の調整に使用。
13 一時変数D 選択肢や所持金の文字列表示がウィンドウをはみ出る時に、
ウィンドウの横幅に合わせて、ピクチャの横拡大率を変える時に使用。
所持金の文字列の横幅やY表示位置の調整などに使用。
14 一時変数E 可変DB[18:基本システム用変数]データ[23〜30](メニューコード)を取得。
-1 選択不可
0 未設定
1 アイテム
2 特殊技能
3 装備
4 セーブ
5 システム
10 特殊メニューA
11 特殊メニューB
12 特殊メニューC
13 特殊メニューD
18 ミニフォントサイズ 可変DB[18:基本システム用変数]データ[6:システムミニフォントサイズ]を取得。
所持金の文字列で使用。
19 基本フォントサイズ 可変DB[18:基本システム用変数]データ[5:システム基本フォントサイズ]を取得。
選択肢や所持金の文字列で使用。
20 基本ピクチャ番号 今回の処理で使うピクチャ番号の最小値(10200)を設定。
21 一時ピクチャ番号 セルフ[20]に保存されたピクチャ番号をコピーし、
表示する内容に合わせてピクチャ番号を変えて使用します。
22 表示X 選択肢のウィンドウのX表示位置を設定。
23 表示Y 選択肢のウィンドウのY表示位置を設定。
24 横サイズ 選択肢のウィンドウの横サイズを設定。
25 縦サイズ 選択肢のウィンドウの縦サイズを設定。
27 縦項目数 可変DB[18:基本システム用変数]データ[22:メニュー項目数]を取得。
29 全更新フラグ 値の設定のみであり、実際には何も使用されていません。
34 [保持]カーソル基本X 選択肢の一番上の項目を選択する時のX表示位置を設定。
35 [保持]カーソル基本Y 選択肢の一番上の項目を選択する時のY表示位置を設定。
36 [保持]カーソル横幅 選択肢のカーソルの横幅を設定。
37 [保持]カーソル縦幅 選択肢のカーソルの縦幅を設定。
38 [保持]カーソル移動横幅 選択肢のウィンドウの横幅を設定し、
「除算2」でカーソルや選択項目のX表示位置を算出。
39 [保持]カーソル移動縦幅 カーソルが1つ移動する時の縦の移動距離を設定。
41 一時項目表示X セルフ[58]を複製し、選択肢や所持金のウィンドウ用のピクチャの表示で使用。
42 一時項目表示Y セルフ[59]を複製し、選択肢や所持金のウィンドウ用のピクチャの表示で使用。
43 処理中個数 ループ内にて、選択項目の表示する処理数(0〜7)を設定。
44 一時項目表示X2 セルフ[58]を複製し、選択項目用のピクチャの表示で使用。
45 一時項目表示X2 セルフ[42]を複製し、選択項目用のピクチャの表示で使用。
58 表示元X メニュー表示時に選択肢のウィンドウが
画面の外からスクロール移動でやってくるそのスタート地点を設定。
59 表示元Y メニュー表示時に選択肢のウィンドウが
画面の外からスクロール移動でやってくるそのスタート地点を設定。
60 おまけ欄X 所持金を表示するウィンドウのX表示位置を設定。
61 おまけ欄Y 所持金を表示するウィンドウのY表示位置を設定。
62 おまけ欄横サイズ 所持金を表示するウィンドウの横サイズを設定。
63 おまけ欄縦サイズ 所持金を表示するウィンドウの縦サイズを設定。
64 おまけ欄表示元X メニュー表示時に所持金を表示するウィンドウが
画面の外からスクロール移動でやってくるそのスタート地点を設定。
65 おまけ欄表示元Y 所持金を表示するウィンドウが
画面の外からスクロール移動でやってくるそのスタート地点を設定。
88 座標倍率X[x10] 可変DB[18:基本システム用変数]データ[97:座標倍率X[x10]]を取得。
数値は「ゲーム画面の横サイズ÷32」。
89 座標倍率Y[x10] 可変DB[18:基本システム用変数]データ[98:座標倍率Y[x10]]を取得。
数値は「ゲーム画面の縦サイズ÷24」。

【変数の一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■イベントコマンドの解説

イベントコマンドの解説を行います。

なお、見た目で設定内容が分かるような簡単なイベントコマンドの解説は省略しています。

処理内容
22-24 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ パラメータ設定
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ここから先のウィンドウのサイズなどの設定値は、
ゲーム画面のサイズ[320×240[x2]]の時の値になります。
[320×240[x2]]以外のゲーム画面のサイズである場合は、
セルフ[88〜89]を使って現在のゲーム画面のサイズに合わせた値に補正されます。
25-26 ▼ 固定値を設定
セルフ[20]に「10000(使用するピクチャ番号の最小値)」を設定。
27 ▼ 外部パラメータ読み込み
28-33 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ
処理モードが「表示」の場合は分岐。
  30-31 ▼ ここでメニューコマンドを算出し、個数を可変DB「基本システム用変数」に格納
コモンイベント[089:X┗[移]メニューコマンド算出]を呼び出し、
選択肢に表示する項目のデータを可変DB[18:基本システム用変数]データ[23〜30]に保存。
42-47 ▼ 座標設定
選択肢用のウィンドウの表示位置と横幅を設定。
48-52 ▼ ※縦サイズはコマンド個数に応じてサイズ変更
(セルフ[19]+セルフ[19]÷4)×セルフ[27]+セルフ[89]」の計算で
選択肢のウィンドウの縦サイズを算出し、セルフ[25]に設定。
ゲーム画面のサイズ[320×240[x2]]の場合で、
選択肢が6項目(相談/アイテム/特殊技能/装備/システム/セーブ)の場合は、
セルフ[19]=10」「セルフ[27]=6」「セルフ[89]=10」になるので、
計算式は「1010÷4)×610」となり、セルフ[25]には「82」が設定されます。
53-59 ▼ こちらは所持金などを表示する欄の位置設定
所持金用のウィンドウの表示位置と横幅を設定。
60-74 ▼ 座標倍率補正をかける
選択肢と所持金の表示に関する数値を、現在のゲーム画面のサイズに合わせて補正。
なお、セルフ[25]は既に現在のゲーム画面のサイズに合わせた数値なので、補正は行わない。
75-76 ▼ 初期化
セルフ[29]はこのコモンイベントでは使用していないので、この設定は意味がありません。
77-79 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ここから実処理開始
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
80-100 ■条件分岐(変数): 【1】 CSelf0[処理モード] が -1 と同じ
処理モードの「消去」の場合は分岐。
  82-87 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「消去」モード
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 下地だけは単体で消去
メニュー画面の背景にある画像を消去。
消去前 消去後
  88-97 ▼ それ以外はスライド消去
画面左(画像の外)に選択肢と所持金のピクチャをスクロール移動し、ピクチャを消去。
101-287 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ
処理モードの「表示」の場合は分岐。
  103-107 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「表示」モード
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ まずカーソル用パラメータを計算する
セルフ[34]に「セルフ[22](ウィンドウのX表示位置)」をそのまま設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「0」が設定されます。
  108-109 セルフ[35]に「セルフ[23](ウィンドウのY表示位置)+セルフ[89]÷2」を設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「0+10÷2」で「5」が設定されます。
  110 セルフ[36]に「セルフ[24](ウィンドウの横サイズ)−セルフ[88]」を設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「80−10」で「70」が設定されます。
  111-112 セルフ[37]に「セルフ[19]+セルフ[89]÷4」を設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「10+10÷4」で「12」が設定されます。
  113 セルフ[38]に「セルフ[24](ウィンドウの横サイズ)」をそのまま設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「80」が設定されます。
  114-115 セルフ[39]に「(セルフ[25](ウィンドウの縦サイズ)−セルフ[89])÷セルフ[27]」を設定。
ゲーム画面のサイズ[320×240[x2]]の場合は「(82−10)÷6」で「12」が設定されます。
  116-124 ▼ 背景を表示
背景を「<GRADY-779-000>」のピクチャで表示。
  125-130 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ メニューを表示
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
選択肢のウィンドウを表示。
  132-141 ▼ ここでメニュー表示時エフェクト(「移動」コマンドで実現している)
選択肢のウィンドウを画面左(画面の外)から徐々に速度を落としながらスクロール移動で表示。
  145-147 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 各コマンドの表示
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  149-215 ■回数付きループ [ CSelf27[縦項目数] ]回
選択肢の選択項目の数だけループし、上から順番に選択項目を表示していく。
    151-156 ▼ 座標計算
選択項目の表示位置を設定。
表示の基点はピクチャの中心になります。
    157-158 ▼ メニューコマンドは基本システム用変数23番〜30番に入っている
23+セルフ[43](0〜7(ループごとに加算される))」で
可変DB[18:基本システム用変数]データID(23〜30)にして、セルフ[10]に設定。
    159-163 可変DB[18:基本システム用変数]セルフ[10]のデータIDから
文字列(選択肢の項目名)と数値(メニューコード)をセルフ[7]セルフ[14]に取得し、
ピクチャ番号[10003]をセルフ[21]に設定。
    165 ▼ もしセーブコマンドなら、セーブ不能かどうかで分岐
    166-175 ■条件分岐(変数): 【1】 CSelf14[一時変数E] が 4 と同じ
メニューコードが「セーブ」の場合は分岐。
      169-173 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が 0 と同じ
可変DB[18:基本システム用変数]データ[33:[システム]セーブ可能?]の設定が
0(セーブ不可)」の場合は分岐。
        171 セルフ[14]に「-1(選択不可)」を設定。
    178-181 ■条件分岐(変数): 【1】 CSelf14[一時変数E] が 0 以上
メニューコードが選択可能の場合は分岐。
      180-181 ▼ コードが1以上なら普通の文字色で表示
選択項目を不透明度[255]で表示。
    183-185 ◇分岐: 【2】 [ CSelf14[一時変数E] が -1 以下 ]の場合↓
メニューコードが選択不可の場合は分岐。
      184-185 ▼ コードが-1以下の場合は半透明に
選択項目を不透明度[128]で表示。
    188 ▼ メニュー内容の横幅が溢れてたら横拡大率を減少させる
    191-197 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が CSelf13[一時変数D] 超
選択項目の表示が「ウィンドウの横幅−セルフ[88]」を超えている場合は分岐。
      193-195 横拡大率を変えて選択項目がウィンドウ内に入るように補正。
横拡大率の補正なし 横拡大率の補正あり
    201-211 ▼ ここでコマンド表示時エフェクト(「移動」コマンドで実現している)
■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
▼ 初期位置をシフト (とりあえず横は、メニューの表示元Xを基点としている)
選択項目を画面左(画面の外)から徐々に速度を落としながらスクロール移動で表示。
  216-275 ■回数付きループ [ 1 ]回
所持金を表示する処理を実行。
所持金の表示が要らない場合は、ここの設定を「0回」に変更。(削除でも可)
    217-222 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ おまけ欄(所持金)を表示
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ピクチャ番号[10011]で所持金のウィンドウを表示。
    224-225 ▼ おまけ欄内の文字列を生成
可変DB[6:パーティー情報]項目[0:所持金]セルフ[11]に設定。
    226-227 ▼ \axと\ay、<R>を駆使して横幅と位置を調整
所持金の文字列の横幅をセルフ[13]に設定。
所持金の文字列の表示位置を右端に移動する時に使用。
    228 ▼ バージョンによって右寄せの幅計算処理を変更 Ver3.00修正
    229-235 ■条件分岐(変数): 【1】 Sys115:[読]Game.exeバージョン(x100) が 300 未満
ウディタ[3.00]以前の場合は分岐。
      231-236 ゲーム画面のサイズ[320×240[x2]]の場合は、長さを2倍にします。
これは文章の表示位置を設定する特殊文字「\ax」が[640×480]で処理されるためです。
【特殊文字「\ax」の説明を見る】
    238-240 ◇分岐: 【2】 [ Sys115:[読]Game.exeバージョン(x100) が 300 以上 ]の場合↓
ウディタ[3.00]以降の場合は分岐。
      239-240 ▼ Ver3.00以降はSys119の基本画面倍率で調整 Ver3.00修正
カーソル画像の横幅をセルフ[13]に設定。
ゲーム画面のサイズが2倍の場合はカーソルの横幅を2倍に、
ゲーム画面のサイズが3倍の場合はカーソルの横幅を3倍にしてセルフ[13]に設定。
    243-247 ピクチャ番号[10012]で所持金の文字列を表示。
    248-251 セルフ[12]には「セルフ[88]÷2」、
セルフ[13]には「セルフ[89]÷2+セルフ[89]÷6」を設定し、所持金の文字列の表示位置を補正。
    255 ▼ もし文字がはみ出てたら横幅を制限 (横拡大率を下げる)
    258-264 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が CSelf13[一時変数D] 超
選択項目の表示が「所持金用ウィンドウの横幅−セルフ[88]」を超えている場合は分岐。
      260-262 横拡大率を変えて所持金の文字列がウィンドウ内に入るように補正。
    268-279 ▼ ここでおまけ欄表示エフェクト(「移動」コマンドで実現している)
所持金の文字列を画面左(画面の外)から徐々に速度を落としながらスクロール移動で表示。
288-318 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 1 と同じ
処理モードの「更新」の場合は分岐。
  290-293 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「更新」モード
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
セルフ[21]の「10002(カーソルのピクチャ番号)」を設定。
  294-298 ■条件分岐(変数): 【1】 CSelf1[カーソル位置] が -1 と同じ
カーソル移動が「非表示」の場合は分岐。
    296-298 ▼ カーソル消去
カーソルを消去し、【イベント処理中断】を実行。
  300-304 ◇分岐: 【2】 [ CSelf1[カーソル位置] が -2 と同じ ]の場合↓
カーソル移動が「フラッシュ停止」の場合は分岐。
    302-304 ▼ フラッシュ停止(暗くする)
カーソルの点滅を終了し、カラーを「R80/G80/B80」に変え、【イベント処理中断】を実行。
  307-312 ▼ 座標計算
カーソルの表示位置を設定。
表示の基点はピクチャの中心になります。
  314-315 カーソルを表示し、点滅を実行。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

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