VOL.2 — SCRIPT ENGINE

文章を書くように演出する

「スクリプト」ではなく「演出台本」

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枚重ねがどう動くのかを紹介します。