Exploring Realism in Virtual Supporting Characters
Convincing and compelling virtual environments that are populated with rich characters demand consistent, nuanced, and realistic behavior that is integrated in the surrounding environment. Inadequate and unscalable traditional Artificial Intelligence based approaches have made it impractical to apply this level of character depth and detail to large environments. We are invesestgating the concept of Supporting Character Realism (SCR) for virtual avatars by identifying the capabilities of agents which have the ability to work in tandem with traditional “main character realism” approaches by demonstrating consistent and nuanced behaviors that blend into the surrounding background environment. This work proposes several metrics for evaluating agents attempting to achieve this level of realism and we have tested these proposed metrics in a rich social interaction experiment placed in a virtual bar amidst a variety of human and computer controlled patrons.
Our results evaluating our avatars show that SCR is not only a distinguishable and measurable metric of agent realism, but also a technically achievable goal within the reach of modern AI techniques.
Avatar Behavior Trees
These images shows the hierarchical structure of the behaviors we designed for each role in our social scenario. Each node represents one or more behaviors (a set of preconditions required for execution and a series of actions to perform). As noted in the images, different colored nodes correspond to the type of behaviors: (Blue) Unique behaviors for a specific social task, (Green) Behaviors shared among different behavior tasks within the same role, and (Orange) behaviors shared across all roles.
The following diagram shows how we constructed our avatars and their connection to the virtual world of Second Life. The avatars themselves are written in a special reactive planning language called ABL, which compiles into Java. We then wrote sensor and action connections in Java that communicated over sockets (using a JSON-based protocol) to the Second Life communication layer (and control console) written in C#.
- Here is a draft (submitted for formal review) of a paper describing our general goals and evaluation design: Paper Draft