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) ÷ (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>