High-Level Animation States and Organization


����������� This document serves as an attempt to define the taxonomy and nomenclature used in the MOHPA Animation/Scripting Interface.It will also touch on interfaces with other systems in the engine such as �AI�, �Animation State Machine�, and concept of �Rag Doll�.�� Lastly, this document will show a naming convention for the notion of �Alias�. This is a term that is used to create the interface between the asset productions of the animation team (Via a �Tiki� file) and the C++ and scripting code that is meant to drive it.


Scripts are to be organized using the following classifications:


Full Body�����


These are animations that are considered the �default� reference in resolving bone positions.They should generally control all bone translation and rotation although their values may be over-written by �Upper� animations described in the next section.




Secondary animations prioritize above the �Full Body� animations and block their values. These are used to control special activities (Like holding a gun or opening a door).The low-level animation system is responsible for blending between �Upper� and �Full Body� animations.


Note: Certain animations may be designed in several versions. For instance, there may be several versions of a �Bored� animation that the game may want to employ to enhance realism and immersion. This will solved in the �Alias Construction� section of this document


Full Body� Animation Break-Down:




This set of animations control things like �Standing�, �Crouching�, and �Prone�. They are essentially the �Stopped� versions of the �Locomotion� animations described next.




These are sets of 4-directional �moving� versions of the �Position� animations described above.



These are a set of flavors of the �Position� and �Locomotion� animations.They add realism when displaying the character.�� �Mood� will be defined with the following set of keywords: �Curious�, �Alert�, �Bored�, and �Nervous�.




These are representations of the damage states a character may experience during his travels through the world. It covers areas like �Falling down� or �Standing Up��etc. This script will also be a gateway to the �Rag Doll� system.Once in �Rag Doll�, always in �Rag Doll�.�� Animation scripts cease once we cross through this portal.




����������� These are segues between �Position�, �Locomotion�, and/or �Pain� animations.They are of short duration and will be seen as an overhead so as to keep their numbers minimal.The lowest level of the animation system in the engine will be the default blending mechanism with �Transitions� being employed when the default is not �good enough�.



�Upper� Animation Break-Down


1)Weapon Group


These are special smaller-scope secondary animation set used when the characters holding weapons.These are designed to get the character�s hands �close� to the weapon�s grips but the actual gluing with employ the use of some simple IK.




These represent area-specific damage like �a hit in the shoulder� or a �kick in the teeth�. The character may be continuing on with a �Full Body� walk cycle during either one of those events yet still be allowed to blend one of these over the top.

3) �Ambient��������������


A �bored dude� may �scratch his head� while in a �Position�.These have no real effects on game play but they are meant to contribute to immersion.




These are segues between �Weapon Group� (When the character changes weapon), �Ambient�, and/or �Pain� animations.Again, these are of short duration and will be seen as an overhead so as to keep their numbers minimal.The lowest level of the animation system in the engine will be the default blending mechanism with �Transitions� being employed when the default is not �good enough�.


Duties of the �AI� Module


The �AI� module(s) will have the following duties:


1)      It will set the character�s �Mood�

2)      It will tell the character which weapon to use.

3)      It will issue movement and attack commands

4)      It will NOT call out animation scripts directly...period.This is an effort to decouple two systems in a clean way so that code obfuscation reduces.�� The actual script calling activities are to be carried out by the �Animation State Machine� described next.


Duties of �Animation State Machine�


����������� This is the system that will manage the execution of the proper script files and labels used to adequately satisfy all of the �Full Body� and �Upper� animations and their transitions.�� The logic implemented here will see to all of the transitions and variants of �Mood�, �Position�, and �Locomotion� as will be outlined. The logic for the state machine will be implemented using our current scripting language with little or no introduction of new variables.


�Alias� Construction


����������� As stated, our engine and scripts rely on the concept of the �Alias� which decouples the animation asset filenames and their representations in-game.The idea here is to develop a short-hand grammar for the terms we use to classify the different animation varieties.This will yield a plan for writing simple and extensible �Alias Construction� scripts that harvest values from the character and generate �Alias� names.