コンテンツにスキップ

変数と式のリファレンス

Argodeの変数は、ビジュアルノベル全体で動的なデータを保存および管理できます。これには、プレイヤーの選択、キャラクターのステータス、ゲームフラグ、およびゲームプレイ中に変化するその他の情報が含まれます。

基本的な変数の使用法

変数はsetコマンドを使用して宣言および値を割り当てます。

setコマンド

setコマンドは変数に値を割り当てます。変数が存在しない場合は作成されます。setコマンドは辞書のキー代入のためのドット記法もサポートしており、ネストしたデータ構造の操作がより簡単になります。

基本構文:

set <変数名> = <値>

ドット記法構文:

set <辞書名>.<キー> = <値>
set <辞書名>.<ネストキー>.<サブキー> = <値>

例:

# 異なるデータ型を設定
set player_name = "アリス"
set player_level = 1
set game_progress = 0.5
set tutorial_completed = true

# 変数は更新可能
set player_level = player_level + 1

# 辞書キーのドット記法(新機能!)
set player.name = "アリス"
set player.level = 1
set player.stats.hp = 100
set player.stats.mp = 50

# 自動辞書作成 - 辞書の事前定義は不要
set character.info.age = 25
set character.info.gender = "female"

サポートされるデータ型

Argodeの変数は一般的なデータ型をサポートしています。

  • 文字列: 二重引用符("")で囲まれたテキスト。
  • 整数: 整数(例: 1100-5)。
  • 浮動小数点数: 小数(例: 1.53.140.0)。
  • ブール値: trueまたはfalse

変数へのアクセス

変数はダイアログ内およびコマンドのパラメータとしてアクセスできます。

ダイアログ内

ダイアログ内に変数の値を直接表示するには、変数名を中括弧{}または角括弧[]で囲みます。どちらの記法もサポートされています。

narrator "ようこそ、{player_name}!あなたはレベル{player_level}です。"
narrator "ようこそ、[player_name]!あなたはレベル[player_level]です。"

# ドット記法での辞書値へのアクセス
narrator "こんにちは、{player.name}!あなたのHPは{player.stats.hp}です。"

# 配列アクセスもサポート
narrator "あなたの最初のアイテムは{inventory[0]}です。"

コマンド内

変数はコマンドパラメータの値として使用できます。変数の現在の値が代入されます。

set target_x = 500
show character_name at x={target_x} y=200

複雑なデータ型: 配列と辞書

Argodeは、専用のコマンドを使用して、より複雑なデータ構造である配列と辞書もサポートしています。

配列(set_array

配列は順序付けられた値のコレクションです。set_arrayコマンドを使用して配列変数を作成または更新します。

構文:

set_array <変数名> [値1, 値2, ...]

例:

set_array inventory ["剣", "盾", "ポーション"]
narrator "あなたの最初のアイテムは{inventory[0]}です。"

辞書(set_dictとドット記法)

辞書(またはマップ/ハッシュテーブル)は、キーと値のペアのコレクションです。従来のset_dictコマンドまたはsetコマンドでのより直感的なドット記法を使用して辞書を作成できます。

従来の構文:

set_dict <変数名> {キー1: 値1, キー2: 値2, ...}

ドット記法構文(推奨):

set <辞書名>.<キー> = <値>

例:

# 従来の方法(まだサポート)
set_dict player_stats {"name": "ヒーロー", "hp": 100, "mp": 50}

# 新しいドット記法(推奨)
set player.name = "ヒーロー"
set player.hp = 100
set player.mp = 50

# 自動ネスト辞書作成
set player.stats.strength = 15
set player.stats.agility = 12
set player.inventory.weapons.sword = "鋼の剣"

narrator "{player.name}はHP{player.hp}です。"
narrator "武器: {player.inventory.weapons.sword}"

ドット記法の利点: - 事前定義不要: 辞書とネスト構造が自動的に作成される - 直感的な構文: 個々の辞書キーを代入するより自然な方法 - 後方互換性: 既存のset_dictコマンドは引き続き動作 - 柔軟なネスト: 任意レベルのネスト辞書をサポート

条件ロジック

ifelifelseステートメントを使用して、変数の値に基づいてストーリーの流れを制御できます。

ifelifelse

if player_level >= 10:
    narrator "あなたはベテランの冒険者です!"
elif player_level >= 5:
    narrator "順調に進んでいますね。"
else:
    narrator "あなたはまだ旅を始めたばかりです。"

比較演算子

  • == (等しい)
  • != (等しくない)
  • < (より小さい)
  • > (より大きい)
  • <= (以下)
  • >= (以上)

論理演算子

  • and
  • or
  • not
if player_level >= 5 and has_sword:
    narrator "次の挑戦の準備ができています。"

ベストプラクティス

  • 分かりやすい名前: 変数には明確で分かりやすい名前を使用します(例: player_healthの代わりにhp)。
  • 一貫性: プロジェクト全体で一貫した命名規則を維持します。
  • 競合の回避: 重要なデータを誤って上書きしないように、変数名に注意します。

変数を理解することは、Argodeで動的で応答性の高いビジュアルノベルを作成するための鍵です。