第7章 Tool
キャプチャ差し替え
images/07_tools.png
図7-1: 開発ツールの全体
images/07_tools.pngエンジンに同梱するツールの一覧です(すべて Windows で使います)。ツールはエンジンのルートの Tool\ にあり、用途ごとに 01_Development(素材・スクリプトの制作)、02_Authoring(シナリオ編集)、03_Release(配布と利用者向け)に分かれています。シナリオ作成の手順自体は 制作者向け入門 を参照してください。
各ツールはそれぞれの Visual Studio プロジェクトで作ります(build-win.ps1 が作るのは luminapack.exe だけです)。下の表の「場所」はソースのフォルダ、括弧内は出来上がった exe の置き場です。
7.1 素材・スクリプトの制作(Tool\01_Development)
exe の置き場は Tool\01_Development\build\bin\x64\Release\ です(luminapack を除く)。
| ツール | 場所 | 用途 |
|---|---|---|
| LuminaImageCompressor | Tool\01_Development\LuminaImageCompressor | PNG / JPG / BMP を .lgc に変換する(ZLIB / ZSTD / LZ4 / LZMA)。引数なしで GUI、ファイルやフォルダを渡すとコマンドラインで一括変換(--recursive・--skip-existing など) |
| LuminaScriptDesigner | Tool\01_Development\LuminaScriptDesigner | システム画面(タイトル・メッセージウィンドウ・環境設定・セーブ/ロードなど)のレイアウトを GUI で編集し、data0/system/*.txt を書き出す。既存のスクリプトを読み込んで直すこともできる |
| MotionEditor | Tool\01_Development\MotionEditor | mrumotion 用のモデル(.motion.json)を作る。PSD の取り込み、自動リグ、パラメータとモーションの設定。コマンドライン(--psd・--autorig・--resave・--psdtree)もある |
| PackTool | Tool\01_Development\PackTool | .laf の作成・展開(GUI)、パスワードの生成、プラットフォーム別の一括書き出し(luminapack の packconfig.ini と同じ構成) |
| luminapack | Tool\01_Development\luminapack(luminapack.exe。build-win.ps1 の Release ビルドが更新する) | コマンドラインのパッカー: luminapack <フォルダ> <出力.laf> [レベル] [パスワード]、--split <GameData> <出力先>(dataN ごと)、--config <packconfig.ini>(プラットフォーム別の一括)、--exclude=(フォルダ名)、--exclude-name=(ファイル名の型)。同じフォルダの pack-all.bat で packconfig.ini の内容をまとめて実行する |
| ParticleEditor | Tool\01_Development\ParticleEditor | パーティクルの編集(使い方はフォルダ内の HTML マニュアル) |
| SceneViewer | Tool\01_Development\SceneViewer | シナリオの編集・解析・ステップ再生による検証 |
| ScriptValidator | Tool\01_Development\ScriptValidator | シナリオスクリプトの構文チェック |
| ScriptEncryptor | Tool\01_Development\ScriptEncryptor | .txt → .lsf の暗号化(AES-256-GCM + HMAC-SHA256、鍵は PBKDF2-SHA256)。GUI とコマンドライン(--encrypt・-p <パスワード>・--default-key・-o・-r など)。Config.txt だけは --default-key で暗号化する |
| 補助スクリプト | Tool\01_Development\localize_ui_images.py ほか gen_*.py | UI 画像の他言語版の生成ほか、素材づくりの Python スクリプト |
7.2 シナリオ編集(Tool\02_Authoring)
| ツール | 場所 | 用途 |
|---|---|---|
| LuminaNovelAuthor | Tool\02_Authoring\LuminaNovelAuthor(Tool\02_Authoring\build\bin\x64\Release\) | シナリオ編集用の統合環境。ラベルのつながりを見るフローチャート、プレビュー(F4)、隣の lumina.exe での確認(F5)、演出のタイムライン、作品全体の点検、翻訳/ボイス台帳、3D シーンの仮組み(Scene3D を使うシステムスクリプトを書き出す) |
画面のレイアウトは LuminaScriptDesigner、シナリオ(ラベル・本文・ジャンプ・選択肢)は LuminaNovelAuthor、と分担しています。
7.3 配布と利用者向け(Tool\03_Release)
| ツール | 場所 | 用途 |
|---|---|---|
| ReleaseBuilder | Tool\03_Release\ReleaseBuilder(Tool\03_Release\build\bin\x64\Release\) | 作品の点検と配布フォルダの作成。lumina.exe、exe と同じフォルダの DLL、DLL フォルダ、ライセンス類、GameData を新しいフォルダへまとめ、SaveData・.log・.bak・.tmp などは外す。1.4.1 からは開発中の印 data0/system/DevMode.txt を外し、.lsf のそろった平文のスクリプト(.txt)は .lsf だけを入れる(.lsf の無い .txt はそのまま入る)。.lsf が .txt より古いとき、エンジンの隣の config.ini に [Debug] DebugMode=1 があるときは「要確認」を出す(作成は止めない)。全ファイルの SHA-256 を release-manifest.json に記録。点検には LuminaNovelAuthor を使う。設定の保存(.lrelease)、複数作品の一括処理、コマンドライン(--data・--engine・--output・--plan-only など)に対応 |
| SetupBuilder | Tool\03_Release\SetupBuilder(Tool\03_Release\SetupBuilder\build\bin\x64\Release\) | インストーラー/アンインストーラー/自動起動メニュー/パッチ(入っている本体の更新)の作成 |
| EngineSetting | Tool\03_Release\EngineSetting(build\win\bin\<構成>\) | 利用者向けの設定ツール。systemdata.dat の設定を編集する(保存前に控えを取る) |
| SaveDataManager | Tool\03_Release\SaveDataManager(build\win\bin\<構成>\) | セーブの保存先の確認・移動(save_redirect.dat で移動先をエンジンに知らせる)・初期位置へ戻す・削除。Config.txt の保存先の設定を読んで動く |
| FileCheck | Tool\03_Release\FileCheck(build\win\bin\<構成>\) | SHA-256 の一覧と配布ファイルを照合する |
| Launcher | Tool\03_Release\Launcher(build\win\bin\<構成>\) | ゲームの起動メニュー |
ReleaseBuilder に渡す GameData:
build-win.ps1 の書き出し(build\win\bin\master\Release\GameData)を渡してください(第3章)。ReleaseBuilder は暗号化をしないので、.lsf は先に作っておきます。開発中の GameData を渡すと、作品の点検(LuminaNovelAuthor)が命令名で始まる説明の行を命令と読み違えてエラーにし、配布フォルダを作れません。
7.4 その他
| ツール | 場所 | 用途 |
|---|---|---|
| ManualDesigner | tools\ManualDesigner(build\win\bin\<構成>\) | ゲーム・ツール向けのマニュアルを GUI で作り、HTML / PDF / PowerPoint に書き出す |
| ToolCatalog | Tool\ToolCatalog | ツールのソースの比較(管理用のスクリプト) |
| LuminaDebugTools.dll | exe の隣 | 開発用の道具(デバッグパネル)。Debug 実行モードで、タイトル表示後または Shift+D でパネルを開いたときに読み込まれる(第8章) |
7.5 推奨ワークフロー
[素材]
LuminaImageCompressor → .lgc 画像
MotionEditor / ParticleEditor → モーション・パーティクル
(音声は BGM / SE を OGG Vorbis、ボイスを Opus に変換。外部ツール可)
[スクリプト]
LuminaScriptDesigner → システム画面
LuminaNovelAuthor → シナリオ(ScriptValidator / SceneViewer で検証)
ScriptEncryptor → .lsf(Config だけは既定の鍵)
[ビルドとパック]
build-win.ps1 → build\win\bin\master\Release(配布用の書き出し)
build-pack-data.ps1 / build-web.bat / build-android.bat / build-android-aab.ps1
[配布]
ReleaseBuilder → 配布フォルダ
SetupBuilder → インストーラー
FileCheck → 配布ファイルの照合
[デバッグ]
LuminaDebugTools.dll(Debug 実行モード。Shift+D でパネル)