← 一覧に戻る

hinata-mahjong

GitHub ↗ C# 最終push: 2026/5/31 19:50

WIP(現在進行中)

Work In Progress

このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。

現在の状況

進捗

  • 第1章プロトタイプが「ベータテスター回せるレベル」にほぼ到達
    • テキスト + 表情 + 衣装 + 背景 + 立ち絵 + Discord 風チャットUI + BGM 5曲 + SE 7種類 + 蒔絵風カスタムダイアログ
  • BGM 5曲すべて完成(Suno Pro): Title / Scene1_2 / Scene3_5 / Scene6_13 / Scene14。各シーンに @bgm 組み込み済み、切替は @stopBgm fade:1 + @bgm fade:1 のクロスフェードで実装
  • SE 7種類完成(ElevenLabs Starter): 牌音3, ドア開閉2, 階段, 通知。各シーンに @sfx を計9箇所組み込み済み
  • ダイアログボックスを蒔絵風枠に全面リニューアル完了
    • ChatGPT 生成画像 + PIL 加工で横長薄型(1659x346、アスペクト 4.79:1)
    • Assets/TextPrinters/DialogueCustom.prefab に独立コピーで運用(パッケージ直編集をやめた)
    • Image Type = Simple + Preserve Aspect OFF(9-slice の罠を回避)
    • AuthorNamePanel は Layout Element (Ignore Layout) + Content Size Fitter で独立配置 + 自動サイズ調整
  • シーン名デバッグ表示 実装済み(画面右上、開発時のみ)
  • ナレッジ 4本追加: BGM 重なり / TextPrinter カスタム作法 / 9-slice 限界 / AuthorNamePanel 独立配置

次にやること

優先順:

  1. 名前のキャラ別色付け — Naninovel Configuration の Name Color で ひなた=ピンク / 美咲=水色 / 寛子=紫 等を設定(軽い、ダイアログ仕上げの続き)
  2. 第1章通しプレイ + 音響/UI 調整 — BGM 音量バランス、SE タイミング、テキストリズム、表情/背景の違和感チェック
  3. タイトル画面の仕上げ — ButtonsPanel 位置調整、起動時表示の最終確認
  4. 追加 SE 生成 — 教室ざわめき(環境音ループ)、お茶を入れる音、紀の善の食器音、UI 操作音(選択肢決定、ボタンクリック)
  5. 第2章のアウトライン設計 — テーマ「役を覚える、田辺茂との交流」

詰まっていること・未決事項

  • 特に詰まりなし。第1章は完成形に近づいている
  • 第2章着手前に通しプレイで現状の感触を確認したい

過去のWIPアーカイブ

2026-05-16 16:30 時点のスナップショット

進捗

  • BGM 追加に着手、Title BGM 1曲完了
    • Suno Free で生成、Assets/Audio/TitleTheme.mp3 に配置
    • Assets.json に Audio エントリ追加、Naninovel Configuration の Audio Resources に表示確認済み
    • Entry.nani 冒頭に @bgm TitleTheme で動作確認、タイトル画面 + 本編冒頭で BGM が流れることを確認
  • 残り 4曲(Scene1-2 / Scene3-5 / Scene6-13 / Scene14)は次回以降
  • 第1章プロトタイプは「テキスト + 表情 + 衣装 + 背景 + 立ち絵 + テキストボックス + タイトル画面(基本) + Discord 風チャットUI + BGM 1曲」まで揃った

次にやること

  • 残り 4曲の BGM 生成(Suno Free)
    • Scene1-2 BGM: 放課後・夕焼け、ノスタルジック
    • Scene3-5 BGM: 神楽坂の朝・紀の善、ワクワク
    • Scene6-13 BGM: 麻雀教室、ジャズ風
    • Scene14 BGM: 自室・LINE、静か・内省
  • SE 追加(牌音 / スマホ通知 / ドア開閉 など、必要に応じて)
  • タイトル画面の仕上げ(ButtonsPanel 位置調整、起動時タイトル表示)
  • 第1章 通し読み・推敲
  • 名前のキャラ別色付け(Discord UI 微調整)
  • 角括弧 inline command 衝突問題のナレッジ化(3件目)

詰まっていること・未決事項

  • BGM はまだ 1曲のみ。残り 4曲 + SE が未完成
  • Naninovel パッケージ内の prefab を直接編集している(再インポート上書きリスク、Variant 化未対応)

2026-05-15 18:00 時点のスナップショット

進捗

  • Scene14 の Discord 風チャットUI が完成形に到達
    • ChatMessageDiscord は Discord 風レイアウト(左アバター + 右名前 + 本文)
    • 時刻表示(「ts:HH:MM」 タグ)でユーザー操作可能
    • PhoneChatUIDiscord(メイン色 #1C1D22)にスマホ枠UI完成、余白も最適化
    • Reveal Delay Modifier 0 でアバター・名前・時刻・本文が同時表示
  • 第1章プロトタイプは「テキスト + 表情 + 衣装 + 背景 + 立ち絵 + テキストボックス + タイトル画面(基本)+ Discord 風チャットUI(完成)」が揃った状態
  • ベータターゲット観点で残るのは「タイトル画面の仕上げ」「BGM/SE」「通し読み・推敲」

次にやること

  • 明日(2026-05-14〜): タイトル画面の仕上げ着手
    • ButtonsPanel 位置調整(画面右下 or 下中央)
    • 起動時タイトル表示の設定(Naninovel UIConfiguration)
    • 「タイトル → 本編 → エンド」の通しフロー確認
  • BGM / SE 追加(Suno / Udio 検討)
  • 第1章 通し読み・推敲
  • 名前のキャラ別色付け(Discord UI 微調整)
  • ChatDiscord メッセージ下から積み上げ調整(スマホ枠下半分が空く現象)
  • 角括弧 inline command 衝突問題のナレッジ化(3件目)

詰まっていること・未決事項

  • ChatDiscord のメッセージがスマホ枠の上部に固まって下半分が空になる挙動(次回 or 後日対応)
  • BGM / SE はまだ未設定
  • Naninovel パッケージ内の prefab を直接編集している(再インポート上書きリスク、Variant 化未対応)

2026-05-13 21:00 時点のスナップショット

進捗

  • Scene14 の Discord 風チャットUI が見た目含めてほぼ完成
    • ChatMessageDiscord は Discord 風レイアウト(左アバター + 右名前 + 本文)に整形済み
    • メッセージ間隔・Padding を調整して詰まり感解消
    • 時刻表示拡張(「ts:HH:MM」 タグ)を C# で実装、Scene14 の全 Chat メッセージに夕方時刻を仕込み済み
    • PhoneChatUIDiscord(Discord ダークモード風スマホ枠)を生成・配置済み
  • 不要な旧 prefab(Chat1on1*, ChatMessageMe/Contact)を削除して整理
  • 第1章プロトタイプは「テキスト + 表情 + 衣装 + 背景 + 立ち絵 + テキストボックス + タイトル画面 + Discord 風チャットUI(見た目もほぼ完成)」が揃った状態

次にやること

  • ChatDiscord のメッセージ位置調整(メッセージが上部に固まる現象、下から積み上げ or スマホ枠サイズ調整)
  • 名前のキャラ別色付け(ひな=ピンク、美咲=ブルー、Naninovel Configuration の Name Color)
  • Reveal Delay Modifier を 0 にして本文タイピング遅延を消す
  • TitleUI の ButtonsPanel 位置調整 + 起動時タイトル表示の設定
  • BGM / SE 追加
  • 第1章 通し読み・推敲
  • 角括弧 inline command 衝突問題をナレッジ化(3件目)

詰まっていること・未決事項

  • ChatDiscord のメッセージがスマホ枠の上部に固まって下半分が空になる挙動(要レイアウト調整)
  • TitleUI の ButtonsPanel が現状デフォルト位置のまま、起動時にタイトル画面が出るかどうかも未確認
  • BGM / SE はまだ未設定
  • Naninovel パッケージ内の prefab を直接編集している(再インポート上書きリスク、Variant 化未対応)

2026-05-13 18:30 時点のスナップショット

進捗

  • Scene14 のチャットUI が Discord 風で動作(メッセージ積み重ね + アバター表示)
    • ChatDiscord.prefab を独立コピーで運用、@printer ChatDiscord で切替
    • ひな・美咲のアバター画像(顔のアップ、円形マスク)配置済み
    • Auto Reset OFF / Avatar Resources の Name は <CharID>/Default 形式で確定
  • LinkedPrinter 残置による Printer 暴走を解消(Hinata の LinkedPrinter を空にした)
  • Entry / Scene13 冒頭に @printer Dialogue を明示する運用に変更(防衛策)
  • 第1章プロトタイプは「テキスト + 表情 + 衣装 + 背景 + 立ち絵 + テキストボックス + タイトル画面 + Discord 風チャットUI(機能のみ)」が揃った状態

次にやること

  • ChatDiscord.prefab のレイアウト調整: PhoneChatUI(スマホ風枠)を背景に組み込み、Discord 風のメッセージ並び、名前の色付け(キャラ別 Message Color)
  • TitleUI の ButtonsPanel 位置調整 + 起動時タイトル表示の設定
  • BGM / SE の追加(教室の牌音、神楽坂、紀の善店内など。Suno / Udio)
  • 第1章 通し読み・推敲(テキスト/表情/背景/UI 全体の違和感チェック)
  • 他 Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • 第2章のアウトライン設計

詰まっていること・未決事項

  • ChatDiscord の見た目は未調整(標準 Chat の見た目のまま動いてる)。PhoneChatUI 背景や色付けが残
  • TitleUI の ButtonsPanel が現状デフォルト位置のまま、起動時にタイトル画面が出るかどうかも未確認
  • BGM / SE はまだ未設定
  • Naninovel パッケージ内 Dialogue.prefab / TitleUI.prefab / ChatMessage.prefab を直接編集している(再インポート上書きリスクあり、Variant 化を後日検討)
  • Chat1on1Me / Chat1on1Contact / Chat1on1 の Actor 登録が TextPrinters に残っている(不要)、整理推奨

2026-05-12 14:00 時点のスナップショット

進捗

  • ゲームタイトル確定: 「ひなたの麻雀さんぽ」
  • テキストボックスの見た目を世界観に合わせて刷新
    • Continue Indicator: 肉球アイコン(白シルエット + 淡いベージュ Tint)
    • 背景: 和紙風ダークブラウン + 金色太枠(9-slice Border 120px、Image Type=Sliced、Pixels Per Unit Multiplier=1)
  • タイトル画面の基本実装完了
    • キービジュアル(神楽坂朝の路地でひな・美咲が並んで歩く16:9)
    • ロゴ(「ひなたの麻雀さんぽ」明朝体・ダークブラウン)
    • TitleUI.prefab に BackgroundImage と TitleLogo を新規追加して配置完了
  • 第1章プロトタイプは「テキスト + 表情 + 衣装 + 背景 + 立ち絵パラメータ統一 + テキストボックス + タイトル画面」が一通り揃った状態

次にやること

  • TitleUI の ButtonsPanel 位置調整(画面右下 or 下中央、ロゴ・キャラと被らないように)
  • 起動時にタイトル画面が表示される設定(Naninovel Configuration → UIConfiguration の確認、または InitialScript の調整)
  • BGM / SE の追加(教室の牌音、神楽坂、紀の善店内など。Suno / Udio で生成)
  • LINE風UI(シーン14)の実装(Chat Printer 検討)
  • 第1章 通し読み・推敲(テキスト/表情/背景/UI 全体の違和感チェック)
  • 他 Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • 第2章のアウトライン設計

詰まっていること・未決事項

  • TitleUI の ButtonsPanel が現状デフォルト位置のまま、起動時にタイトル画面が出るかどうかも未確認
  • BGM / SE はまだ未設定(最後の雰囲気上げが残ってる)
  • LINE風UI(シーン14)の実装方針未確定(Chat Printer 利用?)
  • Naninovel パッケージ内 Dialogue.prefab / TitleUI.prefab を直接編集している(再インポート上書きリスクあり、Variant 化を後日検討)

2026-05-11 09:30 時点のスナップショット

進捗

  • 第1章プロトタイプがベータテスター見せられるレベルに肉薄する状態
  • 立ち絵の全画面表示パラメータを商業VN的な収まりに統一
    • 全8キャラ PPU 120
    • pos の Y=-15 で立ち絵を画面下方に下げて足元がテキストボックス周辺に自然に隠れる
    • 左右配置は2人=30/70、3人=20/50/80、4人=15/38/62/85、常連登場=85、単独=50 で統一
  • ひな・美咲の私服差分(Casual バリアント)を Scene03〜14 全シーンに組み込み完了
    • Casual.png + Casual_.png(5表情)× 2キャラ = 計10枚
    • ひな = クリーム/ベージュ A-line ワンピース、美咲 = ラベンダーT + デニムショート
    • Scene01-02 は制服、Scene03-14 は私服で土曜デート〜麻雀教室〜帰宅の流れに視覚整合
  • 全要素(テキスト + 表情 + 衣装 + 背景10枚 + 立ち絵サイズ・位置)が揃って Unity Play で通し動作確認済み

次にやること

  • タイトル画面の実装(オープニング → 本編、ベータ向け第一印象、ベータターゲット必須項目)
  • BGM / SE の追加(教室の牌音、神楽坂、紀の善店内など。Suno / Udio で生成)
  • LINE風UI(シーン14)の実装(Chat Printer 検討、シーン14 の演出をブラッシュアップ)
  • 第1章 通し読み・推敲(テキスト/表情/背景の違和感チェック、テンポ確認)
  • 他 Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • 第2章のアウトライン設計

詰まっていること・未決事項

  • BGM / SE はまだ未設定(最後の雰囲気上げが残ってる)
  • タイトル画面・オープニング演出が未実装
  • LINE風UI(シーン14)の実装方針未確定(Chat Printer 利用?)
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(再インポートで上書きリスクあり、Variant 化を後日検討)

2026-05-08 19:30 時点のスナップショット

進捗

  • 第1章プロトタイプが背景画像付きで全シーン動作する状態に到達
  • 背景画像10枚を生成・配置・@back 組み込み完了(画風 Studio Ghibli 風水彩画で統一)
    • 必須5枚: Classroom / KagurazakaMorning / Kinozen / SchoolExterior / HinataRoom
    • セカンダリ5枚: SchoolClassroom / KagurazakaSunset / StationEvening / TrainInterior / KagurazakaAfternoon
  • 第1章全シーン(Entry / Scene02〜14)に背景遷移を組み込み(場面切替: 紀の善内→外、ビル前→入室、教室→ビル外、駅→電車内、教室夕焼け→坂道夕焼け→駅夕方→電車夕方)
  • 完成ターゲット = ベータテスター見せられるレベル、ビジュアル系を最優先で進める方針
  • 画面アスペクト比 16:9 横向きに確定
  • Unity 上で背景10枚が Resources に登録された状態を再起動で確認済み

次にやること

  • Unity で第1章を通しプレイして動作確認(特に Scene02 の坂道→駅→電車の連続切替、Scene13 の教室→坂道)
  • タイトル画面の実装(オープニング → 本編、ベータ向け第一印象)
  • BGM / SE の追加(教室の牌音、神楽坂、紀の善店内など。Suno / Udio など検討)
  • LINE風UI(シーン14)の実装(Chat Printer 検討)
  • ひな・美咲の私服差分(シーン3、神楽坂デート用)
  • 第1章 通し読み・推敲(テキスト/表情/背景の違和感チェック)
  • 他 Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定

詰まっていること・未決事項

  • BGM / SE はまだ未設定(背景+立ち絵+テキストまで揃った状態で雰囲気を更に上げるならここ)
  • タイトル画面・オープニング演出が未実装
  • LINE風UI(シーン14)の実装方針未確定(Chat Printer 利用?)
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(再インポートで上書きリスクあり、Variant 化を後日検討)

2026-05-06 05:50 時点のスナップショット

進捗

  • 第1章プロトタイプの表情演出が全シーンで完成(Entry / Scene02〜14、合計15シーン)
  • 全キャラの表情差分が Naninovel Resources に登録済み:
    • ひな(5表情): Default / Confused / Embarrassed / Happy / Surprised
    • 美咲(5表情): Default / Apologetic / Excited / Mischievous / Surprised
    • 寛子(5表情): Default / Concerned / Smile / Surprised / Teaching
    • 田辺(5表情): Default / Cheering / Smile / Surprised / Thinking
    • 藤村(5表情): Default / Cheering / Mischievous / Smile / Surprised
    • 中村(5表情): Default / Cheering / Embarrassed / Smile / Surprised
    • 黒川・朝倉(Default のみ)
  • シーン12 の章クライマックス(田辺・藤村・中村が pos:80 に順次 Cheering)と、シーン13 の見送り(同 Smile)で、常連の温かい演出パターンを確立
  • Unity 動作確認済み

次にやること

  • 第1章 通し読み・整合性チェック・推敲(プロトタイプを Play で実際にプレイしながら、テキストのリズム・表情切替のテンポをチェック)
  • 第2章のアウトライン設計(テーマ:役を覚える、田辺茂との交流)
  • ひな・美咲の私服差分(シーン3、神楽坂デート用のおしゃれ服)
  • 背景画像の生成(神楽坂・教室・自室など)
  • BGM / SE 追加
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定

詰まっていること・未決事項

  • 背景・BGM はまだ未設定(テキスト+立ち絵までで通しプレイ可能)
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(再インポートで上書きリスクあり、Variant 化を後日検討)
  • LINE風UI(シーン14)の実装方針未確定(Chat Printer 利用?)

2026-05-05 22:30 時点のスナップショット

進捗

  • シーン2〜5の表情切替実装完了(ひな・美咲のみ登場のシーン群、@char で心情切替)
  • 寛子・田辺・藤村・中村の表情差分PNG(4表情×4キャラ=16枚)を生成・透過処理・配置完了
    • rembg + isnet-anime で透過処理
    • Unity Assets/Characters/{Hiroko,Tanabe,Fujimura,Nakamura}/ に大文字始まりファイル名で配置済み
  • 表情差分プロンプトを英語化(ChatGPT Images 2.0 の画質・指示再現性のため)
  • Codex Computer Use 用にプロンプトとファイル名を1コードブロックに統合する運用を確立

次にやること

  • Unity Editor 側の登録作業(次回のメインタスク)
    1. 16PNG の Sprite 設定: Texture Type = Sprite (2D and UI) / Sprite Mode = Single / Pixels Per Unit = 200
    2. Naninovel Configuration → Characters → 各キャラの Resources に表情差分を登録(Hiroko: Smile/Surprised/Teaching/Concerned、Tanabe: Smile/Thinking/Surprised/Cheering、Fujimura: Smile/Surprised/Mischievous/Cheering、Nakamura: Smile/Surprised/Embarrassed/Cheering)
    3. File → Save Project で git 反映を確認
  • 黒川・朝倉の表情差分は要否を判断(黒川は「会釈のみ・沈黙」中心なので Default のみで十分かもしれない)
  • シーン6〜13に @char で表情切替を組み込む(Unity 登録完了後)
  • ひな・美咲の私服差分(シーン3)
  • 背景画像の追加検討(神楽坂・教室・自室など)
  • BGM / SE 追加
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定

詰まっていること・未決事項

  • Unity Editor 登録作業がまだ。ファイル配置までで止まっている(手作業必須のため)
  • 黒川・朝倉の表情差分の要否未決
  • 背景・BGM はまだ未設定
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(再インポートで上書きリスクあり、Variant 化を後日検討)

2026-05-05 19:50 時点のスナップショット

進捗

  • 第1章プロトタイプが立ち絵付き・透過処理済み・二重描画なしで動作する完成形に到達
  • 全シーン(Entry / Scene02〜14)に @char コマンドを追加、シーンごとに立ち絵切り替え動作
  • 全8キャラの立ち絵を rembg + isnet-anime モデルで透過処理(背景透明化)
  • 立ち絵二重描画問題を解決:SampleScene のデフォルト Main Camera を削除(Naninovel が独自 MainCamera を持つので、デフォルト Main Camera と二重撮影していた)
  • Unity バージョン: 6.3 LTS のまま継続(バージョン問題ではないと検証済み)

次にやること

  • ひなた・美咲の表情差分生成(Happy / Surprised / Confused / Embarrassed / Sad など 5〜6パターン)
  • 残りキャラの表情差分
  • ひなた・美咲の私服差分(シーン3)
  • 背景画像の追加検討(神楽坂・教室・自室など)
  • BGM / SE 追加
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定

詰まっていること・未決事項

  • 立ち絵は Default 1枚のみ。表情差分・私服差分はまだ未生成
  • 背景・BGM はまだ未設定
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(再インポートで上書きリスクあり、Variant 化を後日検討)

2026-05-04 06:52 時点のスナップショット

進捗

  • 第1章プロトタイプが立ち絵付きで動作(全14シーン Naninovel 化+ Entry.nani にひなた・美咲の立ち絵表示)
  • 全8キャラの Sprite 化完了(Implementation = Naninovel.SpriteCharacter、Default 画像を Resources に登録)
  • 全キャラの Pixels Per Unit を 200 に統一(頭部切れ問題を解消)
  • Entry.nani 冒頭で @char Hinata.Default pos:35 / @char Misaki.Default pos:65 で左右配置

次にやること

  • シーン2〜14 に @char コマンドを追加
  • 立ち絵の透過処理(remove.bg / Photoshop)
  • ひなた・美咲の表情差分生成

詰まっていること・未決事項

  • 立ち絵は Default 1枚のみ、白背景のまま(透過処理が必要)
  • シーン2以降は @char コマンドが入っておらず、立ち絵切り替えが未実装

2026-05-03 18:18 時点のスナップショット

進捗

  • 第1章プロトタイプが通しで動作(全14シーン Naninovel 化、テキスト表示完成)
  • 全8キャラの Default 立ち絵ベース完成(ChatGPT Images 2.0、Character DNA 方式)
    • Assets/Characters/<CharID>/Default.png × 8(ひなた・美咲・寛子・田辺・藤村・中村・黒川・朝倉)
    • 画風: 日常系アニメ + ジブリ寄りの柔らかい絵柄、全キャラ統一
  • 全キャラの Display Name 登録済み
  • 日本語フォント表示(Noto Sans JP + Dynamic SDF)が綺麗に動作

次にやること

  • ひなた・美咲の表情差分生成(Happy / Surprised / Confused / Embarrassed / Sad など 5〜6パターン)
  • 残りキャラの表情差分
  • ひなた・美咲の私服差分(シーン3)
  • 立ち絵の透過処理(remove.bg / Photoshop)パイプライン構築
  • 立ち絵のアップスケール(Topaz Gigapixel / upscayl)パイプライン構築
  • Naninovel Character Configuration を Placeholder から Sprite 化(@char コマンドで立ち絵を表示)
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定

詰まっていること・未決事項

  • 立ち絵は Default 1枚のみ。表情差分・私服差分はまだ未生成
  • 背景・BGM はまだ未設定
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(Naninovel 再インポートで上書きリスクあり、Variant 化を後日検討)

2026-05-02 17:35 時点のスナップショット

進捗

  • 第1章プロトタイプが通しで動作する状態(全14シーン Naninovel 化完了)
  • 全キャラの Display Name 登録済み(ひなた・美咲・寛子先生・田辺さん・藤村さん・中村さん・黒川さん・朝倉さん)
  • Assets/Scenario/ 配下: Entry.nani, Scene02.naniScene14.nani の14ファイル
  • シーン12 のミニゲーム①(3択選択肢分岐)動作確認済み
  • 日本語フォント表示(Noto Sans JP + Dynamic SDF)が綺麗に動作

次にやること

  • 立ち絵生成プロンプト(Character DNA)の試作(ChatGPT Images 2.0、ひなた・美咲から)
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定(Chat printer 利用?)
  • ミニゲーム①の再選択ループの本格実装(独立スクリプト分割)

詰まっていること・未決事項

  • 立ち絵・背景・BGM はまだ未設定(テキストのみで通しプレイ可能な状態)
  • Naninovel パッケージ内 Dialogue.prefab を直接編集している(Naninovel 再インポートで上書きリスクあり、Variant 化を後日検討)
  • Naninovel のラベルジャンプ構文が独特なので、複雑な分岐実装は要注意(今回ハマった)

2026-05-02 16:15 時点のスナップショット

進捗

  • 第1章シーン1の Naninovel プロトタイプが動作確認済み
  • 日本語フォント設定完了(Noto Sans JP + Dynamic SDF)
  • Dialogue Printer のフォント設定完了
  • Hinata / Misaki の Display Name を日本語化
  • Entry.nani にシーン1全文(約1,500字)を Naninovel スクリプト形式で記述
  • Play で日本語表示成功(立ち絵・背景なし、テキストのみ)

次にやること

  • 残りキャラの Display Name 登録(寛子・田辺・藤村・中村・黒川・朝倉)
  • シーン2の Naninovel スクリプト化(テンプレ確立できたので横展開)
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定(Chat printer 利用?)

詰まっていること・未決事項

  • Naninovel パッケージ内 Dialogue.prefab を直接編集している。Naninovel 再インポートで上書きされるリスクあり、Variant 化を検討
  • 立ち絵・背景・BGM はまだ未設定(仮素材で動作確認中)
  • ミニゲーム①(シーン12)の選択肢UI実装も後日

2026-05-01 19:25 時点のスナップショット

進捗

  • 実装フェーズ初日完了:Unity 6.3 + Naninovel セットアップ済み、サンプル動作確認OK
  • Unity プロジェクト hinata-mahjong-app/ 作成(既存リポジトリのサブディレクトリ)
  • Assets/Scenario/Entry.nani を第1章シーン1冒頭の最小バージョンに置換済み
  • 第1章 本文ドラフト v1 完成(約20,640字 / 14シーン)

現在の課題

  • 日本語が文字化け中(デフォルトフォントに日本語含まれず)
  • 解消には次のステップ:
    1. Noto Sans JP(Google Fonts)ダウンロード
    2. TextMesh Pro Font Asset 作成
    3. Naninovel Configuration の Text Printer でフォント変更

次にやること

  • 日本語フォント設定(明日の最優先タスク)
  • 文字化け解消後、シーン1全文を Naninovel スクリプトに本格変換
  • キャラ ID と表示名の Configuration 設定
  • 第2章のアウトライン設計
  • キャラ立ち絵の Character DNA プロンプト確定(ChatGPT Images 2.0)

詰まっていること・未決事項

  • Naninovel の Story Editor の使い方は未習得(.nani 直接編集で回避)
  • LINE風UI(シーン14)の Naninovel 実装方針は別途検討が必要

2026-05-01 17:40 時点のスナップショット

進捗

  • 第1章「麻雀って面白いの?」全14シーン 本文ドラフト v1 完成
  • 字数: 約20,640字 / 目標 22,000字(進捗 約94%)
  • 主人公の名字を「丸井」→「丸山」に変更完了
  • 学習要素3段階(牌の種類 / 和了形 / 順子・刻子・対子)+ミニゲーム①の実装仕様確定
  • 寛子・田辺・藤村・中村が初登場済み、黒川は会釈のみで謎の引き保持

次にやること

  • 第1章の通し読みでの整合性チェック・推敲
  • 第2章のアウトライン設計(テーマ:役を覚える、田辺茂との交流)
  • Naninovel 購入(期限 2026-05-06 PDT、$75)
  • キャラ立ち絵の Character DNA プロンプト確定(ChatGPT Images 2.0)

詰まっていること・未決事項

  • 特になし。第1章は本文ドラフト v1 が完成し、推敲フェーズへ移行する段階
  • LINE風UI(シーン14)の Naninovel 実装方針は別途検討が必要

2026-04-30 19:54 時点のスナップショット

進捗

  • 第1章「麻雀って面白いの?」のシーン1〜3 本文ドラフト v1 完成
  • 字数: 約3,970字 / 目標 25,000字(進捗 約16%)
  • 動機設計・執筆ルール・キャラ補足設定は scenario/chapter01/outline.md に固められている
  • .gods-talk/ で第1章動機設計のブレスト(25案)が完了済み

次にやること

  • シーン4(紀の善でのあんみつ体験、約1,500字)から再開
  • 第1章を残り12シーン書き上げて固める(ユーザー意向「あした1章かためたい」)

詰まっていること・未決事項

  • 特になし。各シーンのビート分解 → 会話で本文ドラフト合意 → ファイル化、というフローが安定している
  • シーン4以降のビート分解は未着手(outline.md には骨子のみ)

ROADMAP(計画)

ロードマップ

今週

  • 第1章のシーン4〜14 を書き上げる(約16,670字、合計約20,640字達成)
  • Naninovel を Unity Asset Store Spring Sale 期間中に購入(〜2026-05-06 PDT、$75)
  • Unity プロジェクト初期化(Unity 6.3 + Universal 2D + Naninovel インポート)
  • 日本語フォント設定(Noto Sans JP + TextMesh Pro Dynamic SDF + Naninovel Configuration)
  • 第1章シーン1の本文を Naninovel スクリプトに変換、Play で動作確認
  • 残りキャラの Display Name 登録(寛子・田辺・藤村・中村・黒川・朝倉)
  • 第1章プロトタイプ動作確認(シーン2〜14 を Naninovel 化、通しプレイ可能)
  • 立ち絵生成プロンプト(Character DNA)の試作 + 全8キャラの Default ベース画像生成・配置

今月

  • 第1章 本文ドラフト v1 完成(実筆 約20,640字 / 目標22,000字、進捗94%)
  • Unity プロジェクト初期化、Naninovel インポート
  • 第1章プロトタイプ動作確認(テキスト+仮素材で通しプレイ可能)
  • シーン2〜14 の Naninovel スクリプト化
  • 全8キャラの Default 立ち絵ベース完成
  • シーン2〜14 に @char コマンドを追加(シーン6で寛子初登場、シーン7で常連たち、シーン13で寛子離脱、シーン14で全員 hide)
  • 立ち絵の透過処理(rembg + isnet-anime モデルで全8キャラ実施)
  • 立ち絵二重描画問題の解決(SampleScene の Main Camera 削除)
  • ひなた・美咲の表情差分生成(5パターンずつ、Naninovel 登録済み)
  • シーン2〜5 の表情切替実装(ひな・美咲のみ登場のシーン群、@char で心情切替)
  • 寛子・田辺・藤村・中村の表情差分PNG生成・透過処理・配置(4表情×4キャラ=16枚、Unity 配置完了)
  • 寛子・田辺・藤村・中村の表情差分を Unity / Naninovel に登録(Assets.json に16エントリ追加、Unity 再起動で UI 反映確認)
  • シーン6〜14 に @char で表情切替を組み込む(第1章プロトタイプの表情演出が全シーンで完成)
  • 黒川・朝倉の表情差分の要否判断(黒川は Default のみで運用、朝倉は立ち絵が画面に出る章まで保留)
  • 画面アスペクト比を 16:9 横向きに確定
  • 背景画像10枚を生成・配置・@back 組み込み(必須5枚 + セカンダリ5枚、第1章全シーン背景カバー完了)
  • 立ち絵の表示パラメータ統一(PPU 120、pos:Y=-15、pos:X 標準値、商業VN的な収まり)
  • ひなた・美咲の私服差分(Casual + Casual_ 計10枚、Scene03〜14 全シーンに組み込み完了)
  • Naninovel Character Configuration を Placeholder から Sprite 化(全8キャラ完了、Pixels Per Unit 200、Entry.nani で動作確認)
  • ゲームタイトル確定(「ひなたの麻雀さんぽ」)
  • テキストボックスの和風カスタム(和紙風暗め+金枠+肉球Continue Indicator)
  • タイトル画面の実装(キービジュアル+ロゴ配置済み、ButtonsPanel 位置調整+起動時表示設定が残)
  • BGM / SE 追加(Suno Pro + ElevenLabs Starter、全曲 + 主要 SE 完了)
    • Title BGM(Suno Pro 再生成、商用利用権付き)
    • Scene1-2 BGM(放課後・夕焼け)
    • Scene3-5 BGM(神楽坂の朝・紀の善、軽やか和風+ジャズ寄り)
    • Scene6-13 BGM(麻雀教室、ジャズ)
    • Scene14 BGM(自室・夜、Discord風チャット、控えめアンビエント)
    • BGM 切替は @stopBgm fade:1 + @bgm fade:1 でクロスフェード(Scene03/06/14)
    • SE 7種類(牌音×3, ドア開閉, 階段, 通知, 自動卓)を ElevenLabs Starter で生成
    • 各シーンに @sfx 計9箇所組み込み
    • 追加 SE 候補(教室ざわめき、お茶を入れる音、紀の善の食器音、UI 操作音、ページめくり等)
  • Scene14 のチャットUI 方針確定(LINE風 → Discord 風に変更、ChatDiscord Printer 構築、メッセージ積み重ね + アバター表示まで動作確認済み)
  • ChatDiscord の Discord 風レイアウト構築(LeftSide / RightSide 階層、アバター左 + 名前+本文右、メッセージ間隔調整、スマホ枠 PhoneChatUIDiscord 組み込み)
  • 時刻表示の独自実装「ts:HH:MM」 タグを C# で抽出、Scene14 全 Chat に夕方時刻を仕込み済み)
  • Reveal Delay Modifier を 0 で本文タイピング遅延解消(アバター・名前・時刻・本文が同時表示)
  • PhoneChatUIDiscord の色とサイズ最適化(メイン #1C1D22、スマホ枠が画像の 95% を占める)
  • 名前のキャラ別色付け(Naninovel Configuration の Name Color)
  • 第1章の通し読み・整合性チェック・推敲(プロトタイプを実際にプレイしながら、テキストのリズム/表情/背景の違和感チェック)
  • 第2章のアウトライン設計(テーマ:役を覚える、田辺茂との交流)
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • Naninovel TextPrinter カスタム prefab を Assets/TextPrinters/ 配下に独立コピーへ移行(Dialogue → DialogueCustom.prefab、パッケージ更新の上書きリスクを解消)
  • ダイアログボックスを蒔絵風枠にリニューアル(ChatGPT で横長薄型生成、9-slice をやめて Simple + アスペクト比一致表示、AuthorNamePanel を Ignore Layout + ContentSizeFitter で独立配置)
  • 開発時シーン名デバッグ表示(画面右上に Scene名:L行番号 を常時表示、本番ビルドからは自動除外)
  • ミニゲーム①の再選択ループ本格実装(独立スクリプト分割)

今四半期

  • 各キャラの Character DNA プロンプト確定(ChatGPT Images 2.0)— 全8キャラ完了
  • 第2〜3章の本文ドラフト v1
  • 立ち絵パイプライン構築(透過処理 → アップスケール)
  • 何切る問題ミニゲームのプロトタイプ実装(シーン12 のミニゲーム①拡張版)
  • I2 Localization 統合
  • 既存 Android キーストア自動化スクリプトの統合

いつか

  • 用語集・役の図解ライブラリ作成
  • Android 実機テスト
  • iOS 実機テスト
  • Steam 版(PC)対応
  • ストア審査用素材(スクリーンショット、紹介文、アイコン)作成
  • プライバシーポリシー・利用規約の整備

DECISIONS(意思決定)

意思決定記録

このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。


2026-05-31: ダイアログ背景画像は 9-slice ではなく Simple + アスペクト比一致で扱う

背景: 蒔絵風の凝った金枠 + 四隅装飾 + 角丸(半径 ~100px)の背景画像を 9-slice で組み込もうとして、border 値・PPU Multiplier をいくら調整しても「装飾の歪み」か「Layout 破綻」のどちらかが必ず発生した。9-slice の鉄則「border ≤ 表示サイズ ÷ 2」を、装飾サイズがダイアログ表示高さに対して満たせないのが本質。

決定: ダイアログ背景画像は 9-slice をやめて、画像のアスペクト比をダイアログ表示比率(~4.7:1)に合わせて Simple + Preserve Aspect OFF で表示 する。

理由: 9-slice は「中央が単純なパターン、四隅と四辺だけ装飾」を前提とした仕組みで、装飾が大きい背景画像とは構造的に相性が悪い。画像側を VN の固定ダイアログ比率に合わせる方が、装飾を歪めず Layout も完全一致する。詳細は ~/cdev/knowledge/naninovel-dialogue-box-9slice-aspect.md


2026-05-31: Naninovel TextPrinter のカスタム prefab は Assets/TextPrinters/ 配下に独立コピーで作る

背景: これまで Packages/com.elringus.naninovel/Prefabs/TextPrinters/Dialogue.prefab を直接編集する形でテキストボックスをカスタムしていた。今回のダイアログ大改修でこの運用が原因と思われる挙動の不安定さ(設定変更が反映されたりされなかったり、Sprite Mode を弄ると prefab 構造が壊れる等)に遭遇した。

決定:

  1. カスタム prefab は Assets/TextPrinters/ 配下に独立コピーで配置する。本プロジェクトでは Assets/TextPrinters/DialogueCustom.prefab として運用
  2. Naninovel Configuration → Resources → Printers で Dialogue アクターの prefab 参照を Assets 側に差し替える
  3. Packages 内 prefab は触らない。以前直接編集していた箇所はパッケージ更新で消えるので、Assets 側にカスタム要素を集約していく
  4. ChatDiscord など既存の独立 printer も将来的に同じ作法で Assets 側に移行を検討

理由: パッケージ更新で上書きされるリスクをゼロにする。Configuration の参照先が Project ビューで明確になり、編集の反映ブレもなくなる。詳細は ~/cdev/knowledge/naninovel-custom-text-printer-prefab.md


2026-05-31: BGM/SE 命名規約 + 商用ライセンス運用

背景: Suno Free で生成した曲は商用利用不可で、後から Pro に切り替えても遡及商用化されない(生成時のプランで権利固定)ことが判明。BGM 5曲・SE 7種を生成する過程で運用ルールが固まった。

決定:

  1. AI 生成サービスは商用利用権付きの有料プラン契約中にのみ生成 する
    • BGM: Suno Pro ($10/月)
    • SE: ElevenLabs Sound Effects Starter ($6/月)
    • Free tier の成果物は採用しない(遡及商用化不可、生成時点でプランが固定される)
  2. 採用曲は Suno 上でも Unity と同名にリネームして保管する(例: TitleTheme / Scene1_2 / SE_tile_draw)。生成サービス側の履歴とローカルファイルが常に一致する
  3. 採用曲は .devnotes/BGM_LICENSE.md に必ず記録(生成日、プラン、プロンプト、用途)。ストア審査時の権利根拠資料として
  4. 不採用曲は生成サービス側で削除 or アーカイブして混乱を避ける

理由: 「Free で試して後で Pro に課金」が成り立たないことが判明したため、最初から有料プラン契約 → 一気に必要な曲を生成 → ダウンロードしてローカル保管、というワークフローに統一。命名規約の統一は監査・差し替え・問い合わせ対応のため。


2026-05-31: BGM 切替は @stopBgm + @bgm の併用で 1秒クロスフェード

背景: Naninovel の @bgm <X> は「新しい BGM を追加で再生」する設計で、既存 BGM を停止しない。シーンごとに別 BGM を @bgm だけで切り替えると、両方が重なって鳴る不具合が発生した。

決定: BGM が切り替わるシーンの冒頭で @stopBgm fade:1 + @bgm <新BGM> fade:1 を併記して 1秒クロスフェードで切替する。同じ BGM が継続するシーンでは @bgm のみで OK(再再生されず無視される)。

理由: @bgm 単体では切り替えにならないという仕様を、シナリオ側で明示的に補う。クロスフェードで聴感上もスムーズ。詳細は ~/cdev/knowledge/naninovel-bgm-overlay.md


2026-05-15: BGM 生成は Suno Free から始める + Audio ファイル配置規約

背景: BGM/SE 追加フェーズに入り、ツール選定と運用ルールを決める必要があった。Suno / Udio / フリー素材サイト(DOVA-SYNDROME / 甘茶の音楽工房)が候補。

決定:

  1. BGM 生成は Suno Free から開始する。50 クレジット(約 10曲分)でコア BGM 4-5 曲をベータ品質で揃える
  2. 商用化時は Suno Pro $10/月 で同じプロンプトで再生成、または フリー素材サイト(DOVA-SYNDROME / 甘茶の音楽工房)で代替を検討
  3. Audio ファイル配置規約:
    • Assets/Audio/<bgmId>.mp3 の直下に配置する(サブフォルダ BGM/SFX/Voice は作らない)
    • シナリオでは @bgm <bgmId> でシンプルに参照する
    • Assets.json のエントリは prefix: "Audio", path: "<bgmId>", group: "" で統一
  4. タイトル画面と本編の BGM 分離は Initial Script (Entry.nani) 冒頭の @bgm で実質運用。Title.nani 分離は後日検討(必要になったら)

理由: Suno Free でベータ品質確認 → 課金は本当に必要な段階で。Audio ファイル配置はシンプルさ優先(サブフォルダなしで @bgm TitleTheme の短い記述で済む)。Naninovel の AudioLoader.PathPrefix は Audio なので、サブフォルダなしで <bgmId> 単体で解決できる。


2026-05-13: Naninovel メッセージ本文中で独自タグを定義する場合は日本語括弧 「」 を使う

背景: Chat Printer で「メッセージ本文に時刻情報を埋め込みたい」という要件に対し、C# 側で SetMessageText をオーバーライドして正規表現で抽出する設計にした。当初 [ts:10:35] のような角括弧で囲む形式を採用したが、Naninovel がこれを inline command として解釈し、Command 'ts' is not found エラーで実行失敗した。

決定: Naninovel メッセージ本文中で 独自タグを定義する場合は日本語括弧 「」 で囲む 運用にする。例:

  • 時刻タグ: Misaki: 「ts:17:30」今日マジで楽しかった〜!
  • 将来追加する独自タグも 「タグ名:値」 の形式で統一

理由: Naninovel は [...] をシナリオ全体で「inline command」として予約しており、本文中に書くと自動でコマンド実行を試みるためエラーになる。{...} も variable interpolation 用に予約されている可能性があり、避けるべき。日本語括弧 「」 は Naninovel の予約と衝突せず、日本語シナリオ内でも自然に書ける。バックスラッシュエスケープ \[...\] も可能だが、シナリオの可読性が下がるため日本語括弧を採用。


2026-05-12: Scene14 のチャットUI は Discord 風で実装(LINE 風から方針変更)

背景: 当初は LINE のトーク画面を模した実装(自分=右側・薄緑、相手=左側・白、吹き出し色違い)を目指し、Chat1on1Me / Chat1on1Contact / ChatMessageMe / ChatMessageContact の4 prefab + LinkedPrinter の構成で進めていた。しかし Naninovel の Chat Printer 標準では「キャラごとに左右配置を切り替える」機能が無く、prefab 分離 + シナリオ煩雑化のコストが大きいと判明した。

決定: Scene14 のチャットUI を Discord 風(自分も相手も同じフォーマット:アバター + 名前 + メッセージ、すべて左揃え) に方針転換する。Naninovel の Chat Printer 標準動作(メッセージが下に積み重なる)を活かす。

理由: Discord 風は「1テンプレートで両者を扱える」ため Naninovel と相性が良い。LINE 風の左右切替は Naninovel カスタムコード or 煩雑な Actor 分離が必要で、ベータターゲットに対する投資効率が悪い。LINE 風らしさは犠牲になるが、画面世界観(神楽坂・夕暮れの自室)と相性のよい和テイストの Discord 風で十分代替できる。


2026-05-12: ChatDiscord は独立コピーで運用 + 各シーン冒頭に @printer Dialogue を明示

背景: Naninovel パッケージ内の Chat.prefab を直接編集すると、パッケージ再インポートで設定が上書きされるリスクがある。また、テスト用に設定した LinkedPrinter や Printer 切替が他シーンに引き継がれて意図しない Printer に「暴走」する事故が発生した。

決定:

  1. ChatDiscord は独立コピー prefab で運用: Naninovel パッケージの Chat.prefab を独立コピーして Assets/UI/ChatDiscord.prefab 相当を作成、TextPrinters に新規 Actor として登録。Naninovel 再インポートの影響を受けない
  2. 各シーン冒頭に @printer Dialogue を明示する: シナリオを跨いだ Printer 状態の引き継ぎを防ぐ防衛策として、Entry および Chat 切替後に再生される可能性のあるシーン(Scene13 等)の冒頭で必ず @printer Dialogue を呼ぶ
  3. LinkedPrinter は使わない: グローバル設定でテスト残置が他シーンに波及するリスクが大きい。Printer 切替はシナリオで明示的に行う方針(既存の DECISIONS と整合)

理由: Naninovel の Printer 状態はシナリオ間で持続する仕様。テスト/開発中の暫定設定が後で「なぜか全シーンで Chat が出る」のような暴走を起こすため、シナリオ側で明示的・自己完結的に Printer 状態を管理する運用にする。


2026-05-12: Naninovel の Avatar 解決は <CharID>/Default 形式(ナレッジ化済み)

背景: Chat Printer でアバター画像を表示しようとしたが、Avatar Resources に Name Hinata で登録しても表示されなかった。Naninovel パッケージのソース (CharacterManager.GetAvatarTexturePathFor) を読み込んで原因解明した。

決定: Avatar Resources の Name は <CharID>/Default 形式(例: Hinata/Default, Misaki/Default)で登録する。Object は対応する Assets/CharacterAvatars/<CharID>.png を割り当てる。

理由: Naninovel が {characterId}/Default でフォールバック解決する実装になっているため。これは ~/cdev/knowledge/naninovel-chat-printer-avatar-path.md にもナレッジ化済み。


2026-05-11: ゲームタイトルを「ひなたの麻雀さんぽ」に確定

背景: タイトル画面の実装に着手するにあたり、ゲーム全体のタイトルが未確定だった。HIKITUGI.md の第1章タイトル「麻雀って面白いの?」を流用するか、新たに考えるかが論点だった。

決定: ゲーム全体のタイトルを 「ひなたの麻雀さんぽ」 に確定する。

理由: 主人公「ひなた」の名前を冠することで愛着が出る。「さんぽ」のひらがな表記で柔らかさを演出。「神楽坂を歩く」というシーン3〜5の世界観や、ゆるい日常系のジャンル感と一致。「麻雀って面白いの?」は引き続き第1章のサブタイトル/章タイトルとして使う。


2026-05-11: テキストボックスのカスタム規約

背景: Naninovel デフォルトの Dialogue.prefab は黒系の半透明ボックスで、シナリオ世界観(神楽坂・老舗甘味屋・教室・ジブリ風)と合っていない。世界観に合わせたカスタムが必要だった。

決定: Dialogue.prefab を以下のようにカスタムする:

  1. Continue Indicator は肉球アイコン
    • 白シルエット PNG(Assets/UI/PawIcon.png)を配置
    • Unity の Image Color で Tint(淡いベージュ #F0DCC8 など)
    • PIL で白背景を透過化+シルエットを白に反転して、Tint で色変更可能にする運用
  2. 背景は和紙風ダークブラウン+金色太枠
    • ChatGPT Images 2.0 で生成(dark brown #3A2A20 + 金色枠 #B89968 + 太い枠線 12-15px)
    • 9-slice 設定: Border 120px、Image Type=Sliced
    • Pixels Per Unit Multiplier=1(ここが落とし穴、9 などにしておくと Border が縮小されて 9-slice 効かず角がガタつく)
  3. 編集対象は Packages/com.elringus.naninovel/Prefabs/TextPrinters/Dialogue.prefab(Variant 化は後日検討)

理由: 世界観統一を最優先。Continue Indicator の肉球は可愛らしさと「ひなたの麻雀さんぽ」のタイトル世界観にも合う。テキストボックスの和紙+金枠は老舗甘味屋・教室の和の雰囲気を直接表現。Pixels Per Unit Multiplier の罠は今後新規 UI を作る際にも参照すべき重要知見。


2026-05-08: 立ち絵の表示パラメータ統一規約

背景: 立ち絵の表示が画面に対して小さく感じられ、ベータ向けの「存在感」が足りなかった。PPU や pos の値が場面ごとにバラバラだと運用負担も大きい。

決定: 全立ち絵に以下を適用する:

  • PPU 120(CharactersConfiguration.asset の各キャラ Metadata 一律)
  • pos:Y は -15 で統一(Pivot は {x: 0.5, y: 0} のままで、立ち絵全体を画面下方に押し下げて足元を画面外/テキストボックス周辺に隠す)
  • pos:X の標準値: 2人並び=30/70、3人並び=20/50/80、4人並び=15/38/62/85、常連登場=85、単独=50

理由: PPU 120 で立ち絵が画面に映える存在感を出しつつ、pos:Y=-15 で頭が画面内・足元が画面外になる商業VN的な収まりを実現。Pivot を変えるより pos:Y を負にする方が運用シンプル。pos:X の等間隔配置で全シーンの視覚整合を確保。


2026-05-08: 衣装運用ルール(制服 / 私服)と命名規則

背景: Scene01-02 は学校・帰り道(平日夕方)、Scene03-14 は土曜のデート〜麻雀教室〜帰宅で、シナリオ上はひな・美咲が私服に着替える。立ち絵は表情×衣装の組み合わせを Naninovel の appearance ID で管理する必要があった。

決定:

  1. シーン別衣装: Scene01-02 = 制服(既存の Default / Happy / Surprised / Confused / Embarrassed 系)、Scene03-14 = 私服(Casual バリアント)
  2. 命名規則: 制服は appearance 名そのまま(Hinata.Default, Hinata.Happy など)、私服は Casual プレフィックス付き(Hinata.Casual, Hinata.Casual_Happy, Hinata.Casual_Surprised など)
  3. 服装の方向性: ひな = クリーム/ベージュ A-line ワンピース(cream 系)、美咲 = ラベンダー T シャツ + デニムショート(ひなと色がかぶらないように差別化)
  4. 生成範囲: ひな・美咲のみ(他キャラは制服/私服の概念がないので不要)。各5表情 × 2キャラ = 計10枚

理由: Naninovel の appearance ID はフラットなので階層構造(Casual.Happy)が使えず、Casual_Happy のアンダースコア区切りで運用統一。Scene03 以降は土曜の私服が続くので、各表情の私服版を全部作って表情切替時の制服戻り問題を解消。色は2キャラ並んだとき視覚差別化を優先(白がかぶる失敗を経験して学んだ)。


2026-05-06: 完成ターゲットを「ベータテスター見せられるレベル」に設定

背景: 第1章プロトタイプを「ほぼ完成」に近い状態まで持っていきたいという方針が立ったが、「完成」のレベル感が曖昧だった。自分用デモ・ベータ向け・ストア公開のどれを目指すかでスコープと優先順位が大きく変わる。

決定: ベータテスター(友人や近しい人)に見せられるレベルを当面の完成ターゲットにする。優先順位は ビジュアル → 演出 → 推敲 の順で進める:

  1. 背景画像(10枚生成・配置完了)← 完了
  2. タイトル画面、BGM/SE、LINE風UI(シーン14演出)
  3. 私服差分、通し読み・推敲

ストア公開(Steam / itch.io / モバイル)は更に先のフェーズ。

理由: 完璧なリリース版を一気に目指すと先が見えず止まりやすい。ベータ品質という具体的なマイルストーンを置くことで、各タスクの「やる/やらない」を判断しやすくする。


2026-05-06: 画面アスペクト比は 16:9 横向き

背景: 背景画像の生成に着手する直前、画面のアスペクト比(横向き 16:9 / 縦向き 9:16 / 両対応)が未決定だった。背景の生成サイズ・立ち絵の見え方・LINE風UI の馴染みやすさ・配信プラットフォームに大きく影響する。

決定: 16:9 横向き で固定。Unity / Naninovel の Reference Resolution は 1920×1080。背景生成は ChatGPT Images 2.0 の landscape (1792×1024) を使用。

理由: 一般的な VN 形式で立ち絵が映える、PC配信(Steam / itch.io)と相性が良い、複数立ち絵を並べやすい。シーン14 の縦長 LINE 風 UI は、横画面の中に縦長 UI コンポーネントとして埋め込む形で対応する。スマホ縦持ちは捨てる判断(HIKITUGI.md でも特に縦持ち前提の記述はない)。


2026-05-06: 背景画像の生成パイプラインと Naninovel 配置規約

背景: キャラ立ち絵のパイプラインは確立していたが、背景画像については未確立だった。画風の一貫性・配置規約・Naninovel 登録方式を統一する必要があった。

決定:

  1. 画風統一: Studio Ghibli 風の柔らかい水彩画風で全背景を統一する。プロンプトに「same art style as the previous backgrounds」を明示し、ChatGPT Images 2.0 の同一セッション内で連続生成して画風を継承させる
  2. 背景セッションをキャラと完全分離: キャラ立ち絵セッションとは別の独立 ChatGPT セッションで背景を生成する。混在させると相互に画風が引きずられる
  3. 生成サイズ: ChatGPT Images 2.0 の landscape(1792×1024)。Unity 側で必要に応じてスケール
  4. 透過処理は不要: 背景は不透明全画面で配置。立ち絵と違って rembg は通さない
  5. 配置場所: Assets/Backgrounds/MainBackground/<BgID>.png(PascalCase の BgID)
  6. Naninovel 登録: BackgroundsConfiguration の MainBackground を SpriteBackground に設定し、Assets.json に手動でエントリ追加(prefix: Backgrounds/MainBackground / path: BgID / group: actor guid)。Unity 再起動で UI 反映確認
  7. 参照画像での修正運用: 麻雀卓の見た目など特定要素を統一したい場合、ChatGPT に参照画像を添付しつつプロンプトで「match the reference image」と指示する形で同一見た目を維持

理由: ジブリ風水彩はキャラ立ち絵(日常系アニメ寄り)とも親和性が高い。背景セッションをキャラと分けることで、画風混入を避けつつ各セッション内で画風を効率的に継承できる。Naninovel の規約は Characters と同じパターンで運用統一。


2026-05-05: 常連キャラの祝福・見送り演出は pos:80 に短時間表示 → @hide で順次切替

背景: シーン12(章クライマックス:ひなの初和了)とシーン13(見送り)で、田辺・藤村・中村の3人の常連が連続で祝福・別れの言葉を投げる場面がある。3人を同時に立ち絵で表示すると画面手前の3人並び(寛子・ひな・美咲、pos:15/35/55)がさらに崩れて視認性が悪くなる。学習シーンでも藤村の合いの手の扱いが課題だった。

決定:

  1. クライマックス/見送りシーン: 各常連を 1人ずつ @char <Char>.<Smile|Cheering> pos:80 で右端に短時間表示し、その直後に @hide <Char> で消して次の常連を表示する。連続切替で温かさのリズムを出す(Scene12 の Tanabe.Cheering → Fujimura.Cheering → Nakamura.Cheering、Scene13 の Tanabe.Smile → Fujimura.Smile → Nakamura.Smile
  2. 学習シーン: 藤村などの合いの手は声だけで扱い、立ち絵を出さない。画面手前は寛子・ひな・美咲の3人並びで固定し、解説のテンポを優先
  3. 黒川: 「会釈のみ」「沈黙」で運用するため、立ち絵は Default のみで十分。表情差分の生成はスキップする
  4. 朝倉: 観戦シーンで言及される存在で、第1章では立ち絵を画面に出さないため、表情差分の生成は朝倉が直接登場する章まで保留

理由: 画面のごちゃごちゃ感を抑えつつ、教室全体の温かさを表現するベストバランス。3人並びの視認性を担保しつつ、章クライマックスでのみ右端に追加表示する変則演出で「特別感」を出せる。


2026-05-05: 表情差分プロンプトは英語で出す + ファイル名を末尾統合する

背景: 寛子・田辺・藤村・中村の表情差分プロンプトを Claude に発行依頼したが、最初に日本語で出してしまった。前回ひな・美咲のときは英語ベースだった可能性が高く、また ChatGPT Images 2.0 は一般に英語プロンプトのほうが画質・指示再現性ともに安定する。さらに、Codex Computer Use を使って自動操作する運用を採用したため、コピペしやすい統合形式が求められた。

決定:

  1. キャラ立ち絵の差分プロンプトは英語で出す。テンプレートは「Generate in the exact same pose, outfit, hairstyle, hair color, body proportions, art style, line weight, and color palette as the established reference image, with ONLY the facial expression changed.」を起点に Eyes / Mouth / Eyebrows / Overall vibe を箇条書きで指定。
  2. ファイル名指示はプロンプト末尾に Save as: <name>.png 形式で含める。プロンプトとファイル名を1つのコードブロックに統合し、Codex Computer Use のコピペが1ステップで済むようにする。
  3. ファイル名は小文字スネークケース(例: hiroko_smile.png)で Downloads に保存し、Unity 配置時に大文字始まり(例: Smile.png)にリネームする。

理由: 英語プロンプトは ChatGPT Images 2.0 の指示理解が安定し、character consistency も保ちやすい。1コードブロック統合は Computer Use の操作ステップを減らし、ヒューマンエラーを防ぐ。命名規約は Unity / Naninovel 側の慣習(appearance ID は大文字始まり)に合わせる。


2026-05-04: Naninovel 導入時は SampleScene のデフォルト Main Camera を削除する

背景: 立ち絵が二重に表示される問題が発生。4時間以上の試行錯誤の末、原因はシーンに Main Camera が2つ存在していたこと。新規 Unity プロジェクト作成時に自動生成される Main Camera と、Naninovel が動的に生成する MainCamera(DontDestroyOnLoad > Naninovel<Runtime> > CameraManager > MainCameraLookContainer > MainCamera)の両方が立ち絵を撮影し、わずかにズレた状態で二重描画していた。

決定: Naninovel を新規 Unity プロジェクトに導入する場合、SampleScene のデフォルト Main Camera は削除する。Naninovel が独自カメラを持つので、シーン側の Main Camera は不要。Global Light 2D は 2D ライティング用なので残す。

理由: Naninovel と Unity デフォルトのカメラ重複による二重描画を防ぐ。Unity バージョンの問題ではなく(Unity 6.0 LTS でも 6.3 でも同じ症状)、Unity 全体に普遍的な落とし穴。


2026-05-04: 立ち絵の透過処理は rembg + isnet-anime モデルを採用

背景: 立ち絵の白背景を透明化するため、rembg のデフォルト u2net モデルで処理したが、エッジに matting halo(半透明の縁)が残った。

決定: rembg の isnet-anime モデルを使用する。コマンド: rembg i input.png output.png -m isnet-anime。アニメ画像に特化したモデルで、エッジが綺麗に抜ける。

理由: u2net は汎用モデルで、アニメイラストのエッジ処理に弱い。isnet-anime はアニメ画像の特性(線画・セル塗り)を考慮した学習データで、エッジが鮮明。さらに、入出力ファイル名は必ず別にすること(同じだと書き込みで元ファイルが消える)。


2026-05-04: Naninovel は Unity 6 系専用、Unity 2022.3 LTS では動かない

背景: Unity 6.3 が立ち絵二重描画の原因かを切り分けるため、Unity 2022.3 LTS への移行を試みた。

決定: Naninovel の現バージョンは Unity 6 系(6000.x)専用。Unity 2022.3 LTS では Awaitable / RenderGraphModule / com.unity.ugui 2.0.0 などの Unity 6 機能が利用できないため動作しない。本プロジェクトは Unity 6.3 LTS のまま継続する。

理由: Unity 6.3 が二重描画の原因ではないと Unity 6.0 LTS での検証で判明した(同じ症状)。バージョンを下げる必要はない。


2026-05-04: 立ち絵の Pixels Per Unit を 200 で統一、左右配置は ひなた=35 / 美咲=65

背景: 立ち絵を Naninovel に組み込んだ際、デフォルト Pixels Per Unit (100) では画像が大きすぎて頭部が画面上に切れる問題が発生。

決定: 全キャラの Pixels Per Unit を 200 で統一する。立ち絵の左右配置はシーン1冒頭でひなた pos:35(左寄り)、美咲 pos:65(右寄り)として、画面の中央付近に2人が並ぶ構図とする。

理由: 200 で全身が綺麗に画面内に収まる。pos:35/65 はキャラ間の距離を保ちつつテキストエリア(画面下部)と干渉しない範囲。後で背景や演出を追加する際の基準として運用。


2026-05-04: Save Project はメニュー実行(Cmd + Shift + S は Save As Scene)

背景: Configuration アセット(CharactersConfiguration.asset 等)の変更がディスクに保存されない問題が頻発。私(Claude)が「Cmd + Shift + S で Save Project」と誤案内したことが原因の一つ。

決定: Save Project は メニュー: File → Save Project から明示的に実行する。Cmd + Shift + S は Unity の「Save As Scene」(別名保存ダイアログ)であって Save Project ではない。Cmd + S(Save Scene)で多くのアセット変更も反映されるが、Configuration の変更を確実に保存したい場合は File → Save Project を実行する。

理由: ショートカットの誤認識を防ぎ、運用ミスを減らすため。


2026-05-03: 立ち絵の画風は「日常系アニメ + ジブリ寄り」で全キャラ統一、Character DNA 方式で一貫性確保

背景: ChatGPT Images 2.0 で立ち絵を生成するにあたり、画風の方向性とキャラ間の一貫性をどう保つかの判断が必要だった。

決定: 画風は「日常系アニメ風 + Studio Ghibli-inspired warmth」のハイブリッド(slice of life / iyashikei mood、warm and natural color palette、soft cel-shading)。各キャラの特徴を Character DNA として詳細にテキスト化し、同一 ChatGPT Images 2.0 セッション内で全キャラを順次生成することで画風と一貫性を保つ。DNA テキストは画像生成プロンプトと別に送る運用。

理由: HIKITUGI.md の参考作品(ぼっち・ざ・ろっく / ゆるキャン△ / 3月のライオン)のトーンと整合。ジブリの柔らかさはほっこり日常系のトーンに合う。Character DNA 方式は HIKITUGI.md の方針通りで、表情差分や私服差分を後から生成する際の一貫性も保てる。


2026-05-03: 立ち絵の配置パスは Assets/Characters/<CharID>/<Appearance>.png 形式

背景: Unity プロジェクト内の立ち絵ファイルの配置ルールが必要だった。

決定: Assets/Characters/<CharID>/<Appearance>.png 形式で配置する。CharID は英語(Hinata, Misaki, Hiroko, Tanabe, Fujimura, Nakamura, Kurokawa, Asakura)、Appearance は表情・衣装の名前(Default, Happy, Sad, Surprised など)。

理由: Naninovel の Sprite Character リソース管理規約と整合する。各キャラの差分を1フォルダにまとめて管理しやすい。CharID を英語にしているのは既存のキャラ ID 命名規則との一貫性。


2026-05-02: Naninovel の選択肢分岐はインラインブロック形式で実装する

背景: シーン12 のミニゲーム選択肢を @choice "..." goto:LabelName + ラベル定義で実装したが、Naninovel の最新版でラベル参照構文が機能しなかった。goto:.LabelName(先頭ドット)は構文エラー、goto:Scene12.LabelName(フルパス)は別スクリプトファイルとして解釈されてリソース読み込みエラー。

決定: 選択肢分岐は Naninovel 公式サンプル準拠のインラインブロック形式で実装する。各 @choice "..." の下にインデントブロックでアクションを書き、選択肢ごとの処理を完結させる。共通処理は @choice ブロック群の後に普通に書けば、いずれの選択肢を選んでも実行される。

理由: ラベルジャンプはバージョン依存性があり、構文に注意が必要。インラインブロックは公式サンプルでも使われている標準的な書き方で、可搬性が高い。複雑な分岐(再選択ループ等)が必要な場合は、独立スクリプト(別ファイル)に分割する。


2026-05-02: ミニゲーム①の不正解時は再選択ループではなく簡略フローを採用

背景: シーン12 のミニゲーム①で、不正解時に「ヒント表示 → 再選択UI 表示」の再選択ループを実装しようとしたが、Naninovel のラベルジャンプ構文の制約で実装できなかった。

決定: 不正解時の再選択ループは一旦廃止し、「不正解 → 寛子のヒント → ひなたが正解(五萬)に気づく → 寛子の正解アナウンス」の簡略フローに変更する。

理由: 第1章プロトタイプを通しで動かすことを優先。再選択ループは独立スクリプト分割で本格実装する余地を残しつつ、現状のフローでも「学習補助」「達成感」の体験は維持できる。


2026-05-02: 日本語フォントは Noto Sans JP + Dynamic SDF で運用

背景: Naninovel のデフォルトフォントには日本語が含まれず文字化け。日本語フォントの選定と Font Asset 設定が必要だった。

決定: Google Fonts の Noto Sans JP(Regular, Bold)を採用。TextMesh Pro Font Asset を Dynamic SDF(Atlas Population Mode = Dynamic)で運用する。Source Font File に元の .ttf をリンクし、Multi Atlas Textures を有効化。

理由: Noto Sans JP は商用利用可能で、品質が高く、フォントウェイトも複数用意されている。Dynamic SDF は事前にアトラス生成不要でメモリ効率も良く、必要な文字が表示されるたびに動的にアトラスへ追加される。Static Atlas で常用漢字+ひらがな+カタカナを全部含めると 4096x4096 級のテクスチャになり大きい。


2026-05-02: ひなたの内心モノローグ「(〜)」は地の文として記述

背景: ひなたの一人称視点だが、声に出さない内心モノローグ「(あ、これ聞いても無理なやつだ)」をどう表記するか。Hinata: で書くと吹き出しに表示されてしまう。

決定: 内心モノローグは Hinata: を付けず、地の文として括弧付きで記述する。Naninovel 上では「誰の声でもないテキスト」として表示される。

理由: 内心とセリフを区別したい。地の文として書くことで、後でテキストエフェクト(イタリック、色変更など)で内心を視覚的に区別する余地も残せる。


2026-05-01: Naninovel スクリプト編集は .nani ファイル直接編集(Cursor)を基本とする

背景: Naninovel の Story Editor(新しめのグラフUI)の操作で詰まり、ノードに直接テキストを貼り付けた結果 Mounting file system... で固まる現象が発生。プロジェクトを再作成して回復した。

決定: Naninovel スクリプト(.nani ファイル)の編集は、Story Editor ではなく Cursor などの外部エディタで .nani ファイルを直接編集する方針を基本とする。Story Editor は読み取り専用の概要把握用に使う。

理由: .nani は普通のテキストファイルなので、慣れたエディタで編集する方が安定して効率的。Story Editor は新しいUIで学習コストがあり、初日には向かない。Unity が .nani ファイルの変更を検知して自動反映する仕組みがあるため、外部編集でも問題ない。


2026-05-01: キャラ ID は英語、表示名は日本語(Configuration で設定)

背景: Naninovel スクリプトでキャラのセリフを書くとき、キャラ ID(プレフィックス)が必要。日本語 ID にするか英語 ID にするかの判断。

決定: キャラ ID は英語で統一する:

  • ひなた → Hinata
  • 美咲 → Misaki
  • 寛子 → Hiroko
  • 田辺 → Tanabe
  • 藤村 → Fujimura
  • 中村 → Nakamura
  • 黒川 → Kurokawa
  • 朝倉 → Asakura

吹き出しに表示される日本語名(「ひなた」「美咲」など)は、別途 Naninovel Configuration(Characters の Display Name 設定)で日本語に紐づける。

理由: リソースファイル名や他システム(ローカライズ等)との連携で英語 ID の方が安全。キャラごとの立ち絵リソースも Hinata.png のような英語名で扱える。


2026-05-01: Unity プロジェクトの配置と Source Control

背景: Unity プロジェクトを既存リポジトリのどこに配置するか、Unity Hub の Source control provider をどう設定するかの判断。

決定:

  • Unity プロジェクトは既存リポジトリのサブディレクトリ hinata-mahjong-app/ として配置
  • Unity Hub の Source control provider は None(既存 Git 管理を活用)
  • .gitignore に Unity 用のルール(Library/, Temp/, *.csproj 等)を追加

理由: 1リポジトリで管理するとシナリオドキュメントと実装が同期されて運用が楽。サブディレクトリに別の .git/ を作るとネスト Git になり混乱する。.gitignore で除外すれば Unity の生成ファイルが入る心配もない。


2026-05-01: 教室の卓は自動卓を使用する(実演用)

背景: 寛子の手牌オープン指導シーン(シーン11)で、卓の演出をどうするか検討。HIKITUGI.md には「木の卓と自動卓が混在」とある。

決定: 寛子の指導シーンでは自動卓を使用し、スイッチを入れて山が自動で出てくる演出を入れる。「ガラガラガラ」という機械音と、せり上がる山の描写でハイテク感を出す。

理由: 健康麻雀教室のリアリティ(自動卓は珍しくない)と、ひなた・美咲の「ガチでハイテク」リアクションでコメディも成立する。HIKITUGI.md の卓設定とも整合。


2026-05-01: ミニゲーム①は選択肢UI+プレイヤー操作の完全誘導型で実装

背景: シーン12「初めての和了」のミニゲーム①の実装方針が、当初は「ひなたが3枚から選ぶ」というキャラ動作になっていたが、本来はプレイヤーが操作するノベルADVのミニゲームであるべき。

決定: プレイヤーが3択UIから選ぶ完全誘導型として設計。正解は1枚のみ、不正解時は寛子のヒント表示後に再選択UIを出す。シナリオ本文に【選択肢UI】タグと分岐を明示的に書き、後で Naninovel 実装しやすくする。

理由: ノベルADVの慣習的な実装パターン。プレイヤーの達成感を保ちつつ、正解にたどり着く設計で「健康麻雀の優しさ」のトーンとも整合。


2026-05-01: シーン構成を14シーンに圧縮、字数目標を22,000字に変更

背景: シーン3で街描写を厚めに書いた結果、旧シーン4「神楽坂散策」と内容が重複する状態になった。

決定: 旧シーン4をシーン3に統合し、全14シーン構成に圧縮。字数目標も 25,000字 → 22,000字に修正。outline.md のシーン番号と学習要素のシーン番号も全て繰り上げ。

理由: 重複を避けつつテンポを良くする。実筆字数は各シーンが膨らむこともあるので、目標字数はベースラインとして扱う。


2026-05-01: 主人公の名字を「丸井」→「丸山」(まるやま)に変更

背景: ユーザー判断で主人公の名字を変更したい意向があった。HIKITUGI.md は原本として保護したい。

決定: 作中表記を「丸山ひなた」に統一。HIKITUGI.md と .gods-talk/issue-* は原本ルール(履歴保持)で触らず、CLAUDE.md / AGENTS.md に「主人公の名字は『丸山』。HIKITUGI.md の『丸井 ひなた』は読み替える」のルールを追記。scenario/ 配下の outline.md と scene-01〜05.md は一括置換。シーン6以降は最初から「丸山」で執筆。

理由: 原本ドキュメントの履歴保持と、現状の作品設定の整合を両立する。読み替えルールは CLAUDE.md / AGENTS.md に記載することで、後からの参照と他LLMセッションへの引き継ぎがしやすい。


2026-04-30: 実在固有名詞は実名で使用する

背景: 神楽坂を舞台にしたノベルADVで、街の取材ベース描写を活かしたい。実名 vs 架空名の選択が必要だった。

決定: 神楽坂の実在店舗・地名(紀の善、毘沙門天/善國寺、本多横丁等)は実名で使用する。教室「五十嵐麻雀教室」は架空名のまま。

理由: HIKITUGI.md の「実在の街を取材ベースで描く」方針と整合し、街の実在感が出る。店内詳細は作り込まず外観・代表メニュー程度に留め、ネガティブ描写は禁止することでリスクを抑える。


2026-04-30: 視点はひなた一人称基本、章転換のみ三人称ナレーション可

背景: ノベルADVの視点設計が必要。

決定: ひなた一人称(「わたし」視点)を基本とし、章転換のキメや時間飛ばしのみ三人称ナレーションを許可する。美咲・寛子・常連たちの内面はひなたの観察として描き、直接の心理描写は禁止。

理由: プレイヤーの代理としてのひなたの没入感を保つため。三人称ナレーションは時間軸ジャンプの手段として残すことで、自然な場面転換を可能にする。


2026-04-30: 第1章の動機設計は「罠型 + ハイブリッドB」

背景: ひなたが麻雀ゼロ知識のJKであり、一人で見知らぬ大人ばかりの麻雀教室に向かう動機が弱すぎる、という議論があった。別LLM(gods-talk スキル)に25案ブレストを依頼して比較検討した。

決定: 美咲が「神楽坂で甘味食べに行こ」とひなたを誘って、実は麻雀教室まで連れて行く罠型を採用。教室体験は二人で行い、章末で美咲が「やっぱあたしは観る派〜」と離脱予告(ハイブリッドB)。2章以降はひなた一人で通うフェーズに切り替わる。

理由: 「一人で行く不自然さ」を構造的に解消し、美咲のキャラ(鈴木園子型・推進力)を1章でフル活用できる。神楽坂の街描写も自然に組み込める。一方、章末で美咲を離脱させることで、教室=ひなたの個人的居場所への転換を確保する。


2026-04-30: 第1章タイトル仮を「麻雀って面白いの?」に決定

背景: 章タイトルの方針を「教室名そのまま」(硬い)にするか、ひなた口調寄りにするか議論。

決定: 第1章タイトル仮を「麻雀って面白いの?」に決定。全章をひなた口調で統一する方針も合わせて確認。

理由: ひなたのキャラ(ぽやーんJK)に合致し、章末「面白いかも…?」のほのかな引きと響き合う。「麻雀」表記は CLAUDE.md の表記ルールとも整合。


2026-04-30: 「麻将」表記を廃止して「麻雀」に統一、日本健康麻将協会の作中言及を禁止

背景: HIKITUGI.md には「健康麻将」「五十嵐麻将教室」など「麻将」表記が含まれていた。ユーザー判断で「健康麻雀」表記に統一したい意向があった。

決定: 作中表記をすべて「麻雀」に統一する。「健康麻将」→「健康麻雀」、「五十嵐麻将教室」→「五十嵐麻雀教室」と読み替える。実在の登録商標である「日本健康麻将協会」は作中で言及せず、必要時は「賭けない麻雀」「教室で打つ麻雀」などの言い回しで処理する。HIKITUGI.md は claude.ai 議論成果物の原本として保存し、変更しない。表記ルールは CLAUDE.md / AGENTS.md に記載して優先する。

理由: トーンの統一感、固有名詞リスクの回避、原本ドキュメントの履歴保持。


DEVLOG(作業ログ)

開発日誌

このプロジェクトでの作業を時系列で記録する。 最新のエントリが上に来る。


2026-05-31

大セッション - BGM 全曲化・SE 7種・蒔絵風ダイアログへの全面リニューアル

やったこと:

  • Suno を Free → Pro に切り替え、Title BGM を Pro で再生成(Free 版は商用利用不可と判明、遡及商用化もできないため)
  • BGM 残り 4曲を Suno Pro で生成・配置・組み込み
    • Scene1_2.mp3(Scene01-02: 放課後・夕焼け、ノスタルジック)
    • Scene3_5.mp3(Scene03-05: 神楽坂の朝・紀の善、軽やか和風+ジャズ寄り)
    • Scene6_13.mp3(Scene06-13: 麻雀教室、メロウジャズ)
    • Scene14.mp3(Scene14: 自室・夜、controlled-volume アンビエント、volume:0.6
  • BGM 切替に @stopBgm fade:1 + @bgm <X> fade:1 の併用を Scene03 / Scene06 / Scene14 に実装(クロスフェード 1秒)
  • .devnotes/BGM_LICENSE.md を新設 — 原則・命名規約・採用 BGM/SE 全エントリを記録(プロンプト含む)
  • ファイル命名規約を確立 — 採用曲は Suno 上でも Unity と同名にリネーム(TitleTheme / Scene1_2 / SE_tile_draw 等)
  • シーン名デバッグ表示を実装Assets/Scripts/Debug/SceneDebugDisplay.cs で画面右上に スクリプト名:L行番号 を常時表示。[RuntimeInitializeOnLoadMethod] で自動配置、#if UNITY_EDITOR || DEVELOPMENT_BUILD で本番ビルドからは自動除外
  • SE 7種類を ElevenLabs Sound Effects Starter ($6/月) で生成・配置・組み込み
    • 牌音3種(SE_tile_draw / SE_tile_discard / SE_auto_table
    • ドア(SE_door_open / SE_door_close
    • 階段(SE_stairs_creak
    • 通知(SE_notification、Discord 風 2音チャイム)
    • 各シーンの該当箇所に @sfx を計9箇所組み込み(Scene05/06/11/12/13/14)
  • ダイアログボックスを蒔絵風枠に全面リニューアル
    • ChatGPT で 1792×1024 キャンバスに横長薄型ボックス(幅 1792 × 高さ 380)を生成
    • PIL でクロップ(1659×346、アスペクト 4.79:1)+ 外側透過 + 内側 86% 半透明
    • Naninovel パッケージ直編集をやめ Assets/TextPrinters/DialogueCustom.prefab に独立コピーで作り変え
    • Naninovel Configuration → Resources → Printers で Dialogue アクターの参照を Assets 側に切り替え
    • Image Type を 9-slice (Sliced) → Simple + Preserve Aspect OFF に変更
    • AuthorNamePanel に Layout Element (Ignore Layout) + Content Size Fitter を追加し、独立配置 + 自動サイズ調整に
    • VLG の Spacing -30 で AuthorNamePanel を TextPanel に重ねる演出
  • Naninovel ナレッジ 4本作成~/cdev/knowledge/
    • naninovel-bgm-overlay.md(@bgm は追加再生、切替には @stopBgm 併用)
    • naninovel-custom-text-printer-prefab.md(カスタム prefab は Assets/ 配下に独立コピー)
    • naninovel-dialogue-box-9slice-aspect.md(複雑装飾画像は 9-slice より Simple+アスペクト一致)
    • naninovel-author-name-panel-position.md(AuthorNamePanel の独立配置と自動サイズ)

決めたこと:

  • BGM/SE は商用利用権付きの有料プラン契約中にのみ生成(Suno Pro / ElevenLabs Starter)。Free tier の成果物は採用しない
  • Suno 上のトラック名と Unity 上のファイル名は常に同名で統一
  • Naninovel TextPrinter カスタム prefab は Assets/TextPrinters/ 配下に独立コピーで運用(パッケージ直編集をやめる)
  • ダイアログ背景画像は 9-slice ではなく Simple + アスペクト比一致で表示
  • BGM 切替は @stopBgm fade:1 + @bgm fade:1 で 1秒クロスフェード

詰まったこと / 気づき:

  • Suno Free の商用利用不可 — Free で生成 → 後から Pro 契約しても、Free 生成物は遡及商用化されない(生成時点のプラン権利で固定)。最初から有料契約してから生成、が唯一の正解
  • 手動 .meta 生成後は Unity Reimport 必須 — Audio mp3 を Assets/Audio/ にコピー後、.meta を CLI で手動生成しただけだと AudioImporter として正規にインポートされず、@bgm 実行時に InvalidCastException が出る。User 側で Project → Reimport を必ず実行
  • @bgm は追加再生(複数 BGM 同時再生用設計)、別 BGM への切替は @stopBgm 併用が必須
  • 9-slice の鉄則: border ≤ 表示サイズ ÷ 2。装飾の大きい背景画像はこの制約を満たせず、何をしても破綻する
  • AuthorNamePanel は VLG 制御下 で Pos X 編集不可。Layout Element の Ignore Layout で解除可能だが、Width が prefab デフォルト値で固定化されるため Content Size Fitter で自動調整必須
  • Naninovel ランタイムが位置を上書きしている、と疑った件は誤り — 純粋に Unity の Layout システム(VLG + RectTransform + Layout Element)の挙動だった

次回やること:

  • 名前のキャラ別色付け(Naninovel Configuration の Name Color)
  • 第1章通しプレイ + 音響/UI 調整
  • タイトル画面の仕上げ(ButtonsPanel 位置調整 + 起動時表示設定)
  • 追加 SE 候補(教室ざわめき、お茶を入れる音、紀の善の食器音、UI 操作音)

2026-05-15

18:00 - BGM 追加開始(Suno Free で Title BGM 1曲)

やったこと:

  • 当初予定のタイトル画面仕上げから方針転換、BGM/SE 追加 に着手
  • 音楽生成ツールの比較 をして Suno Free で開始することに決定
    • ベータ向けには無料枠で十分(50 クレジット、約 10曲分の試行)
    • 商用化時は Suno Pro $10/月 or フリー素材サイト(DOVA-SYNDROME / 甘茶の音楽工房)で代替
  • Title BGM (1曲目) を Suno で生成: warm gentle slice-of-life Japanese-inspired instrumental, piano and flute, soft strings, nostalgic, Studio Ghibli mood, calm, 70 BPM, instrumental で生成 → Maple Sourdough.mp3 を Downloads に保存
  • Audio ファイルの配置規約を確立
    • Assets/Audio/<bgmId>.mp3 直下に配置(サブフォルダ BGM/SFX/Voice は作らない)
    • シナリオでは @bgm <bgmId> でシンプルに参照
    • Maple Sourdough.mp3Assets/Audio/TitleTheme.mp3 にリネーム配置
  • Assets.json に Audio エントリを追加(prefix: Audio, path: TitleTheme, group: "")
  • Entry.nani 冒頭に @bgm TitleTheme を追加して動作確認 → BGM が正しく流れることを確認
  • ChatDiscord のメッセージ位置調整タスク を ROADMAP から除外(不要と判断)

決めたこと(DECISIONS.md にも追記):

  • BGM 生成は Suno Free から開始(ベータ品質確認後、商用化時に Pro 課金 or フリー素材で再構成)
  • Audio ファイル配置規約: Assets/Audio/<bgmId>.mp3 直下、サブフォルダなし、@bgm <bgmId> でシンプル参照

気づき:

  • Naninovel の Initial Script (Entry.nani) の冒頭で @bgm を呼ぶと、タイトル画面表示中にも BGM が再生される。実質「タイトル BGM = Entry 冒頭の @bgm」として運用可能
  • タイトル画面と本編で BGM を完全分離するには Title.nani を新規作成して Initial Script を切り替える方式もあるが、ベータ段階では現状運用で十分

次回やること:

  • 残り 4曲の BGM 生成(Suno Free):
    • Scene1-2 BGM: 放課後・夕焼け、ノスタルジックなピアノ
    • Scene3-5 BGM: 神楽坂の朝・紀の善、ワクワクお出かけ
    • Scene6-13 BGM: 麻雀教室、ジャズ風(シナリオの「ジャズが流れる」設定に合わせ)
    • Scene14 BGM: 自室・LINE、静かで内省的
  • SE 追加(牌音 / スマホ通知 / ドア開閉 等、必要に応じて)
  • タイトル画面の仕上げ(ButtonsPanel 位置調整、起動時タイトル表示)
  • 第1章 通し読み・推敲

2026-05-13(夜)

21:00 - ChatDiscord の仕上げ(同時表示 + スマホ枠UI調整)

やったこと:

  • Reveal Delay Modifier を 3 → 0 に変更(ChatDiscord.prefab)
    • 本文のタイピング表示遅延が消え、アバター・名前・時刻・本文がすべて同時に表示されるように
  • PhoneChatUIDiscord(スマホ枠)の色とサイズ調整
    • メイン領域の色を #36393F#1C1D22(RGB 28,29,34) に変更(より深い暗色に)
    • ChatGPT 再生成で「スマホ枠が画像の 95% を占める」よう指示し、外側の余白を削減
    • 透過処理(しきい値 RGBmin > 200)で白系をアルファ 0 に
  • ユーザー側で ChatDiscord / ChatMessageDiscord の細部調整を実施、Discord 風UIが完成形に到達

次回やること:

  • タイトル画面の仕上げ(明日から着手予定): ButtonsPanel 位置調整 + 起動時タイトル表示の設定
  • BGM / SE 追加
  • 第1章 通し読み・推敲
  • 名前のキャラ別色付け
  • ChatDiscord のメッセージ位置調整(下から積み上げ)
  • 角括弧 inline command 衝突問題のナレッジ化(3件目)

2026-05-13

18:30 - ChatMessageDiscord を Discord 風レイアウトに整形、時刻表示拡張、スマホ枠UI を Discord 風に

やったこと:

  • ChatMessageDiscord.prefab の Discord 風レイアウト構築
    • LeftSide(AuthorImagePanel + AuthorImage)+ RightSide(VLG → AuthorNamePanel + TextPanel + TypingIndicator)の階層に再構成
    • 左にアバター、右に「名前 + 本文」を縦配置するDiscord風レイアウトが完成
  • メッセージレイアウトの細部調整
    • TextPanel の HorizontalLayoutGroup の Padding Left を 40 → 0 に変更(名前と本文の左端を揃える)
    • ChatMessageDiscord root の HorizontalLayoutGroup の Padding Top を 75 → 0 に変更(メッセージ間隔を詰める)
    • LeftSide の Layout Element の MinWidth/PreferredWidth/PreferredHeight を 100 → 64 に変更(アバターサイズに合わせる)
  • 時刻表示の独自実装
    • Assets/Scripts/UI/ChatMessageDiscord.cs を新規実装(Naninovel.UI.ChatMessage を継承)
    • SetMessageText をオーバーライドして本文中の 「ts:HH:MM」 を正規表現で抽出 → TimestampText にセット + 本文から除去
    • 角括弧 [ts:...] は Naninovel が inline command として解釈してエラー (Command 'ts' is not found) になるため、日本語括弧 「」 を採用
    • Scene14 の全 Chat メッセージに夕方時刻(17:30〜17:48)を仕込み
  • PhoneChatUIDiscord(Discord ダークモード風スマホ枠)を生成・配置
    • ChatGPT Images 2.0 で生成 → 透過処理(白系エッジは threshold 230 で透過化)→ Assets/UI/PhoneChatUIDiscord.png
    • ChatDiscord.prefab の PrinterPanel の Image > Source Image を BoxWindowPhoneChatUIDiscord に差し替え
  • 不要な旧 prefab を削除: Chat1on1.prefab / Chat1on1Contact.prefab / Chat1on1Me.prefab / ChatMessageContact.prefab / ChatMessageMe.prefab を削除(LINE 風方針時代の遺物)

決めたこと(DECISIONS.md にも追記):

  • Naninovel メッセージ本文中で独自タグを定義する場合は日本語括弧 「」 を使う(角括弧 [] は inline command と衝突)

気づき:

  • Naninovel の Chat Printer のメッセージレイアウトは prefab 内に複数の LayoutGroup(Vertical/Horizontal)が入れ子で配置されていて、各レベルの Padding/Spacing/MinHeight などが組み合わさってメッセージ全体のサイズが決まる。「メッセージ間隔が広い」と感じる時は ChatMessage root の Padding Top を疑う
  • ChatMessage を継承して SetMessageText をオーバーライドする方法で、Naninovel の標準仕様を保ったまま独自タグの抽出処理を差し込める
  • Naninovel メッセージ本文中の [xxx]Command 'xxx' is not found エラーになる。これは将来別の独自タグを実装する時にも踏みやすい罠

次回やること:

  • ChatDiscord のメッセージ位置調整(下から積み上げに変更 or スマホ枠とサイズ合わせ)
  • 名前のキャラ別色付け(ひな=ピンク、美咲=ブルー など、Naninovel Configuration の Name Color)
  • Reveal Delay Modifier を 0 にして本文タイピングタイミングをアイコン・名前と揃える
  • 角括弧 inline command 衝突問題をナレッジ化(3件目)
  • TitleUI の ButtonsPanel 位置調整 + 起動時タイトル表示
  • BGM / SE 追加
  • 第1章 通し読み・推敲

2026-05-12

14:00 - Scene14 のチャットUIを LINE 風 → Discord 風 に方針転換、ChatDiscord Printer を構築

やったこと:

  • Scene14 のチャットUI実装: 当初 LINE 風(自分=右、相手=左、吹き出し色違い)を目指していたが、Naninovel の Chat Printer 制約と実装工数を勘案して、Discord 風(自分も相手も左揃え、アバター + 名前 + 本文)に方針転換
  • ChatDiscord.prefab を独立コピー: Naninovel パッケージ内の Chat.prefab をベースに ChatDiscord Actor を新規 Printer として登録、シナリオは @printer ChatDiscord で呼ぶ
  • アバター画像の生成・配置: ひな・美咲の顔のアップを ChatGPT Images 2.0 で生成 → PIL で円形マスク + 中央クロップ → Assets/CharacterAvatars/{Hinata,Misaki}.png に配置
  • Naninovel ハマりポイントの解決(2件、ナレッジ化済み)
    • Auto Reset OFF: ChatDiscord Actor の Auto Reset がデフォルト ON で、メッセージが下に積み重ならず最新1件しか表示されない問題。Configuration で Auto Reset を OFF に
    • Avatar Resources の Name 形式: Naninovel の CharacterManager.GetAvatarTexturePathFor<CharID>/Default 形式で path を解決していることをソースコードから発見。Avatar Resources の Name を Hinata/Default / Misaki/Default に変更
  • LinkedPrinter の残置で Printer 暴走を解決: 過去のテストで Hinata の LinkedPrinter を Chat に設定したまま放置していたため、全シーンでひなが発言するたびに自動で Chat Printer に切り替わっていた。CharactersConfiguration から LinkedPrinter をクリアして解消
  • シナリオの安全策: Entry.nani と Scene13.nani の冒頭に @printer Dialogue を明示的に追加。これでどこから再生開始しても Printer が暴走しない
  • テキストボックスの和風カスタム + タイトル画面の実装(前のセッション分、既にコミット済み)
  • スマホ風 UI(PhoneChatUI.png)を生成・配置(次セッションで Discord 風レイアウトに組み込み予定)

決めたこと(DECISIONS.md にも追記):

  • シーン14 のチャットUI は Discord 風で実装(LINE 風から方針変更)
  • ChatDiscord は独立コピーで運用(Naninovel 再インポートの影響を受けない)
  • 各シーン冒頭に @printer Dialogue を明示する運用(Printer 切替の暴走対策)

気づき:

  • Naninovel の Chat Printer はキャラ ID 単体ではなくスラッシュ区切りの <CharID>/Default で Avatar を解決する(ソースコード CharacterManager.cs で確定)。Documentation に明示されにくいハマりポイント
  • @avatar というコマンドは存在しない(Command 'avatar' is not found でコンパイルエラー)。アバター動的切替は Avatar Resources の Name 経由 or @setAvatar 系で行う
  • LinkedPrinter は便利だがプロジェクト全体に影響するグローバル設定なので、テスト用の一時設定でも放置すると全シーン暴走する。残置注意

次回やること:

  • ChatDiscord.prefab のレイアウト調整(PhoneChatUI を背景に組み込み、Discord 風のメッセージ並び、名前色付け)
  • TitleUI の ButtonsPanel 位置調整、起動時タイトル表示の設定
  • BGM / SE 追加
  • 第1章 通し読み・推敲

2026-05-11

09:30 - テキストボックスの見た目を和紙風暗め+金枠+肉球Continueに刷新、タイトル画面のキービジュアルとロゴを実装

やったこと:

  • テキストボックス(Dialogue.prefab)の見た目を全面刷新
    • Continue Indicator(テキスト送り待ち時の▶▶マーク)を肉球アイコンに差し替え
      • ChatGPT で「白背景+黒シルエット」の肉球生成 → PIL で白背景透過+シルエットを白に反転 → Unity の Image Color で淡いベージュ #F0DCC8 にTint
      • その後、PIL で余白を詰め(不透明領域のバウンディングボックスでクロップ、5%パディング)→ 実質1.5倍に見えるサイズ感に
    • テキストボックスの背景を和紙風ダークブラウン+金色太枠に刷新
      • ChatGPT で和紙風角丸ボックスを生成(クリーム → ダークブラウン → 太枠版の3回試行)
      • 最終版: ダークブラウン #3A2A20 + 金色枠 #B89968 で 12-15px の太い縁取り
      • PIL で背景白を透過化、9-slice 用に保存
    • Unity 側の調整: Sprite Editor で Border 120px、Image Type=Sliced、Pixels Per Unit Multiplier=1(9 になっていたのを修正、これで角のガタつき解消)
    • Naninovel パッケージ内の Packages/com.elringus.naninovel/Prefabs/TextPrinters/Dialogue.prefab を直接編集(再インポート上書きリスクは依然あり)
  • タイトル画面の基本実装
    • ゲームタイトルを 「ひなたの麻雀さんぽ」 に確定(「散歩」のひらがな表記、神楽坂を歩く感、優しい響き)
    • キービジュアルを生成: 神楽坂の朝の路地で、ひな(クリームワンピ)と美咲(ラベンダーT+デニムショート)が並んで歩く16:9メインビジュアル。Studio Ghibli風水彩で既存背景・立ち絵と画風統一
    • ロゴを生成: 「ひなたの麻雀さんぽ」明朝体ベース、ダークブラウン色。漢字「麻雀」が綺麗に描画され想定よりかなり高品質
    • Assets/UI/Title/KeyVisual.pngLogo.png に配置
    • Packages/com.elringus.naninovel/Prefabs/DefaultUI/TitleUI.prefabBackgroundImage(KeyVisual を全画面 Stretch)と TitleLogo(Logo を Top-Center に配置)を新規追加

決めたこと(DECISIONS.md にも追記):

  • ゲームタイトル = 「ひなたの麻雀さんぽ」
  • Continue Indicator は肉球アイコン(白シルエット PNG + Unity Tint で色変更)
  • 9-slice の Pixels Per Unit Multiplier はデフォルト 1(9 だと Border が縮小されて 9-slice の角丸保護が効かない)

気づき:

  • ChatGPT Images 2.0 で日本語ロゴを生成するときは、「漢字を正しく描くこと」を強調すれば、麻雀のような難しい漢字でも綺麗に描画できる場合がある(一発で正解出た)
  • Naninovel デフォルトの TitleUI には背景・ロゴ用のオブジェクトが用意されていないので、Hierarchy に新規 GameObject (Image) を追加して構築する必要がある
  • PIL でアイコンの余白を詰めるとき、白背景透過変換でわずかに残る alpha を < 20 でカットしてから bbox 計算しないと、画像全体が不透明扱いになって bbox が画像全体になる

次回やること:

  • TitleUI の ButtonsPanel の位置調整(画面右下 or 下中央)
  • 起動時にタイトル画面が表示される設定(Naninovel Configuration の確認)
  • BGM / SE 追加(Suno / Udio)
  • LINE風UI(シーン14、Chat Printer 検討)
  • 第1章 通し読み・推敲

2026-05-08

19:30 - 立ち絵のサイズ・位置・高さを商業VN的な収まりに統一 + ひな/美咲の私服差分を Scene03〜14 に組み込み

やったこと:

  • 立ち絵の全画面表示パラメータを最適化
    • PPU を 200 → 120 に変更(CharactersConfiguration.asset、全8キャラ一括。立ち絵が約1.67倍大きくなる)
    • 立ち絵が大きすぎて頭が画面外に切れる問題を、pos:Y=-15 で立ち絵全体を画面下方に下げて解消(足元が画面下端から少し外に出てテキストボックス周辺に自然に隠れる商業VN的な収まり)
    • 立ち絵の左右位置を等間隔配置に統一: 2人並び=30/703人並び=20/50/804人並び=15/38/62/85、常連登場=85、単独=50
    • Entry.nani / Scene02-14.nani の全 @char に pos:X,-15 形式を反映
  • ひな・美咲の私服差分(Casual バリアント)を生成・配置・組み込み
    • Step 1: Casual.png(私服Default)2枚を生成して見た目確認
      • ひなはクリーム/ベージュ A-line ワンピース、美咲はラベンダーTシャツ + デニムショートに決定(最初の白ブラウス案はひなとかぶるため修正)
      • 「①ピンク or ②ラベンダー or ③別色」候補を提示してラベンダーで確定
    • Step 2: 表情差分8枚を生成(Casual_Happy / Casual_Surprised / Casual_Confused / Casual_Embarrassed × ひな、Casual_Excited / Casual_Mischievous / Casual_Apologetic / Casual_Surprised × 美咲)
    • rembg + isnet-anime で透過処理
    • Unity Assets/Characters/{Hinata,Misaki}/ に Casual.png / Casual_<Expression>.png で配置
    • Assets.json に10エントリ追加
  • Scene03〜14 の @char をすべて Casual バリアントに一括置換(python ワンライナー、114件の置換)
    • Scene01-02 は制服のまま維持(学校〜駅〜電車)
    • Scene03 以降は全シーン Casual で土曜デート〜麻雀教室〜帰宅まで一貫した私服

決めたこと(DECISIONS.md にも追記):

  • 立ち絵 PPU/位置/高さの全シーン統一規約(PPU 120、Y=-15、pos間隔の標準値)
  • 衣装運用ルール(Scene01-02 制服 / Scene03-14 私服、命名規則 Casual + Casual_<Expression>

気づき:

  • ChatGPT Images 2.0 で「ひなは白系」を作ったあと「美咲も白いブラウス」を生成すると2人が並んだときに視覚的にかぶる。先方に「DEFINITELY NOT WHITE」「a clear visual contrast from Hinata」を明示する必要があった
  • Casual の表情差分は「Casual.png をリファレンスに表情だけ変える」プロンプトで一貫性確保。表情差分の運用は通常の表情差分(制服)と同じテンプレート構造で再利用可能
  • 12シーン × 10種類の置換は Edit を120回呼ぶより python ワンライナー(Bash経由)で一括処理が圧倒的効率的。Edit が現実的でないケースの判断ライン
  • Naninovel の Pivot は {x: 0.5, y: 0} のまま、pos:Y を負にする方が運用シンプル(Pivot 変更は全シーンで挙動が変わるため面倒)

次回やること:

  • タイトル画面の実装(オープニング → 本編、ベータ向け第一印象)
  • BGM / SE 追加(教室の牌音、神楽坂、紀の善店内、自室など。Suno / Udio)
  • LINE風UI(シーン14、Chat Printer 検討)
  • 第1章 通し読み・整合性チェック・推敲

2026-05-06

05:50 - 第1章プロトタイプの背景画像10枚を生成・配置、全シーンに @back を組み込み

やったこと:

  • 完成ターゲットを「ベータテスター見せられるレベル」に設定、優先順位は「ビジュアル」(背景画像)から
  • 画面アスペクト比を 16:9 横向きに決定(VN形式・PC配信しやすい・立ち絵が映える、シーン14のLINE風UIは縦長UIを画面内に埋め込む形で対応)
  • 背景画像10枚を ChatGPT Images 2.0 で生成・透過処理なしで配置
    • 必須5枚: Classroom(麻雀教室、自動卓3台)/ KagurazakaMorning / Kinozen / SchoolExterior / HinataRoom
    • セカンダリ5枚: SchoolClassroom(放課後の教室・夕焼け)/ KagurazakaSunset / StationEvening / TrainInterior / KagurazakaAfternoon
    • すべて Studio Ghibli 風水彩画風で統一、画風の一貫性確保のため背景セッションはキャラセッションと完全分離
    • Codex Computer Use 経由で生成、ChatGPT に参照画像を添付して自動麻雀卓を全卓統一
  • Naninovel 背景登録パイプラインを確立
    • 配置場所: Assets/Backgrounds/MainBackground/<BgID>.png
    • BackgroundsConfiguration の MainBackground を PlaceholderBackgroundSpriteBackground に変更
    • Assets.json に手動でエントリ追加(Characters と同じ形式: prefix Backgrounds/MainBackground + path = BgID + group = actor guid)
    • Unity 再起動で UI 反映を確認(Refresh だけでは UI が更新されない罠は Characters と同じ)
  • 第1章全シーン(Entry / Scene02〜14)に @back を組み込み
    • Scene01/02 冒頭: SchoolClassroom(放課後の教室)
    • Scene02 中盤: 校門出てから KagurazakaSunset → StationEvening(駅改札)→ TrainInterior(電車内)
    • Scene03: KagurazakaMorning
    • Scene04: Kinozen → KagurazakaMorning(外に出る)
    • Scene05: KagurazakaMorning → SchoolExterior(ビル前)
    • Scene06: SchoolExterior → Classroom(ドア開ける)
    • Scene07-12: Classroom 維持
    • Scene13: Classroom → KagurazakaAfternoon(ビルを出る)
    • Scene14: HinataRoom

決めたこと(DECISIONS.md にも追記):

  • 画面アスペクト比 16:9 横向き
  • 完成ターゲット = ベータテスター見せられるレベル
  • 背景画像生成パイプラインの方針(Ghibli風統一、ChatGPT Images 2.0 landscape、背景セッションをキャラと分離)

気づき:

  • Codex Computer Use は背景画像のダウンロード保存を一部スキップすることがあった。プロジェクトルート直下の tmp/ に保存されていた3枚を回収して Unity に配置 → tmp/ 削除でリポジトリ汚染を防いだ
  • 既存麻雀教室画像で「卓が左右非対称・空きスペースが不自然」になったため、参照画像(自動麻雀卓)を添付しつつ「desks in regular GRID pattern」を明示する2回目の修正で改善
  • 既存「放課後の教室」画像も初回は夕焼けが暗すぎたため、「golden hour 寄りに、shadows softer」で再生成して採用

次回やること:

  • Unity で第1章を通しプレイして動作確認(特に Scene02 の坂道→駅→電車の連続切替、Scene13 の教室→坂道)
  • タイトル画面の実装(オープニング → 本編、ベータ向け第一印象)
  • BGM / SE の追加(教室の牌音、神楽坂、紀の善店内など)
  • LINE風UI(シーン14、Chat Printer 検討)
  • ひな・美咲の私服差分(シーン3、神楽坂デート用)
  • 第1章 通し読み・推敲

2026-05-05

22:30 - シーン6〜14 の表情切替を組み込み、第1章プロトタイプの表情演出を完成

やったこと:

  • シーン6〜14 全シーンに @char で表情切替を組み込み
    • Scene06: 寛子初登場(Smile)、Concerned で気遣い、Default で凛とした自己紹介、Smile で締め
    • Scene07: 田辺・藤村・中村の初登場時に各キャラの Smile に変更(pos:85)。田辺の戦後話で Thinking、藤村に止められて Smile に戻し
    • Scene08: 寛子の Teaching モードで本格解説、Smile で合間の笑い、Concerned でひなの不安に寄り添う
    • Scene09: 雀頭/面子説明、寛子 Smile↔Teaching の切替、美咲の Apologetic(しみじみ)
    • Scene10: 順子・刻子・対子の解説、寛子 Smile/Teaching、ひな Happy/Confused/Surprised
    • Scene11: 自動卓実演、寛子の Surprised(一索3枚目)と Concerned(照れ)→ Smile(和了)の流れ
    • Scene12: 章クライマックス。田辺/藤村/中村を pos:80 に順次表示(Cheering)→ @hide で切替、美咲 Excited で祝福、ひな Embarrassed→Happy
    • Scene13: 寛子の Teaching で2章フック「役を覚えましょうね」、田辺/藤村/中村の Smile 見送り(pos:80)、美咲の Apologetic(観る派宣言)/ Mischievous(ひなの背中押し)
    • Scene14: ラスト「麻雀って、面白いかも」を Hinata.Happy pos:50 で締めくくり
  • 各シーン挿入箇所は 9〜14箇所程度。シーン2〜5 の粒度を踏襲し、心情切替地点を選定

決めたこと:

  • 章クライマックス・見送りの常連演出パターン: 田辺・藤村・中村を pos:80 に短時間表示 → @hide で次のキャラに切り替える形で順次紹介。画面手前の3人並び(寛子・ひな・美咲)を維持しつつ温かさを演出。藤村の合いの手は声だけで立ち絵を出さない方針も確立(学習シーンで画面が煩雑にならないように)
  • これらはシーン12・13 で実装、DECISIONS.md にも追記

気づき:

  • Scene12 の @char Tanabe.Cheering pos:80@hide Tanabe@char Fujimura.Cheering pos:80 という連続パターンは、ノベルゲームで複数人が連続で祝福する場面の良いテンプレート
  • 寛子の Teaching モードは「では、まず種類のお話から」「次はね」など解説の入口に置くと、Smile(合間の笑い)との対比で凛とした感じが出る
  • 黒川は Default のみで表情差分を作っていないが、シーン7・12・13 のいずれも「会釈のみ」なので Default で十分機能する。表情差分は不要と判断できる

次回やること:

  • 第1章 通し読み・整合性チェック・推敲(プロトタイプを Play で実際にプレイしながら)
  • 第2章のアウトライン設計(テーマ:役を覚える、田辺茂との交流)
  • ひな・美咲の私服差分(シーン3)
  • 背景画像の生成(神楽坂・教室・自室など)
  • 朝倉さんは観戦シーンで言及される存在なので、立ち絵を使う章まで表情差分は不要
  • 黒川さんは Default のみで運用継続

19:50 - シーン2〜5表情切替 / 寛子・田辺・藤村・中村の表情差分16枚を生成・配置

やったこと:

  • シーン2〜5の表情切替を実装(ひな・美咲のみ登場のシーン群)
    • Scene02.nani / Scene03.nani / Scene04.nani / Scene05.nani に @char Hinata.* / @char Misaki.* を心情の切り替わり地点に挿入
    • シーン1(Entry.nani)と同じ運用に揃えた
  • 寛子・田辺・藤村・中村の表情差分プロンプト(英語版)を新規作成
    • 前回ひな・美咲の表情差分が日本語プロンプトだった(推測)のを、ChatGPT Images 2.0 の安定性を優先して英語に統一
    • 「Same exact pose, outfit, hairstyle... ONLY the facial expression changed」の差分指示テンプレート
    • 表情仕様の詳細(Eyes / Mouth / Eyebrows / Overall vibe)を明文化
  • Codex Computer Use 用にプロンプトとファイル名を1コードブロックに統合する形式を採用
    • Save as: <filename>.png をプロンプト末尾に含める形に統一
  • 16表情画像を生成・透過処理・配置
    • 寛子: Smile / Surprised / Teaching / Concerned
    • 田辺: Smile / Thinking / Surprised / Cheering
    • 藤村: Smile / Surprised / Mischievous / Cheering
    • 中村: Smile / Surprised / Embarrassed / Cheering
    • rembg + isnet-anime モデルで透過処理(既存パイプライン)
    • Unity Assets/Characters/{Hiroko,Tanabe,Fujimura,Nakamura}/ に大文字始まりファイル名で配置

決めたこと:

  • 表情差分プロンプトは英語で出す(DECISIONS.md に追記)
  • 寛子・田辺・藤村・中村は5表情ずつ揃える(Default含む、ひな・美咲と運用統一)
  • 各キャラの表情セット確定(上記)

気づき:

  • プロンプトとファイル名を1コードブロックに統合すると、Codex Computer Use のコピペ作業が1ステップで済む
  • rembg は同一ファイル名で in/out 指定するとファイル破壊する罠を避けるため、_t_<name>.png で一時出力 → mv で上書き、を毎回踏む

次回やること:

  • Unity Editor で 16PNG の Sprite 設定(Texture Type / Sprite Mode / Pixels Per Unit 200)
  • Naninovel Configuration → Characters → 各キャラの Resources に表情差分を登録
  • File → Save Project(Unity)→ git に反映確認

2026-05-04

20:07 - 全シーン @char 追加 / 立ち絵透過処理 / 二重描画問題の解決

やったこと:

  • 全シーン(Scene02〜14)に @char コマンドを追加。シーン6で寛子登場、シーン7で常連紹介、シーン13で寛子と別れ、シーン14で全員 hide
  • 立ち絵の透過処理を実施。rembg + isnet-anime モデルで全8キャラの白背景を透明化
    • 最初 u2net モデルで処理 → エッジに matting halo が残る → isnet-anime(アニメ特化)で改善
    • 入出力ファイルを別名にしないと元ファイルが破壊される罠(一度全 Default.png が空ファイル化、git checkout で復元)
  • 立ち絵の二重描画問題を解決:4時間以上の試行錯誤の末、原因はシーンに Main Camera が2つ存在していたこと
    • SampleScene のデフォルト Main Camera と、Naninovel が動的に生成する MainCamera が両方とも立ち絵を撮影し、わずかにズレて二重像になっていた
    • 解決:SampleScene の Main Camera を削除(Naninovel が独自カメラを持つので不要)
    • シーン1冒頭の検証で、@char Hinata pos:50 / @char Misaki pos:65 で2人並びが綺麗に表示できる状態に

詰まったこと / 気づき(重要):

  • 二重描画の原因切り分けに4時間以上かかった。試行錯誤したが効果なかった設定:
    • Auto Arrange On Add OFF / Enable Depth Pass OFF / Filter Mode 変更 / Generate Mip Maps OFF / Global Mipmap Limit Full Resolution / Sprite Mode Single / Use UI Camera OFF / Baked Look Direction Center / Game ビュー解像度変更
  • Unity 2022.3 LTS にダウングレードしようとしたが、Naninovel 最新版は Unity 6 系専用(Awaitable / RenderGraphModule / com.unity.ugui 2.0.0 が必要)。2022.3 では動かない
  • Unity 6.0 LTS で新規プロジェクト hinata-mahjong-app2 を作って検証した結果、6.0 LTS でも同じ二重描画が発生したことから「Unity バージョンの問題ではない」と判明
  • ヒントは Hierarchy。Play 中に SampleScene の Main Camera のチェックを外したら二重像が消えた → カメラ重複が原因と確定
  • 新規 Unity プロジェクトに Naninovel を導入する場合、SampleScene のデフォルト Main Camera は削除する必要がある(公式ドキュメントに明記されているか怪しい盲点)
  • rembg は入出力ファイル名を同じにすると元ファイルが書き込みで消える → 必ず別ファイル名で出力 → リネームで上書き、の手順が必要

決めたこと(DECISIONS.md にも転記):

  • 立ち絵透過処理は rembg + isnet-anime モデルを採用(u2net よりアニメ画像のエッジが綺麗)
  • Naninovel 導入時は SampleScene の Main Camera を削除する運用ルール
  • Unity バージョン: 6.3 LTS のまま継続(Naninovel 互換性 OK)

hinata-mahjong-app2 を削除:

  • 検証用に作った Unity 6.0 LTS プロジェクトは不要になったので、ファイル削除済み
  • Unity Hub のプロジェクトリストからも削除推奨

次回やること:

  • ひなた・美咲の表情差分生成(Happy / Surprised / Confused 等)
  • 残りキャラの表情差分
  • ひなた・美咲の私服差分(シーン3)
  • 背景画像の追加検討(神楽坂・教室など)
  • BGM / SE
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI(シーン14)の実装方針確定

06:52 - 立ち絵の Naninovel 組み込み(@char で表示)

やったこと:

  • 全8キャラ(Hinata / Misaki / Hiroko / Tanabe / Fujimura / Nakamura / Kurokawa / Asakura)の Character Configuration を Implementation: Naninovel.PlaceholderCharacter から Naninovel.SpriteCharacter に変更
  • 各キャラの Resources に Default appearance を登録、Assets/Characters/<CharID>/Default.png を割り当て
  • 各キャラの Pixels Per Unit を 100 → 200 に変更(デフォルトでは画像が大きすぎて頭部が切れる問題を解消)
  • Entry.nani の冒頭に @char Misaki.Default pos:65 @char Hinata.Default pos:35 を追加して、シーン1冒頭で2キャラを左右配置
  • Play で動作確認、立ち絵が表示される状態に

詰まったこと / 気づき:

  • 最初のテスト時、立ち絵の頭部が画面上に切れて表示された。原因は画像サイズと Naninovel のデフォルト Pixels Per Unit (100) のミスマッチ。200 に変更で改善
  • Cmd + Shift + S は「Save As Scene」(別名保存)であり、「Save Project」ではない。「Save Project」はメニュー: File → Save Project から明示的に実行する必要がある
  • Cmd + S(Save Scene)でも多くの Asset 変更は反映されるが、念のため File → Save Project が安全

決めたこと(DECISIONS.md にも転記):

  • 立ち絵の Pixels Per Unit を全キャラ 200 で統一
  • 立ち絵の左右配置: ひなた pos:35(左寄り)/ 美咲 pos:65(右寄り)
  • Cmd + S は Save Scene、Save Project はメニューから明示実行(運用ルール)

次回やること:

  • 残り13シーン(Scene02〜Scene14)に @char コマンドを追加してシーンごとの立ち絵切り替え
  • 立ち絵の透過処理(remove.bg などで背景白 → 透明)
  • ひなた・美咲の表情差分生成(Happy / Surprised / Confused 等)
  • 残りキャラの表情差分

2026-05-03

18:18 - 全8キャラの立ち絵 Default ベース完成

やったこと:

  • 立ち絵生成プロンプト(Character DNA)方式を確立
  • 画風: 日常系アニメ風 + ジブリ寄りの柔らかい絵柄(Studio Ghibli-inspired warmth + slice of life / iyashikei mood)
  • ChatGPT Images 2.0 で同一セッション内で一貫性を保つ
  • DNA テキストと立ち絵生成プロンプトを別々に送る運用
  • 全8キャラの Default 立ち絵を順次生成・配置:
    • ひなた: ミディアムヘア、明るい栗色、大きな茶色の瞳、ぽやーん、ブレザー制服
    • 美咲: ロング、ダークブラウン、シャープめだが優しい瞳、リボン緩め・スカート短めの制服アレンジ
    • 寛子: 60代、白髪混じり、ベージュ系カーディガン+ブラウス+スカート
    • 田辺: 72歳、白髪、メガネ、ベージュシャツ+ブラウンカーディガン+トラウザー
    • 藤村: 35歳、ミディアム茶髪、ビジネスカジュアル(カーディガン+細身パンツ+トートバッグ)
    • 中村: 20歳、黒髪短め、白T+ブルーシャツ+チノパン+リュック
    • 黒川: 60代後半、銀髪、ダークセーター+チェックシャツ+ウールトラウザー
    • 朝倉: 20代後半、黒髪、ダークネイビースーツ
  • 各キャラを Assets/Characters/<CharID>/Default.png に配置

詰まったこと / 気づき:

  • 美咲の最初の生成で、目が「sharp / intense」の指定で強すぎた → 「friendly and warm」を加えて柔らかく調整
  • 美咲の髪色がひなたとほぼ同じ栗色で出てしまった → ダークブラウンに調整して差別化
  • 別セッションで美咲を作ろうとしたら画風がズレかけた → ひなたと同じセッションで生成し直して一貫性確保

決めたこと(DECISIONS.md にも転記):

  • 立ち絵の画風: 日常系アニメ + ジブリ寄り、Character DNA 方式で一貫性確保
  • 立ち絵の配置パス: Assets/Characters/<CharID>/Default.png 形式(CharID は英語、ひなた=Hinata 等)
  • 同じ ChatGPT セッション内で全キャラを生成して画風統一

次回やること:

  • ひなた・美咲の表情差分を生成(Happy / Surprised / Confused / Embarrassed 等、5〜6パターン)
  • 残りキャラの表情差分
  • ひなた・美咲の私服差分(シーン3で着てた服)
  • 立ち絵の透過処理(remove.bg / Photoshop)
  • 立ち絵のアップスケール(Topaz Gigapixel / upscayl)
  • Naninovel Character Configuration を Placeholder から Sprite に変更
  • @char コマンドで立ち絵切り替え動作確認

2026-05-02

17:35 - 第1章プロトタイプ動作確認(シーン2〜14 の Naninovel 化)

やったこと:

  • 残りキャラの Display Name を Characters Configuration に登録
    • Hiroko = 寛子先生 / Tanabe = 田辺さん / Fujimura = 藤村さん / Nakamura = 中村さん / Kurokawa = 黒川さん / Asakura = 朝倉さん
  • シーン2〜14 の本文を Naninovel スクリプトに変換し、Assets/Scenario/Scene02.naniScene14.nani として作成
  • Entry.nani の末尾に @goto Scene02 を追加してシーン遷移を実装
  • 各シーンの末尾に @goto SceneXX を入れて自動進行
  • シーン12 のミニゲーム選択肢を実装(3択:五萬 / 四索 / 白)
  • 第1章プロトタイプの全シーン通しプレイ動作確認完了

詰まったこと / 気づき:

  • Naninovel の goto:.LabelName(先頭ドットでの同スクリプト内ラベル参照)は無効構文
  • Naninovel の goto:Scene12.LabelName は「Scene12.LabelName」というスクリプトファイル名として解釈されてしまう(リソース読み込みエラー)
  • 解決策:選択肢ブロックをインラインで記述する形式(Naninovel 公式サンプル準拠)。各 @choice "..." の下にインデントブロックでアクションを書く
  • 不正解時の再選択ループは未実装。代わりに「不正解→ヒント→ひなたが正解に気づく→正解」の流れに簡略化(後で本格実装する場合は独立スクリプト分割)

決めたこと(DECISIONS.md にも転記):

  • Naninovel の選択肢分岐はインラインブロック形式で実装(ラベルジャンプは別ファイル参照として扱われるため)
  • ミニゲーム①の不正解時は再選択ループではなく「ヒント→気づく→正解」の簡略フローを採用

次回やること:

  • 立ち絵生成プロンプト(Character DNA)の試作(ChatGPT Images 2.0、ひなた・美咲)
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • ミニゲーム①の再選択ループの本格実装(独立スクリプト分割)
  • LINE風UI(シーン14)の実装方針確定

16:15 - 日本語フォント設定とシーン1の Naninovel 化

やったこと:

  • Noto Sans JP(Google Fonts)をダウンロードし、Assets/Fonts/NotoSansJP-Regular.ttfBold.ttf を配置
  • TextMesh Pro Font Asset (NotoSansJP-Regular SDF) を作成
  • Atlas Population Mode を Dynamic に、Source Font File に NotoSansJP-Regular.ttf を設定、Multi Atlas Textures 有効化
  • Naninovel の Dialogue Printer Prefab を編集し、TextMeshProUGUI の Font Asset を NotoSansJP-Regular SDF に変更
  • Project Settings → Naninovel → Characters で Hinata と Misaki の Display Name を日本語(ひなた、美咲)に設定、Has Name 有効化
  • Entry.nani を第1章シーン1全文(約1,500字)に拡張
  • Play で動作確認、日本語が綺麗に表示される

気づき:

  • Unity の Configuration(ScriptableObject)変更は Cmd + Shift + S(Save Project) を明示的に実行しないとディスクに書き出されない。Cmd + S(Save Scene)だけでは ScriptableObject は保存されない
  • Source Font File を設定し忘れると、Dynamic SDF が文字を生成できず「文字が見つからない」警告が大量に出る
  • 「Importer generated inconsistent result」警告は Dynamic SDF + TextMesh Pro の既知の警告で無視で OK
  • Dialogue Printer の Prefab は Packages/com.elringus.naninovel/Prefabs/TextPrinters/Dialogue.prefab という Naninovel パッケージ内のファイル。直接編集しているので、Naninovel 再インポート時に上書きされる可能性あり
  • Naninovel の Story Editor で操作するより、.nani ファイルを Cursor で直接編集する方が安定して効率的

決めたこと(DECISIONS.md にも転記):

  • 日本語フォントとして Noto Sans JP(Google Fonts、商用利用OK)を採用
  • Font Asset は Dynamic SDF(事前生成不要、メモリ効率良い)で運用
  • ひなたの内心モノローグ「(〜)」は地の文として書く(Naninovel 上で誰の声でもないテキストとして表示)

次回やること:

  • 残りキャラ(寛子・田辺・藤村・中村・黒川・朝倉)の Display Name 登録
  • シーン2〜14 の Naninovel スクリプト化
  • 他の Printer(Wide, Bubble, Chat, Fullscreen)のフォント設定
  • LINE風UI の実装方針確定
  • Naninovel パッケージ内 Dialogue.prefab の直接編集を、Variant 化して Assets/ 配下に分離するか検討

2026-05-01

19:25 - Unity + Naninovel セットアップ(実装フェーズ初日)

やったこと:

  • Naninovel 購入(Unity Asset Store Spring Sale、$75、〜5/6 PDT 期限)
  • Unity 6.3 で hinata-mahjong-app プロジェクトを作成(Universal 2D テンプレート)
  • 既存リポジトリのサブディレクトリ(hinata-mahjong-app/)として配置
  • Unity Hub の Source control provider は None を選択(既存 Git 管理を活用)
  • .gitignore に Unity 用ルール追加(Library/, Temp/, *.csproj 等)
  • Naninovel パッケージをインポート、サンプルスクリプトの動作確認OK
  • Assets/Scenario/Entry.nani を第1章シーン1冒頭の最小バージョンに置換(地の文+セリフのみ、立ち絵・背景なし)
  • 動作確認した結果、日本語が文字化け(豆腐表示)→ デフォルトフォントに日本語が含まれていない
  • Story Editor の操作で詰まり(一度 Mounting file system... で固まりプロジェクト再作成)、.nani ファイル直接編集(Cursor 経由)方針に切り替え

決めたこと(DECISIONS.md にも転記):

  • Unity プロジェクトの配置: 既存リポジトリのサブディレクトリ(hinata-mahjong-app/)、Source control provider: None
  • キャラID は英語(Hinata, Misaki, Hiroko, Tanabe, Fujimura, Nakamura, Kurokawa, Asakura)、表示名は別途 Naninovel Configuration で日本語に設定
  • Naninovel スクリプト編集は .nani ファイル直接編集(Cursor)が基本。Story Editor は補助的に

気づき:

  • Naninovel の Story Editor は新しめのUIで、初日に使いこなすのは難しい。.nani ファイル直接編集の方が安定
  • 「Set Up Minimal Mode」は名前が紛らわしい。実際は「ノベル機能を最小化して既存ゲームに組み込むモード」なので、フルノベルADVには不要 → Cancel が正解
  • Mounting file system... で固まった原因は Story Editor のノードに直接テキストを貼り付けたことの可能性が高い。.nani 直接編集ルートで回避

次回やること:

  • Noto Sans JP ダウンロード&配置(Assets/Fonts/)
  • TextMesh Pro Font Asset 作成(Dynamic SDF 推奨)
  • Naninovel Configuration の Text Printer でフォント変更
  • 動作確認 → 文字化け解消
  • (余裕あれば)シーン1全文を Naninovel スクリプトに本格変換

17:40 - 第1章 全14シーン完成(シーン4〜14執筆)

やったこと:

  • 主人公の名字を「丸井」→「丸山」に全置換(CLAUDE.md / AGENTS.md に読み替えルール追加、scenario/ 全ファイル一括置換、HIKITUGI.md と .gods-talk/issue-* は原本ルールで触らず)
  • シーン構成を 15シーン → 14シーンに圧縮(旧シーン4「神楽坂散策」をシーン3に統合、字数目標を 25,000 → 22,000字に修正)
  • シーン4〜14 のビート分解+本文ドラフト v1 を順次執筆+ファイル化
    • シーン4: 紀の善でのあんみつ体験(1,500字、罠の予兆)
    • シーン5: 罠の種明かし(1,500字、押し切られて階段を上る)
    • シーン6: 入室、寛子との出会い(1,500字、解説役の確立)
    • シーン7: 常連紹介(1,500字、田辺・藤村・中村紹介、黒川は会釈のみ)
    • シーン8: 牌に触れる(学習①、約2,200字、読み方ルールも含む)
    • シーン9: 和了形のレッスン(学習②、約2,000字、4面子1雀頭)
    • シーン10: 順子・刻子・対子(学習③、約1,500字)
    • シーン11: 配牌から1局(約1,860字、自動卓実演、寛子の和了)
    • シーン12: 初めての和了(約1,460字、ミニゲーム①実装)
    • シーン13: 教室を出る(約930字、美咲の離脱予告、寛子の2章フック)
    • シーン14: LINE風UI・エピローグ(約850字、章タイトル回収)
  • 第1章 完成: 全14シーン / 約20,640字 / プレイ約45分
  • 細かい修正: 寛子のセリフ「ガチで」削除(口調整合)、「ジュンツ → シュンツ」(一般的な読み方)、「お役 → 役(やく)」、シーン13で藤村のセリフ追加(構造改善)

決めたこと(DECISIONS.md にも転記):

  • 主人公の名字を「丸井」→「丸山」に変更
  • シーン構成を 14シーンに圧縮、字数目標を 22,000字に変更
  • ミニゲーム①は選択肢UI+プレイヤー操作で実装(完全誘導型、不正解時はヒント+再選択)
  • 教室の卓は自動卓を使用(実演用、HIKITUGI.md「木の卓と自動卓が混在」設定準拠)
  • 数牌の読み方は萬子で全例示、筒子・索子は変換ルール(マン → ピン / ソウ)で覚える方針

気づき:

  • ノベルADVのミニゲームは「キャラの行動」ではなく「プレイヤーの選択」として設計するのが正解。ビート分解の段階で意識する必要がある
  • 美咲の知識レベル(観戦経験あり、ただし正式用語は知らない)を意識してセリフ整合性をチェックすると、キャラがより立つ
  • 寛子の口調は HIKITUGI.md の指定(「あらあら」「〜のよ」「上手じゃない」「わたくし」)を厳守すると、教室の温かさが安定する。「ガチで」のような砕けた表現は混入させない

次回やること:

  • 第1章の通し読みでの整合性チェック・推敲
  • 第2章のアウトライン設計(テーマ:役を覚える、田辺茂との交流)
  • Naninovel 購入(期限 2026-05-06 PDT、$75)
  • キャラ立ち絵の Character DNA プロンプト確定(ChatGPT Images 2.0)

2026-04-30

19:54 - 企画引き継ぎと第1章キックオフ(シーン1〜3執筆)

やったこと:

  • HIKITUGI.md(claude.ai 上の企画議論成果物)を読み込んで現状把握
  • プロジェクト CLAUDE.md と AGENTS.md に表記ルールを追記(麻将廃止・麻雀統一・日本健康麻将協会非言及)
  • 第1章タイトル仮を「麻雀って面白いの?」に決定
  • 第1章の動機設計を別LLM(gods-talk スキル)にブレストで相談、25案を取得
  • 動機設計を確定:美咲の罠型(神楽坂で甘味デート → 実は教室)+ ハイブリッドB(教室体験は二人、章末で美咲離脱予告)
  • scenario/chapter01/outline.md を作成(15シーン / 25,000字構成)
  • 執筆ルール(ひなた一人称、章転換のみ三人称、実在固有名詞は実名)を追記
  • キャラクター補足設定(住所のラフ、神楽坂との関係性)を追記
  • シーン1〜3 のビート分解と本文ドラフト v1 を scenario/chapter01/scenes/ 配下にファイル化(合計約3,970字)

決めたこと(DECISIONS.md にも転記):

  • 表記ルール: 「麻将」表記を廃止して「麻雀」に統一、日本健康麻将協会への作中言及を禁止
  • 第1章タイトル仮: 「麻雀って面白いの?」
  • 第1章の動機設計: 罠型 + ハイブリッドB
  • 視点ルール: ひなた一人称基本、章転換のキメや時間飛ばしのみ三人称ナレーション可
  • 実在固有名詞(紀の善、毘沙門天、本多横丁等)は実名で使用

気づき:

  • 街描写は地の文だけで処理し、ひなたの「初めて見た街」感のモノローグや台詞は入れないほうが整合する(二人とも神楽坂周辺の高校生で平日は通学路として通っているため)

次回やること:

  • シーン4(紀の善でのあんみつ体験、約1,500字)から再開
  • 第1章を残り12シーン書き上げて固める(ユーザー意向「あした1章かためたい」)

最近のコミット

README

hinata-mahjong

概要

(記入予定)

セットアップ

(記入予定)

使い方

(記入予定)