At its heart, Drama Princess is an animation selection system. It tells an actor which action to perform from a limited number of actions.
So we start with a whole bunch of actions. The easy way to give an actor autonomy is to continuously pick any of those actions randomly. This leads to behaviour that is only suitable for lunatics.
The behaviour of non-lunatics is not random most of the time. It evolves gradually. To simulate this gradual evolution, we have first put the actions in groups per object. This allows an actor to concentrate on interacting with a particular object, rather than jumping from the flower to the car to the dog.
Next, we have arranged each such group in order of how much you need to like the object to perform the interaction (or how much the object would like that you do a certain thing with it).
By allowing the actor only to do something which is close to the thing he did before, we ensure that the actor doesn’t first kiss the dog and then kicks it with no apparent reason (lunatic behaviour).
At any given moment, the actor will prefer to do things with the same object as before and he will only do something of a similar nature.
If there is no change at all, however, the actor will seem to be obsessive, always doing the same kind of thing with the same object. So we make the actor get bored after a while, which forces him to choose another object to interact with. And to make sure that he doesn’t keep doing the same kind of thing whenever he picks a certain object, we make his feelings for that object change. Since actions are arranged in order of feelings, the range of actions that is available changes when the feelings change.
We cannot randomly change his feelings, however, for that would make him look like a lunatic again.
We can also not change his feelings only based on the action he did before because this leads to jitter, which is virtually the same as no change at all.
These feelings need to shift gradually.
To achieve this we randomly define a target for the actor’s feelings to aspire to. But only once in a while. Whenever the actor interacts with the object, his feeling will change a notch towards the target. As his feelings change, the range of actions changes as well. And since the actions match the feelings, the actor appears to evolve towards liking the object less or more.
Posted on January 8, 2007 at 12:42 am
In pratice, there’s two major problems with this approach:
just being able to kick or walk the dog doesn’t allow for much evolution
is admiring a flower better than picking it?
Posted on March 20, 2007 at 12:13 am
What about allowing the object’s reaction to affect the current target feeling towards it (plus randomness)?
That would mean objects would bore actors unless they did something, and other actors would react to each other accordingly…
In the long term though things would tend to stabilize. Randomness helps there 🙂
Posted on March 20, 2007 at 12:38 am
Good point. But how do we tell the difference between being bored or boring and feeling comfortable around each other and just hanging out?
Guess affection would help determine the difference. But we’re getting close to simulation with that and I’d prefer to avoid simulation in favour of purely formal modelling.