08. タイトルと設定

シナリオ以外で制作者が触ることが多いのがタイトル画面と環境設定(コンフィグ)です。どちらもシステムスクリプト(// @lumina)で構成されています。

8.1 関連ファイル

どれも GameData\data0\system\ にあります。

ファイル役割
title_enhanced.txtタイトル画面のボタン・背景・BGM
ConfigMenu.txt環境設定画面(6 タブ)
Initialize.txt起動時の初期化と、各画面の読み込み
PreInitialize.txtウィンドウを出す前の準備(RunMode・Localization・Menus を実行)
RunMode.txt実行モード(Debug/Release)の決め方(02章)
Config.txtウィンドウの題名と大きさ・フォルダ・拡張子・保存先
logo_enhanced.txtロゴ演出。終わるとタイトルへ進みます
Localization.txt多言語の設定(文言の表は data0\lang)
MesWnd.txtメッセージ枠とボタン
MenuBar.txt画面上部のメニュー
SaveMenu.txt / LoadMenu.txtセーブ画面・ロード画面(10章)
Backlog.txtバックログ
Flowchart.txtフローチャート
SoundInit.txtキャラごとのボイス ID と立ち絵フォルダの表、音量の復元
EventCgSetup.txtイベント CG のフォルダとベースの絵の表

8.2 タイトル画面の流れ

起動→ Initialize→ logo_enhanced→ title_enhanced→ ボタン操作
タイトル画面
キャプチャ差し替え images/08_title_buttons.png

タイトル画面とボタン配置

図8-1: タイトル画面 — 差し替え: images/08_title_buttons.png

8.3 スタートボタンとシナリオ接続

title_enhanced.txt の RegisterButtonActions() で、各ボタンの動作を登録しています。
本編を差し替えるとき、変えるのは System.loadScenario の 1 行だけです(228 行目付近)。

// 変更前
        "System.loadScenario(\"scenario/feature_demo\");\n" +

// 変更後
        "System.loadScenario(\"scenario/my_first\");\n" +

この行は、ボタンの動作を書いた文字列の一部です。\" や \n は残して、シナリオ名の部分だけを書き換えます(03章参照)。

登録 ID主な動作
title.startはじめから。変数を空にしてから loadScenario で本編を始めます
title.continueつづきから。ロード画面を開きます
title.lastcont前回の続きから。記録が無いときは押せません
title.galleryギャラリー。setclearflag game_cleared 1 の後だけ表示されます
title.config環境設定(ConfigMenu)
title.quit終了。ブラウザではタブを閉じられないため表示されません
スタートから本編
キャプチャ差し替え(任意) images/08_load_flow.png
図8-2: スタート→本編(任意) — 差し替え: images/08_load_flow.png

8.4 環境設定(コンフィグ)画面

タイトル、メッセージ枠、上部メニューから ConfigMenu が開きます。6 タブ構成です。

タブ内容(例)
画面ウィンドウの大きさ・4:3・フルスクリーン
テキスト文字の速さ・オートの待ち時間・フォント
音量全体・BGM・効果音・ボイス・動画・システム音
キャラ音声キャラごとの音量とミュート
ダイアログ確認ダイアログを出すかどうか
マウスマウスジェスチャーの割り当て
プラットフォーム差に注意: 環境設定の画面は Windows・Android・ブラウザで共通です。ただし最終的な見え方は、それぞれの実機で確認してください。
コンフィグ画面
キャプチャ差し替え images/08_config_screen.png

環境設定(6 タブ)のいずれかのタブ

図8-3: コンフィグ — 差し替え: images/08_config_screen.png

コンフィグの開き方(タイトル側):

Title.register("title.config",
    "System.setVarInt(\"title.keepBgm\", 1);\n" +
    "Title.setFade(300, 0);\n" +
    "Title.beginCoverTransition();\n" +
    "Scripts.execStorage(\"system/ConfigMenu\");\n" +
    "Scripts.execStorage(\"system/title_enhanced\");"
);

設定の値は systemdata.dat に保存されます。System.setVarInt の値のうち保存されるのは、config. で始まる名前だけです。

8.5 シナリオ制作者が知っておくこと

8.6 プラットフォーム別の見方

項目WindowsAndroidブラウザ
タイトルの基本接続共通共通共通
loadScenario で本編開始共通共通共通
メニューバー(ファイル・画面・フォント・ヘルプ)利用可(窓の上のメニュー)利用可(電話の「戻る」で一覧が出る。確認・設定の画面やバックログでは、その画面の「戻る」。窓の大きさ・全画面の切り替えなど、Android でできない項目は出ない)利用可(ページの上の端へマウスを寄せると出る。指で触る端末は 2 本指で軽く叩くと出し入れできる。Alt キーだけを押して離しても出し入れできる。上部メニューを使う場面は Alt キーで出す。確認・設定の画面、文字入力、バックログの間は選べない。「手前に置く」「終了」など、ブラウザでできない項目は出ない)
タイトルの「終了」ありありなし
確認ダイアログ(画像式)利用可利用可利用可
OS 標準のメッセージボックス利用可なしなし
ゲームパッド(A=決定、B / START=取り消し、十字キー=移動、LB=バックログ、RB 押し続け=スキップ)利用可(窓が前面のとき)利用可(キーボードのキーも可)利用可(Gamepad API)
画面キャプチャーPNG で保存PNG で保存PNG をダウンロード
メニューの「バージョン情報」「ライセンス」「システム情報」別の窓で出る画面の上に出る(指でなぞって送る。「戻る」で閉じる)画面の上に出る(ホイールで送る。Esc・OK で閉じる)
画面右上の短い知らせ(System.notify)共通。2.5〜7 秒で消え、続けて出すと順に出る。ゲームは止まらない
大きな画面での文字共通。メッセージ欄・NVL の文字は画面の大きさに合わせて細かく描く。選択肢・バックログの文字は 1280×720 で描いた絵を拡大する

制作者の立場では、タイトル接続やシナリオ遷移は共通として考え、UI の細部や補助機能はプラットフォーム差がある前提で確認するのが安全です。

コンフィグ画面の詳細な UI 構築はシステムスクリプトの範囲です。レイアウト変更は ConfigMenu.txt と 公式マニュアル第9章(Title.*)を参照してください。

8.7 編集後の注意

Windows では、システムスクリプトの .txt と .lsf のうち新しいほうが読まれます。title_enhanced.txt や ConfigMenu.txt は、保存してゲームを再起動すれば反映されます。
配布前に、作品のパスワードで .lsf を作り直してください(Config.txt だけは --default-key。02章)。

8.8 プロジェクト完成チェックリスト

入門マニュアルを一通り終えたあと、自作プロジェクトが動くか次の表で確認してください(画像キャプチャ以外)。

項目確認内容参照
シナリオ作成GameData\data0\scenario\ に本編の .txt がある03章
暗号化配布前に .lsf を作った(Config.txt は --default-key)02章
タイトル接続title.start が loadScenario("scenario/…") を指す8.3節
素材背景・立ち絵・BGM のファイル名がシナリオと一致02章
分岐choice のラベルと *ラベル が一致、変数初期化済み06章
マクロ自作マクロを使う場合、macro\ に定義がある07章
設定画面タイトルからコンフィグが開き、閉じて戻れる8.4節
実行先起動した exe の隣の GameData を直した(Release/Debug は別)。Android/ブラウザはパックし直した02章

8.9 よくあるトラブル(まとめ)

症状まず確認すること
変更が反映されない起動した exe の隣の GameData を直したか、再起動したか。マクロは同じ名前の .lsf が優先、Debug はシナリオも .lsf を先に読みます
タイトルから進まないloadScenario のパスと、lumina_debug.log の「ファイルが見つかりません」
文字化けシナリオ .txt が UTF-8 で保存されているか
選択肢で止まるchoice のラベル名とジャンプ先の一致(* は有無どちらでも可)
背景だけ真っ黒リソース名の打ち間違い、data2 に .lgc のファイルがあるか
Windows では動くが他で崩れるWindows だけの機能(OS 標準のメッセージボックス、Android には無いメニューバー、trans_begin → trans の演出、サスペンドからの再開)に頼っていないか。.lsf を作り、パックし直したか