High-Level
����������� 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.
�Upper�����������������������
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:
�Position� ������������������
This set of animations control things like �Standing�, �Crouching�, and �Prone�. They are essentially the �Stopped� versions of the �Locomotion� animations described next.
�Locomotion��������������
These are sets of 4-directional �moving� versions of the �Position� animations described above.
�
�Mood��
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�.
�Pain��������������
�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.
�Transitions�
����������� 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.
2)� �Pain�
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.
�Transitions�
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 �
����������� 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.