WOLF RPGエディター(ウディタ)/変数【サイトトップへ戻る】
■「セルフ変数」って何?
(更新:2022/11/26)


「セルフ変数」について説明します。


ショートカット
■「セルフ変数」とは?
■変数の値を文章に表示する
■変数呼び出し値
■セルフ変数の使用例
┣◆【使用例】宝箱イベントを作る
┗◆【使用例】パーティ内の平均レベルを算出
■補足

「変数」に関する基本説明は、別ページに記載しています。
【変数の説明を開く】


  
■「セルフ変数」とは?

セルフ変数はマップイベントやコモンイベントごとに用意されている変数です。





セルフ変数は、
各マップイベントに10個の数値系変数
各コモンイベントに95個の数値系変数5個の文字列系変数が用意されています。

▼コモンイベントのセルフ変数の設定画面




マップイベントのセルフ変数はマップごとに保存されるので、
マップ[0]マップイベント[0]のセルフ変数と、
マップ[1]マップイベント[0]のセルフ変数は別々に保存されます。



別のマップにあるマップイベントのセルフ変数の値を呼び出す事はできません。

またやり直しや周回プレイなどで全てのマップイベントのセルフ変数を「0」に戻す必要がある場合は、
マップ移動→セルフ変数初期化→マップ移動→セルフ変数初期化…」と言ったような処理が必要になります。

複数のマップにまたがって変数の値を扱う場合や、一括で変数の値を初期化する必要がある場合は、
セルフ変数ではなく「通常変数(予備変数)」を使ってください。



セルフ変数を使う場合は[Self]と書かれたボタンを押してください。




▲トップへ戻る▲


  
■変数の値を文章に表示する

特殊文字を使う事で、文章ウィンドウやデバッグウィンドウ、ピクチャの表示などで変数の値を表示する事ができます。



以下はセルフ変数の情報を表示する時の特殊文字の一覧です。
なお「変数番号」と書かれた部分は、半角数字で設定してください。

特殊文字 説明
\self[変数番号] 表示設定を実行したマップイベントのセルフ変数を表示します。
マップイベントから呼び出したコモンイベントの中で実行すると、
呼び出し元のセルフ変数が表示されます。
マップイベントから呼び出していないコモンイベントの中で実行した場合は…
1000000−設定した変数番号=表示される数値
の値が表示されます。
▼デバッグ文にセルフ変数[5]を表示する場合
■デバッグ文:\self[5]
\cself[変数番号] 表示設定を実行したコモンイベントのセルフ変数を表示します。
マップイベントで実行すると数値変数の場合は「0」。
文字列変数の場合は「<<ERROR>>」が表示されます。
▼デバッグ文にセルフ変数[12]を表示する場合
■デバッグ文:\cself[12]



★設定例

▼実行中のマップイベントのセルフ変数[3]の値を文章で表示
【イベントコード表示】

■文章:\self[3]


▼マップイベントID[2]のセルフ変数[5]の値を呼び出して文章で表示
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = Ev2のセルフ5 + 0
■文章:\self[0]


▼実行中のコモンイベントのセルフ変数[18]の値をデバッグ文で表示
【イベントコード表示】

■デバッグ文:\cself[18]


▼1つ下のコモンイベントIDのセルフ変数[14]の値を呼び出してデバッグ文で表示
【イベントコード表示】

■変数操作+: CSelf10[呼び出すコモンID] = このコモンイベントID(コモンでなければ-1)
■変数操作: CSelf10[呼び出すコモンID] += 1 + 0
■変数操作: CSelf11[変数呼び出し値] = CSelf10[呼び出すコモンID] * 100
■変数操作: CSelf11[変数呼び出し値] += 15000000 + 14
■変数操作: CSelf12[呼び出した値] = V[CSelf11[変数呼び出し値]] + 0
■デバッグ文:\cself[12](コモンID[\cself[10]]のセルフ[14]の値)


▲トップへ戻る▲


  
■変数呼び出し値

数値系変数の値が百万以上になると「変数呼び出し値」になります。



この「変数呼び出し値」を使う事で、数値系の設定変数で設定できるようになります。

例えば【回数付きループ】のループ回数に変数呼び出し値「1600010」を設定すると、
セルフ変数[10]の値がループ回数になります。



【イベントコード表示】

■回数付きループ [ CSelf10[ループ回数] ]回
|■
◇ループここまで◇◇



以下はセルフ変数の「変数呼び出し値」の一覧です。

変数呼び出し値 説明
1000000+10*Y+X マップイベントのセルフ変数を呼び出す時に使います。
以下の3つの数値を足した物が変数呼び出し値になります。
+1000000
+マップイベントID×10
+セルフ変数(0〜9)
マップイベント[3]セルフ変数[5]の変数呼び出し値は…
+1000000
+30(マップイベントID[3]×10)
+5
の設定によって「1000035」になります。
セルフ変数の対象は現在表示されているマップにあるマップイベントになります。
他のマップにあるマップイベントのセルフ変数は呼び出す事ができません。
1100000+X 実行中のマップイベントのセルフ変数を呼び出す時に使います。
以下の2つの数値を足した物が変数呼び出し値になります。
+1100000
+セルフ変数(0〜9)
マップイベントのセルフ変数[8]の変数呼び出し値は…
+1100000
+8
の設定によって「1100008」になります。
マップイベントからコモンイベントを呼び出した場合、
そのコモンイベントで「1100000+X」を使うと、
呼び出し元のマップイベントのセルフ変数を呼び出す事ができます。
マップイベントから呼び出していないコモンイベントの中で、
例えば「1100005」を実行すると「999995」の値が設定されます。
15000000+100*Y+X 指定したコモンイベントのセルフ変数を呼び出す時に使います。
以下の3つの数値を足した物が変数呼び出し値になります。
+15000000
+コモンイベントID×100
+セルフ変数(0〜99)
コモンイベント[013]セルフ変数[20]の変数呼び出し値は…
+15000000
+1300(コモンイベントID[13]×100)
+20
の設定によって「15001320」になります。
1600000+X 実行中のコモンイベントのセルフ変数を呼び出す時に使います。
以下の2つの数値を足した物が変数呼び出し値になります。
+1600000
+セルフ変数(0〜99)
コモンイベントのセルフ変数[75]の変数呼び出し値は…
+1600000
+75
の設定によって「1600075」になります。



「変数呼び出し値」の使用例は、別ページに記載しています。

【変数呼び出し値の使用例を見る】


▲トップへ戻る▲


  
■セルフ変数の使用例

セルフ変数は基本的にそのセルフ変数を持っているイベントの中で使用します。


  
▼【使用例】宝箱イベントを作る

宝箱イベントを作る場合は…
1ページ目=[セルフ変数[0]=0](宝箱のフタが閉まっている/アイテム取得可能)
2ページ目=[セルフ変数[0]=1](宝箱のフタが開いている/アイテム取得済み)
と言った感じにセルフ変数を使います。

■マップイベント[宝箱]

▼1ページ【イベントコード表示】
グラフィック:フタが閉まっている宝箱
起動条件:決定キーで実行
起動条件変数:なし

■サウンド:SE ファイル[SE/[Action]Switch2_Komori.ogg] 音 100% 周 100% 再生 / 遅延:0フレーム
■変数操作: このEvのセルフ変数0 = 1 + 0
■イベントの挿入[名]:["○アイテム増減"]<コモンEv 0>/1:癒しの水/ 1 /1:あり[単位:〜個]




▼2ページ【イベントコード表示】
グラフィック:フタが開いている宝箱
起動条件:決定キーで実行
起動条件変数:[self0:セルフ変数0]が[1]と同じ

■文章:空っぽだ。


宝箱イベントを複製する場合、マップイベントごと複製してください。

変数はセルフ変数なので、宝箱イベントごとに「別の変数」として扱われるため、
セルフ変数の設定はそのままで問題ありません。


  
▼【使用例】パーティ内の平均レベルを算出

パーティにいる主人公の平均レベルを算出します。

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

■コモンイベント「平均レベル」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 返す値を保存したセルフ変数
返す値 平均レベル コモンセルフ10[数]:平均レベル

■変数操作: CSelf10[平均レベル] = 0 + 0
■変数操作: CSelf11[項目ID] = 1 + 0
■回数付きループ [ 6 ]回
|■DB読込(可変): CSelf12[主人公ID] = 可変DB[ パーティー情報 : 0 : CSelf11[項目ID] ] (6 : メイン設定 : -)
|■条件分岐(変数): 【1】 CSelf12[主人公ID] が 0 以上
|-◇分岐: 【1】 [ CSelf12[主人公ID] が 0 以上 ]の場合↓
| |■DB読込(可変): CSelf10[平均レベル] += 可変DB[ 主人公ステータス : CSelf12[主人公ID] : レベル ] (0 : - : 4)
| |■
|◇分岐終了◇
|■変数操作: CSelf11[項目ID] += 1 + 0
|■
◇ループここまで◇◇
■DB読込(可変): CSelf10[平均レベル] /= 可変DB[ 基本システム用変数 : 4 : 0 ] (18 : 現在パーティー人数 : 数値)
■デバッグ文:平均レベル:\cself[[10]


▲トップへ戻る▲


  
■補足

マップイベントのセルフ変数には名前を付ける事が出来ません。

そのため、セルフ変数の使用内容が分かりにくい時には、コメントを残しておくと良いでしょう。

▼コメント設定例




コモンイベントのセルフ変数は、使用用途ごとに10番単位でグループ化して使った方が良いでしょう。



このように使用用途ごとに区切って使用する事で、
下図のようにセルフ変数を選択する一覧の表示が見やすくなり、作業効率が上がります。



また「ピクチャ番号の設定では常にセルフ変数[20]を使用する」と言った制作者独自のルールを設定しておく事で、
他のコモンイベントから「ピクチャ表示」の設定をコピーして来た時に、
ピクチャの番号設定を修正せずにそのまま利用できるようになり、作業効率が上がります。

実際に基本システムのコモンイベントでは…
セルフ変数[10〜15]=一時保存用
セルフ変数[20〜29]=ピクチャの表示関連
と言ったように独自のルールを設けて、他のコモンイベントからイベントをコピーしてきても、すぐに使えるようにしています。


▲トップへ戻る▲



◎関連ページ

◆「変数」って何?
┣◆「セルフ変数」って何?
┣◆「通常変数」「予備変数」って何?
┣◆「文字列変数」って何?
┣◆「システム変数」「システム文字列」って何?
┃┣◆システム変数[0〜34]の説明
┃┣◆システム変数[35〜76]の説明
┃┣◆システム変数[77〜120]の説明
┃┣◆システム変数[121〜148]の説明
┃┣◆システム文字列[0〜49]の説明
┃┗◆システム文字列[50〜71]の説明
┣◆「変数呼び出し値」「X番の変数呼出」って何?
┃┗◆【使用例】「変数呼び出し値」「X番の変数呼出」
┣◆「乱数」って何?
┃┗◆乱数で一度出力した値を二重に出力させない
┗◆変数の番号や文字列を別のものに置き換える

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