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<h1>Modeling</h1> 11<p>This chapter describes procedures and precautions regarding the use of 3ds Max to create models for NintendoWare.</p> 12<p> 13<a href="#node">Nodes</a><br /> <a href="#polygon">Polygons</a><br /> 14<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 /> 15</p> 16<h2><a name="node">Nodes</a></h2> 17<p>In this manual, the term "node" refers to the basic unit for the hierarchical structure of a 3D model.</p> 18<p>In 3ds Max, nodes correspond to standard primitives, dummies, and bones.</p> 19<h3><a name="node_name">Node Names</a></h3> 20<p> 21Although 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. 22</p> 23<p> 24If 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 /> 25</p> 26<h3><a name="root_node">Root Nodes</a></h3> 27<p> 28In the intermediate file, each model has only one root node. 29</p> 30<p> 31If 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. 32</p> 33 34<h3><a name="pivot">Base Point</a></h3> 35<p>When exporting, the base point is recognized as the local-coordinates origin.</p> 36<p>If the base point is not constant for all frames the data cannot be output correctly.</p> 37<p> 38Note 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> > <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. 39</p> 40<h3><a name="visibility">Visibility</a></h3> 41<p> 42The 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. 43</p> 44<center><img src="./images/visibility.gif" /></center> 45<br /> 46<h3><a name="billboard">Billboard</a></h3> 47<p> 48Billboard 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. 49</p> 50<h2><a name="polygon">Polygons</a></h2> 51<h3><a name="polygon_type">Polygon Shapes</a></h3> 52<p> 53When polygons are output to the intermediate file, the Export plug-in operates internally to divide the polygons into triangles for output. 54</p> 55<h3><a name="normal_vector">Normals</a></h3> 56<p> 57Output of normal vectors is supported. 58</p> 59<p> 60If 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. 61</p> 62<ul> 63<li>Execute the <B>Reset XForm</B> utility.</li> 64<li>Use the [STL-Check] Modifier to check whether geometry conditions are normal.</li> 65<li>Use the [Vertex Weld] Modifier to clean up from mesh if there are inappropriate vertices that cannot be linked.</li> 66<li>Use the polygon edit function <B>Remove Isolated Vertices</B> to remove isolated vertices.</li> 67</ul> 68<h3><a name="vertex_color">Vertex color</a></h3> 69<p> 70Only one vertex color per vertex is supported by the Export plug-in.<br /> The plug-in also supports vertex shades and vertex alphas.<BR> 71</p> 72<p> 73Conversion 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> 74</p> 75<p> 76The 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 "nw4cUser0_s" if you want to output the 0th user vertex attribute as a 16-bit integer. 77</p> 78<p> 79The channel name can be set on the dialog opened by selecting <B>Tools > Channel information</B> on the main menu. 80</p> 81<h3 id="user_attr">User Vertex Attributes</h3> 82<p> 83The 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> 84<p> 85The channel name can be set on the dialog opened by selecting <B>Tools > Channel information</B> on the main menu. 86</p> 87<p> 88The 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 "nw4cUser0_s" if you want to output the 0th user vertex attribute as a 16-bit integer. 89</p> 90<p> 91In 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 "nw4cUser1_2f" 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 "_2s" for 16-bit integers and "_2b" for 8-bit integers. 92</p> 93<h3><a name="instance">Instances</a></h3> 94<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. 95</p> 96<br /> 97<h2><a name="material">Materials</a></h2> 98<p>For standard materials use Blinn, Phong, and Anisotropic.</p> 99<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> 100<p> 101 The level and shininess of reflected specular light is reflected in the specular table output.</p> 102<p> 103 No anisotropic reflection setting is output. A fixed specular table is output. Tangent information is also output (as calculated from Map Channel 1).</p> 104 <p> 105 </p> 106<center><img src="./images/material_setting.gif" /></center> 107<h3><a name="material_name">Material Names</a></h3> 108<p> 109Although 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. 110</p> 111<p> 112If 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 /> 113</p> 114<p> 115<h3><a name="diff_amb_spec">Diffuse Reflected Light and Specular Reflected Light</a></h3> 116<p>Diffuse reflected light is reflected in the diffuse color.</p> 117<p>Ambient light is not output. White (255, 255, 255) is always output for the ambient color.</p> 118<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> 119<center><img src="./images/specular_level.gif" /></center> 120<h3><a name="lock_diff_spec">Locking Diffuse Reflected Light and Specular Reflected Light</a></h3> 121<p> 122If 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. 123</p> 124<h3><a name="transparency">Opacity</a></h3> 125<p> 126Opacity is reflected in the alpha. 127</p> 128<h3><a name="emission">Self-illumination</a></h3> 129<p> 130Self-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. 131</p> 132<h3><a name="multi_sub">Multi/Sub-Objects</a></h3> 133<p> 134Multi/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. 135</p> 136<h3><a name="material_cmdl">State Output to CMDL File</a></h3> 137<p> 138When 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. 139</p> 140<br /> 141<h2><a name="texture">Textures</a></h2> 142<h3><a name="texture_name">Number of Textures</a></h3> 143<p>Up to three texture can be used per material.</p> 144<br /> 145<h3><a name="texture_name">Texture Names</a></h3> 146<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> 147<br /> 148<h3><a name="texture_ref">Referencing Textures</a></h3> 149<p> 150When referencing textures under 3dsmax, textures are specified by absolute path, relative path, file name, etc. 151</p> 152<p> 153When 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. 154</p> 155<p>Priority order of folders containing textures to be referenced by an export plug-in</p> 156<ol> 157<li>Reference absolute paths.</li> 158<li>Reference using a relative path directly under the project folder or based on the project folder.</li> 159<li>Reference using a relative path either inside the same folder as the <CODE>max</CODE> file or based on that folder.</li> 160</ol> 161<br /> 162<p> 163The following is a specific example where the texture name to be referenced is <STRONG>test.tga</STRONG>. 164</p> 165<p> 166<u>If the texture is specified with an absolute path (Ex.: <CODE>"c:\data\texture\test.tga"</CODE>)</u> 167</p> 168<ol> 169<li>Reference test.tga specified using an absolute path.</li> 170<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 /> 171</li> 172<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> 173<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li> 174</ol> 175<p> 176<u>If the texture is specified with a relative path (Ex.: <CODE>".\sceneassets\images\rgb.tga"</CODE>)</u> 177</p> 178<ol> 179<li>Reference <STRONG>test.tga</STRONG> inside the folder specified using a relative path based on the project folder.<br /> 180</li> 181<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> 182<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> 183<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li> 184</ol> 185<p> 186<u>If the texture is specified with a file name and the texture path is omitted (Ex.: <CODE>"test.tga"</CODE>)</u> 187</p> 188<ol> 189<li>Reference test.tga directly under the project folder.</li> 190<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> 191<li>If <STRONG>test.tga</STRONG> does not exist in the above folder either, it is handled as an error.</li> 192</ol> 193<br /> 194<h3><a name="texture_map">Supported Maps</a></h3> 195<p> 196Maps assigned to all map slots of a material are targets of output. The "bump" map slot corresponds to "normal bump." Map slots other than "bump" support bitmaps or combinations. Other maps (such as tile, check and noise) are not supported. 197</p> 198<br /> 199<h3><a name="texture_name">Overlapping Textures</a></h3> 200<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> 201<br /> 202<h3><a name="multi_texture">Multi-textures</a></h3> 203<p> 204If you are using a "blend" map, a multi-texture of up to three textures can be set. 205</p> 206<br /> 207<h3><a name="texture_file">Texture Files and Formats</a></h3> 208<p> 209If 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. 210</p> 211<p> 212Both 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. 213</p> 214<p> 215All formats supported by 3ds Max are supported as texture file formats.<BR> However, image files are not supported.<BR> 216</p> 217<p> 218Texture pattern animations that use the IFL format are supported. 219</p> 220<p> 221The alpha channel of Photoshop format (.psd) is ignored. 222</p> 223<p> 224When using a TGA file with additional information, the texture format becomes the format specified in the additional information. 225</p> 226<p> 227When 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. 228</p> 229<ul> 230<li>If all texels are opaque: 231 <ul> 232 <li>If R = G = B in all texels → LA8</li> 233 <li>If there are texels in which it is not the case that R = G = B → RGB565</li> 234 </ul> 235</li> 236<li>If there are transparent or translucent texels: 237 <ul> 238 <li>If R = G = B in all texels → LA8</li> 239 <li>If there are texels for which R = G = B is not true → RGBA4</li> 240 </ul> 241</li> 242</ul> 243<p> 244HILO8 is used for the format for normal map textures without additional information. 245</p> 246<br /> 247<h3><a name="texture_attr">Valid Attributes</a></h3> 248<p> 249Among the "Coordinate" settings, the following parameters are reflected in the intermediate file when exporting: 250</p> 251<center><img src="./images/tex_srt.gif" /></center> 252<br /> 253<p> 254You 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. 255</p> 256<p> 257The <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. 258</p> 259<p> 260There is no support for Blur or Blur offset. 261</p> 262<br /> 263<h3><a name="multi_uv">Multi-UV</a></h3> 264<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> 265<h3><a name="nrm_map">Normal mapping</a></h3> 266<p>Normal mapping representation is supported by the NintendoWare for CTR 3ds Max plug-in.</p> 267<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> 268<table border="1" class="arguments"><tbody><tr><td> 269NintendoWare uses tangent space normal textures. 270</td></tr></tbody></table> 271<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 /> 272</p> 273<center><img src="./images/tex_normalbump.gif"> <br /> 274</center> 275<br /> 276<h2><a name="skinning">Skinning</a></h2> 277<p>Output of skinning is supported.</p> 278<p>The supported objects are Bone, Biped, dummy, and point helper.</p> 279<table border="0" class="arguments"><tbody><tr><td>Also be sure not to perform the following operations after applying the skin modifier:<br /> 280<ul> 281<li>Operations that change the number of vertices. 282<li>Delete nodes that are affected by skinning. 283</ul> 284</td></tr></tbody></table> 285<br /> 286<h2><a name="biped">Biped</a></h2> 287<p>Output of characters that use Bipeds is supported.</p> 288<p>However, since special processing is performed internally for Biped, normal display is not possible in the following cases.</p> 289<ul> 290<li><strong>Not supported when the scale is other than 1.0.</strong> 291<p> 292Normal 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. 293</p> 294</li> 295</ul><br /> 296<p> 297Consider the following points when making character settings. 298</p> 299<ul> 300<li><strong>Figure Mode and Skin Mode Settings</strong> 301<p> 302Make skin pose settings at the origin using a Dummy object or PointHelper object as the Biped parent. 303</p> 304</li> 305</ul><br /> 306<h2><a name="physique">Physique</a></h2> 307<p>Output of Physique is supported.</p> 308<p>The supported objects are Bone, Biped, dummy, and point helper.</p> 309<table border="0" class="arguments"><tbody><tr><td> 310Also be sure not to perform the following operations after applying the skin modifier:<br /> 311<ul> 312<li>Operations that change the number of vertices.</li> 313<li>Delete nodes that are affected by skinning.</li> 314</ul> 315</td></tr></tbody></table> 316<br /> 317<h3><a name="physique_cmdl">Shapes Output to CMDL Files</a></h3> 318<p> 319Physique 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. 320</p> 321<p> 322If 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. 323</p> 324<br /> 325<br /><br /> 326<hr><p>CONFIDENTIAL</p></body> 327</html> 328