WOLF RPGエディター(ウディタ)[3.322]/移動時改造【サイトトップへ戻る】
■メッセージウィンドウのY表示位置を変える
(更新:2024/04/14)


メッセージウィンドウのY表示位置を変える改造方法を紹介します。



ショートカット
■改造内容の確認
■コモン[063]の改造と解説
■マップイベントの設定
■3つの表示位置を登録


  
■改造内容の確認

【文章の表示】を実行した時には、文章の表示と共にメッセージウィンドウ顔グラフィックが表示されます。

▼表示例(顔グラフィックを表示する設定を追加しています)


文章の表示処理はウディタの内部処理で行っていますが、
メッセージウィンドウ顔グラフィックの表示はピクチャで表示しており、
コモンイベント[063:X[共]メッセージウィンドウ]の中で処理しています。



文章の表示位置を変える時には、
システム変数[1:メッセージウィンドウ X座標][2:メッセージウィンドウ Y座標]の値を変えますが、
システム変数[1〜2]の値を変えてもメッセージウィンドウ顔グラフィックの表示位置はそのままになります。

▼システム変数[2:メッセージウィンドウ Y座標]を「0」にした時


これはシステム変数[1〜2]とは関係なく、
独自の表示設定でメッセージウィンドウ顔グラフィックを表示している事が原因です。



またコモンイベント[063:X[共]メッセージウィンドウ]44〜47行目には、
システム変数[1〜2]の値を初期化する設定があります。



この初期化する設定は、メッセージウィンドウが表示される度に実行するため、
文章を表示する前にシステム変数[1〜2]の値を変えても、
文章を表示する直前にシステム変数[1〜2]の値が初期化されるため、表示位置に変化が起きません。



44〜47行目の設定を削除すると、文章の表示位置がずれてしまいます。

▼コモンイベント[063:X[共]メッセージウィンドウ]の44〜47行目を削除した場合


そのため、44〜47行目の設定は削除せず、ゲーム起動時に1回だけ実行するように改造します。


▲トップへ戻る▲


  
■コモン[063]の改造と解説

コモンイベント[063:X[共]メッセージウィンドウ]を改造します。

黄色=追加するイベントコマンド
水色=既存のイベントコマンドの設定位置を移動

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

■コモンイベント[063:X[共]メッセージウィンドウ]

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

▼ ―――――――――――――――――――――――――――――――――――
▼ メッセージウィンドウ処理
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ メッセージ枠と顔グラフィックを表示します。
▼ このコモンイベントは常時作動しており、システム変数0番(顔グラフィック番号)が
▼ 変化すると、メッセージウィンドウを表示したり消去したり顔グラフィックを表示させたりします。

▼ 「システム変数0:顔グラフィック番号」を読み込んで、
▼ その番号に応じた顔グラフィックを表示します。
▼ Sys0 = 0 の時は、メッセージウィンドウは表示されません。
▼ Sys0 = 1 の時は、メッセージウィンドウのみ表示されます。
▼ Sys0が2以上の時は、設定された顔グラフィックを画面右下に表示します。
▼ ―――――――――――――――――――――――――――――――――――
▼ 【設定】
▼ 顔グラフィックのファイルは、システムデータベース24番「顔グラフィック名」で設定してください。

▼ メッセージウィンドウ画像は、ユーザデータベース「画像/音声設定」で設定してください。
▼ 画像が何も設定されていなければ、黒い背景が表示されます。
▼ ―――――――――――――――――――――――――――――――――――

■変数操作: CSelf20[基本ピクチャ番号] = 19500 + 0
▼ Ver2.20 座標倍率を縦横別に修正
■DB読込(可変):CSelf88[座標倍率X(x10)] = 可変DB[ 基本システム用変数:97:0 ] (18:座標倍率X[x10]:数値)
■DB読込(可変):CSelf89[座標倍率Y(x10)] = 可変DB[ 基本システム用変数:98:0 ] (18:座標倍率Y[x10]:数値)
■DB読込(ユーザ):CSelf9[ウィンドウ画像ファイル] =
        ユーザDB[ 画像/音声設定 : 0 : メッセージウィンドウ ベース画像 ] (16 : 画像/音声基本設定 : 2)
■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0
▼ メッセージウィンドウの表示位置とサイズを設定
■変数操作: CSelf38[サイズX] = 30 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf39[サイズY] = 7 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf30[基本表示位置X] = 16 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf31[基本表示位置Y] = 20 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf32[隠し表示位置X] = 16 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf33[隠し表示位置Y] = 28 * CSelf89[座標倍率Y(x10)]

■変数操作: CSelf91[ピクチャカウンタ最大値] = 3 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 9 + 0

■変数操作: CSelf42[画面サイズX] = CSelf88[座標倍率X(x10)] * 32
■変数操作: CSelf43[画面サイズY] = CSelf89[座標倍率Y(x10)] * 24

■変数操作: CSelf40[戻り先番号] = 1 + 0
■回数付きループ [ 1 ]回
|●ラベル地点「文章表示位置設定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■条件分岐(変数): 【1】 CSelf60[改:sys2初期] が 0 と同じ
|-◇分岐: 【1】 [ CSelf60[改:sys2初期] が 0 と同じ ]の場合↓
||■変数操作: Sys1:メッセージウィンドウ X座標 = 2 * CSelf88[座標倍率X(x10)]
||■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)]
||▼ Ver3.00修正 メッセージウィンドウY座標を微調整
||■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 5

||■変数操作: CSelf60[改:sys2初期] = Sys2:メッセージウィンドウ Y座標 + 0
||■
|◇分岐終了◇

|■変数操作: Sys3:選択肢ウィンドウ X座標 = 16 * CSelf88[座標倍率X(x10)]
|▼ Ver3.00修正 選択肢ウィンドウY座標を微調整
|■変数操作: Sys4:選択肢ウィンドウ Y座標 = 7 * CSelf89[座標倍率Y(x10)]
|■変数操作: Sys5:ポーズカーソルX (Sys1に足した位置) = 16 * CSelf88[座標倍率X(x10)]
|■変数操作: Sys6:ポーズカーソルY (Sys2に足した位置) = 6 * CSelf89[座標倍率Y(x10)]
|●ラベル「戻り先\cself[40]」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
●ラベル地点「戻り先1」 <<<<<<<<<<<<<<<<<<<<<<<<★

■変数操作: Sys0:顔グラフィック番号 = 1 + 0
■ループ開始
|▼ 顔グラフィック番号が-1以下になったら処理待ち状態
|▼ 基本的に、処理が終わったら-1になる
|■条件分岐(変数): 【1】 Sys0:顔グラフィック番号 が -1 以下
|-◇分岐: 【1】 [ Sys0:顔グラフィック番号 が -1 以下 ]の場合↓
||■ウェイト:1 フレーム
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■ウェイト:1 フレーム
|▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
|▼ 表示処理
|▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
|■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ
|-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
||▼ メッセージウィンドウ表示
||●ラベル地点「ウィンドウ表示」 <<<<<<<<<<<<<<<<<<<<<<<<★
||■変数操作: CSelf49[顔グラフィック番号] = Sys0:顔グラフィック番号 + 0
||■条件分岐(変数): 【1】 Sys2:メッセージウィンドウ Y座標 が CSelf61[改:sys2変化] 以外
||-◇分岐: 【1】 [ Sys2:メッセージウィンドウ Y座標 が CSelf61[改:sys2変化] 以外 ]の場合↓
|||■変数操作: CSelf48[直前顔グラ番号] = -1 + 0
|||■
||◇分岐終了◇

||■条件分岐(変数): 【1】 CSelf48[直前顔グラ番号] が CSelf49[顔グラフィック番号] 以外
||-◇分岐: 【1】 [ CSelf48[直前顔グラ番号] が CSelf49[顔グラフィック番号] 以外 ]の場合↓
|||■変数操作: CSelf48[直前顔グラ番号] = CSelf49[顔グラフィック番号] + 0
|||■変数操作: CSelf31[基本表示位置Y] = 20 * CSelf89[座標倍率Y(x10)]
|||■変数操作: CSelf31[基本表示位置Y] += Sys2:メッセージウィンドウ Y座標 - CSelf60[改:sys2初期]
|||■変数操作: CSelf43[画面サイズY] = CSelf89[座標倍率Y(x10)] * 24
|||■変数操作: CSelf43[画面サイズY] += Sys2:メッセージウィンドウ Y座標 - CSelf60[改:sys2初期]
|||■変数操作: CSelf61[改:sys2変化] = Sys2:メッセージウィンドウ Y座標 + 0

|||■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 1 以上
|||-◇分岐: 【1】 [ CSelf49[顔グラフィック番号] が 1 以上 ]の場合↓
||||▼ 顔番号が1以上ならメッセージウィンドウ表示
||||■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]
||||■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 と同じ
||||-◇分岐: 【1】 [ CSelf35[ウィンドウ表示中フラグ] が 0 と同じ ]の場合↓
|||||▼ メッセージウィンドウを新規表示する処理
|||||▼ メッセージウィンドウの表示位置を再設定
|||||■変数操作: CSelf40[戻り先番号] = 2 + 0
|||||●ラベル「文章表示位置設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||||●ラベル地点「戻り先2」 <<<<<<<<<<<<<<<<<<<<<<<<★
|||||▼ 表示されていなければ新規に表示する
|||||■ピクチャ表示:CSelf20[基本ピクチャ番号] [中心]ウィンドウ(CSelf9[ウィンドウ画像ファイル])
         サイズ[CSelf38[サイズX],CSelf39[サイズY]]X:CSelf32[隠し表示位置X]Y:CSelf33[隠し表示位置Y]/
         5(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|||||■
||||◇分岐終了◇
||||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf30[基本表示位置X] Y:CSelf31[基本表示位置Y] /
         5(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf30[基本表示位置X] Y:CSelf31[基本表示位置Y] /
         5(3)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||||■変数操作: CSelf35[ウィンドウ表示中フラグ] = 1 + 0
||||■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 1 + 0
||||■
|||-◇上記以外
||||▼ 表示なし(0)の場合
||||▼ 隠す座標へ移動
||||■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]
||||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] /
         4(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] /
         4(2)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||||■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0
||||■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 1 + 0
||||■
|||◇分岐終了◇
|||▼ ――――――――――――――――――――――――――――――――
|||▼ 顔グラフィックの消去+表示処理
|||▼ ――――――――――――――――――――――――――――――――
|||▼ まず今表示されてる顔グラフィックを消去
|||■変数操作:CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
|||■変数操作:CSelf22[一時ピクチャ番号B] = CSelf20[基本ピクチャ番号] + CSelf91[ピクチャカウンタ最大値]
|||■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A] 〜 CSelf22[一時ピクチャ番号B]
|||■ピクチャ消去:CSelf21[一時ピクチャ番号A] 〜 CSelf22[一時ピクチャ番号B] / 5(0)フレーム
|||■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 2 以上
|||-◇分岐: 【1】 [ CSelf49[顔グラフィック番号] が 2 以上 ]の場合↓
||||▼ 顔番号が2以上なら顔グラフィック表示
||||■DB読込(システム):CSelf8[顔画像ファイル] =
          システムDB[ 顔グラフィック名 : CSelf49[顔グラフィック番号] : 顔画像ファイル ] (24:-:0)
||||■条件分岐(文字): 【1】 CSelf8[顔画像ファイル]が "" 以外
||||-◇分岐: 【1】 [ CSelf8[顔画像ファイル] "" 以外 ]の場合↓
|||||▼
|||||▼ 新しいピクチャのサイズから初期表示座標を算出
|||||▼ 新しいピクチャを表示する
|||||■変数操作: CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
|||||■変数操作: CSelf21[一時ピクチャ番号A] += CSelf90[顔表示用ピクチャカウンタ] + 0
|||||▼ システム設定の メッセージ顔グラフィック 拡大率を反映
|||||■DB読込(ユーザ): CSelf23[拡大率(横)] =
           ユーザDB[ システム設定 : 0 : メッセージ 顔グラフィック倍率 ] (17 : システム基本設定 : 25)
|||||■DB読込(ユーザ): CSelf24[縦拡大率] =
           ユーザDB[ システム設定 : 0 : メッセージ 顔グラフィック倍率 ] (17 : システム基本設定 : 25)
|||||■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A]
|||||■ピクチャ表示:CSelf21[一時ピクチャ番号A] [右下]ファイル(CSelf8[顔画像ファイル])
         X:CSelf44[一時座標X] Y:CSelf45[一時座標Y] / 0(0)フレーム / パターン 同値 / 透 255 /
         表示形式:同値 / 角 同値 / 拡 CSelf23[拡大率(横)]xCSelf24[縦拡大率]% / カラー 同値
|||||■条件分岐(変数): 【1】 CSelf23[拡大率(横)] が 0 と同じ
|||||-◇分岐: 【1】 [ CSelf23[拡大率(横)] が 0 と同じ ]の場合↓
||||||▼ 拡大率0=標準サイズに合わせる
||||||■変数操作+: CSelf10[一時変数A] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
||||||■変数操作+: CSelf11[一時変数B] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(横)
||||||▼ 顔の枠のサイズを計算
||||||■変数操作: CSelf57[顔横サイズ] = 96 * CSelf88[座標倍率X(x10)]
||||||■変数操作: CSelf58[顔縦サイズ] = 96 * CSelf89[座標倍率Y(x10)]
||||||■変数操作: CSelf57[顔横サイズ] /= 10 + 0
||||||■変数操作: CSelf58[顔縦サイズ] /= 10 + 0
||||||▼ 顔の表示を、枠に合わせる場合
||||||■変数操作: CSelf10[一時変数A] = CSelf57[顔横サイズ] * 100
||||||■変数操作: CSelf11[一時変数B] = CSelf58[顔縦サイズ] * 100
||||||■変数操作+: CSelf10[一時変数A] /= ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(横)
||||||■変数操作+: CSelf11[一時変数B] /= ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
||||||■変数操作: CSelf23[拡大率(横)] = CSelf10[一時変数A] + 0
||||||■変数操作: CSelf24[縦拡大率] = CSelf11[一時変数B] + 0
||||||■
|||||◇分岐終了◇
|||||▼ 表示元の座標を計算
|||||■変数操作: CSelf44[一時座標X] = CSelf42[画面サイズX] + 0
|||||■変数操作: CSelf45[一時座標Y] = CSelf43[画面サイズY] + 0
|||||■変数操作+: CSelf10[一時変数A] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
|||||■変数操作: CSelf10[一時変数A] *= CSelf23[拡大率(横)] + 0
|||||■変数操作: CSelf10[一時変数A] /= 100 + 0
|||||■変数操作: CSelf44[一時座標X] += CSelf10[一時変数A] + 0
|||||■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf44[一時座標X] Y:CSelf45[一時座標Y] /
         0(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 /
         拡 CSelf23[拡大率(横)]xCSelf24[縦拡大率]% / カラー 同値
|||||▼ 表示先へと移動
|||||■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] /
         5(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||||■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] /
         5(3)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||||■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] /
         5(5)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||||▼ ピクチャカウンタ+1
|||||■変数操作: CSelf90[顔表示用ピクチャカウンタ] += 1 + 0
|||||■変数操作: CSelf90[顔表示用ピクチャカウンタ] %= CSelf91[ピクチャカウンタ最大値] + 0
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
|▼ 消去処理
|▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
|■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 以外
|-◇分岐: 【1】 [ CSelf35[ウィンドウ表示中フラグ] が 0 以外 ]の場合↓
||■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ
||-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
|||▼ もし開いてる状態なら、数フレーム待って、なければ閉じる。
|||■回数付きループ [ 3 ]回
||||■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ
||||-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
|||||●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||||■
||||◇分岐終了◇
||||■ウェイト:1 フレーム
||||■
|||◇ループここまで◇◇
|||▼ 値を初期化
|||■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 9 + 0
|||■変数操作: CSelf48[直前顔グラ番号] = -1 + 0
|||■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ
|||-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
||||▼ 表示されてない場合だけ顔グラ番号初期化
||||■変数操作: Sys0:顔グラフィック番号 = 1 + 0
||||■
|||◇分岐終了◇
|||▼ 隠す座標へ移動
|||■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]
|||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] /
        4(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] /
        4(2)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||▼ 完全に消えたら表示フラグをオフに
|||■回数付きループ [ 6 ]回
||||■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ
||||-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
|||||●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||||■
||||◇分岐終了◇
||||■ウェイト:1 フレーム
||||■
|||◇ループここまで◇◇
|||▼ 消去する
|||■ピクチャ消去:CSelf20[基本ピクチャ番号] / 0(6)フレーム
|||▼ 顔グラフィックも消去する
|||■変数操作:CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
|||■変数操作:CSelf22[一時ピクチャ番号B] = CSelf20[基本ピクチャ番号] + CSelf91[ピクチャカウンタ最大値]
|||■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A] 〜 CSelf22[一時ピクチャ番号B]
|||■ピクチャ消去:CSelf21[一時ピクチャ番号A] 〜 CSelf22[一時ピクチャ番号B] / 5(0)フレーム
|||▼ ウィンドウが消えたので、次メッセージの待ち時間を元に戻す
|||■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0
|||■変数操作: Sys2:メッセージウィンドウ Y座標 = CSelf60[改:sys2初期] + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇



▼解説(行数は改造設定後の行数です)

44〜52行目の…
|■条件分岐(変数): 【1】 CSelf60[改:sys2初期] が 0 と同じ
|-◇分岐: 【1】 [ CSelf60[改:sys2初期] が 0 と同じ ]の場合↓
||■変数操作: Sys1:メッセージウィンドウ X座標 = 2 * CSelf88[座標倍率X(x10)]
||■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)]
||▼ Ver3.00修正 メッセージウィンドウY座標を微調整
||■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 5
||■変数操作: CSelf60[改:sys2初期] = Sys2:メッセージウィンドウ Y座標 + 0
||■
|◇分岐終了◇
の設定では、セルフ[60]の値が「0」の時に、システム変数[1〜2]の初期化が実行されます。

1回実行すると以降のセルフ[60]は「1以上」になるため、この初期化の処理はゲーム起動時に1回だけ実行します。



82行目の…
■条件分岐(変数): 【1】 Sys2:メッセージウィンドウ Y座標 が CSelf61[改:sys2変化] 以外
-◇分岐: 【1】 [ Sys2:メッセージウィンドウ Y座標 が CSelf61[改:sys2変化] 以外 ]の場合↓
|■変数操作: CSelf48[直前顔グラ番号] = -1 + 0
|■
◇分岐終了◇
の設定は、システム変数[2]の値に変化があった時には「セルフ[48]=-1」にして…
セルフ[48]とセルフ[49]の値が不一致の時 = ピクチャの表示処理を実行
にして、メッセージウィンドウと顔グラフィックの表示を新しいY表示位置に移動させます。



90〜93行目の…
■変数操作: CSelf31[基本表示位置Y] = 20 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf31[基本表示位置Y] += Sys2:メッセージウィンドウ Y座標 - CSelf60[改:sys2初期]
■変数操作: CSelf43[画面サイズY] = CSelf89[座標倍率Y(x10)] * 24
■変数操作: CSelf43[画面サイズY] += Sys2:メッセージウィンドウ Y座標 - CSelf60[改:sys2初期]
は、セルフ[31:基本表示位置Y]はメッセージウィンドウのY表示位置を設定する変数で、
セルフ[43:画面サイズY]は顔グラフィックのY表示位置を設定する変数です。

両方とも通常通りのY表示位置を設定した後に…
Sys2:メッセージウィンドウ Y座標 - CSelf60[改:sys2初期]
で計算された値を加算しています。

この加算設定はY表示位置を修正するためにあり、
例えば「初期のY表示位置=171」で「システム変数[2]=71」にした場合は…
71 - 171 = -100
になり、通常のY表示位置よりも「100ピクセル上に移動」になります。



94行目の…
■変数操作: CSelf61[改:sys2変化] = Sys2:メッセージウィンドウ Y座標 + 0
は、82行目の条件分岐でシステム変数[2]の値の変化のチェックに使います。



240行目の…
■変数操作: Sys2:メッセージウィンドウ Y座標 = CSelf60[改:sys2初期] + 0
は、メッセージウィンドウが消えたら、システム変数[2]の値を初期化する設定です。

システム変数[2]の値を初期化する必要が無い場合は、この240行目の設定は不要です。


▲トップへ戻る▲


  
■マップイベントの設定

サンプルゲームのマップ「サンプルマップA」にいる、
マップイベント[00:夕一(ゆういち)]の文章の表示位置を画面上部に移動する場合は、
マップイベント[00:夕一(ゆういち)]0行目に以下のイベントコマンドを追加してください。

顔グラフィックの設定は動作確認用に記載しています。
顔グラフィックの設定が無くても、Y表示位置は変化します。

【イベントコード表示】
■変数操作: Sys2:メッセージウィンドウ Y座標 = 11 + 0
■変数操作: Sys0:顔グラフィック番号 = 3 + 0

▼動作イメージ



▲トップへ戻る▲


  
■3つの表示位置を登録

上記の「コモン[063]の改造と解説」の設定に、3つの表示位置が簡単に変更できる設定を追加します。




コモンイベント[063:X[共]メッセージウィンドウ]の「入力の数 / 結果を返す」の設定画面を開いて、
数値1」に「下0 中1 上2」を設定してください。





コモンイベント[063:X[共]メッセージウィンドウ]0行目に以下の設定を追加してください。

【イベントコード表示(追加分のみ)】【コモン出力ファイル】
■変数操作+: CSelf62[改:ID取得] = マップイベントID(コモンなら呼び出し元ID)
■条件分岐(変数): 【1】 CSelf62[改:ID取得] が 0 以上
-◇分岐: 【1】 [ CSelf62[改:ID取得] が 0 以上 ]の場合↓
|■変数操作: Sys2:メッセージウィンドウ Y座標 = CSelf60[改:sys2初期] + 0
|■条件分岐(変数): 【1】 CSelf0[下0 中1 上2] が 1 と同じ 【2】 CSelf0[下0 中1 上2] が 2 と同じ
|-◇分岐: 【1】 [ CSelf0[下0 中1 上2] が 1 と同じ ]の場合↓
| |■変数操作: Sys2:メッセージウィンドウ Y座標 -= 8 * CSelf89[座標倍率Y(x10)]
| |■
|-◇分岐: 【2】 [ CSelf0[下0 中1 上2] が 2 と同じ ]の場合↓
| |■変数操作: Sys2:メッセージウィンドウ Y座標 -= 16 * CSelf89[座標倍率Y(x10)]
| |■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇

この追加イベントは、マップイベントからコモンイベント[063:X[共]メッセージウィンドウ]が呼び出した時に、
この条件分岐内のシステム変数[2]の設定変更が実行されます。

なお、コモンイベントの並列実行では「マップID=-1」になるので、この条件分岐内が実行される事はありません。



マップイベントは以下のように設定してください。

【イベントコード表示】
■文章: \f[56]下段表示
■イベントの挿入[名]: ["X[共]メッセージウィンドウ"] <コモンEv 63> / 1
■文章: \f[56]中段表示
■イベントの挿入[名]: ["X[共]メッセージウィンドウ"] <コモンEv 63> / 2
■文章: \f[56]上段表示

初期の表示位置は「下段」になっているので、最初から「下段」で表示する場合は、
0行目に「下段」の表示位置を設定する【イベントの挿入】の設定は不要です。



但し、メッセージウィンドウが消えないと「下段」に戻らないので、
複数のイベントを数珠つなぎで実行している場合で、
前のイベントで「下段」以外の表示位置にしている場合は、イベント処理の最初に…
■イベントの挿入[名]: ["X[共]メッセージウィンドウ"] <コモンEv 63> / 0
■文章: \f[56]下段表示
■イベントの挿入[名]: ["X[共]メッセージウィンドウ"] <コモンEv 63> / 1
■文章: \f[56]中段表示
■イベントの挿入[名]: ["X[共]メッセージウィンドウ"] <コモンEv 63> / 2
■文章: \f[56]上段表示
の設定が必要です。



メッセージウィンドウが消えると自動的に「下段」に戻りますが、240行目の…
■変数操作: Sys2:メッセージウィンドウ Y座標 = CSelf60[改:sys2初期] + 0
を削除している場合は、自動的に「下段」には戻りません。



3つの表示位置の設定を使わず、「マップイベントの設定」で紹介した…
【イベントコード表示】
■変数操作: Sys2:メッセージウィンドウ Y座標 = 11 + 0
■変数操作: Sys0:顔グラフィック番号 = 3 + 0
の設定も問題なく使用する事ができます。


▲トップへ戻る▲



◎関連ページ

◆イベントコマンド【文章の表示】

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