Animation

Animation Group Descriptor

Each collection of one type of animation is called an animation group, and the setting information for that group takes the form of the animation descriptor. The animation target attributes and blend operation names are output to <GraphicsAnimationGroupDescription>.
Models and other animation targets possess sets of groups.
Animations are stored as individual resources by saving them as separate groups in the file.

Skeletal animation

The following is a model with skeletal animation targeting all bones.

<GraphicsAnimationGroupDescription Name="SkeletalAnimation" EvaluationHint="BeforeSceneRendering">
<MemberInformationSet>
<AnimationMemberDescription BlendOperationName="CalculatedTransform">
<Path>Skeleton.Bones["*"].AnimatedTransform</Path>
</AnimationMemberDescription>
</MemberInformationSet>
</GraphicsAnimationGroupDescription>

If the animation target was only the one bone named Bone1, the <Path> would look like this:

<Path>Skeleton.Bones["Bone1"].AnimatedTransform</Path>

For now, please configure your settings for all bones, as was done in the example above.

Material Animation

The following is a model with material animation targeting all materials.

<GraphicsAnimationGroupDescription Name="MaterialAnimation" EvaluationHint="BeforeSceneRendering">
<MemberInformationSet>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Emission</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Ambient</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Diffuse</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Specular0</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Specular1</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant0</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant1</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant2</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant3</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant4</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="RgbaColor">
<Path>Materials["*"].MaterialColor.Constant5</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="Vector2">
<Path>Materials["*"].TextureCoordinators["*"].Scale</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="Float">
<Path>Materials["*"].TextureCoordinators["*"].Rotate</Path>
</AnimationMemberDescription>
<AnimationMemberDescription BlendOperationName="Vector2">
<Path>Materials["*"].TextureCoordinators["*"].Translate</Path>
</AnimationMemberDescription>
</MemberInformationSet>
</GraphicsAnimationGroupDescription>

Rules for Outputting Animation Curves

For bones influenced by skinning, an animation curve whose value does not change is not output if the value is the same as in the .cmdl file (i.e., the value is the same as the bind pose).

For bones which are not influenced by skinning, even animation curves with values that do not change are output if settings have been configured for items like keys, IKs and constraints.

For an animation curve with unchanging value, data are only output for one <LinearFloatKey>, as shown below:

<XSegmentsFloatCurve PreRepeatMethod="None" PostRepeatMethod="None" StartFrame="0" EndFrame="0">
<Segments>
<LinearFloatSegment>
<Keys>
<LinearFloatKey Frame="0" Value="0" />
</Keys>
</LinearFloatSegment>
</Segments>
</XSegmentsFloatCurve>

In the case of skeletal animation, <MemberAnimationData> is not output for bones for which animation curves for Translate, Rotate and Scale are not all output.
However, for bones influenced by skinning, if settings have been configured for items like keys, IKs and constraints, then <MemberAnimationData> without animation curves is output, as shown below. In this state, the values in the .cmdl file are used for all translations, rotations and scaling.

<MemberAnimationData>
<Path>Skeleton.Bones["Bone1"].AnimatedTransform</Path>
<TransformAnimation />
</MemberAnimationData>






CONFIDENTIAL