Top > コマンド目録 > 変数関連コマンド

変数関連コマンド(Ver6.0.0)

Last-modified: 2018-09-09 (日) 17:53:08


変数(var) Edit

変数 figure = 1
変数 caution = "あぶないよ!"
変数 result += 1
変数 kakuritsu = (100+(random 200))
変数 var1 = vn_sysTextSpeed
変数 var2 = (5+(9*2)/3)
  • 変数を設定し、数値等の設定や計算を行います。
  • 左辺には変数名、右辺には数値・テキスト・式を記述します。中央には演算子を記述し、これによってまさに変数の値が変化することになります。
  • 左辺に設定する変数名には、任意のテキストまたは変数名を使用できます。
    計算・代入の際には、この変数名を用いて対象を指定します。
    下記の変数名は左辺で用いることができる特殊な変数名です。
    • 「vn_slotsPerPage」
      データページにおける1ページごとのセーブ・ロードスロット数を設定します。
      右辺には数値を用います。
      これと下記の「vn_slotPageMax」とを設定することによって、データページという機能を使用することができるようになり、セーブ・ロード画面のスクリプトを簡略化できます。
      項目参照:セーブ機能を実装しよう
    • 「vn_slotPageMax」
      データページのページ数を設定します。
      右辺には数値を用います。
      これと上記の「vn_slotsPerPage」を設定することによって、データページという機能を使用することができるようになり、セーブ・ロード画面のスクリプトを簡略化できます。
      項目参照:セーブ機能を実装しよう
    • 「backlogName」
      バックログに表示する、テキストごとの発言者名を設定します。
      右辺には発言者名を示すテキストを用います。
      • バックログは、テキスト表示の待機状態の解除から次の待機状態に到るまでに表示したテキストをひとまとまりとして捉えます。
        そして、発言者名を設定すると、以降のバックログで表示するテキストは、ひとまとまりごとに発言者名を付加して表示するようになります。
        もしも発言者名を消去したければ、右辺には「"」を2個並べて記述します。
        発言者名を変更したければ、右辺のテキストを変更します。
        サンプルスクリプトでは、「sys_macros.txt」と「textbox.txt」とにおいて、この変数を用いたバックログへの発言者名の設定が行われています。
  • 設定項目「演算子」において使用可能な演算子は以下のとおりです。
    • 「=」
      変数名に対して、右辺の任意の値またはテキストによる置換を行います。
      右辺の値やテキストを形式的に表す名前として、左辺の変数名が用いられることになります。
      同じ変数名に対して予め異なる値やテキストを設定していたとしても、置換によって古いものは無効化されます。
    • 「+=」
      変数名の表す数値に対して、右辺の数値を加算(足し算)します。
    • 「-=」
      変数名の表す数値に対して、右辺の数値を減算(引き算)します。
    • 「*=」
      変数名の表す数値に対して、右辺の数値を乗算(掛け算)します。
    • 「/=」
      変数名の表す数値に対して、右辺の数値を除算(割り算)します。
  • 右辺には、数値・変数名・システム変数名(Ver6.0.0から追加)・式・任意のテキストのいずれかを用いることができます。
    原則として右辺に設定するのは値なので、右辺において変数名とシステム変数名を除く任意のテキストを用いる場合には、先頭と末尾に「"」を付与する必要があります
    下記の変数名は右辺で用いることができる特殊な変数名です。
    • 「random x
      乱数と呼ばれる、設定した範囲内で不規則に決められる整数値を用います。
      「random」はそのまま記述し、「x」に整数値を設定することによって、1~xの範囲で乱数を設定することができます。
      たとえば、コマンド「変数 rate = random 50」においては、変数名「rate」の表す数値が1~50の範囲内のいずれかになります。
      したがって、変数名「rate」の表す数値は「1」かもしれず、「50」かもしれず、「13」かもしれません。「51」にはなりません。
    • 「現在年・現在月・現在日・現在時・現在分・現在秒」
      コマンド「変数」を設定した時点における年月日や時刻を端末から取得し、変数名の表す数値として設定します。
      記述には「現在年」「現在月」「現在日」「現在時」「現在分」「現在秒」を用います。先頭と末尾へ「"」を付与すると、単なる文字列となります。
    • 「undefined」
      式において、まだ値等が設定されていない変数、すなわち存在していない変数に対し、演算子「==」を用いて右辺に「undefined」を記述すると、「true」を返します。
      すでに存在している変数である場合には「false」を返します。
  • 右辺には、システムや動作に関わる変数であるシステム変数の変数名を記述することができます。
    いずれも先頭に「vn_」を持っています。
    システム変数名を左辺に記述して値を直接変更することはできません。個別のコマンドやトラックバーで変更しましょう。
    • 「vn_sysTextSpeed」
      通常進行における、1文字を表示する時間です。ミリ秒単位の値となります。
    • 「vn_sysBgmVolume」
      BGMの音量です。%単位の値となります。
      BGMの音量は主音量を基に設定されるため、実際の音量は“「既定音量」×「主音量(%)」×「BGM音量(%)」”となります。
    • 「vn_sysAutoSpeed」
      自動進行における、1文字を表示する時間です。ミリ秒単位の値となります。
    • 「vn_sysAutoWait」
      自動進行における、テキスト表示・ボイス再生完了後に待機する時間です。ミリ秒単位の値となります。
    • 「vn_sysSfxVolume」
      効果音の音量です。%単位の値となります。
      効果音の音量は主音量を基に設定されるため、実際の音量は“「既定音量」×「主音量(%)」×「効果音音量(%)」”となります。
    • 「vn_sysMasterVolume」
      主音量です。%単位の値となります。
    • 「vn_sysVoiceVolume」
      ボイスの音量です。%単位の値となります。
      ボイスの音量は主音量を基に設定されるため、実際の音量は“「既定音量」×「主音量(%)」×「ボイス音量(%)」”となります。
    • 「vn_sysTextSkipMethod」
      コマンド「文字進行」で設定する値です。
    • 「vn_sysWindowMode」
      コマンド「スクリーン」で設定する値です。
    • 「vn_sysVoicePlayType」
      コマンド「ボイス再生形式」で設定する値です。
  • 右辺には、種々の演算子を用いた式を記述することができます(Ver6.0.0から追加)。
    ビット演算や論理演算も可能となります。
    • 用いるには式の先頭に「(」を、末尾に「)」をそれぞれ記述して式を囲う必要があります。
      「()」を記述すれば、式の中に別の式を入れることができます。その場合は、最も内側の「()」の式から演算が行われます。
    • 演算は左から順に行われます。したがって一般的な四則演算とは異なる結果が出る場合があります。
    • 式において使用可能な演算子は以下のとおりです。
      • 「+」
        算術演算子です。左項へ右項を加えます。
      • 「-」
        算術演算子です。左項から右項を引きます。
      • 「*」
        算術演算子です。左項に右項を掛けます。
      • 「/」
        算術演算子です。左項を右項で割ります。
      • 「>」
        比較演算子です。「より大きい」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「>=」
        比較演算子です。「以上」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「<」
        比較演算子です。「未満」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「<=」
        比較演算子です。「以下」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「==」
        比較演算子です。「等価」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「!=」
        比較演算子です。「非等価」を表します。
        式の判定を行い、成立すれば「true」を、成立しなければ「false」を返します。
      • 「&」
        ビット演算子です。論理積を行います。
        ビットにおいて、ともに1の場合のみ1を返し、それ以外では0を返し、バイトに変換した値を返します。
      • 「|」
        ビット演算子です。論理和を行います。
        ビットにおいて、少なくとも一方に1があれば1を返し、どちらも0の場合には0を返し、バイトに変換した値を返します。
      • 「&&」
        論理演算子です。論理積を行います。
        ともにtrueの場合のみtrueを返し、それ以外ではfalseを返します。
      • 「||」
        論理演算子です。論理和を行います。
        少なくとも一方にtrueがあればtrueを返し、どちらもfalseの場合にはfalseを返します。
      • 「!」
        論理演算子です。排他的論理和を行います。
        falseにはtrueを、trueにはfalseを返します。
  • 通常の変数はゲームの起動中に限って記録・保存され、コマンド「ゲームエンド」によってゲームを終了すれば消去されます
    したがって、変数をコマンド「変数」のみで設定する場合において、次回起動時には前回起動時に存在していた変数がすべて消去されていて、存在しないという状態になります。
    そのようなゲーム終了による変数の消去を回避したい場合には、変数をコマンド「保存変数」「全域変数」で記録させます。
  • 変数は、記号「()」を用いればコマンドの記述に、「{{}}」を用いればテキストの記述にそれぞれ代入することができます
    Ver5.7.0以前ではいずれも「{{}}」で代入されていましたが、Ver6.0.0からは「{{}}」を用いての代入がテキストに限定されました。
    重要な用法で、コマンド「もし」による判定以外では、この用法を採ることになるでしょう。
    • 代入する際には「(変数名)」のように、変数名の先頭と末尾へ括弧を付与します。
      これによって、括弧で囲まれた変数名に設定されている数値または文字列が代入されます。
      たとえば……
      • 例スクリプト文のひとつめで設定した変数名「figure」を用いるとして、コマンド「絵 ch_somebody 100 100 (figure)」を設定します。
        すると、「(figure)」には数値「1」が代入されるので、個体名「ch_somebody」の表示レイヤーは「1」となります。
      • 例スクリプト文のふたつめで設定した変数名「caution」を用いるとして、コマンド「文字 word1 100 300 100 notifymincho.otf 64 "{{caution}}"」を設定します。
        すると、「{{caution}}」には「あぶないよ!」が代入され(先頭と末尾に付与した「"」は代入されません)、表示するテキストは「あぶないよ!」になります。
    • 代入する変数には、コマンド「変数」で設定したものの他に、Light.vn側で用意されている変数を用いることができます。
      • 「vn_saveinfox
        コマンド「セーブ」を適用した時点の年月日および時刻が記録されています。
        末尾の「x」にはスロット番号を記述します。
        項目参照:セーブ機能を実装しよう
      • 「vn_saveinfoStrx
        コマンド「セーブ」を適用した時点において直近に表示したテキストが記録されています。
        末尾の「x」にはスロット番号を記述します。
        項目参照:セーブ機能を実装しよう
      • 「vn_slotPageNum」
        開いているデータページの番号が記録されています。
        セーブ・ロード画面で用います。
        項目参照:セーブ機能を実装しよう
      • 「vn_msg_str」
        コマンド「ダイアログ」において設定したテキストや、ボタンのコマンドとしてコマンド「セーブ」「ロード」「セーブ削除」を設定した場合の既定ダイアログテキストが代入される変数です。
        メッセージスクリプト内で用います。
設定項目記述の種類説明
【必須】変数名命名特定の数値に関連付ける名前
【必須】演算子置換や計算を指定する記号
【必須】数値
または
変数名
または

または
任意の文字列
数値
または
変数名
または

または
テキスト
変数名に対して置換・計算する数値・テキスト

※上記の「使用可能な演算子」を参照してください。

保存変数(datavar) Edit

  • 変数を記録させ、ゲーム終了による変数の消去を回避します。
    設定項目等はコマンド「変数」と同様です。
  • 保存変数は、セーブ時にセーブデータに記録・保存されます
  • 変数をセーブデータ固有のものとして用いるためには、このコマンドを用いることになります(例:セーブデータごとに記録するフラグ)。
設定項目記述の種類説明
【必須】変数名命名特定の数値に関連付ける名前
【必須】演算子置換や計算を指定する記号
【必須】数値
または
変数名
または

または
任意の文字列
数値
または
変数名
または

または
テキスト
変数名に対して置換・計算する数値・テキスト

※上記の「使用可能な演算子」を参照してください。

全域変数(globalvar) Edit

  • 変数を全域変数として記録させ、ゲーム終了による変数の消去を回避します。
    設定項目等はコマンド「変数」と同様です。
  • 全域変数は、フォルダ「SaveData」のファイル「global0.xml」に記録・保存されます
  • ロードをしない場合でも用いる変数を設定するためには、このコマンドを用いることになります(例:システムの設定項目に代入する値)。
設定項目記述の種類説明
【必須】変数名命名特定の数値に関連付ける名前
【必須】演算子置換や計算を指定する記号
【必須】数値
または
変数名
または

または
任意の文字列
数値
または
変数名
または

または
テキスト
変数名に対して置換・計算する数値・テキスト

※上記の「使用可能な演算子」を参照してください。

もし(if) Edit

もし (figure == 1) ジャンプ niwaka
もし (result >= 60) ジャンプ pass 違ったら ジャンプ failure
もし ((udv == undefined) && (1 != 2)) スクリプト set.txt both 違ったら スクリプト set.txt neither
  • 変数を条件として用いて、合致する場合と合致しない場合のそれぞれにおける処理を設定します。
    設定項目は「条件式」と「処理」に大別されます。
  • 「条件式」は「条件に用いる変数」「演算子」「条件となる要素」の3つで構成されています。
    これらを順に記述し、先頭に「(」を、末尾に「)」をそれぞれ記述して囲むことで条件式となります。
    • 「条件に用いる変数」には、変数名を記述します。
    • 「条件となる要素」には、数値・式・テキスト(先頭と末尾への「"」の付与が必要)を記述します。
    • 条件式において用いる演算子は、「true」または「false」を返す演算子、すなわち比較演算子と論理演算子です。
      • 「==」
        “左辺の変数の持つ値等と、右辺の値等が同じであること”が条件になります。
        「=」を2個連続で用います。1個だけにしないよう気をつけましょう。
      • 「!=」
        “左辺の変数の持つ値等と、右辺の値等が異なっていること”が条件になります。
      • 「>=」
        “左辺の変数の持つ値が、右辺の値以上であること”が条件になります。
      • 「>」
        “左辺の変数の持つ値が、右辺の値よりも大きいこと”が条件になります。
      • 「<=」
        “左辺の変数の持つ値が、右辺の値以下であること”が条件になります。
      • 「<」
        “左辺の変数の持つ値が、右辺の値よりも小さいこと”が条件になります。
      • 「&&」
        “左辺と右辺がともに「true」であること”が条件になります。
      • 「||」
        “左辺と右辺の少なくとも一方が「true」であること”が条件になります。
  • 「処理」は「条件合致時の処理」「違ったら」「条件不合致時の処理」の3つで構成されています。
    • 「条件合致時の処理」には、設定項目「条件式」で設定した条件に合致する場合(条件式が「true」を返す場合)において適用するコマンドを設定します。
    • 「条件不合致時の処理」には、設定項目「条件式」で設定した条件に合致しない場合(条件式が「false」を返す場合)において適用するコマンドを設定します。
  • 設定項目「違ったら」以降を記述しない場合は、条件不合致時には次行からスクリプトの読込みを再開します
設定項目記述の種類説明
【必須】条件式条件に用いる式
【必須】条件合致時コマンドコマンド条件合致時に適用するコマンド
違ったら設定項目の語句
(違ったら)
条件不合致時に適用するコマンドを設定する宣言
条件不合致時コマンドコマンド条件不合致時に適用するコマンド