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


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


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

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


  
■「文字列変数」とは?

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



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





変数の数はシステム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のセルフ変数0 = 15021505 + 0<「データを呼ばない」にチェック
■文字列操作:V[このEvのセルフ変数0] = "あいうえお"<「代入先を変数で指定」で設定



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

変数呼び出し値 説明
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のセルフ変数0 = 15021505 + 0
■変数操作: V[このEvのセルフ変数0] = このEvのセルフ変数1 + 0

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

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


▲トップへ戻る▲


  
■使用例

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


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

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

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

【イベントコード表示】

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


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

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

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



今回は「クエスト選択」をイメージして設定しています。

クエストごとに予備変数[1]を1つずつ割り当てて、そのクエストをクリアしたら、
そのクエストに割り当てた予備変数の値を「1」にすると、クリアしたクエスト名が選択肢から消えます。



例えば最初に3つのクエストが表示されている状態でクエスト「スライム10匹討伐」をクリアした場合は…
■変数操作: V1-1[スライム10匹] = 1 + 0
を実行して、クエスト「スライム10匹討伐」に割り当てた予備変数の値を「1」(クリアした)にすると、
選択肢で「スライム10匹討伐」が表示されなくなります。


【イベントコード表示】

■マップイベント「依頼人」

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

■文字列操作:S1[選択肢1] = ""
■文字列操作:S2[選択肢2] = ""
■文字列操作:S3[選択肢3] = ""
■条件分岐(変数): 【1】 V1-0[薪拾い] が 0 と同じ
-◇分岐: 【1】 [ V1-0[薪拾い] が 0 と同じ ]の場合↓
|■文字列操作:S1[選択肢1] = "薪拾い"
|■
◇分岐終了◇
■条件分岐(変数): 【1】 V1-1[スライム10匹] が 0 と同じ
-◇分岐: 【1】 [ V1-1[スライム10匹] が 0 と同じ ]の場合↓
|■文字列操作:S2[選択肢2] = "スライム10匹討伐"
|■
◇分岐終了◇
■条件分岐(変数): 【1】 V1-2[殺人バチの巣] が 0 と同じ
-◇分岐: 【1】 [ V1-2[殺人バチの巣] が 0 と同じ ]の場合↓
|■文字列操作:S3[選択肢3] = "殺人バチの巣を撤去"
|■
◇分岐終了◇
■文章選択肢:/ 【1】\s[1] / 【2】\s[2] / 【3】\s[3] / 【4】キャンセル
-◇選択肢:【1】 \s[1] の場合↓
|■文章:南の森へ行って薪を10本拾ってくるだけだ。
|■
-◇選択肢:【2】 \s[2] の場合↓
|■文章:東にある沼地でスライムを10匹倒して欲しい。
|■
-◇選択肢:【3】 \s[3] の場合↓
|■文章:北の山小屋にあるハチの巣を撤去してもらいたい。
|■
-◇選択肢:【4】 キャンセル の場合↓
|■
◇分岐終了◇



動作テストをする場合は、選択肢を選んだらすぐに「クエストをクリアした」にすれば、
「クリアすると徐々に選択肢の項目が減っていく」と言った動作テストができるでしょう。

【イベントコード表示】

■マップイベント「依頼人」

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

■文字列操作:S1[選択肢1] = ""
■文字列操作:S2[選択肢2] = ""
■文字列操作:S3[選択肢3] = ""
■条件分岐(変数): 【1】 V1-0[薪拾い] が 0 と同じ
-◇分岐: 【1】 [ V1-0[薪拾い] が 0 と同じ ]の場合↓
|■文字列操作:S1[選択肢1] = "薪拾い"
|■
◇分岐終了◇
■条件分岐(変数): 【1】 V1-1[スライム10匹] が 0 と同じ
-◇分岐: 【1】 [ V1-1[スライム10匹] が 0 と同じ ]の場合↓
|■文字列操作:S2[選択肢2] = "スライム10匹討伐"
|■
◇分岐終了◇
■条件分岐(変数): 【1】 V1-2[殺人バチの巣] が 0 と同じ
-◇分岐: 【1】 [ V1-2[殺人バチの巣] が 0 と同じ ]の場合↓
|■文字列操作:S3[選択肢3] = "殺人バチの巣を撤去"
|■
◇分岐終了◇
■文章選択肢:/ 【1】\s[1] / 【2】\s[2] / 【3】\s[3] / 【4】キャンセル
-◇選択肢:【1】 \s[1] の場合↓
|■文章:南の森へ行って薪を10本拾ってきて欲しい。
|■変数操作: V1-0[薪拾い] = 1 + 0
|■
-◇選択肢:【2】 \s[2] の場合↓
|■文章:東にある沼地でスライムを10匹倒して欲しい。
|■変数操作: V1-1[スライム10匹] = 1 + 0
|■
-◇選択肢:【3】 \s[3] の場合↓
|■文章:北の山小屋にあるハチの巣を撤去してもらいたい。
|■変数操作: V1-2[殺人バチの巣] = 1 + 0
|■
-◇選択肢:【4】 キャンセル の場合↓
|■
◇分岐終了◇


▲トップへ戻る▲


  
■補足

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


▲トップへ戻る▲



◎関連ページ

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

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