“リアルタイムプレビュー”で思い通りに作れる!Windows&HTML5対応ノベルゲームエンジン「Light.vn」のススメ
フリーゲームや有償同人ゲームなど、多くのノベルゲームは既成の「ノベルゲームエンジン」をベースに制作されている。「吉里吉里」や「NScripter」といった老舗をはじめ従来はWindows環境で動作するエンジンが中心だったが、ここ数年の大きなトレンドとしてブラウザ・スマートフォン対応が挙げられ、こうした流れに沿ったHTML5ベースの新しいエンジンも登場してきている。KADOKAWAより今冬の発売が予定されているノベルゲーム制作ツール「ラノゲツクールMV」もHTML5をベースにマルチデバイス対応を謳う製品だ。
一方でWindowsに特化したエンジンも、動作の安定性やパフォーマンスなどで一日の長がある。ほかにも制作のしやすさなど、ノベルゲームエンジンを選ぶにはさまざまな基準があるが、今回は最近採用作品を見かける機会が増えてきた「Light.vn(ライト・ヴィエン)」を紹介したい。個人開発者のhsdk.bd(炯淳)氏が2012年から開発しており、ダウンロードも制作したゲームの配布・販売も無料で自由に行えるエンジンだ。
「Light.vn」公式サイト
本記事では「Light.vn」の特徴と実際の制作画面、そして「Light.vn」採用作品も併せて紹介しよう。
「Light.vn」の特徴
対応プラットフォームという観点における「Light.vn」の特徴は、Windowsネイティブのアプリケーションとしての配布と、HTML5形式の配布の両方に対応すること。制作したゲームをC++ベースで軽快に動作するWindowsアプリケーションとして配布しつつ、同じゲームのHTML5版を出力してブラウザプレイに対応させたり、スマホアプリ版を制作可能となっている(ただし執筆時現在、HTML5出力機能はベータ版として提供されている)。なお、ゲーム制作を行う環境自体はWindowsが前提となる。
またゲーム制作の面では、日本語ベースのスクリプトによる制作と専用エディターによる編集内容のリアルタイムプレビューが大きな特徴。とくにリアルタイムプレビューはスクリプトを編集したことにより発生する変化がその場で確認できるので、初心者でも「意図と違う挙動になってしまったが、どこが悪いのかわからない」といった状態に陥ることがなく、デバッグの労力を大幅に削減できるだろう。ちなみに「ラノゲツクールMV」もリアルタイムプレビューが搭載予定となっており、今後、ノベルゲーム制作のハードルを下げる機能として注目を浴びていきそうだ。
日本語ベースのスクリプトについては、正直に言えば筆者は実際に体験するまで「記述が煩雑になるのではないか」とやや懐疑的であった。ただ実際にはスクリプトのコマンド名やオプションが日本語というだけで、基本的な記述形式は一般的なスクリプト言語に近いもので馴染みやすい(逆に言えば、自然言語で記述ができるといったものではない)。そしてスクリプトをざっと見渡したときに、どういう処理を行っているのか直感的に把握しやすいのは大きなメリットであると感じられた。なお、コマンド名は英語で記述することも可能なので、英語の方が書きやすいといった場合でも安心だ。
「Light.vn」サンプルゲームのスクリプトの一部。エディター上では色分けも施され、どういった処理を行っているのかぱっと見で把握しやすい
リアルタイムプレビューによる直感的なノベルゲーム制作
それではこれよりエディターの画面を交えつつ、「Light.vn」による基本的な制作の流れなどを紹介していこう。まずは公式サイトからリンクを辿り、「Light.vn」本体とサンプルゲームのセットをダウンロードする。ZIP形式で配布されているアーカイブを展開したら「LightEditor.exe」を起動するとエディターが開く。この時点で既にサンプルゲームが読み込まれた状態となっており、画面右側に表示されているスクリプトの適当な行をクリックすると、画面左側のプレビュー画面に実際のゲーム実行時と基本的に同じ状態が再現される。ここで文章の挿入や削除といった編集を行えば、プレビュー画面へリアルタイムに反映される。
「Light.vn」専用エディター。なお、本記事に掲載する画像ではウィンドウサイズを抑えるためプレビュー画面は設定により実サイズの75%で縮小表示しているが、100%で表示することも可能。そのほか50%で表示する設定もある
さらに[F5]キーを押すことにより、プレビューウィンドウ内で現在の行からテストプレイを行うことが可能。BGMやアニメーションといった演出や、選択肢による分岐なども実際に動かして試すことができる。なおBGMについては「編集時に背景音楽再生動作」というオプションをONにすることで、テストプレイ時以外もカーソル位置のスクリプトの実行時点で鳴るようになっている楽曲を再生可能。そのシーンで実際に鳴っているBGMを聞きながらスクリプトを編集するといったことも可能なわけだ。
プレビュー画面上でのテストプレイでは、各種演出や選択肢なども実際のプレイ時と同様に動作する
実際にノベルゲームを制作する際は、このサンプルゲームをベースに改造していってもよいし、よりシンプルなテンプレートも提供されている。完全にまっさらなプロジェクトを作成することもできるが、こちらはある程度仕様を把握した中級者以上が利用対象となるだろう。
スクリプトは普通に文字を打って入力することももちろん可能だが、入力支援機能も用意されている。エディターの左端に並ぶボタンをクリックすることで、スクリプトの基本的なコマンドを挿入可能。さらに画像や音声、動画に関するコマンドの挿入時は、ダイアログで利用するファイルを選んでファイル名を取得できる。とくに立ち絵などの表示に使用する「絵」コマンドの挿入時は、選んだ画像ファイルがプレビュー画面上に表示され、マウス移動で表示位置を、マウスホイールで拡大率を調整できるのが非常に直感的だ。数値単位で細かい調整がしたい場合は、コマンドの挿入後にスクリプトを編集すればよい。
立ち絵などの表示コマンドを挿入する際は、プレビュー画面上で配置や表示サイズを実際に見ながら調整できる。バウンディング・ボックス(各素材の表示領域を示す枠)を表示する機能も便利だ
また、エディター画面の中にはコマンドリファレンスも用意され、コマンドの書式などを逐次確認しながらスクリプト編集が行える。ゲーム制作に関する作業は基本的にエディター内ですべて完結するため、ウィンドウを行き来することなく軽快に制作を行うことが可能となっている。
コマンドはノベルゲームに必要な一般的なものが揃っているが、ユニークなものとして「仮絵生成」というコマンドもある。これは円と長方形で象られたダミーの立ち絵画像を生成する機能で、ダミー画像では顔の部分に表情を示すラベルを、体の部分に名前やそのほかのラベルをテキストで指定して表示できる。立ち絵画像などがない状態で制作する際に簡単にダミー画像を用意できるし、本番画像と差し替える際にラベルを頼りに画像を選びやすいのもポイントだ。
右側の立ち絵が「仮絵生成」コマンドで生成したダミー画像。表情や名前などのラベルを画像に埋め込める
このようにして制作したノベルゲームは、「ノベル配布」機能で配布用のファイルを生成することが可能。ファイルを生成するフォルダーと配布形式を指定してボタンを押すだけで作業は完了する。また、とくに有償同人ゲームの頒布につきものの「アップデートパッチ」を作成する機能も用意されている。
出力先と配布形式を設定してボタンを押すだけで配布用のファイルを生成できる。パッチ作成にも対応
充実した制作機能と標準的で使いやすいユーザーインターフェイス
ここまでは「Light.vn」でのノベルゲーム制作がいかに手軽で直感的かを中心に紹介してきたが、ノベルゲームエンジンとしての機能面も充実している。特徴的なものを抜粋すると以下などが挙げられる。
- 画面解像度の自由な設定
- 画像およびカメラの自由な移動・拡大・回転
- 立ち絵や背景などに使用可能なアニメーション
- 表示サイズや表示位置、レイヤー等を指定しての動画再生
- 演出コマンド利用時の正規表現による複数画像の一括指定
- スクリプトによるスクリーンショットのファイル保存
- スクリプト言語「Lua」による拡張
ノベルゲームにとって重要な、テキスト関係の表現力もかなりのもので、たとえば以下などが挙げられる。
- 文字サイズ、色、フォントの変更
- ルビの表示
- 縦書き
- 文字列の整列(左、中央、右)
- 多言語表示(対応するフォントが必要)
- 複数のテキストウィンドウの作成
複数のテキストウィンドウを作成可能
また、サンプルとして用意されているユーザーインターフェイスも、ノベルゲームエンジンとして標準的なものがしっかりと作り込まれており、快適なプレイが可能なのも嬉しいところだ。具体的には以下のような仕様となっている。
- セーブスロットは標準で6個×10ページ搭載
- クイックセーブ・クイックロード搭載
- 既読スキップ機能搭載。設定でスキップの仕様を既読のみか、未読も含むかを変更可能
- オートモード搭載
- バックログ搭載(バックログでボイスのリプレイも可能)
- テキストをページ送りした際にボイスを再生し続けるか、止めるかの設定が可能
- キャラクターごとのボイス音量の設定が可能
- ウィンドウ表示とフルスクリーン表示の切り替えが可能
- スクリーンショット撮影機能搭載(執筆時現在の最新バージョンでは標準で[F10]キーで撮影が可能)
なお、Ctrlキーによるスキップも可能だが、一般的に採用されている「Ctrlキーを押し続けている間はスキップ」ではなく、「Ctrlキーを押すたびにスキップのON/OFFをトグル切り替え」という挙動となっている。「Light.vn」開発者のhsdk.bd(炯淳)氏によると、後者の方式にも対応可能にする予定とのこと。
セーブ画面やバックログなどのUIも標準でしっかりと作り込まれている
「Light.vn」採用作品紹介
「神さま」の少女と青年の交流を描く短編『神さまの欠片』
林の中の社に祀られている「神さま」の少女と、東京から帰省するたび彼女に会いにゆく青年の交流を描いた短編ノベルゲーム。プレイ時間15分ほどの中にはっとさせられるような展開もあり、心温まりつつも少し切ない、余韻を感じられる作品となっている。和服姿が可愛らしく、表情も豊かな神さまのイラストも魅力だ。
「Light.vn」採用作品として見ると、機能は標準に沿いつつインターフェイスの見た目をカスタマイズし、設定画面などに至るまで上品な雰囲気で纏め上げられているのも特徴。ゲーム全体で作品の世界観を演出している好例と言えるだろう。
本作はフリーゲームとして公開されており、ふりーむ!よりダウンロード可能。
制作元:猫と心中
ダウンロード:https://www.freem.ne.jp/win/game/15474
異世界に飛ばされ「世界を救う」ゲームに巻き込まれた少年の物語『My World』
異世界に飛ばされ、「この世界を救う」のが勝利条件というゲームに巻き込まれた少年が主人公のノベルゲーム。今年8月に開催されたコミックマーケット92にて、全3章を収録した完成版が頒布された。また、ふりーむ!にて1章まで収録したバージョンが無料公開されている。
ゲームの参加者は日本から異世界に飛ばされた5人。あくまで「世界を救う」のが勝利条件で勝者は一人とは限らないが、一方で「最後の一人となっても勝者」というルールもあり、助け合うのか、あるいは排除し合うのか……という緊迫した状況が訪れる。そして各参加者には「日本から自分の所有物を3回まで転送できる」という能力が与えられ、思いも寄らないものを転送する参加者が現れるなど、このルールならではの勝負が繰り広げられていく。
異世界で出会ったエルフの少女などキャラクターも魅力的で、さまざまな出会いを経て主人公が世界と自分のため、どういった選択をするのかが見どころ。マルチエンディングとなっており、それぞれのエンドが物語を相互に補完するのも面白い。エンジンの標準機能を利用した目パチアニメーションも、キャラクターを生き生きと描くことに貢献していると感じられた。
『My World』の制作にも協力されているhsdk.bd(炯淳)氏より、目パチアニメーションの参考画像を提供いただいたので掲載(イラストは同作のイラストレーターの一人であるRis氏によるもの)。こうした複数の画像をもとに表示時間などを指定してアニメーションを登録し、あとは通常の立ち絵と同じように呼び出して利用できる
制作元:四季凪
ダウンロード(1章):https://www.freem.ne.jp/win/game/14590
少年型「電子ドール」の着せ替えなどが楽しめるブラウザゲーム『CUSTOM_NANO』
少年型の「電子ドール」をカスタマイズし、着せ替えや会話ができるフリーのブラウザゲーム。容姿や性格、口調などの変更も可能で、明示的なストーリーはなくコミュニケーションなどを楽しむ作品となっている。
「Light.vn」で独自のシステムを作り込み、HTML5出力を利用している技術面にも注目の作品。作者のすみの氏は「Light.vn」製のノベルゲームも数作品公開されている。
制作元:Sumica
プレイ:http://smy.o0o0.jp/gm/gm/c_n/index.html
サポートも充実、開発も活発で将来有望なエンジン
今回、紹介のために「Light.vn」を試用してみたところ、非常に将来性のあるエンジンであると感じさせられた。利用者の声を取り入れつつ精力的にアップデートが続けられているのも特徴で、Google Docsを利用して直接要望などを書き込める文書「Light.vn “I Wish”」が存在するのもユニークだ。
Slackによるユーザーコミュニティやゼロから作品公開までを解説するドキュメント、動画によるアップデート内容の紹介など、サポート面も力が入っている。またユーザーWikiもあり、有志の手によりコマンドのわかりやすい解説など内容が充実してきている。
執筆時現在のバージョンでは日本語の禁則処理には非対応であるなど、まだまだ進化の余地もあるとは感じるが、それだけに今後の開発も楽しみなエンジンだ。ノベルゲームの制作に興味がある方は、ぜひ「Light.vn」でチャレンジしてみてほしい。
「Light.vn」公式サイト:http://lightvn.net/