第5章 データとスクリプト

本章は、エンジンから見たデータ配置とスクリプトの役割の概要です。

「最初のシナリオを書く」「フォルダのどこを編集するか」など作成手順は 制作者向け入門マニュアル を参照してください。

図5-1: プロジェクト構成(開発用)
キャプチャ差し替え images/05_usage.png

図5-1: プロジェクト構成(開発用)

図5-1: プロジェクト構成(開発用) — 差し替え: images/05_usage.png

5.1 編集するデータ

見本の Config.txt(System.setDataRoot("GameData") と System.setFolder)での構成です。


GameData/
├── data0/   ← スクリプトと書体
│   ├── system/     システムスクリプト(Config・Initialize・title_enhanced ほか)
│   ├── scenario/   シナリオ
│   ├── macro/      マクロ定義
│   ├── sim/        育成・恋愛シミュレーションの設定ファイル
│   ├── lang/       文言表(ja.txt・en.txt)と言語別の上書きフォルダ(en/ など)
│   ├── particle/   パーティクル定義
│   ├── font/       組み込み書体
│   └── startup.txt 起動の入口
├── data1/   ← UI 画像(title・config・dialog・meswnd・saveload・sim など)
├── data2/   ← 背景
├── data3/   ← イベント CG(CG ごとのフォルダ。例 cg01/base・cg01/smile)
├── data4/   ← 立ち絵(stand)・スプライト(sprite)・mrumotion(motion)
├── data5/   ← BGM(sound)・効果音(se)・システム効果音(sysse)・システム音声(sysvoice)
├── data6/   ← ボイス
├── data7/   ← ルール画像(rule。場面切り替え用の白黒の絵)
└── data8/   ← 動画(op・ed・logo など)と 3D モデル(model)、部品アニメ(見本は anime)

作成手順の詳細: 制作者入門 02. 環境とフォルダ

5.2 スクリプトの種類(エンジン視点)

種類ファイル例記法役割
システムスクリプトConfig.txt, Initialize.txt, title_enhanced.txtLUMINA Script。先頭に // @lumina(旧表記 // @tjs も可)+ function起動・UI・設定・プラグインの許可
シナリオスクリプトscenario/*.txt行コマンド + タブ始まりメッセージ本編・イベント
マクロmacro/*.txt[macro name="名前"] 〜 [end_macro] の間にシナリオ命令を書く。引数は %0, %1 …(0 から)名前で呼べる命令列。data0/macro のファイルはエンジンが読み込む
シミュレーションの設定sim/love_sample.txt[見出し] の下に 名前 = 値暦・能力・予定・登場人物・行事・結末。シナリオから sim_load sim/love_sample で読む(第10章)
文言表lang/ja.txt, lang/en.txt鍵=文言画面に出す文言の多言語化(5.5)

システムスクリプト・シナリオ・マクロ・シミュレーションの設定は、ScriptEncryptor で .lsf に暗号化して配布できます。

書き方の入門: 制作者入門 01 / 完全一覧: 第9章・第10章

5.3 主なシステム API(概要)

オブジェクト主な用途
System.*プラグイン、セーブ、変数、INI、フォルダ設定、シナリオ読込
Window.*ウィンドウサイズ、FPS、フルスクリーン
Title.*タイトル画面などのボタン・背景
Scenario.*シナリオのロード・再生
Storages.*リソース検索パス、言語別の上書きフォルダ
Menu.* / MenuBar.*メニューバー構築
Movie.* / Sound.*動画・音声制御
MessageWindow.*メッセージウィンドウ設定
SaveSlot.* / QuickResume.* / Suspend.*セーブスロット、前回の続きから、中断
Text.*文言表(多言語)
Scene3D.*3D の場面・3D アクション

本編の読込は System.loadScenario または Scenario.load を使います(System.playScenario は存在しません)。

5.4 アセットの配置(仕様概要)

フォルダは Config.txt の System.setFolder(キー, フォルダ) で決めます。下の「見本のフォルダ」は同梱の Config.txt の値です。

カテゴリ設定キー見本のフォルダ推奨形式
スクリプトscriptdata0(system / scenario / macro / lang)txt(配布時は lsf)
UI 画像uidata1LGC
背景bgImagedata2LGC
イベントCGeventCgdata3LGC
立ち絵standdata4/standLGC
スプライトspritedata4/spriteLGC
BGMbgmdata5/soundOGG(Vorbis)
SEsedata5/seOGG(Android は WAV を再生できない)
システム効果音syssedata5/sysseOGG
システム音声sysvoicedata5/sysvoiceOGG
ボイスvoicedata6Opus(見本の既定拡張子)
ルール画像ruledata7/ruleLGC
動画moviedata8Windows は OGV、ブラウザ/Android 用に同じ名前の mp4(または webm)を並べる
フォントfontdata0(data0/font を見る)TTF / OTF

プラグインと 3D の素材は次の場所に置きます。ここだけは PNG のまま配布物に入ります(素材の JSON がファイル名を拡張子込みで指すため)。

素材置き場所内容
メッシュ変形モーション(mrumotion)data4/motion.motion.json と部品の PNG(MotionEditor で作る)
3D モデルdata8/modelglTF / GLB とテクスチャ
部品アニメ(mruanime)data8 の下(見本は data8/anime).anm.json と部品の絵
配布物の画像は .lgc にする: 見本の既定の画像拡張子は lgc(System.setExtension("image", "lgc"))です。build-win.ps1 の書き出しは、上の表の素材置き場(data4/motion・data8)を除き、PNG / JPG / BMP / PSD を外します。LuminaImageCompressor で .lgc に変換してください。詳細仕様は 第6章、ツールは 第7章 を参照。

5.5 多言語の素材

文言と、絵・声・シナリオとで切り替え方が分かれます。言語の一覧は system/Localization.txt の LANG_TABLE にあり、言語を足すときはここに 1 行足して文言表を置きます。

対象しくみ
画面の文言文言表 data0/lang/<ID>.txt(鍵=文言)。スクリプトでは Text.get("鍵", "元の文言") と書く。表に無い鍵は第 2 引数の元の文言がそのまま出る
絵・声・シナリオ原語以外を選ぶと data0/lang/<ID>/ が上書きフォルダになり、素材を探すときに最初にそこを 1 か所だけ見る。置き方はスクリプトに書く名前から先頭の dataN/ を外した形(例: 絵 dialog/yes → data0/lang/en/dialog/yes.png、シナリオ scenario/ch01 → data0/lang/en/scenario/ch01.txt)。訳す物だけ置けばよい
システムスクリプト差し替わらない(画面の組み立ては言語で分けない)

API の詳細は 第9章(Text オブジェクトと上書きフォルダ)を参照してください。

5.6 配布に向けた変換(概要)

工程内容参照
画像変換LuminaImageCompressor で PNG / JPG / BMP → .lgc第7章
スクリプト暗号化ScriptEncryptor で .txt → .lsf第7章
パックbuild-pack-data.ps1(書き出しの dataN → dataN.laf)、build-pack-run.ps1(パックした Windows 版の確認用)、luminapack(コマンドライン)、PackTool(GUI)第6章・第3章
ブラウザ/Androidbuild-web.bat / build-android.bat / build-android-aab.ps1第3章

5.7 作成作業は制作者入門へ

やりたいこと参照先
フォルダを把握する入門 02
最初の1シーンを書く入門 03
よく使う命令を覚える入門 04・09
フラグと分岐入門 06
マクロ入門 07
タイトルと設定入門 08
命令ダイジェスト入門 09
セーブとロード入門 10
命令の全件を調べる本冊 第10章・第9章