Improv: A System for Scripting Interactive Actors in Virtual Worlds
What
In this paper Improv is stated as “An Expert System For Authors”, what it is is an interactive system that lets authors of various abilities create lifelike animated character interactions.
Why
Improv was created with the intention of creating tools that would be able to convey a sense of psychological engagement. There are other tools which the paper discusses but the general consensus is that they were trying to improve on these tools to make it easier for non programmers to create these believable interactive animations.
How
The high-level description of how Improv works is that they have used an “english-style” scripting language and a network distribution model. However this does not describe the architecture, the diagram below is from the paper and shows the three main elements in the architecture.
The Behaviour Engine simply put is the mind of the actor, it is where decisions about triggering animations and higher-level capabilities are taken care of.
The Animation Engine controls the body of the actor, layering and blending animations to convey the mood of the actor.
The Geometry is the model that is manipulated into the expressions and actions.
Underneath these engines there are two other parts of the system that gives the actor a more believeable lifelike feel. Degrees of Freedom(DOF) values are what control the actor over time and the smooth transitions between actions. Coherent Noise is also a technique used, it is applied so as to avoid complex simulation models. It adds the slight movements that living beings make when doing anything. An example is the controlled randomness of eye blinking, wandering gazes, or the small motions of a character trying to maintain balance.
While that is the basic underlying of the system, how to use the system is by using the aforementioned “english-style” scripting language. The first example below shows the script needed for an actor to make a curtain call showing triggering actions. While the second example shows the actor making a choice, once a choice has been made it is executed as if it was an action chosen by the author.
Examples:
define SCRIPT "Curtain Call"
{ "walk to center" }
{ continue until { my location equals center } }
{ "turn to camera" }
{ continue until { "turn to camera" is done } }
{ "bow" }
{ continue for 3 seconds }
{ "walk offstage" }
SCRIPT "Rock Paper Scissors"
{ choose from { "Rock" "Paper" "Scissors" } }
There is also the ability to control more than one actor, the diagram below shows a blackboard between one actors system and the others. The blackboard gives the impression to users that all the actors know what all the other actors are doing and gives the ability of being able to respond quickly and in a meaningful way.
The second diagram included here demonstrates the how the user can interact with the actor, the levels of abstraction are needed to allow the author to control what the user can do.
There are many ways to control the actors another important technique is the implementation of Decision Rules. The system uses the decision rules to weight each object that has been passed to it allowing the actor to “intelligently” make the right choice.
So What
In the paper the authors finish discussing the possibilities of Improv. Their goal is to make it into a commercial tool set with plenty of documentation for ease of use. They also plan to add voice recognition and behavioural sub-systems which allows the user to control goals, moods, attitudes, and relationships between the actors using spoken English. They finish by stating a big list of areas where they believe this system would be useful, including Role Playing Games, shared virtual worlds, digital puppetry, computer guides and companions among more.
Improv is an interesting system that looks like it would be beneficial in many areas as the authors stated. However the ability for non programmers to use it effectively is still a point for me as demonstrated by the script above it is simple looking but as it gets more complex and larger will non programmers be able to understand what they are doing and how to achieve their goal in an effective way?
No comments:
Post a Comment