Posted by Michael on July 8th, 2006, in Development
We will build Drama Princess as a collection of components. One of the first components that we will build is the action logic. At its root a system for playing character animations based on action sequences. For starters the choice of sequence (=opportunity) will be made by user input and not by some form of artificial intelligence. Then we can
- “play AI” to test the visual effects of our theories before building any systems and
- start with the creation of animation assets early (and direct it based on the results of the tests).
The basis of the action system will be the design discussed before in From goal to behaviour. So it’s not just about playing animations but about going through a sequence of actions based on rules. These actions trigger both animations and changes in parameters (state, position, rotation, etc). But the focus will be on animation blending first.
Other elements we will want to work on will be transitions between animation sequences and idle poses.
1 Comment »
Posted by Michael on July 8th, 2006, in Development
Drama Princess’s main focus is on a sort of decorative behaviour that only serves the purpose of making characters appear believable in a game. Often, however, characters will have a function other than decoration. With the current model, it would be difficult for a character to have personal goals, like trying to go to a certain location, being a tourist looking at things, following another character. Even for reasons of credibility it would be good if the actors could display such behaviour. And it’s another way for the author to define a character’s role or personality (a person is often characterized by his profession).
In Characters with jobs, I proposed the idea of a hard switch between the character’s “ambient AI” behaviour and a form of very controlled goal-oriented, more or less scripted behaviour when you want the character to perform a certain task. This may remain a suitable solution for forcing the character to behave in a certain way exactly (in a cut scene e.g.). But it is too strict and demands too much control from above to be suitable for general use.
Rather than continuously telling an actor what to do, we will include a task list in the definition of his personality. Not every character needs to have a task list, of course. Unlike other behaviours in the game, these tasks are not connected to objects. They are connected to the actor. They are its goals in life, so to speak.
As such, in Romanticism terms, they can be defined a opportunities without an intimacy requirement and coming from an imaginary object with which the actor has a a good relationship. Since they don’t have an intimacy level, the actor can perform tasks whenever it “wants”. And since the relationship is good, it will prefer to perform this task over most. The exact level of this relationship can be used to define the importance of the task.
This way, the opportunities list is still active and the task can be interrupted when the actor meets an object it really really likes. This should lead to more believable behaviour.
Since tasks are not connected to anything in the game world, they need to be “injected” into the opportunities list artificially. Since they are very important but they should be interruptable by very loved objects, we can add them to the opportunities list in between the filters of Intimacy and Fondness.
When the task’s goal has been reached, the actor is allowed to behave ambiently. Until the conditions change. Then the task needs to be prioritized again. The simplest way to do this is by adding a condition for injecting the task in the opportunities list. Something like “if the target is further than 20 meters away, follow it”. We could add some randomness and relativity to the condition to allow for less predictable behavior. Something like “the further away the target is, the higher the chance that you should start following it”.
Once a task has been chosing, the actor should be fairly obstinate about reaching its goal. This can be achieved by not allowing the fascination for the opportunity and the attitude towards the (imaginary) object to drop. For this, we can add an exception rule to the system that reduces fascination and attitude when interacting with objects.
Unlike normal opportunities which are selected from the surroundings and come with the necessary parameters, tasks need to have logic that allows them to actively fill in these parameters. If the task of “look at a landmark” is chosen for our Tourist character, the actor needs to actively search for the nearest landmark and move towards it.
Tasks are described in exactly the same way as opportunities (see From goal to behaviour). Tasks are independent components that can be shared by multiple actors. Tasks could even be used by objects to broadcast as opportunities. A landmark could broadcast a “look at me” opportunity e.g.
No Comments »
Posted by Michael on July 3rd, 2006, in Development
Every interaction between two actors has an impact on the intimacy of the relationship. This intimacy is objective (i.e. shared by both actors), the attitude towards it is objective as well (whether they want to make it more or less intimate). Only the enthusiasm of the actor is subjective: some actors are very enthusiastic, others are not.
But enthusiasm only impacts the chance of a break-up (also objective). After an interaction with a higher level of intimacy, the relationship will improve, even if one of the actors is more eager than the other.
It may be nice to see actors express happiness after an interaction that increased the intimacy and sadness or anger after one that didn’t. Would facial expressions be sufficient for this? Or would a certain pose or short animation be required as well? I’m not fond of the all-too-clear way in which The Sims have plus or minus graphics above their heads after an interaction.
I also don’t like the idea of actors doing a “i liked it” or “i disliked it” after every interaction. And in fact, this is not necessary. The impact of the interaction is known when the interaction is chosen. So perhaps the facial expression can be used during the interaction. This would mean that a couple that is falling out of love, would shake hands with a sad face (because it is below their intimacy level). While actors who just met, would shake hands with a happy face. Could be good.
Alternatively, or next to this, simple emotion expressions could also be played in between other interactions. When the past few interactions have improved the relationship, actors may play a little animation expressing contentment.
A break-up should probably be met with an emotional response, the strength of which possibly related to the severity of the break-up, i.e. the level of intimacy that the relationship had before the break-up. Actors may cry passionately or just bow their head, depending on how good their relationship was, before they start interacting again.
A break-up resets the intimacy to neutral. When the intimacy is neutral, attitude is being defined randomly. Attitude impacts whether the relationship will get better or worse. The more neutral a relationship is, the more chance attitude can go either way. Once the intimacy of a relationship evolves (towards less or towards more), attitude will tend to remain the same.
Emotions should probably be expressed when attitude seems to have been decided upon: towards more or less intimacy (happy or mean).
2 Comments »
Posted by Michael on July 3rd, 2006, in Development
The avatar of the player is also a Drama Princess character. But instead of automatically choosing opportunities as goals, the filtered list of opportunities will be presented to the player (in a dynamic button bar as in The Endless Forst e.g.). The player will then choose an opportunity as goal for the avatar.
I’m not sure if we should inform the player about the current level of the relationship with the object and the position of a certain opportunity compared to it (i.e. more or less intimate). It might be more fun for the player to “go on instinct” and choose with imagination.
I briefly considered only offering two buttons to the player: more or less intimacy. But the lack of knowing what the avatar was going to do, reduced the agency of the player too much, in my opinion. I think it’s better to know what you tell your avatar to do (and not be certain of the impact).
The player’s avatar will also broadcast opportunities for the other actors to choose from. This means that NPCs can initiate interactions that force the avatar to respond in a certain way. E.g. when the avatar broadcasts “slap me”, it will repond by falling backwards after another actor has achieved this goal. Ergo, as a result of broadcasting opportunties, the player would loose control over the avatar momentarily once in a while.
Some opportunities come with multiple ways to respond to them. These multiple ways could be offered as choices in the player’s interface. But only if the action allows for some time to pass before responding. Responding to a kiss by slapping the actor or kissing him back should happen quite quickly after the initial kiss.
Perhaps we should simply select the opportunities that an avatar broadcasts very carefully. These should be either actions with a single immediate and logical response or actions to which the response can happen at any time, while the other actor waits for it.
Or we forget about the idea of multiple responses altogether. To make life simpler. 🙂
No Comments »