見出し画像

【おはようカノジョ9日目】動的シーン選択への移行

はじめに

「おはようカノジョ」は、毎朝7:30に彼女たちが「いってらっしゃい」を届けてくれるBotです。

でも、ふと思った。

毎日同じポーズでいいのか?

玄関で手を振る姿は可愛い。でも、それが7日間続いたら? 1ヶ月続いたら?

「今日はどんな姿で送り出してくれるんだろう」

そんなワクワクがあったほうが、毎朝見たくなる。

というわけで、動的シーン選択の仕組みを作った話。


改修前:固定ポーズの世界

最初の設計では、ポーズはキャラごとに固定されていた。

キャラ定義(YAML) → 固定ポーズ → 画像生成

たとえば月子なら「口元に手を当てて、見守るような微笑み」。
陽なら「元気に手を振る、明るい笑顔」。

キャラごとに違いはあるけど、同じキャラは毎週同じポーズになる。


固定ポーズの限界

月子は見守る微笑み、陽は元気に手を振る。キャラごとに固定だった

運用を始めて気づいた。

  • 月曜の月子は、毎週同じ構図

  • 変化があるのは天気に応じたセリフくらい

  • 「見たことある」感が出てくる

彼女たちには、もっといろんな表情があるはず。


シーンシステム導入

そこで、23種類のシーンを用意した。一部を紹介すると……

立ちポーズ系(例)

  • 自信ある立ち姿

  • 優しく手を振る

  • 控えめに見送る

  • 朝の伸び

玄関・廊下系(例)

  • 玄関で見上げる

  • 壁に寄りかかる

  • 振り返って見送る

  • ドアからひょっこり

座りポーズ系(例)

  • リラックスして座る

  • 頬杖をつく

  • コーヒー片手に

  • 階段に座って待つ

ベッド系(例)

  • 横向きで頬杖

  • うつ伏せでこちらを見る

  • 起き上がり、枕を抱えて

  • 丸まって眠そう

毎朝、この中からキャラに合ったシーンが選ばれる。


改修後:動的選択の世界

新しいフローはこうなった。

キャラ定義(YAML) → シーン選択 → 画像生成
                      ├─ 重み付き抽選
                      ├─ 履歴参照(重複回避)
                      └─ 天気・季節考慮

ポイントは、完全ランダムではないこと。

キャラの個性に合わせて、選ばれやすいシーンと選ばれにくいシーンがある。


キャラ特性による重み付け

各キャラには「朝タイプ」を設定した。

early_riser(朝に強い、準備万端):
月子、陽、凛華、るな

sleepy(朝に弱い、寝起き感):
しずく、まひる、日和

同じ朝でも、キャラによってシーンが変わる

early_riser のキャラは、立ちポーズ系や玄関系が選ばれやすい。
シャツもきちんと着ていて、すでに準備万端な雰囲気。

sleepy のキャラは、ベッド系や座り系が選ばれやすい。
まだ眠そうで、髪も少し乱れている。

さらに、キャラごとに「好みのシーン」「避けるシーン」も設定した。

  • まひるはベッドでまどろむシーンが似合う

  • 凛華はベッドでゴロゴロしてるイメージじゃない

  • るなは元気に伸びをしてそう

こうして、同じ「朝」でも、キャラごとに違う景色が生まれる。


ChatGPTからの「破壊的提案」

実は、このシステムを作るきっかけになった出来事がある。

開発中のビジュアルをChatGPTに見せたら、こんな指摘をもらった。

「視線ルール」を固定しろ
視線=関係性。これ固定すると、言葉が半分でも伝わる。

ChatGPTさん

「朝の体温差」を作れ
天候より「起床コンディション」を混ぜろ。雨より効く。

ChatGPTさん

……なかなか手厳しい。でも、的を射ていた。

この提案をどう実装したかは、また別の記事で詳しく書く予定。


履歴参照で重複回避

シーンが23種類あっても、同じシーンが連続したら意味がない。

そこで、直近の履歴を参照して、最近使ったシーンは選ばれにくくする仕組みも入れた。

  • 直近2回以内に使用 → 重みを90%減

  • 直近7回以内に使用 → 重みを50%減

これで「また同じだ」を防ぐ。


お披露目は12/26

さて、この動的シーン選択、実装は完了している。

でも、初お披露目は12/26になる

なぜかというと、12/21〜12/25はクリスマスイベント期間。
この期間は特別な衣装とシーンで彼女たちが登場するので、通常のシーンシステムはお休み。

クリスマスが終わって、12/26の朝。
そこで初めて、この新しいシステムが動き出す。

どのキャラが、どんなシーンで現れるか。

私自身も楽しみにしている。


まとめ

  • 固定ポーズから、23種類のシーンによる動的選択へ

  • キャラの「朝タイプ」で選ばれやすいシーンが変わる

  • 履歴参照で重複を回避

  • 毎日同じようで、毎日違う

「今日はどんな姿かな?」

そう思って見てもらえる朝を、これからも作っていきたい。


明日は「イベント対応の設計」について書く予定。
クリスマス期間中の特別仕様がどう動いているか、技術的な話をしていきます。


👉「おはようカノジョ」は @ohayo_kanojo で毎朝7:30に投稿しています。


いいなと思ったら応援しよう!

この記事が参加している募集