メインコンテンツへスキップ

変数

Mahiru約2分

変数

注意

変数システムを使用する前に、シーンジャンプと分岐ジャンプの使い方を理解しておかないと、混乱する可能性がありますので、注意してください。

変数の使い方

変数を設定する:

setVar:a=1; // 数字を設定可能
setVar:a=true // 真偽値を設定可能
setVar:a=キャラクター名 // 文字列を設定可能

乱数を設定する場合は、random() を使用してください。

setVar:a=random();

乱数は0から1までの数字になります。乱数の範囲を指定したい場合は、算術演算を行う必要があります。例えば、5から10までの乱数を設定したい場合は、次のように演算する必要があります。

setVar:a=5+a*5;

以前に他の変数を定義している場合は、変数を設定する際にそれらを使用することもできます。

setVar:a=1;
setVar:b=a+1;

条件付き実行

文の後に -when=(condition) パラメータを追加すると、現在の文を実行するかどうかを条件で判断することができます。

例えば:

setVar:a=1;
; // a が 1 より大きい場合、シーン 1 にジャンプする
changeScene:1.txt -when=a>1;
; // a が 1 の場合のみジャンプする。等号演算子は == に注意
changeScene:2.txt -when=a==1;
; // a が 1 より小さい場合、上の文は実行されず、当然この文が実行される
changeScene:3.txt;

ヒント

= は代入演算子であり、条件判断には使用できません。== は等号演算子です。

どの文にも -when パラメータを追加して、実行するかどうかを制御することができます。-when パラメータと jumpLabel callScene changeScene を組み合わせることで、条件付きのフロー制御を実現することができます。

ユーザー入力の取得

getUserInput 命令を使用してユーザー入力を取得します。例えば:

getUserInput:name -title=あなたの名前を教えてください -buttonText=確認; ユーザー入力を name 変数に書き込む

ここで、title パラメータはプロンプトのテキストで、buttonText は確認ボタンのテキストです。

変数補間

{} 構文を使用して文の中で変数補間を行い、変数を文に挿入することができます。例えば:

setVar:name=WebGAL;
setVar:engine=WebGAL;
{name}: {engine} へようこそ!これは、まったく新しいウェブベースのビジュアルノベルエンジンです。;

永続変数(グローバル変数)

WebGAL の通常の変数はセーブデータに依存します。つまり、どの変数も現在のゲームシーンにのみ存在し、セーブデータに保存され、ロードデータによって復元されるだけです。

作者がマルチエンディングを設定したい場合に問題が発生する可能性があるため、ゲーム全体で有効な永続(グローバル)変数が用意されています。一度設定すると、ユーザーがすべてのデータを消去しない限り、ゲーム全体で有効になります。

-global パラメータを追加すると、永続(グローバル)変数を設定することができます。

setVar:a=1 -global;

これにより、セーブデータの読み込みによって変更されない変数が設定されます。

使用例:

jumpLabel:turn-2 -when=a>0;
setVar:a=1 -global;
1周目;
changeScene:一周目ストーリー.txt;
label:turn-2;
2周目;
changeScene:二周目ストーリー.txt;

高级用法(>=4.5.4

組み込み変数は、構成変数の変更や、組み込み変数に基づいて論理的に実行して条件を指定するなど、より高度な操作に使用します。

WebGAL には現在、stageuserData の 2 つの組み込み変数フィールドがあります。

ヒント

stage はランタイム組み込み変数で、userData はアーカイブ組み込み変数です。

stageはWebGalエディタの下のstateタブにあり、userDataは開発者ツールのindexedDBで表示できます。

それらにアクセスするには $ を使用します (例: BGM の値を取得します)。

setVar:a=($stage.bgm.volume);
WebGAL:現在のBGMボリュームは、以下の通りです{a};

もちろん、会話で直接使用することもできます:

WebGAL:現在のBGMボリュームは、以下の通りです{$stage.bgm.volume};

注意

括弧付きラッパーは、単一値の変数を取得するために必要ですが、数学には必要ありません。

また、config.txt のグローバル変数にもアクセスできます:

setVar:title=(Game_name);
WebGAL:現在のゲームのタイトルは次のとおりです{title};

変更も例外ではなく、ゲームのタイトルを新しいゲームのタイトルに変更する場合、setVar の変数名には変更する変数名を設定する必要があります。

globalパラメータを追加して、構成変数を変更していることを示します:

setVar:Game_name=新しいゲームタイトル -global;
WebGAL:現在のゲームのタイトルは次のとおりです{Game_name};

注意

global を付けないとゲーム内変数に代入されるので、global パラメータを使うタイミングに注意してください。

ヒント

変更可能な元の構成変数 Title_imgTitle_bgmGame_nameGame_key
回復したい場合は、ゲームオプションのすべてのデータを消去を使用して回復できます。

もちろん、config.txtでカスタム構成変数を作成することもできます。たとえば、バージョン番号を作成します:

Game_name:欢迎使用WebGAL!;
Game_key:f60ad5725c1588;
Title_img:WebGAL_New_Enter_Image.png;
Title_bgm:s_Title.mp3;
Textbox_theme:imss;
; バージョン番号を増やす
version:1;

次に、スクリプトでそれを取得して変更できます:

setVar:v=(version);
WebGAL:現在のバージョン番号は{v};
setVar:version=version*2 -global;
WebGAL:変更された現在のバージョン番号は次のとおりです{version};

注意

config.txtは、特別なシンボルとしてまだ逃れられていません。