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="ja" lang="ja">
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 -->
10<!-- InstanceBeginEditable name="ページのタイトル" -->
11<title>モデルの最適化</title>
12<!-- InstanceEndEditable -->
13</head>
14<body>
15<div>
16  <div class="body"> <!-- InstanceBeginEditable name="本文のタイトル" -->
17    <h1>モデルの最適化</h1>
18    <!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="本文" -->
19    <p>CreativeStudio では、以下の最適化処理が用意されています。</p>
20    <ul>
21      <li><a href="#Bone_Compression">Compress Node</a></li>
22      <li><a href="#material_integration">Compress Material</a></li>
23      <li><a href="#primitive_optimization">Optimize Primitive</a></li>
24      <li><a href="#skeletal_Model_Conversion">SkeletalModel-Simplification</a></li>
25      <li><a href="#animation_filters">アニメーションメンバのフィルタ</a></li>
26    </ul>
27    <p>ここでは、各最適化処理の概要を説明します。</p>
28    <p>モデルの最適化についての詳細は、別途用意されている「Maya プラグインマニュアル」を参照することをお奨めします。</p>
29    <a name="Bone_Compression" id="Bone_Compression"></a>
30    <h2>Compress Node</h2>
31    <p>モデル全体に対するノード圧縮のモードを指定します。</p>
32    <p>Compress Node には、以下の 5 つの圧縮方法が用意されています。</p>
33    <p>圧縮する対象は大きく 2 つにわかれます。</p>
34    <ul>
35      <li>スケルトン
36        <ul>
37          <li><a href="#end_drawing_Bone">Cull Useless Node</a></li>
38          <li><a href="#not_drawing_Bone">Cull Uninfluential Node</a></li>
39        </ul>
40      </li>
41    </ul>
42    <ul>
43      <li>モデル
44        <ul>
45          <li><a href="#possible_to_compress_bone">Unite Compressible Node</a></li>
46          <li><a href="#single_bone">Unite All Node</a></li>
47        </ul>
48      </li>
49    </ul>
50    <p>Compress Node の比較は以下の表を確認してください。</p>
51    <p>表 1. Compress Node 比較表 ( スケルトン )</p>
52    <table>
53      <thead>
54        <tr>
55          <th>圧縮方法</th>
56          <th>削除対象</th>
57          <th>スケルタルアニメーションとの併用</th>
58          <th>非均一なスケール</th>
59          <th>ボーンの SRT 変換</th>
60          <th>シェイプの頂点属性の変換</th>
61        </tr>
62      </thead>
63      <tbody>
64        <tr>
65          <th>Cull Useless Node</th>
66          <td>階層構造の末端に位置するモデルの表示に必要でないノードを削除して出力します。</td>
67          <td>可</td>
68          <td>可</td>
69          <td>なし</td>
70          <td>なし</td>
71        </tr>
72        <tr>
73          <th>Cull Uninfluential Node</th>
74          <td>Cull Useless Node の処理に加えて、行列を合成できるノードを合成して出力します。</td>
75          <td>可 ( データサイズが増える場合あり )</td>
76          <td>不可</td>
77          <td>あり</td>
78          <td>なし</td>
79        </tr>
80      </tbody>
81    </table>
82    <p>表 2. Compress Node 比較表 ( モデル )</p>
83    <table>
84      <thead>
85        <tr>
86          <th>圧縮方法</th>
87          <th>削除対象</th>
88          <th>スケルタルアニメーションとの併用</th>
89          <th>非均一なスケール</th>
90          <th>ボーンの SRT 変換</th>
91          <th>シェイプの頂点属性の変換</th>
92        </tr>
93      </thead>
94      <tbody>
95        <tr>
96          <th>Unite Compressible Node</th>
97          <td>圧縮可能フラグを設定しているノードを 1 つにまとめます。</td>
98          <td>不可</td>
99          <td>不可</td>
100          <td>あり</td>
101          <td>あり</td>
102        </tr>
103        <tr>
104          <th>Unite All Node</th>
105          <td>ノードを 1 つにまとめ、すべてのポリゴンをグローバル座標で出力します(ノード名はルートノードの名前になります)。</td>
106          <td>不可</td>
107          <td>可</td>
108          <td>なし</td>
109          <td>あり</td>
110        </tr>
111      </tbody>
112    </table>
113    <p>圧縮方法の詳細を以下に記載します。</p>
114    <a name="end_drawing_Bone" id="end_drawing_Bone"></a>
115    <h3>Cull Useless Node</h3>
116    <p>Cull Useless Node では、以下の条件をすべて満たすボーンを削除します。</p>
117    <ul>
118      <li>圧縮可能フラグが設定されている</li>
119      <li>どのシェイプからも参照されない</li>
120      <li>すべての子孫のボーンが上記の 2 つの条件を満たす</li>
121    </ul>
122    <p class="hint_warn">注意:<br />
123      ルートボーンの名前が Nw4cRoot でルートボーンの子ボーンが 1 つしかない場合は、ルートボーンも削除されます。</p>
124    <a name="not_drawing_Bone" id="not_drawing_Bone"></a>
125    <h3>Cull Uninfluential Node</h3>
126    <p>Cull Uninfluential Node では、以下の条件をともに満たすボーンを削除します。</p>
127    <ul>
128      <li>圧縮可能フラグが設定されている</li>
129      <li>どのシェイプからも参照されない</li>
130    </ul>
131    <p>圧縮後のルートボーンは条件を満たしても削除されずに残るケースがあります。</p>
132    <p>親ボーンが削除される場合は、スケルタルモデルの階層構造を親方向にさかのぼって削除されない最初のボーンを親にします。<br />
133      圧縮後の親ボーンと子ボーンの間に削除されるボーンがあった場合は、子ボーンの SRT を更新します。<br />
134      スケルタルアニメーションが設定されている場合もボーンのアニメーションの SRT を更新します。</p>
135    <p class="hint_warn">注意:<br />
136      削除されるボーンに非均一な ( x, y, z が同じでない ) スケールを設定してはいけません。<br />
137      ボーンの IsSegmentScaleCompensate は false でなければいけません。仮に true の場合は圧縮時に false に変更されます。<br />
138      モデルにスケルタルアニメーションが設定されている場合は、スケルタルアニメーションの最適化も行ってください。<br />
139      モデルによってはスケルタルアニメーションのデータ量が増えることがあります。</p>
140    <h4>スケルタルアニメーションの最適化方法</h4>
141    <p>CreativeStudio 上のコンテンツパネルでスケルタルアニメーションを選択し、メニューから「Cull Uninfluential Node」を行います。</p>
142    <!--
143  <p class="warning">スケルタルアニメーションの最適化を行う場合は、スケルタルアニメーションが設定されているモデルと同時に圧縮を行います。</p>
144  -->
145    <p>コンテンツパネルでは Ctrl+左クリックにより複数のコンテンツが選択できますので、モデルとスケルタルアニメーションを選択して「Cull Uninfluential Node」を行ってください。</p>
146    <a name="possible_to_compress_bone" id="possible_to_compress_bone"></a>
147    <h3>Unite Compressible Node</h3>
148    <p>Unite Compressible Node では、圧縮可能フラグが設定されているルートボーン以外のボーンを削除します。</p>
149    <p>親ボーンが削除される場合は、スケルタルモデルの階層構造を親方向にさかのぼって削除されない最初のボーンを親にします。<br />
150      圧縮後の親ボーンと子ボーンの間に削除されるボーンがあった場合は、子ボーンの SRT を更新します。</p>
151    <p>圧縮時にシェイプの参照ボーンを書き換えます。これに伴い頂点の位置や法線等の座標変換も行います。<br />
152      スキニングが設定されていないシェイプが、削除されるボーンを参照している場合は、削除されるボーンからスケルタルモデルの階層構造をさかのぼって削除されない最初のボーンを参照先にします。<br />
153      スキニングが設定されているシェイプは、削除されるボーンを参照しているかに関わらず、スキニングが解除され、ルートボーンを参照先にします。</p>
154    <p class="hint_warn">注意:<br />
155      スケルタルアニメーションとは、併用できません。<br />
156      削除されるボーンに非均一な ( x, y, z が同じでない ) スケールを設定してはいけません。<br />
157      ボーンの IsSegmentScaleCompensate はfalse でなければいけません。仮に true の場合は圧縮時に false に変更されます。</p>
158    <a name="single_bone" id="single_bone"></a>
159    <h3>Unite All Node</h3>
160    <p>Unite All Node では、ルートボーン以外を削除します。</p>
161    <p>圧縮時にシェイプの参照ボーンをルートボーンにします。<br />
162      これに伴い頂点の位置や法線等の座標変換も行います。<br />
163      スキニングが設定されているシェイプのスキニングは解除されます。<br />
164      ルートボーンのローカル行列は単位行列に設定されます。</p>
165    <p class="hint_warn">注意:<br />
166      スケルタルアニメーションとは併用できません。</p>
167    <a name="material_integration" id="material_integration"></a>
168    <h2>Compress Material</h2>
169    <p>Compress Material では、名前以外のすべてのステータスが一致するマテリアルを統合します。</p>
170    <p>圧縮可能フラグが true に設定されているマテリアルが対象です。</p>
171    <p>統合後の名前は、統合前の名前の中でUnicode のコードポイントによる辞書式順序がもっとも小さいものになります。</p>
172    <a name="primitive_optimization" id="primitive_optimization"></a>
173    <h2>Optimize Primitive</h2>
174    <p>Optimize Primitive では、ポリゴンのプリミティブを最適化して出力します。</p>
175    <p>最適化することにより、描画処理の負荷が軽減されます。</p>
176    <a name="skeletal_Model_Conversion" id="skeletal_Model_Conversion"></a>
177    <h2>SkeletalModel-Simplification</h2>
178    <p>SkeletalModel-Simplification では、条件がみたされたスケルタルモデルをモデルに変換します。</p>
179    <p>モデルに変換することにより、スケルタルモデルよりも構造がシンプルになりますので、PARTNER-CTR Debugger で処理を行う際に効率がアップする利点があります。</p>
180    <p>スケルタルモデルをモデルに変換する条件は以下になります。</p>
181    <ul>
182      <li>全てのボーンのトランスフォーム情報が恒等変換 ( Rotate、Translateがゼロで、Scale が1 ) 原点に配置された 1 ボーンの単純なアイテムや、「Unite All Node」を利用した地形モデルなどが当てはまります。</li>
183    </ul>
184    <p>変換時にボーンのすべてを削除しますので、頂点の位置や法線などの座標変換を行います。</p>
185    <p class="hint_warn">注意:<br />
186      スケルトン情報が破棄されるので、スケルタルアニメーションが利用できなくなります。</p>
187    <a name="animation_filters" id="animation_filters"></a>
188    <h2>アニメーションメンバのフィルタ</h2>
189    <p>この機能は、モデルから不要なアニメーションメンバを削除することにより、実機上でのパフォーマンスを向上させます。</p>
190    <p>機能の詳細は、別途用意されている「関数リファレンスの最適化 TIPS」を参照してください。</p>
191    <!-- InstanceEndEditable --> </div>
192  <div class="footer" />
193</div>
194</body>
195<!-- InstanceEnd -->
196</html>
197