VOL.6 — TRANSPARENT TOOL

道具は消えるべきである

はじめに——あなたは今日、何と戦いましたか?

ゲームを作ろうとした日のことを思い出してほしい。

キャラクターの立ち絵を表示したかっただけなのに、インスペクタのパラメータを探し回った。 BGMを鳴らしたかっただけなのに、AudioSourceのSpatial Blendが3Dになっていて音が聞こえず、30分を失った。 背景を切り替えたかっただけなのに、アセットのインポート設定でSprite ModeがMultipleになっていて画像が崩れた。

あなたが戦っていたのは、物語ではない。道具だ。

ペンで小説を書くとき、ペンの持ち方を意識する人はいない。 カメラで映画を撮るとき、優れた撮影監督はカメラの存在を忘れている。 道具が最も力を発揮するのは、使い手がその存在を忘れたときだ。

VNStudioは、この当たり前の原則に立ち返るために生まれた。

第1章:なぜ既存のツールは「見えすぎる」のか

汎用エンジンのジレンマ

UnityやUnreal Engineは驚異的なソフトウェアだ。 3Dオープンワールドからモバイルパズルゲームまで、あらゆるジャンルに対応できる。 だが、その「あらゆるジャンル」への対応力こそが、ビジュアルノベルを作りたいだけのクリエイターには牙を剥く。

シーンを開けば、Hierarchy、Inspector、Project、Console、Scene View、Game View——最低でも6つのパネルがあなたを出迎える。 その中で、ビジュアルノベル制作に本当に必要なのは何か。 テキストを書ける場所と、その結果を見られる画面。たった2つだ。

残りの4つは、あなたの創造行為にとって無関係なノイズである。

専用ツールのもう一つの罠

では、ティラノビルダーやRen'Pyのようなノベルゲーム専用ツールはどうか。 たしかにノイズは少ない。だが今度は別の壁が現れる。表現の天井だ。

「背景をゆっくりパンさせながら、同時にキャラクターのフェードインと、BGMのクロスフェードを重ねたい」——こうした演出の掛け合わせに到達したとき、専用ツールは急に口を閉ざす。

汎用エンジンは機能が多すぎて迷子になる。 専用ツールは機能が足りなくて行き止まりになる。 どちらも、ある時点で道具の存在が前景に躍り出てくる。

第2章:VNStudioの回答——「二つの世界」の分離

VNStudioは、この問題に対して一つの明快な構造的回答を持っている。

クリエイターが触れる世界と、エンジンが動く世界を、完全に分離する。

具体的には、WPF(.NET)で作られたエディタと、Unity 6で動くランタイムという2つの独立したアプリケーションが協調して動く。 クリエイターが見るのはエディタだけ。Unityのインターフェースは一切現れない。

この分離は、単なる技術的都合ではない。設計哲学の表明だ。

エディタは「人間の言葉に近い空間」として設計されている。 スクリプトを書き、ファイル一覧を見る。それだけだ。 ランタイムは「機械の力が必要な空間」として、描画パフォーマンス、クロスプラットフォーム対応、リアルタイムアニメーションを一手に引き受ける。

この二つの世界をつなぐのは、NamedPipeを流れるJSONメッセージだけ。 クリエイターの目には映らない細い管が、人間の意図を機械の動作に、静かに翻訳し続けている。

第3章:「書けば動く」の実装

スクリプトの手触り

VNStudioのスクリプト言語は、コードというよりは「台本」に近い。

bg classroom
show sylfa smile
say しるふぁ "いよいよ作戦開始ね!準備はいい?"

choice
"準備完了!" -> start_battle
"もう少し待って" -> wait_loop

プログラミングの知識がなくても、この6行が何をするかは想像がつくだろう。 教室の背景を出し、sylfaというキャラクターの笑顔を表示し、台詞を言い、選択肢を出す。

ここにはセミコロンも、括弧の対応も、型宣言も、インポート文もない。 「背景を出す」と書けば背景が出る。「台詞を言う」と書けば台詞が出る。 意図と記述のあいだに、余計な翻訳層がない。

フォルダに置くだけのアセット管理

画像を使いたいなら、Resources/Backgrounds/ フォルダに入れる。 音声なら Resources/Audio/ に入れる。それだけだ。

スクリプトに bg classroom と書けば、エンジンは classroom.png を探し、なければ classroom.jpg を探す。 拡張子を書く必要すらない。インポート設定を開く必要もない。メタデータファイルを管理する必要もない。

この振る舞いの裏では、AssetLoader が実行ファイルの位置から上方向に最大10階層を遡って Resources フォルダを自動探索している。 クリエイターがプロジェクトのフォルダ構成に厳密でなくても、エンジンが歩み寄る。 道具が人間に合わせるのであって、人間が道具に合わせるのではない。

リアルタイムプレビュー——「保存→ビルド→実行」の消滅

従来のゲーム開発では、変更を確認するたびに「保存→ビルド→実行→該当シーンまで進む」という儀式が必要だった。 VNStudioでは、エディタ上のダブルクリック一つで、任意のシーンが即座にプレビューされる。

これを支えるのが RestoreState と呼ばれる仕組みだ。 スクリプトの先頭から指定行まで、すべてのコマンドを高速スキャンし、背景・キャラクター・BGM・変数の状態を一瞬で再構築する。 演出アニメーションやウェイトはスキップし、結果だけを復元する。

つまり、物語の第5章を修正したいとき、第1章からプレイし直す必要がない。 ダブルクリックすれば、その瞬間の世界がそのまま現れる。

この「試行錯誤のコストがほぼゼロ」という体験は、創作の質を根本的に変える。 直感で試し、気に入らなければ即座に書き直す。 その繰り返しの速度が、道具の不在によって限界まで引き上げられている。

第4章:「透明な道具」の条件

VNStudioの設計から浮かび上がる「透明な道具」の条件を整理してみたい。

意図と記述の距離が最小であること。
「背景を出す」と思ったら bg classroom と書く。 思考をコードに「翻訳」する認知コストが限りなく小さい。

エラーの前に、道具が察すること。
拡張子の自動補完、Resourcesフォルダの自動探索、未対応コマンドのサイレントスキップ。 いずれも「人間のちょっとした省略や誤りを、道具の側が吸収する」設計だ。

裏側の複雑さが表に漏れ出さないこと。
NamedPipe通信、UnityのCanvasシステム、状態スナップショットの管理——これらはすべて、クリエイターの視界の外で静かに動いている。

やりたいことが増えたとき、道具が壁にならないこと。
VNStudioのスクリプトは単純な台本記述から始まるが、変数、条件分岐、サブルーチン呼び出し、メニューシステム、さらにはシューティングモードへの切り替えまで、同じ文法の延長線上で到達できる。 天井が見えたとき、それは専用ツールの限界ではなく、あなたの想像力の現在地だ。

第5章:消えた道具の先にあるもの

道具が消えたとき、何が残るか。

物語が残る。演出が残る。キャラクターの声が残る。

VNStudioのスクリプトファイルを開いたとき、そこにあるのは技術の痕跡ではなく、物語そのものだ。 背景の名前、キャラクターの表情、台詞の一つ一つ。 それはコードではなく、台本であり、設計図であり、あなたの創作の原本である。

ゲーム開発の歴史は、長いあいだ「技術者がクリエイターを兼ねる」か「クリエイターが技術を学ぶ」かの二択だった。 VNStudioが提案するのは第三の道——技術が十分に成熟したなら、それは背景に退くべきだという考え方だ。

良い道具は、使い手の手の延長になる。
最良の道具は、使い手がその存在を忘れることを許す。

あなたが今日戦うべき相手は、道具ではない。あなた自身の物語だ。