SYSTEM NOTICE

Auto translation by AI. Be sure, accuracy, nuances and authorial intent may not be fully reflected.
見出し画像

[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

Tsukiko has a gentle smile, and You waves energetically. It was fixed for each character.

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

Even in the same morning, the scene changes depending on the character.

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.

ChatGPT-san

Create a "morning temperature difference"
Mix in "waking condition" rather than just weather. It's more effective than rain.

ChatGPT-san

......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.


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

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