第7章 Tool

図7-1: 開発ツールの全体
キャプチャ差し替え images/07_tools.png

図7-1: 開発ツールの全体

図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 を除く)。

ツール場所用途
LuminaImageCompressorTool\01_Development\LuminaImageCompressorPNG / JPG / BMP を .lgc に変換する(ZLIB / ZSTD / LZ4 / LZMA)。引数なしで GUI、ファイルやフォルダを渡すとコマンドラインで一括変換(--recursive・--skip-existing など)
LuminaScriptDesignerTool\01_Development\LuminaScriptDesignerシステム画面(タイトル・メッセージウィンドウ・環境設定・セーブ/ロードなど)のレイアウトを GUI で編集し、data0/system/*.txt を書き出す。既存のスクリプトを読み込んで直すこともできる
MotionEditorTool\01_Development\MotionEditormrumotion 用のモデル(.motion.json)を作る。PSD の取り込み、自動リグ、パラメータとモーションの設定。コマンドライン(--psd・--autorig・--resave・--psdtree)もある
PackToolTool\01_Development\PackTool.laf の作成・展開(GUI)、パスワードの生成、プラットフォーム別の一括書き出し(luminapack の packconfig.ini と同じ構成)
luminapackTool\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 の内容をまとめて実行する
ParticleEditorTool\01_Development\ParticleEditorパーティクルの編集(使い方はフォルダ内の HTML マニュアル)
SceneViewerTool\01_Development\SceneViewerシナリオの編集・解析・ステップ再生による検証
ScriptValidatorTool\01_Development\ScriptValidatorシナリオスクリプトの構文チェック
ScriptEncryptorTool\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_*.pyUI 画像の他言語版の生成ほか、素材づくりの Python スクリプト

7.2 シナリオ編集(Tool\02_Authoring)

ツール場所用途
LuminaNovelAuthorTool\02_Authoring\LuminaNovelAuthor(Tool\02_Authoring\build\bin\x64\Release\)シナリオ編集用の統合環境。ラベルのつながりを見るフローチャート、プレビュー(F4)、隣の lumina.exe での確認(F5)、演出のタイムライン、作品全体の点検、翻訳/ボイス台帳、3D シーンの仮組み(Scene3D を使うシステムスクリプトを書き出す)

画面のレイアウトは LuminaScriptDesigner、シナリオ(ラベル・本文・ジャンプ・選択肢)は LuminaNovelAuthor、と分担しています。

7.3 配布と利用者向け(Tool\03_Release)

ツール場所用途
ReleaseBuilderTool\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 など)に対応
SetupBuilderTool\03_Release\SetupBuilder(Tool\03_Release\SetupBuilder\build\bin\x64\Release\)インストーラー/アンインストーラー/自動起動メニュー/パッチ(入っている本体の更新)の作成
EngineSettingTool\03_Release\EngineSetting(build\win\bin\<構成>\)利用者向けの設定ツール。systemdata.dat の設定を編集する(保存前に控えを取る)
SaveDataManagerTool\03_Release\SaveDataManager(build\win\bin\<構成>\)セーブの保存先の確認・移動(save_redirect.dat で移動先をエンジンに知らせる)・初期位置へ戻す・削除。Config.txt の保存先の設定を読んで動く
FileCheckTool\03_Release\FileCheck(build\win\bin\<構成>\)SHA-256 の一覧と配布ファイルを照合する
LauncherTool\03_Release\Launcher(build\win\bin\<構成>\)ゲームの起動メニュー
ReleaseBuilder に渡す GameData: build-win.ps1 の書き出し(build\win\bin\master\Release\GameData)を渡してください(第3章)。ReleaseBuilder は暗号化をしないので、.lsf は先に作っておきます。開発中の GameData を渡すと、作品の点検(LuminaNovelAuthor)が命令名で始まる説明の行を命令と読み違えてエラーにし、配布フォルダを作れません。

7.4 その他

ツール場所用途
ManualDesignertools\ManualDesigner(build\win\bin\<構成>\)ゲーム・ツール向けのマニュアルを GUI で作り、HTML / PDF / PowerPoint に書き出す
ToolCatalogTool\ToolCatalogツールのソースの比較(管理用のスクリプト)
LuminaDebugTools.dllexe の隣開発用の道具(デバッグパネル)。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 でパネル)