1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
2<html xml:lang="en-US" lang="en-US">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/document.css" type="text/css" />
7    <title>Basic Features</title>
8  </head>
9  <body>
10    <h1>Basic Features</h1>
11
12    <h2 id="play">Animation Playback</h2>
13    <div class="section">
14      <p>The following is a simple procedure for playing back an animation.</p>
15      <p class="info">For details, see AnimationDemo.</p>
16      <ol>
17        <li>Gets the animation group.
18          <ul>
19            <li><a href="../../../nw/gfx/Model/GetVisibilityAnimGroup.html"><CODE>Model::GetVisibilityAnimGroup</CODE></a> (Example)</li>
20          </ul>
21          <p>The functions used differ depending on the animation target and type.</p>
22          <ul>
23            <li><a href="../../../nw/gfx/SkeletalModel/GetSkeletalAnimGroup.html"><CODE>SkeletalModel::GetSkeletalAnimGroup</CODE></a></li>
24            <li><a href="../../../nw/gfx/Model/GetVisibilityAnimGroup.html"><CODE>Model::GetVisibilityAnimGroup</CODE></a></li>
25            <li><a href="../../../nw/gfx/Model/GetMaterialAnimGroup.html"><CODE>Model::GetMaterialAnimGroup</CODE></a></li>
26            <li><a href="../../../nw/gfx/Light/GetAnimGroup.html"><CODE>Light::GetAnimGroup</CODE></a></li>
27            <li><a href="../../../nw/gfx/Camera/GetAnimGroup.html"><CODE>Camera::GetAnimGroup</CODE></a></li>
28          </ul>
29        </li>
30
31        <li>Create an instance for animation evaluation.
32          <ul>
33            <li><a href="../../../nw/gfx/AnimEvaluator/Builder/Overview.html"><CODE>AnimEvaluator::Builder</CODE></a></li>
34          </ul>
35          <p>Use <a href="../../../nw/gfx/TransformAnimEvaluator/Builder/Overview.html"><CODE>TransformAnimEvaluator::Builder</CODE></a> for skeletal animations.</p>
36        </li>
37
38        <li>Bind an animation loop to the created animation evaluation instance.
39          <ul>
40            <li><a href="../../../nw/gfx/AnimObject/Bind.html"><CODE>AnimObject::Bind</CODE></a></li>
41          </ul>
42        </li>
43
44        <li>Register the animation evaluation with the model.
45          <ul>
46            <li><a href="../../../nw/gfx/Model/SetVisibilityAnimObject.html"><CODE>Model::SetVisibilityAnimObject</CODE></a> (Example)</li>
47          </ul>
48          <p>The functions used differ depending on the animation target and type.</p>
49          <ul>
50            <li><a href="../../../nw/gfx/SkeletalModel/SetSkeletalAnimObject.html"><CODE>SkeletalModel::SetSkeletalAnimObject</CODE></a></li>
51            <li><a href="../../../nw/gfx/Model/SetVisibilityAnimObject.html"><CODE>Model::SetVisibilityAnimObject</CODE></a></li>
52            <li><a href="../../../nw/gfx/Model/SetMaterialAnimObject.html"><CODE>Model::SetMaterialAnimObject</CODE></a></li>
53            <li><a href="../../../nw/gfx/Light/SetAnimObject.html"><CODE>Light::SetAnimObject</CODE></a></li>
54            <li><a href="../../../nw/gfx/Camera/SetAnimObject.html"><CODE>Camera::SetAnimObject</CODE></a></li>
55          </ul>
56          <p>Pass the just-created <CODE>AnimEvaluator</CODE> object in the <SPAN class="argument">AnimObject</SPAN> argument.<br /> Pass other derived classes for any subsequent blending or other such processing.
57          </p>
58        </li>
59
60        <li>Update the scene each frame.
61          <ul>
62            <li><a href="../../../nw/gfx/SceneUpdater/UpdateAll.html"><CODE>SceneUpdater::UpdateAll</CODE></a></li>
63          </ul>
64        </li>
65      </ol>
66    </div>
67
68    <h2 id="change_anim">Switching the Playback Animation</h2>
69    <div class="section">
70        <p>This section describes how to play another animation for a target for which an animation is already playing.</p>
71        <ul>
72          <li><a href="../../../nw/gfx/BaseAnimEvaluator/ChangeAnim.html"><CODE>BaseAnimEvaluator::ChangeAnim</CODE></a></li>
73        </ul>
74        <p>Switching animations is faster than re-creating an instance for evaluation.</p>
75    </div>
76
77    <h2 id="frame_control">Frame Control</h2>
78    <div class="section">
79      <p>This section describes how to control the playback frame of an animation from your program.</p>
80      <ul>
81        <li>To set a particular frame:
82          <ul>
83            <li><a href="../../../nw/gfx/BaseAnimEvaluator/SetFrame.html"><CODE>BaseAnimEvaluator::SetFrame</CODE></a></li>
84          </ul>
85        </li>
86
87        <li>To change the update interval of an animation:
88          <ul>
89            <li><a href="../../../nw/gfx/BaseAnimEvaluator/SetStepFrame.html"><CODE>BaseAnimEvaluator::SetStepFrame</CODE></a></li>
90          </ul>
91        </li>
92
93        <li>To set or cancel a loop:
94          <ul>
95            <li><a href="../../../nw/gfx/BaseAnimEvaluator/SetPlayPolicy.html"><CODE>BaseAnimEvaluator::SetPlayPolicy</CODE></a></li>
96          </ul>
97        </li>
98      </ul>
99    </div>
100
101    <h2 id="reset">Resetting an Animation</h2>
102    <div class="section">
103      <p>This section describes how to restore status immediately after loading a model or other object.</p>
104      <ul>
105        <li><a href="../../../nw/gfx/BaseAnimEvaluator/Reset.html"><CODE>BaseAnimEvaluator::Reset</CODE></a></li>
106      </ul>
107      <p>You must have a material buffer ready to perform this operation on a material.<br /> For details, see <a href="CRYPTORSASignInitParam.html"><CODE>BaseAnimEvaluator::Reset</CODE></a>.</p>
108    </div>
109
110    <h2 id="release">Removing an Animation</h2>
111    <div class="section">
112      <p>Follow these steps to remove an animation from a model.</p>
113      <ul>
114        <li>Call the <a href="../../../nw/gfx/AnimObject/Release.html"><CODE>AnimObject::Release</CODE></a> function to remove an animation group from an animation evaluation.</li>
115        <li>Pass <CODE>NULL</CODE> to the <CODE>SetAnimObject</CODE> or <CODE>Set***AnimObject</CODE> functions as described in <a href="#play">Animation Playback</a> to delete an animation.</li>
116      </ul>
117      <p>Note that all steps are required here.</p>
118    </div>
119
120    <h2 id="blend">Blending Animations</h2>
121    <div class="section">
122      <p>This section describes how to blend two or more animations with the same target.<br /> The <CODE>AnimationBlendDemo</CODE> blends a walking animation and running animation.</p>
123      <p class="info">For details, see AnimationBlendDemo.</p>
124      <ol>
125        <li>Prepare two or more instances of <a href="../../../nw/gfx/AnimEvaluator/Overview.html"><CODE>AnimEvaluator</CODE></a>.
126          <p>For details on creating an instance of AnimEvaluator, see <a href="#play">Animation Playback</a>.</p>
127        </li>
128        <li>Create an instance of <a href="../../../nw/gfx/AnimInterpolator/Overview.html"><CODE>AnimInterpolator</CODE></a> with the required size and register the <CODE>AnimEvaluator</CODE> objects.
129          <ul>
130            <li><a href="../../../nw/gfx/AnimInterpolator/Builder/Overview.html"><CODE>AnimInterpolator::Builder</CODE></a></li>
131            <li><a href="../../../nw/gfx/AnimBlender/AddAnimObject.html"><CODE>AnimBlender::AddAnimObject</CODE></a></li>
132          </ul>
133          <p>In this example, the <CODE>AnimObject</CODE> to be registered is an <CODE>AnimEvaluator</CODE> object.</p>
134        </li>
135      </ol>
136      <p>
137      You can also blend an <CODE>AnimBlender</CODE> object using another <CODE>AnimBlender</CODE>.<br /> You can also overwrite animations. For details, see <a href="AdvancedFeature.html#partial_anim">Partial Animation</a>.
138      </p>
139    </div>
140
141  <hr><p>CONFIDENTIAL</p></body>
142</html>