Monika-After-Story / MonikaModDev

DDLC fan mod to extend Monika
http://www.monikaafterstory.com/
Other
1.2k stars 684 forks source link

[Suggestion] - Base Emotional Classification System #7704

Open ibm2431 opened 3 years ago

ibm2431 commented 3 years ago

Emotions are already understood to be an important project, and are the subject of many, many user submitted issues. There have been tons of suggestions for how Monika might act on her emotions.

I feel part of the reason results haven't materialized from these discussions is because they start from the wrong end of the process. Someone considers how they want to interact with Monika, determines she needs feelings, picks some that come to mind, and then starts working backwards from the implementation of final behaviors and interactions.

This results in indecision and fear, even if someone had the will and time to tackle the idea:

The best way to dispel doubts is knowing you have a robust base capable of handling whatever you might want of it later. Whatever comes after your foundation - moods, interactions, or otherwise - is just paint on your already constructed walls. Rather than picking an end result and working backwards, it's best to start with the basics.

With this in mind, I've been examining existing psychological emotion models. After a lot of cross-examination, thought, and writing, I've determined an emotional classification model that I feel might be safe to proceed with. While I do have (ever-evolving) ideas regarding actual programming design, I deliberately don't go into them - the very first step is "simply" picking a list of emotions.

Model for Organizing Neural Interactions and Knowledge Affectively

Part 1: Understanding (PDF - 25 pages)

emotional-classification-tiny (Full Image)

It looks very similar to the "Revisited Hourglass" model because it is. As I go into in the full "paper", compared to the other emotional classification models I examined, it's the most succinct yet robust. I did feel individually tracked axes inside the Attitude axis are important enough to add, and made clarifying modifications to the "example tiers" the original model provided.

As one might guess from the PDF title and creation of a github repository, I do have hopes - and plans - for expanding upon this subject to a full model with a corresponding code library. Emotions and affective computing offer more capability than just asking how someone feels. They're also vital for agent learning (see: Growth project), which is a subject I'm interested in.

But right now I have some "writing burnout", and the selection of a core emotion classification system is a good point to ship something out for now. If I fall off the face of the earth before doing more, at least I've shared my research into picking an emotional classification model to simulate!

Linking some issues: Emotions and Moods: #1354 #2618 #4546 #4874 #5010 #5356 #5396 #5805 #5991 #6566 #6625 #6629 #6917 #7332 Regarding Attitude sub-axes: #3006 Regarding emotional causes for agent adaptation: #3067

ThePotatoGuy commented 3 years ago

I plan to fully read this soon so bear with me.

ibm2431 commented 3 years ago

Oh, I'm in no rush for any replies, don't worry! I'm only still in the preliminary research phase for the next part on how emotions might be elicited, and how an affective agent might learn or grow. My library on Google Scholar has gotten quite large. So I probably won't have anything further to add for a month or two!

I'm really liking Affect Control Theory after seeing Jesse Hoey give an illuminating illustration of its potential uses. Basically, emotional responses are the difference between our impressions for how we feel things should be versus how they are.

If an event ("my birthday") or concept ("my partner") don't align ("didn't") with our expectations ("spend time with me"), we will either emote that difference ("I'm really sad"), or change our expectations to match ("my partner is bad").

When applied to a virtual agent, instead of a developer defining hard emotion values (Sad +50) in response to events (_ignored_birthday), they'd instead "teach" these initial impressions ("good partners spend time with you on your birthday"_) to the agent.

The agent's emotions can then be automatically elicited (Actual - Expectation), and if the agent has a method of changing their new impressions ("my partner is bad") from the original it was taught ("my partner should be good"), these emotional responses can possibly change over time should a similar event happen again ("I'm only disappointed, this isn't surprising from them").

But I'm looking into other existing affective agents and how they're designed for ideas before getting back to paper composition. Scholar claims I still have 70 papers in my unskimmed label, so it'll probably be a while! And if it turns out that Affect Control Theory is untenable, the basic emotion classification could still be used in other ways (like simply using hard emotion value definitions).