[Good Morning Girlfriend Day 9] Transitioning to Dynamic Scene Selection
Introduction
"Good Morning Girlfriend" is a bot that delivers a "Have a nice day" message from the girls every morning at 7:30 AM.
But, I suddenly thought.
Is the same pose every day really okay?
The sight of them waving at the door is cute. But what if it continues for 7 days? What if it continues for a month?
"I wonder what pose she'll send me off with today"
Having that kind of excitement makes you want to check it every morning.
So, here is the story of how I built a dynamic scene selection mechanism.
Before the update: A world of fixed poses
In the initial design, poses were fixed for each character.
キャラ定義(YAML) → 固定ポーズ → 画像生成For example, for Tsukiko, it was "a gentle smile with her hand to her mouth." For You, it was "a bright smile, waving energetically."
There are differences between characters, but the same character would have the same pose every week.
The limits of fixed poses

I realized this after starting operations.
Tsukiko on Monday is the same composition every week
The only change is the dialogue based on the weather
A sense of "I've seen this before" starts to emerge
They should have many more expressions.
Introducing the scene system
So, I prepared 23 types of scenes. Here are a few examples...
Standing Pose Category (Example)
Confident standing pose
Waving gently
Seeing someone off modestly
Morning stretch
Entrance/Hallway Category (Example)
Looking up at the entrance
Leaning against the wall
Turning back to see someone off
Peeking out from the door
Sitting Pose Category (Example)
Sitting in a relaxed manner
Resting chin on hand
Holding a cup of coffee
Waiting while sitting on the stairs
Bed Category (Example)
Lying on side with chin on hand
Looking this way while lying on stomach
Sitting up and hugging a pillow
Curled up and looking sleepy
Every morning, a scene suited to the character is chosen from among these.
After the update: A world of dynamic selection
The new flow is as follows.
キャラ定義(YAML) → シーン選択 → 画像生成
├─ 重み付き抽選
├─ 履歴参照(重複回避)
└─ 天気・季節考慮The point is that it is not completely random.
Depending on the character's personality, some scenes are more likely to be chosen than others.
Weighting based on character traits
I have set a "morning type" for each character.
early_riser (strong in the morning, ready to go):
Tsukiko, Yo, Rinka, Runa
sleepy (weak in the morning, just waking up):
Shizuku, Mahiru, Hiyori

early_riser characters are more likely to have standing poses or entryway scenes chosen. They are dressed properly in their shirts, giving off an atmosphere of being ready for the day.
sleepy characters are more likely to have bed or sitting scenes chosen. They still look sleepy, and their hair is a bit messy.
Furthermore, I have set "preferred scenes" and "avoided scenes" for each character.
Mahiru suits scenes where she is dozing in bed
Rinka doesn't have the image of lounging around in bed
Runa seems like she would be energetically stretching
In this way, even with the same "morning," a different scene is created for each character.
A "disruptive proposal" from ChatGPT
Actually, there was an event that triggered the creation of this system.
When I showed the visuals currently under development to ChatGPT, I received this feedback.
Fix the "gaze rules"
Gaze equals relationship. If you fix this, the message will get across even with half the words.
Create a "morning temperature difference"
Mix in "waking condition" rather than just weather. It's more effective than rain.
......That's quite harsh. But it hit the mark.
I plan to write in detail about how I implemented these suggestions in another article.
Avoiding repetition by referencing history
Even if there are 23 types of scenes, it's meaningless if the same scene repeats.
Therefore, I added a mechanism to reference recent history so that recently used scenes are less likely to be selected.
Used within the last 2 times → Weight reduced by 90%
Used within the last 7 times → Weight reduced by 50%
This prevents the feeling of "it's the same thing again."
Unveiling on 12/26
Well, this dynamic scene selection is now fully implemented.
However, the first unveiling will be on 12/26.
The reason is that 12/21 to 12/25 is the Christmas event period.
During this period, the girls will appear in special outfits and scenes, so the regular scene system will be on break.
After Christmas ends, on the morning of 12/26.
That is when this new system will start running for the first time.
Which character will appear, and in what kind of scene?
I am looking forward to it myself.
Summary
From fixed poses to dynamic selection using 23 different scenes
Scenes are more likely to be chosen based on the character's 'morning type'
Avoiding repetition by referencing history
Seemingly the same every day, yet different every day
'What will she look like today?'
I want to continue creating mornings that people look forward to with that thought in mind.
Tomorrow, I plan to write about 'event handling design'.
I will talk about the technical side of how the special specifications during the Christmas period work.
👉 'Good Morning Girlfriend' is posted every morning at 7:30 AM at @ohayo_kanojo.
