「スクリプト」ではなく「演出台本」
RS Studio のスクリプト言語 VNScript は、 プログラミング言語というよりも、演出台本に近い存在です。 小説を書く感覚で、画面の動き・音・文字を制御できます。
設計の出発点は「プログラマーでない人が読んでも意味が分かる」こと。 そのため、コマンドは日本語の動作指示に近い命名を心がけました。
コマンド体系
画面演出
# 背景の切り替え
bg school_rooftop # 背景を学校の屋上に
bg sunset_beach
fade in 2.0 # 2秒かけてフェードで切り替え
# キャラクター表示
show heroine smile 200 0 # ヒロインを笑顔で(200, 0)に表示
show heroine sad 200 0
fade in 1.0 # 悲しい顔に1秒でフェード
テキスト表示
# セリフ — 話者名とテキストを分けて記述
しるふぁ "おはよう。今日もいい天気だね。"
# 地の文 — (ナレーション)
"窓の外では、桜の花びらが風に舞っている。"
# テキスト速度の制御
config text speed 80 # 1文字80ミリ秒で表示
音声・BGM
# BGMの再生
bgm play morning_theme
bgm play battle_theme
fade in 2.0 # 2秒かけてフェードイン
# 効果音
se play door_open
se play thunder # 雷の音
RestoreState — 途中再開の魔法
ビジュアルノベルの開発中、スクリプトの途中からプレビューしたいことは非常に多いです。 しかし「最初から再生して早送り」では時間がかかりすぎます。
RS Studio では RestoreState という仕組みで、 スクリプトの先頭から指定行まで高速スキャンします。
- 復元するコマンド:
bg,bgm,show,config,set(変数代入) - スキップするコマンド:
say,wait,fade,se, アニメーション系
これにより、どのシーンからでも瞬時にプレビューが可能になります。 エディタ上でダブルクリックした行で、背景・キャラクター・BGMの状態が正確に再構築されるのです。
スクリプトのどこでも、ダブルクリックするだけで即座にプレビュー。 これが VN Studio の開発体験です。
フロー制御
VNScript は分岐やサブルーチンもサポートしています:
# 選択肢
branch "海に行く" beach_route "山に行く" mountain_route
# ラベルとジャンプ
*beach_route
bg beach_sunny
しるふぁ "わかります!やっぱり海はいいですよね。"
jump common_end
# サブスクリプトの呼び出し
call flashback.scn # 別ファイルを実行して戻ってくる
次回予告
Vol.3 では、このスクリプトが制御する レイヤーシステムの内部構造を解説します。 Main レイヤーと Menu レイヤーの分離、BG の4枚重ねがどう動くのかを紹介します。