WOLF RPGエディター(ウディタ)/変数【サイトトップへ戻る】
■「文字列変数」って何?
(更新:2024/05/05)


「文字列変数」について解説します。


ショートカット
■「文字列変数」とは?
■文字列変数の文字列を文章に表示する
■変数呼び出し値
■【使用例】パスワードの入力
■【使用例】選択項目が減っていく選択肢
■補足

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


  
■「文字列変数」とは?

「文字列変数」は何らかの文字列を保存する時に使います。



文字列変数の名前やデータ数の増減はシステムデータベースで設定します。





変数の数はシステムDB[4:文字列変数名]の場合は、最大1万個まで使用する事ができます。

但し、あまりデータ数を多くすると【文字列操作】などの設定画面で処理落ちが発生します。

1000以上などと大量に増やす場合は、増やした後に【文字列操作】などの設定画面を開いて、
処理落ちが無いかどうかを確認してください。

▼変数を増やす場合は「データ数の設定」をクリック!




コモンイベントのセルフ変数の中にも文字列変数が5個用意されています。





可変DBユーザーDBにも文字列変数の設定が可能です。




▲トップへ戻る▲


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

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



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

特殊文字 説明
\cself[変数番号] コモンイベントのセルフ変数を表示します。
マップイベントで実行すると「<<ERROR>>」が表示されます。
▼デバッグ文にセルフ変数[5]を表示する場合
■デバッグ文:\cself[5]
\s[変数番号] システムDB[4:文字列変数名]の文字列を表示します。
▼デバッグ文に文字列変数[9]を表示する場合
■デバッグ文:\s[9]
\udb[タイプ:データ:項目] ユーザーDBの情報を表示します。
▼デバッグ文にユーザーDB[2:アイテム]のデータ[3]の
 項目[0:アイテム名]を表示する場合

■デバッグ文:\udb[2:3:0]
ウディタのサンプルゲームの場合「魔力の水」と表示。
\cdb[タイプ:データ:項目] 可変DBの情報を表示します。
▼デバッグ文に可変DB[0:主人公ステータス]のデータ[12]の
 項目[1:肩書き]を表示する場合

■デバッグ文:\cdb[0:12:1]
ウディタのサンプルゲームの場合「案内人」と表示。


▲トップへ戻る▲


  
■変数呼び出し値

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



この「変数呼び出し値」を使う事で、
例えば指定したコモンイベントの文字列タイプのセルフ変数に文字列を設定する事ができます。

▼コモンイベント[215]のセルフ変数[5]に「あいうえお」の文字列を設定
【イベントコード表示】

■変数操作: このEvのSelf0 = 15021505 + 0<「データを呼ばない」にチェック
■文字列操作:V[このEvのSelf0] = "あいうえお"<「代入先を変数で指定」で設定



以下は文字列変数の呼び出し値の一覧です。

変数呼び出し値 説明
15000000+100*Y+X 指定したコモンイベントのセルフ変数を呼び出す時に使います。
以下の3つの数値を足した物が変数呼び出し値になります。
+15000000
+コモンイベントID×100
+セルフ変数(0〜99)
コモンイベント[013]セルフ変数[6]の変数呼び出し値は…
+15000000
+1300(コモンイベントID[13]×100)
+6
の設定によって「15001306」になります。
1600000+X 実行中のコモンイベントのセルフ変数を呼び出す時に使います。
以下の2つの数値を足した物が変数呼び出し値になります。
+1600000
+セルフ変数(0〜99)
コモンイベントのセルフ変数[5]の変数呼び出し値は…
+1600000
+5
の設定によって「1600005」になります。
3000000+X システムDB[4:文字列変数名]の文字列を呼び出す時に使います。
以下の2つの数値を足した物が変数呼び出し値になります。
+3000000
+変数番号(0〜9999)
文字列変数[18]の変数呼び出し値は…
+3000000
+18
の設定によって「3000018」になります。
9900000+X システムDB[5:システム文字列]の変数を呼び出す時に使います。
以下の2つの数値を足した物が変数呼び出し値になります。
+9900000
+変数番号(0〜54)
システム文字列[25]の変数呼び出し値は、
+9900000
+25
の設定によって「9900025」になります。
1000000000(10AABBBBCC) ユーザーDBの変数を呼び出す時に使います。
以下の4つの数値を足した物が変数呼び出し値になります。
+1000000000
+タイプID×1000000
+データID×100
+項目ID(0〜99)
ユーザーDB[タイプ2:アイテム][データ4:復活の薬]
[項目1:説明文[2行まで可]]の変数呼び出し値は…
+1000000000
+2000000 (タイプID[2]×1000000)
+400 (データID[4]×100)
+1 (項目ID[19])
の設定によって「1002000401」になります。
なお、この呼び出し値を使ってユーザーDBの情報を書き換える事ができますが、
書き換えた情報はセーブされませんので、セーブデータをロードすると、
元の設定に戻ります。
1100000000(11AABBBBCC) 可変DBの変数を呼び出す時に使います。
以下の4つの数値を足した物が変数呼び出し値になります。
+1100000000
+タイプID×1000000
+データID×100
+項目ID(0〜99)
可変DB[18:基本システム用変数]
データ[90:[Lvup]習得技能[文字列]][項目1:文字列]の変数呼び出し値は…
+1100000000
+18000000 (タイプID[18]×1000000)
+9000 (データID[90]×100)
+1 (項目ID[1])
の設定によって「1118009001」になります。
1300000000(13AABBBBCC) システムDBの変数を呼び出す時に使います。
以下の4つの数値を足した物が変数呼び出し値になります。
+1300000000
+タイプID×1000000
+データID×100
+項目ID(0〜99)
システムDB[タイプ1:BGMリスト]
データ[2]項目[0:ファイル名]の変数呼び出し値は…
+1300000000
+1000000 (タイプID[1]×1000000)
+200 (データID[2]×100)
+0 (項目ID[0])
の設定によって「1301000200」になります。
通常変数、予備変数、文字列変数、システム変数、システム文字列などは、
それぞれ専用の変数呼び出し値を利用してください。



「変数呼び出し値」で指定した文字列変数に数値タイプの変数の値を設定する場合は、
イベントコマンド【文字列操作】を使用して設定してください。

以下はコモンイベント[215]セルフ変数[5]に、
マップイベントのセルフ変数[1]の値を設定する時の設定例です。

▼この設定ではエラーが発生します。
【イベントコード表示】

■変数操作: このEvのSelf0 = 15021505 + 0
■変数操作: V[このEvのSelf0] = このEvのSelf1 + 0

▼このような設定にしてください。
【イベントコード表示】

■変数操作: このEvのSelf0 = 15021505 + 0
■文字列操作:V[このEvのSelf0] = "\self[1]"


▲トップへ戻る▲


    
■【使用例】パスワードの入力

キーボードで入力した文字を文字列変数に保存し、
入力したパスワードが正しいかどうかを判断する処理の設定例です。

今回は「あいうえお」が正しいパスワードとします。

【イベントコード表示】

■文字列操作:S1[パスワード] = キーボード入力 10文字 [キャンセル可]
■条件分岐(文字): 【1】 S1[パスワード]が "" と同じ
         【2】 S1[パスワード]が "あいうえお" と同じ
-◇分岐: 【1】 [ S1[パスワード] "" と同じ ]の場合↓
|■文章:パスワード入力をキャンセルしました。
|■
-◇分岐: 【2】 [ S1[パスワード] "あいうえお" と同じ ]の場合↓
|■文章:ロックを解除しました。
|■変数操作: V1-0[扉(1=開く)] = 1 + 0
|■
-◇上記以外
|■文章:パスワードが違います。
|■
◇分岐終了◇


▲トップへ戻る▲


  
■【使用例】選択項目が減っていく選択肢

イベントコマンド【選択肢】の選択肢の表示仕様には、
文字列が何も設定されていない項目は表示されない」と言った仕様があります。

この仕様を利用して、選択肢の項目を文字列変数で表示し、
ある条件を満たすと文字列変数に何も文字列を設定しないようにして、その項目が表示されないようにする事ができます。



例えばサンプルゲームのサンプルマップAには、最初は選択肢に2つの選択項目があり、
1つ目の項目を選択すると、次からは1つの選択項目しか表示されなくなる設定例があります。

技を習得

黄色の部分が文字列変数を使っている設定
■マップイベント「09:コック(パン屋)」

▼ ―――――――――――――――――――――――――――
▼ このイベントは、通常変数V0 が1になっていないと
▼ 表示されません(左の起動条件で設定されています)。
▼ ―――――――――――――――――――――――――――
■文章:「やあ、パンを焼こうと思ってるんだけど、\n ちょっと食べていかないかい?
▼ まだ新コマンドを覚えてなかったら、文字列変数0番に文字を入れる。
▼ もし覚えてたら選択肢を空のままにする(その選択肢が出なくなる)
■イベントの挿入: このEvのSelf1 =
          コモン26:[ ▲戦闘コマンド有無の判定 ] / 12:ウルファール / -1:どこかに / 12:全体攻撃
■条件分岐(変数): 【1】 このEvのSelf1 が 0 と同じ 【2】 このEvのSelf1 が 1 以上
-◇分岐: 【1】 [ このEvのSelf1 が 0 と同じ ]の場合↓
|▼ 全体アタックを覚えてない(0の場合)なら、
|▼ 「ここで食べます」の選択肢を表示
|■文字列操作:S0[[サンプル]一時文字列] = "ここで食べます(技を習得)"
|■
-◇分岐: 【2】 [ このEvのSelf1 が 1 以上 ]の場合↓
|▼ 覚えている(1以上)なら表示しない
|▼ (文字列を空っぽにすると選択肢に表示されなくなります)
|■文字列操作:S0[[サンプル]一時文字列] = ""
|■
◇分岐終了◇
▼ 選択肢表示
■文章選択肢:/ 【1】\s[0] / 【2】お持ち帰りでお願いします
-◇選択肢:【1】 \s[0] の場合↓
|▼ 「ここで食べます」の場合
|■文章:「よーし、ちょっと待っててくれよ!
|■文章:ジュッ、シューゥゥゥ、ジュッジュッ
|■文章:「はい、一丁あがり!\n これを食べれば新しいコマンドが使えるよ!
|■サウンド:SE ファイル[SE/System_Get2_wolf.ogg] 音 100% 周 100% (0 チャンネル) 再生 / 遅延:0フレーム
|■文章:ウルファールは「全体アタック」を覚えた!\nHPを5使って敵全体に攻撃するコマンドだ!
|▼ 戦闘コマンドを習得
|■イベントの挿入:コモン13:[ ○戦闘コマンドの変更 ]/ 12:ウルファール/ -10:空き欄(前方から)/ 12:全体攻撃
|■
-◇選択肢:【2】 お持ち帰りでお願いします の場合↓
|▼ お店の処理
|■イベントの挿入:コモン33:[【1】お店 初期化 ]
|■イベントの挿入:コモン34:[【2】お店 商品の追加 ]/ 1:アイテム[A]/ 17:おいしいパン/ -1:<なし>/-1:<なし>
|■イベントの挿入:コモン35:[【3】お店処理 実行 ] / 2:買いのみ
|■
-◇キャンセルの場合
|■
◇分岐終了◇


▲トップへ戻る▲


  
■補足

文字列変数に設定できる文字数に制限はありませんが、
数十万文字などの大量の文字を保存すると、文字列を操作する時に処理落ちが発生します。


▲トップへ戻る▲



◎関連ページ

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

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