The character animation toolkit is the main output of the project. It has been developed by CS and is linked to optional modules developed by project partners such as the University Glasgow body scanning system and Sail Labs Multimodal control system.
In terms of innovation, it is one of the first attempts in Europe to propose a cutting edge solution for virtual and interactive character development but however suitable for industrial development. V-MAN has recently (May 2004) won 2 awards at the Laval Virtual conference in France. The jury composed of people from the scientific committee, industry and specialised journalists, has warmly receiving the demonstrations, acknowledging its scientific and industrial innovation.
Since the writing of the proposal, a Dutch competitor appeared (http://www.mysticgd.com), but is positioned on the game market and commercially speaking, the real competition is clearly located in the US with Di-Guy software (www.bdi.com). This product is well introduced into the industry and above all, the US defence. It is less advanced technologically but owns, in addition to its tens of customers, a large library of characters and moves and an integration into Multigen simulation platform.
The V-MAN system allows developers of 3D interactive applications to populate their simulation with virtual characters thanks to:
- Authoring applications to create the V-MAN skeleton, skin, clothes, moves, physics properties and accessories;
- A Software Developer Kit that gives life to the V-MAN thanks to 256 C++ functions and libraries of characters, clothes and moves.
Here is a description of the authoring tools and the SDK developed during the project:
Body Authoring Tool:
The tools support the production of the mesh file (the V-MAN representation) that will be animated by the SDK. The user defines a skeleton that fit to his 3D character representation, places the skeleton according to the character, links the skin representation to the bone and finally, set hotspots on the body to allow V-MAN interaction with the environment.
Physics Editor:
The tool helps to define objects and virtual characters collision volumes in order to apply dynamics principle to them. Moreover, it allows defining the limits of each virtual character joint, in order to produce a realistic collision response.
Object Editor:
The tool aims at defining all the actions a V-MAN can do on a specified object and how it can do them. The user may define object hotspots, for the V-MAN to interact with the object. It may be, for instance, the position where the object should be grabbed. One may also define editing parameters to improve the interaction with the object. For instance a move is defined to sit a character on a specific chair and the user wants to use this move to sit the character on another chair. He can then specify where the V-MAN has to sit (i.e. match the sitting hotspot of the object with the sitting hotspot of the V-MAN), when it will be in contact with the object.
Graph Editor:
The graph editor allows to build motion graph which is a state graph allowing to better chain different animations. A state corresponds to a motion capture file associated with a key parameter and a cyclic flag. A directional transition between two states represents a possible transition from a movement to another.
Modular SDK:
A great feature in the V-MAN system is to let the developer use one part of the system or the whole system. For instance, the user may decide to use the system without the physics engine or the voice system and it should not impact his development. The developer may also use different entries in the SDK, that is to say that it can use it at high level by controlling his V-MAN with high level behaviours or at low level by adding directly animations on the V-MAN.
We also offer the user the opportunity to tune his system, for instance he can change the rendering engine, or the physics engine he wants to use in his simulation. Here are the available tunes with the V-MAN system:
- Change rendering engine. In the V-MAN SDK the rendering methods are implemented for 2 rendering engines: Vertigo3 and Performer. Some others rendering engine can be added very easily.
- Change physics engine. In the V-MAN system the use of 3 different physics engines is possible. The 3 available physics engines are: Karma from Mathengine, ODE, and Tokamak.
- Change path-planning engine. 2 path planners are available but the user can develop is own path planner to plug it in the system.
Moreover, the SDK is easily extendable, the user can for instance add his own behaviour in the system and apply it to a V-MAN.
The libraries of characters, clothes and moves are under development and will count 30 characters / clothes / accessories together with 50 moves.
The commercial launch is planned for fall 2004.
More information on the Virtual Man project can be found at http://vr.c-s.fr/vman/