すべての記事

NarraLeaf Studio、1.0 へ

2025 年 10 月のリポジトリ作成から 1.0 まで、NarraLeaf Studio の歩みと、ビジュアルノベルを一つのエンジニアリングとして組み立てる考え方。

NarraLeaf-React はビジュアルノベルの演出という課題を解決しましたが、使うには TypeScript を書く必要があります。ビジュアルノベルの作者の多くはコードを書かず、また一つのビジュアルノベルが一人で完成することもほとんどありません。シナリオ、イラスト、プログラム、翻訳の担当者が同じプロジェクトで協力し、そのプロジェクトはバージョン管理や引き継ぎ、拡張ができる、ソフトウェア開発と同じように組み立てられたものである必要があります。NarraLeaf Studio は、そのために作られたエディタです。

2025 年 10 月 17 日、NarraLeaf Studio のリポジトリが作成されました。そして 2026 年 9 月 30 日、NarraLeaf Studio 1.0 を公開しました。

プレイヤーからエディタへ

Studio は Electron で作られたデスクトップアプリです。独自のエンジンを別に持つことはせず、エディタのストーリープレビューと開発モードは NarraLeaf-React をそのまま実行し、パッケージしたゲームもその上に構築されます。作者がエディタで目にする画面が、そのままプレイヤーの目にする画面です。

最初の半年あまり、Studio の開発はゆっくりと進み、ウィンドウ、プロセス間通信、プロパティエディタといったエディタの土台作りに充てられました。2026 年の初めにインターフェースエディタが形になり始め、4 月にブループリントシステムの設計が始まり、6 月にはインターフェースエディタとストーリーエディタがメインラインに統合されました。7 月 21 日に最初の minor リリースである 0.1.0 を、8 月 2 日にはダウンロードできるインストーラーを初めて備えた 0.3.0 を公開しました。

ファイルではなく、プロジェクトとして

Studio は NarraLeaf-React の原則を受け継いでいます。直感的であることは今も第一の原則であり、あらゆる概念とあらゆる画面を、作者がそのまま理解できるかどうかを基準に作っています。そのうえで Studio は、ビジュアルノベルを成長し続けるプロジェクトとして扱います。

プロジェクトは読むことができ、バージョン管理もできます。キャラクター、変数、ローカライズテキスト、アセットのメタデータ、ストーリーはすべて構造化されたドキュメントとして保存され、ドキュメントの種類ごとに独自の差分比較と 3-way マージを持ちます。バージョン管理は Epic の Lore の上に構築されており、バイナリアセットも差分で転送できます。画面の用語は git をそのまま使わず、作者がコミットするものは「バージョン」、リモートは「サーバー」、Studio が時間に沿って自動で記録するものは「チェックポイント」と呼びます。

プロジェクトは、開発者がすでに使っているツールにつながります。ロジックの下では常に TypeScript を使うことができ、0.10 からは、ロジックの一部をプロジェクト内の TypeScript ファイルとして作者自身のエディタで書き、ビジュアルなブループリントと並べて実行できるようになりました。ビルド、チェック、テストはすべてコマンドラインから実行できるため、CI に組み込むこともできます。

インターフェースにもロジックにも、出口が用意されています。インターフェースエディタはプロトタイピングツールに近く、コンポーネントは独自のパラメータを宣言できます。ブループリントはノードと接続でロジックを記述し、それぞれがプロジェクト、ページ、ウィジェットのいずれに属するのかがはっきりしているため、自分が何にアクセスできるのかも分かっています。

拡張のためにエディタを書き換える必要はありません。プラグインは第一級の存在で、ブループリントノード、ウィジェット、言語パック、テストを Studio に追加でき、Studio に組み込まれたプラグインストアを通じて配布できます。これまで手を加えた本人だけのものだったカスタマイズを公開し、Studio と一緒にアップグレードしていけるようになりました。

NarraLeaf Studio のワークスペース。左にストーリーツリー、中央にシーンの演出指示と台詞の行、右にプロパティパネル

0.1 から 1.0 へ

2026 年 7 月から 9 月は、Studio が最も速く進んだ時期でした。3 か月で 3,400 回を超えるコミットがあり、バージョン番号は 0.1.0 から 1.0 に至りました。

0.3.0 では最初のバージョン管理、ストーリーで使える式言語、Live2D と Spine モデルのインポート、そして Windows、Linux、Android、iOS 向けのコード署名が加わりました。0.4.0 と 0.5.0 では、作者が直接触れる部分に重心を戻しました。ストーリーエディタの各行は作者自身の言葉で書かれるようになり、取り消し操作は一か所にまとめられ、ドキュメントはエディタの中で読めるようになりました。インターフェースエディタのコンポーネントはパラメータを宣言できるようになり、セーフエリアは実機のデータから取られるようになりました。

0.6.0 ではビルドバリアントを導入し、体験版と製品版を二つのプロジェクトではなく、一つのストーリーの中の異なる区切りとして扱えるようになりました。0.8.0 と 0.9.0 では複数の作者が同じプロジェクトを同時に開けるようになり、ストーリー、キャラクター、インターフェース、アセット、翻訳がリアルタイムで同期されます。同じ時期に DLC、保護されたビルド、項目ごとにマージするバージョン管理も加わりました。0.10.0 ではスクリプトがプロジェクト自身の TypeScript ファイルになり、出どころの分からないプロジェクトは実行前に作者の信頼を得ることが必要になり、プラグインのウィジェットもキャンバスとゲームに表示できるようになりました。

1.0 とその先

2026 年 9 月 30 日、NarraLeaf Studio 1.0 を公開しました。1.0 は同じ日に公開された NarraLeaf-React 1.0 の上に構築されており、Studio が直接依存するモバイル用シェルテンプレートとネイティブコンポーネントも、あわせて 1.0 になりました。0.10 で作成したプロジェクトは、移行作業なしで 1.0 で開けます。

プラグイン API の型パッケージ narraleaf-studio は、1.0 から Studio と同じバージョン番号を使い、Studio のリリースごとに自動で公開されます。プラグインが宣言するバージョン範囲が、そのまま対象とする Studio を示すことになります。1.x の間、プラグイン API は非推奨とされることはあっても、削除されることはありません。

Studio は現在 Windows x64 版と Apple Silicon Mac 版を提供しており、Studio で作ったゲームは Windows、macOS(Intel Mac を含む)、Linux、Web、Android、iOS 向けにパッケージできます。Studio は MPL-2.0 ライセンスのオープンソースソフトウェアです。

この 1 年で、Studio のインターフェースと実装は何度も見直されてきましたが、私たちが Studio に求めることは変わっていません。作者が作品そのものに集中でき、エンジニアリングに関わることはツールに任せられるようにすることです。1.0 以降も、エディタの細部を磨き、プラグインでできることを広げ、チームでの共同作業により役立つ Studio にしていきます。

ダウンロードと使い方は NarraLeaf Studio のドキュメント を、ソースコードは GitHub をご覧ください。

謝辞

すべての支援をいただいた MewBaka Studio に、そして Studio にコードやフィードバックを寄せてくださったすべての方に感謝します。