Version 5 (modified by welberge, 7 years ago) (diff)



Embodiments provide an interface for the control of specific parts of a virtual human or robot. They are defined by the control primitives they offer to, e.g. an Engine in AsapRealizer. For example, a !FACSFaceEmbodiment provides Ekman's FACS as control primitives to steer a face. Multiple implementations may exist for the same embodiment interface; for example a FaceEmbodiment? that sends its control primitive values over middleware to a render engine might have the same interface as one that directly animates a face. Using the VirtualHumanLoader, Engines expecting certain embodiment interfaces are bound to the specific implementations of these embodiments.


Typically, Embodiments reside in Environments. For example, the HmiRenderBodyEmbodiment? resides in a HmiRenderEnvironment? in which it is rendered and a JComponentEmbodiment resides in its parent JComponent.

Constructing Environments

Environments are typically constructed manually by the main program. For example:

WorldObjectEnvironment we = new WorldObjectEnvironment();
MixedAnimationEnvironment mae = new MixedAnimationEnvironment();
AsapEnvironment ee = new AsapEnvironment();
AudioEnvironment aue = new AudioEnvironment("LJWGL_JOAL"); 

Constructing Embodiments

If an embodiment resides in an environment, its construction involves either:

  1. Adding it to the environment(s)
  2. Obtaining it from the environment(s)

Either way, the construction of an Embodiment that is to resides in one or more Environments requires those Environments.