1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
3<!-- InstanceBegin template="/Templates/default_template.dwt" codeOutsideHTMLIsLocked="false" -->
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta http-equiv="Content-Style-Type" content="text/css" />
7<!-- InstanceBeginEditable name="CSS の相対パス指定" -->
8<link href="../../../../common/manual.css" rel="stylesheet" type="text/css" />
9<!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="ページのタイトル" -->
10<title>Skeletal animation Properties panel (Information for programmers)</title>
11<!-- InstanceEndEditable -->
12</head>
13<body>
14<div>
15  <div class="body"> <!-- InstanceBeginEditable name="本文のタイトル" -->
16    <h1>Skeletal animation Properties panel (Information for programmers)</h1>
17    <!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="本文" -->
18    <p>The section explains the Frame format and Quantization quality items in the Skeletal animation <B>Properties </B>panel.</p>
19    <p>These settings are items of interest to application programmers.</p>
20    <a name="format_difference" id="format_difference"></a>
21    <h2>Differences in operations between frame format and standard format</h2>
22    <p>This is a description of the difference between frame format binary output and standard format binary output.</p>
23    <h3>Frame format</h3>
24    <p>In frame format, when animation is configured to any of the X,Y, Z components, then all the components are output in the binary data that is exported.</p>
25    <p>Curve evaluation results are entered for components for which an animation is configured. A copy of the bind pose value in the .cskla file is inserted for components for which an animation is not configured.</p>
26    <p>All components are therefore written into the model in every frame.</p>
27    <p>Consider the example where animation is configured for the X component of Scale but there is no animation for Translate.</p>
28    <p>In this case, the the X, Y, Z components of Scale will be written to the model in every frame. None of the Translate elements will be written.</p>
29    <h3>Standard format</h3>
30    <p>A bind pose value is not included in standard format binary data.</p>
31    <p>Only components for which an animation is configured are written into models. Other components are not changed.</p>
32    <p>As a result, the bind pose value in the .cmdl file is used for components for which an animation is not configured.</p>
33    <p class="hint_warn">Caution:<br /> Due to the above differences caused by each format when using binary output, behavior will not match if the bind pose differs between the model and the animation.</p>
34    <p>The reason that skeleton data is included in both is because this allows optimization and binary output using the .cskla file alone.</p>
35    <a name="compression_quality" id="compression_quality"></a>
36    <h2>Quantization Quality</h2>
37    <p>This section describes the internal operations of <I>quantization</I>.</p>
38    <p>The term <I>quantization</I> in this case refers to the quantization of key data.</p>
39    <p>A <a href="#tolerance_values">tolerance value</a> is set internally for each  level of quantization quality. The quantization format is selected automatically to satisfy this tolerance.</p>
40    <h4>Relation to NW4R settings values</h4>
41    <p>NW4R allows the user to directly set tolerance values.</p>
42    <p>If you are referring to these values when setting the quantization quality you need to keep the following point in mind:</p>
43    <p class="hint_warn">In the case of the value set for Rotate (and just this case), in NW4R the value set by the user is internally changed and used.<br /> The referenced values thus need to be interpreted differently from the values set in CreativeStudio.<br /> The correspondence is as follows:<br /> CreativeStudio tolerance value = 20 x NW4R tolerance value.</p>
44    <h3>Automatic Selection Algorithm</h3>
45    <p>Animation curve quantization is performed on all applicable quantization formats.</p>
46    <p>At set frame intervals (described below),  the curve is evaluated  before and after quantization and the evaluated values used to determine the error.</p>
47    <p>The maximum error value is taken as the error for the curve overall.</p>
48    <p>If the curve error is less than the acceptable tolerance, then that format passes the test.</p>
49    <p>Among the formats that pass this test, the one with the smallest volume is the one that gets selected for use.</p>
50    <h4><B><CODE>Rotate </CODE></B>curves</h4>
51    <p>Evaluated using absolute error.</p>
52    <p>The absolute value for the difference in evaluated values is used as the error.</p>
53    <h4><B><CODE>Scale</CODE></B>, <B><CODE>Translate </CODE></B>curves</h4>
54    <p>Evaluated using relative error.</p>
55    <p>The (absolute value for the difference in evaluated values)  &divide;  (maximum amplitude of the curve) is used as the error.</p>
56    <h3>Quantization Format Types</h3>
57    <p>There are eight types: FVSS128, FVSS64, FVSS48, FVS96, FVS48, FVS32, FV64 and FV32.</p>
58    <p>The number at the end of the format name indicates the per-key data size, expressed in units of bits.</p>
59    <p class="new_hint"><B>Note:</B> For details about the formats, see the <CODE>ResFloatKey~Data</CODE> structure in <CODE>Library/include/nw/anim/res/anim_ResAnimCurve.h.</CODE></p>
60    <h3>Frame Interval</h3>
61    <p>The value that is used for the frame interval when performing error evaluations is the value of <CODE>Frame Precision</CODE>, which is one of the export settings of the DCC tool.</p>
62    <p>In other words, a curve that is baked to a higher precision also undergoes detailed error evaluation.</p>
63    <p class="hint_warn">Caution:<br /> There is a bug in version 1.0.1 and earlier versions of CreativeStudio that causes the above-described information to be deleted when the intermediate file is saved.<br /> If the information is not available, then the error evaluations are performed at a frame interval of 1.0.<br /> Thus, for data defining detailed movement in a small number of frames, we recommend that you re-export the data and then conduct quantization.</p>
64    <h3>Checking the Format</h3>
65    <p>You can  use the <B>Console </B>panel to check which format has been selected for use.</p>
66    <p>In the console version, specify the command line option <B>--verbose</B> to export to standard output.</p>
67    <a name="tolerance_values" id="tolerance_values"></a>
68    <h3>Setting the Acceptable Tolerance</h3>
69    <p class="hint_warn">Caution:<br /> The settings values shown below may change in the future.</p>
70    <p>Table 1  Setting the tolerance (Scale / Translate)</p>
71    <table>
72      <thead>
73        <tr>
74          <th>Quantization quality</th>
75          <th>Acceptable Tolerance Values</th>
76          <th>Comments</th>
77        </tr>
78      </thead>
79      <tbody class="center">
80        <tr>
81          <td>0</td>
82          <td>∞</td>
83          <td>Always quantize to minimum volume format.</td>
84        </tr>
85        <tr>
86          <td>1</td>
87          <td>0.40</td>
88          <td>--</td>
89        </tr>
90        <tr>
91          <td>2</td>
92          <td>0.30</td>
93          <td>--</td>
94        </tr>
95        <tr>
96          <td>3</td>
97          <td>0.20</td>
98          <td>--</td>
99        </tr>
100        <tr>
101          <td>4</td>
102          <td>0.10</td>
103          <td>--</td>
104        </tr>
105        <tr>
106          <td>5</td>
107          <td>0.06</td>
108          <td>--</td>
109        </tr>
110        <tr>
111          <td>6</td>
112          <td>0.03</td>
113          <td>--</td>
114        </tr>
115        <tr>
116          <td>7</td>
117          <td>0.01</td>
118          <td>--</td>
119        </tr>
120        <tr>
121          <td>8</td>
122          <td>0.005</td>
123          <td>--</td>
124        </tr>
125        <tr>
126          <td>9</td>
127          <td>0</td>
128          <td>Never quantize.</td>
129        </tr>
130      </tbody>
131    </table>
132    <p>Table 2  Setting the tolerance (Rotate)</p>
133    <table>
134      <thead>
135        <tr>
136          <th>Quantization quality</th>
137          <th>Acceptable Tolerance Values</th>
138          <th>Comments</th>
139        </tr>
140      </thead>
141      <tbody class="center">
142        <tr>
143          <td>0</td>
144          <td>∞</td>
145          <td>Always quantize to minimum volume format.</td>
146        </tr>
147        <tr>
148          <td>1</td>
149          <td>0.50</td>
150          <td>--</td>
151        </tr>
152        <tr>
153          <td>2</td>
154          <td>0.40</td>
155          <td>--</td>
156        </tr>
157        <tr>
158          <td>3</td>
159          <td>0.30</td>
160          <td>--</td>
161        </tr>
162        <tr>
163          <td>4</td>
164          <td>0.20</td>
165          <td>--</td>
166        </tr>
167        <tr>
168          <td>5</td>
169          <td>0.10</td>
170          <td>--</td>
171        </tr>
172        <tr>
173          <td>6</td>
174          <td>0.05</td>
175          <td>--</td>
176        </tr>
177        <tr>
178          <td>7</td>
179          <td>0.01</td>
180          <td>--</td>
181        </tr>
182        <tr>
183          <td>8</td>
184          <td>0.005</td>
185          <td>--</td>
186        </tr>
187        <tr>
188          <td>9</td>
189          <td>0</td>
190          <td>Never quantize.</td>
191        </tr>
192      </tbody>
193    </table>
194    <!-- InstanceEndEditable --> </div>
195  <div class="footer" />
196</div>
197<hr><p>CONFIDENTIAL</p></body>
198<!-- InstanceEnd -->
199</html>