1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
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/manpage.css" type="text/css" />
7<title>Modeling</title>
8</head>
9<body>
10
11<h1>Modeling</h1>
12<p>This chapter describes procedures and precautions regarding the use of 3ds Max to create models for NintendoWare.</p>
13
14<p>
15<a href="#node">Nodes</a><br /> <a href="#polygon">Polygons</a><br />
16
17
18<a href="#material">Materials</a><br /> <a href="#texture">Textures</a><br /> <a href="#skinning">Skinning</a><br /> <a href="#biped">Biped</a><br /> <a href="#physique">Physique</a><br />
19
20</p>
21
22<h2><a name="node">Nodes</a></h2>
23<p>In this manual, the term &quot;node&quot; refers to the basic unit for the hierarchical structure of a 3D model.</p>
24<p>In 3ds Max, nodes correspond to standard primitives, dummies, and bones.</p>
25
26<h3><a name="node_name">Node Names</a></h3>
27<p>
28Although you can assign the same name to multiple nodes with 3ds Max, you should assign a unique name to each material because there is no overlap of node names in the intermediate file.
29</p>
30<p>
31If multiple nodes with the same name exist, the Export plug-in will operate internally to output the first node that it fetches with the existing name and then to alter the name of each subsequent node by adding the underscore symbol and a number (for example, name<strong>_01</strong>, name<strong>_02</strong>, and so on).<br />
32</p>
33
34<h3><a name="root_node">Root Nodes</a></h3>
35<p>
36In the intermediate file, each model has only one root node.
37</p>
38<p>
39If there are multiple root nodes on 3ds Max, the plug-in will group them together and add them to the intermediate file as a single node with the name <strong>nw4c_root</strong> for output.
40</p>
41
42
43
44
45
46<h3><a name="pivot">Base Point</a></h3>
47<p>When exporting, the base point is recognized as the local-coordinates origin.</p>
48<p>If the base point is not constant for all frames the data cannot be output correctly.</p>
49<p>
50Note that the visible location of the 3ds Max base point under 3ds Max does not always match the internal location.<br /> When rotating or moving the base point, be sure to confirm the base point location by clicking <B>Utilities</B> &gt; <B>Reset Xform</B>.<br /> If Xform is not reset, the position when <STRONG>Reset Pivot</STRONG> is performed will be processed as the internal base point position.
51</p>
52
53<h3><a name="visibility">Visibility</a></h3>
54<p>
55The visibility of the nodes stored in cmdl reflects the value set in the rendering control <strong>Display</strong>.<br /> 0.0 is interpreted as invisible. Values greater than 0.0 are interpreted as visible.<br /> Interactive invisibility settings are not reflected in the intermediate file.
56</p>
57
58<center><img src="./images/visibility.gif" /></center>
59<br />
60
61<h3><a name="billboard">Billboard</a></h3>
62<p>
63Billboard nodes are set using the <a href="data_plugins.html#billboard">NW4C Set Billboard</a> plug-in.<br /> The settings are not reflected on the 3ds Max screen. Be sure to confirm using the NintendoWare Viewer.
64</p>
65
66
67
68<h2><a name="polygon">Polygons</a></h2>
69<h3><a name="polygon_type">Polygon Shapes</a></h3>
70<p>
71When polygons are output to the intermediate file, the Export plug-in operates internally to divide the polygons into triangles for output.
72</p>
73
74
75<h3><a name="normal_vector">Normals</a></h3>
76<p>
77Output of normal vectors is supported.
78</p>
79<p>
80If the shading of models output to an intermediate file differs greatly from that shown on 3dsmax, there may be a problem with how data is created.<br /> Check the following if shading is not displayed correctly.
81</p>
82<ul>
83<li>Execute the <B>Reset XForm</B> utility.</li>
84<li>Use the [STL-Check] Modifier to check whether geometry conditions are normal.</li>
85<li>Use the [Vertex Weld] Modifier to clean up from mesh if there are inappropriate vertices that cannot be linked.</li>
86<li>Use the polygon edit function <B>Remove Isolated Vertices</B> to remove isolated vertices.</li>
87</ul>
88
89
90<h3><a name="vertex_color">Vertex color</a></h3>
91<p>
92Only one vertex color per vertex is supported by the Export plug-in.<br /> The plug-in also supports vertex shades and vertex alphas.<BR>
93</p>
94<p>
95Conversion from a Max vertex color to an NW4C vertex color is carried out as follows.<BR> <strong>NW4C Vertex Color (RGB) = Max Vertex Color *  Max Vertex Shade<br /> NW4C Vertex Color (A) = Max Vertex Alpha ((R + G + B ) / 3)<br /></strong>
96</p>
97<p>
98The number of elements exported for vertex color is 4 if vertex alpha is being used (RGBA), and 3 if not (RGB).<br /> The precision of output data is 32-bit floating point if the suffix of any channel name is <strong>_f</strong>, 16-bit integer precision if the suffix is <strong>_s</strong>, and 8-bit integer precision if the suffix is <strong>_b</strong> or there is no suffix. For example, be sure to set the channel name to &quot;nw4cUser0_s&quot; if you want to output the 0th user vertex attribute as a 16-bit integer.
99</p>
100<p>
101The channel name can be set on the dialog opened by selecting <B>Tools &gt; Channel information</B> on the main menu.
102</p>
103
104<h3 id="user_attr">User Vertex Attributes</h3>
105
106<p>
107The value set for the vertex paint modifier can be output as a user vertex attribute.<br /> An object having the following channel name is output for four or more map channels.<BR> 「<strong>nw4cUser0</strong><br><strong>nw4cUser1</strong><br><strong>nw4cUser2</strong><br> (only the U is uppercase)<br /> The color set can be freely used by any game as a user vertex attribute.</p>
108
109<p>
110The channel name can be set on the dialog opened by selecting <B>Tools &gt; Channel information</B> on the main menu.
111</p>
112
113<p>
114The precision of output data is 32-bit floating point if the suffix of the above channel name is <strong>_f</strong>, 16-bit integer precision if the suffix is <strong>_s</strong>, and 8-bit integer precision if the suffix is <strong>_b</strong> or there is no suffix. For example, be sure to set the channel name to &quot;nw4cUser0_s&quot; if you want to output the 0th user vertex attribute as a 16-bit integer.
115</p>
116<p>
117In addition, the number of data components output can be set by putting a number before the suffix letter used to indicate precision in the channel name.<BR> 1 or 2 can be specified for the number of components. The R component is output when 1 is set, while the R and G components are output when 2 is set.<BR>For example, set &quot;nw4cUser1_2f&quot; for the color set name when you want to output the first user vertex attribute as a 2-component, 32-bit floating point number. Similarly, use &quot;_2s&quot; for 16-bit integers and &quot;_2b&quot; for 8-bit integers.
118
119</p>
120
121<h3><a name="instance">Instances</a></h3>
122<p>Instances can be output. Although vertex data is shared, instances are output as separate objects.<br /> However, instances of models for which skin has been configured are not supported.
123</p>
124<br />
125
126
127
128
129
130<h2><a name="material">Material</a></h2>
131<p>For standard materials use Blinn, Phong, and Anisotropic.</p>
132<p>Even if you use materials other than these, output is possible if parameters are the same as a standard material, but no other parameters are supported.</p>
133<p>The level and shininess of reflected specular light is reflected in the specular table output.</p>
134<p>No anisotropic reflection setting is output. A fixed specular table is output.</p>
135<center><img src="./images/material_setting.gif" /></center>
136
137<h3><a name="material_name">Material Names</a></h3>
138<p>
139Although you can assign the same name to multiple materials with 3ds Max, you should assign a unique name to each material because there is no overlap of material names in the intermediate file.
140</p>
141<p>
142If multiple materials with the same name exist, the Export plug-in will operate internally to output the first material that it fetches with the existing name and then to alter the name of each subsequent material by adding the underscore symbol and a number (for example, name<STRONG>_1</STRONG>, name<STRONG>_2</STRONG>, and so on).<br />
143</p>
144<p>
145
146
147<h3><a name="diff_amb_spec">Diffuse Reflected Light and Specular Reflected Light</a></h3>
148<p>Diffuse reflected light is reflected in the diffuse color.</p>
149<p>Ambient light is not output. White (255, 255, 255) is always output for the ambient color.</p>
150<p>Specular reflected light is reflected in the specular color.<br /> If the specular reflected light level is 0, that material will be output without the specular element.</p>
151<center><img src="./images/specular_level.gif" /></center>
152
153<h3><a name="lock_diff_spec">Locking Diffuse Reflected Light and Specular Reflected Light</a></h3>
154<p>
155If diffuse reflected light and specular reflected light are locked, they will be output with the same color. If they are not locked, they will be output with the colors as set separately for each on 3ds Max.
156</p>
157<h3><a name="transparency">Opacity</a></h3>
158<p>
159Opacity is reflected in the alpha.
160</p>
161<h3><a name="emission">Self-illumination</a></h3>
162<p>
163Self-illumination is reflected in the Emission.<br /> When the <B>Color </B>check box is selected, the color is exported as-is. When the check box is cleared, it is converted to grayscale color.
164</p>
165
166
167
168
169
170<h3><a name="multi_sub">Multi/Sub-Objects</a></h3>
171<p>
172Multi/sub-object materials are also supported.<br /> When multi- or sub-object materials are used, the vertex data stored in cmdl files is divided by each sub-material for output.
173</p>
174
175<h3><a name="material_cmdl">State Output to CMDL File</a></h3>
176<p>
177When material-related animation has been configured, the state of that material will be judged as transparent, translucent or opaque at export, depending on the state of the Start Frame specified in the options.
178</p>
179<br />
180
181<h2><a name="texture">Textures</a></h2>
182
183<h3><a name="texture_name">Number of Textures</a></h3>
184<p>Up to three texture can be used per material.</p>
185<br />
186
187<h3><a name="texture_name">Texture Names</a></h3>
188<p>The texture's filename minus the extension is exported as the texture name. Do not use full-width characters or half-width kana in a texture filename.</p>
189<br />
190
191<h3><a name="texture_ref">Referencing Textures</a></h3>
192<p>
193When referencing textures under 3dsmax, textures are specified by absolute path, relative path, file name, etc.
194</p>
195<p>
196When an Export plug-in references a texture, texture information is obtained according to the following priority order.<br /> Note: If textures having the same name exist in folders that might be referenced, sometimes the texture displayed in the 3dsmax view will not match the texture to be exported.
197</p>
198<p>Priority order of folders containing textures to be referenced by an export plug-in</p>
199<ol>
200<li>Reference absolute paths.</li>
201<li>Reference using a relative path directly under the project folder or based on the project folder.</li>
202<li>Reference using a relative path either inside the same folder as the <CODE>max</CODE> file or based on that folder.</li>
203</ol>
204<br />
205<p>
206The following is a specific example where the texture name to be referenced is <STRONG>test.tga</STRONG>.
207</p>
208<p>
209<u>If the texture is specified with an absolute path (Ex.:  <CODE>&quot;c:\data\texture\test.tga&quot;</CODE>)</u>
210</p>
211<ol>
212<li>Reference test.tga specified using an absolute path.</li>
213<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, reference <STRONG>test.tga</STRONG> directly under the project folder.<br />
214</li>
215<li>If <STRONG>test.tga</STRONG> does not exist in the above folder, reference <STRONG>test.tga</STRONG> in the same folder as the max files.</li>
216<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li>
217</ol>
218<p>
219<u>If the texture is specified with a relative path (Ex.:  <CODE>&quot;.\sceneassets\images\rgb.tga&quot;</CODE>)</u>
220</p>
221<ol>
222<li>Reference <STRONG>test.tga</STRONG> inside the folder specified using a relative path based on the project folder.<br />
223</li>
224<li>If <STRONG>test.tga</STRONG> does not exist in the above folder, reference <STRONG>test.tga</STRONG> inside the folder specified using a relative path based on the same folder as the max files.</li>
225<li>If <STRONG>test.tga</STRONG> does not exist in the above folder, reference <STRONG>test.tga</STRONG> in the same folder as the max files.</li>
226<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li>
227</ol>
228<p>
229<u>If the texture is specified with a file name and the texture path is omitted (Ex.:  <CODE>&quot;test.tga&quot;</CODE>)</u>
230</p>
231<ol>
232<li>Reference test.tga directly under the project folder.</li>
233<li>If <STRONG>test.tga</STRONG> does not exist in the above folder, reference <STRONG>test.tga</STRONG> in the same folder as the max files.</li>
234<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li>
235</ol>
236<br />
237
238<h3><a name="texture_map">Supported Maps</a></h3>
239<p>
240Maps assigned to all map slots of a material are targets of output. The &quot;bump&quot; map slot corresponds to &quot;normal bump.&quot; Map slots other than &quot;bump&quot; support bitmaps or combinations. Other maps (such as tile, check and noise) are not supported.
241</p>
242<br />
243
244<h3><a name="texture_name">Overlapping Textures</a></h3>
245<p>If the same texture is used multiple times inside a material, each is output. However, if the same texture as one used for opacity is used, it is not output if it is used by another map slot.</p>
246<br />
247
248<h3><a name="multi_texture">Multi-textures</a></h3>
249<p>
250If you are using a &quot;blend&quot; map, a multi-texture of up to three textures can be set.
251
252</p>
253<br />
254
255
256<h3><a name="texture_file">Texture Files and Formats</a></h3>
257
258<p>
259If you use TGA files that have additional information for NintendoWare, the texture formats, palette names, texel data, palette data, mipmap data, cube map data and other data recorded in that additional information are applied to intermediate files.<br /> Currently, TGA files that have additional information can be created using the NintendoWare for CTR Photoshop plug-in. For instructions on using the NintendoWare for CTR Photoshop plug-in, see NintendoWare for CTR Photoshop Plug-in Manual.
260</p>
261<p>
262Both the height and width of the texture image must be set to a power of two equal to or greater than 8 and equal to or less than 1024.
263</p>
264<p>
265All formats supported by 3ds Max are supported as texture file formats.<BR> However, image files are not supported.<BR>
266</p>
267<p>
268Texture pattern animations that use the IFL format are supported.
269</p>
270<p>
271The alpha channel of Photoshop format (.psd) is ignored.
272</p>
273<p>
274When using a TGA file with additional information, the texture format becomes the format specified in the additional information.
275</p>
276<p>
277When using a TGA file without additional information, the format is automatically determined according to the rules described below.  The same procedure is used to determine the texture format for bmp, jpg, gif, png, tiff, and psd files. If the texture file has an 8-bit alpha value of 255, the texels are treated as opaque.
278</p>
279<ul>
280<li>If all texels are opaque:
281	<ul>
282	<li>If R = G = B  in all texels → LA8</li>
283	<li>If there are texels in which it is not the case that R = G = B     → RGB565</li>
284	</ul>
285</li>
286<li>If there are transparent or translucent texels:
287	<ul>
288	<li>If R = G = B  in all texels → LA8</li>
289	<li>If there are texels for which R = G = B is not true → RGBA4</li>
290	</ul>
291</li>
292</ul>
293<p>
294HILO8 is used for the format for normal map textures without additional information.
295</p>
296
297<br />
298
299
300<h3><a name="texture_attr">Valid Attributes</a></h3>
301
302<p>
303Among the &quot;Coordinate&quot; settings, the following parameters are reflected in the intermediate file when exporting:
304</p>
305
306<center><img src="./images/tex_srt.gif" /></center>
307<br />
308
309
310
311<p>
312You can reflect the settings for <B>Offset U,V</B>, <B>Tiling U,V</B>, and <B>Angle W</B> in the texture matrix inside the intermediate file.<br /> Specify <B>UV</B> for UV, VW, and WU. There is no support for VW and WU. There is no support for Angle U or Angle V. Be sure to set 0.0.<br /> If <B>Tile</B> is ON, an error results at time of intermediate file output if the width of the texture image (or height) is other than a power of 2.
313</p>
314
315<p>
316The <B>Tile</B> settings are reflected in the intermediate file.<br /> There is no support for <B>Mirror</B>. If you want mirrored display of textures, configure the settings using CreativeStudio.
317</p>
318
319<p>
320There is no support for Blur or Blur offset.
321</p>
322<br />
323
324
325
326<h3><a name="multi_uv">Multi-UV</a></h3>
327<p>When there are multiple UV sets, only the UV sets used by the texture are output as the intermediate file's texture coordinates. Because there can be as many as three textures per material, there can also be as many as three texture coordinates.<BR> Using a composite map for the diffuse map, split the map channel up for each texture, and apply the UVW map for each map channel.<br /> Forcibly reference map channel 1 when the model UV map modifier map channel and the material map channel do not match.</p>
328
329<h3><a name="nrm_map">Normal mapping</a></h3>
330<p>Normal mapping representation is supported by the NintendoWare for CTR 3ds Max plug-in.</p>
331<p>The procedure for setting normal mapping for NintendoWare with 3ds Max is the same as the method used to set standard normal mapping.</p>
332<table border="1" class="arguments"><tbody><tr><td>
333NintendoWare uses tangent space normal textures.
334</td></tr></tbody></table>
335<p><br /> To set normal mapping, apply normal bump to the bump map slot of the material, and specify the texture for the normal map.<br /> <br />
336<center><img src="./images/tex_normalbump.gif"> <br />
337</center>
338</p><br />
339
340
341
342
343
344
345
346
347<h2><a name="skinning">Skinning</a></h2>
348<p>Output of skinning is supported.</p>
349<p>The supported objects are Bone, Biped, dummy, and point helper.</p>
350<table border="0" class="arguments"><tbody><tr><td>Also be sure not to perform the following operations after applying the skin modifier:<br />
351<ul>
352<li>Operations that change the number of vertices.
353<li>Delete nodes that are affected by skinning.
354</ul>
355</td></tr></tbody></table>
356<br />
357
358
359
360
361
362
363
364
365<h2><a name="biped">Biped</a></h2>
366<p>Output of characters that use Bipeds is supported.</p>
367<p>However, since special processing is performed internally for Biped, normal display is not possible in the following cases.</p>
368<ul>
369<li><strong>Not supported when the scale is other than 1.0.</strong>
370<p>
371Normal display is not possible if a scale value other than 1.0 is applied to a Biped's Bone, because the exact matrix information, in which the scale was taken into account, cannot be obtained.
372</p>
373</li>
374
375
376</ul><br />
377
378<p>
379Consider the following points when making character settings.
380</p>
381
382<ul>
383
384<li><strong>Figure Mode and Skin Mode Settings</strong>
385<p>
386Make skin pose settings at the origin using a Dummy object or PointHelper object as the Biped parent.
387</p>
388</li>
389
390</ul><br />
391
392
393
394
395
396<h2><a name="physique">Physique</a></h2>
397<p>Output of Physique is supported.</p>
398<p>The supported objects are Bone, Biped, dummy, and point helper.</p>
399
400<table border="0" class="arguments"><tbody><tr><td>
401Also be sure not to perform the following operations after applying the skin modifier:<br />
402<ul>
403<li>Operations that change the number of vertices.</li>
404<li>Delete nodes that are affected by skinning.</li>
405</ul>
406</td></tr></tbody></table>
407<br />
408
409
410
411
412<h3><a name="physique_cmdl">Shapes Output to CMDL Files</a></h3>
413<p>
414Physique is output in the Figure mode, but the Biped pose is changed after it is output.<br /> Before running the Export plug-in be sure to save the pose by creating a key in Biped.
415</p>
416<p>
417If the sum total weight value of all the vertices does not equal 1.0, the weight ratios are retained but the value is adjusted to 1.0 for output.
418</p>
419<br />
420
421
422
423
424
425
426
427
428<br /><br />
429<hr><p>CONFIDENTIAL</p></body>
430</html>