RGDスクリプト構文リファレンス
RGDスクリプトは、Argodeでビジュアルノベルのストーリーを記述するためのコア言語です。シンプルで人間が読める、ビジュアルノベルクリエイターにとって直感的な設計になっています。
基本構造
RGDスクリプトは、.rgd拡張子を持つプレーンテキストファイルです。行ごとに解析され、インデントを使用してコードブロックを定義します。
コメント
#で始まる行はコメントとして扱われ、パーサーによって無視されます。
ラベル
ラベルは、スクリプト内でジャンプできるポイントを定義します。labelキーワードの後にラベル名とコロン(:)を付けて宣言します。
インデント
インデント(通常4スペースを使用)は、labelブロック、menuブロック、条件文などのコードブロックを定義するためにRGDスクリプトで非常に重要です。
label example_block:
# この行は'example_block'の一部です
narrator "インデントはコードブロックを定義します。"
menu:
"オプションA":
# この行は'オプションA'ブロックの一部です
narrator "あなたはAを選びました。"
"オプションB":
# この行は'オプションB'ブロックの一部です
narrator "あなたはBを選びました。"
ダイアログ
ダイアログは、ビジュアルノベルスクリプトで最も一般的な要素です。RGDは、キャラクターダイアログとナレーターダイアログの両方をサポートしています。
キャラクターダイアログ
キャラクターに話させるには、キャラクターの名前(characterステートメントで定義されたもの)の後に、引用符で囲まれたダイアログを入力するだけです。
ナレーターダイアログ
ナレーションや内なる思考の場合、キャラクター名なしで引用符で囲まれたダイアログを入力するだけです。
コマンド
コマンドは、キャラクターの表示、背景の変更、サウンドの再生、UIの制御など、Argodeにアクションを実行させるための特別な命令です。コマンドは通常1行です。
show alice happy at center with fade
scene forest_day with dissolve
play_music "bgm_peaceful.ogg"
ui show "res://ui/main_menu.tscn"
利用可能なコマンドとその使用法の完全なリストについては、コマンドリファレンスを参照してください。
フロー制御
フロー制御ステートメントを使用すると、物語の流れを指示し、分岐パスを作成し、サブルーチンを管理できます。
jump
jumpコマンドは、指定されたラベルに無条件に制御を転送します。スクリプトはそのラベルから実行を続行します。
label start:
narrator "物語の始まりです。"
jump chapter_one
label chapter_one:
narrator "これは第1章です。"
# ... スクリプトはここから続行
callとreturn
callコマンドはサブルーチンを実行するために使用されます。ラベルにジャンプし、そのラベルのブロックが終了するか(またはreturnステートメントに遭遇すると)、制御はcallの直後の行に戻ります。
label start:
narrator "サブルーチンを呼び出しています。"
call my_subroutine
narrator "サブルーチンから戻りました。"
label my_subroutine:
narrator "サブルーチン内です。"
# ... いくつかのアクション
return # オプション、ブロックの終わりで自動的に制御が戻ります
menu
menuステートメントは、プレイヤーに選択肢のリストを提示します。スクリプトはプレイヤーが選択するまで一時停止し、その選択肢に関連付けられたコードブロックを実行します。
label make_a_choice:
narrator "どうしますか?"
menu:
"左に行く":
narrator "あなたは左に行きました。"
jump path_left
"右に行く":
narrator "あなたは右に行きました。"
jump path_right
"ここに留まる":
narrator "あなたはここに留まることにしました。"
jump stay_here
変数と式
Argodeは、ゲームの状態、プレイヤーの選択、その他の動的なデータを保存するための変数をサポートしています。変数は、中括弧{}を使用してダイアログに直接埋め込むことができます。
set player_name = "ヒーロー"
narrator "こんにちは、{player_name}!"
if player_level >= 10:
narrator "あなたは強力な冒険者です。"
変数と式の詳細については、変数と式のリファレンスを参照してください。
定義
定義を使用すると、キャラクター、画像、オーディオ、シェーダーを事前に定義でき、スクリプト全体で簡単にアクセスできます。定義は通常、.rgdファイルの先頭または専用の定義ファイル(例: definitions/characters.rgd)に配置されます。
character alice "アリス" color=#ff69b4
image bg forest_day "res://assets/images/backgrounds/forest_day.png"
audio music peaceful "res://assets/audio/music/peaceful.ogg"
定義に関する包括的なガイドについては、定義リファレンスを参照してください。