This chapter describes the use and features of the Export plug-in.
Export Plug-in Features
Usage
Setting the Automatic Save Destination of the Dialog Box
Script Command Output
Batch Export
Errors and Warnings
The Export plug-in includes a feature for outputting intermediate files to a specified folder.
To output data for particular nodes only (including lower nodes in the hierarchy), select the nodes you want to output. Node selection is not required to output the entire scene.
To display the NW4C Export option window, click NW4C > NW4C Export with Setting....
Setting the appropriate options and clicking OK outputs an intermediate file.
To output the file using the current options without opening the Options window, click NW4C > NW4C Export.
This option specifies the output method for the intermediate file.

Selects the target to be output to the intermediate file.
Specifying All outputs all nodes in the Softimage scene.
Specifying Selection outputs nodes located in the hierarchy below the currently selected node.
If an envelope model is output with Selection specified, weighted nodes must be output to the intermediate file.
Specifies the name of the intermediate file to be output (excluding the extension).
Clicking the Scene button sets the current scene name. Clicking the Node button sets the name of the selected node (node at the top of the hierarchy). If there are more than one node in the same hierarchical level, the name of the node that is first alphabetically is set. If a node has not been selected, the name of the node that is first alphabetically in the scene is set.
Select this option when outputting an intermediate file to a particular folder.
Output Folder specifies the folder used to output the intermediate file.
Texture files are output to the Textures folder located inside the folder specified under Output Folder.
Double-byte characters, half-width katakana, equal signs (=), and semicolons (;) cannot be used when specifying the Output Folder.
If Output Folder is not specified as a full path, a folder is created in the current project folder.
Select this option when transferring intermediate file data to CreativeStudio. You cannot select both File path and Use Creative Studio at the same time.
For details on using Creative Studio, see the NintendoWare for CTR CreativeStudio manual.
Enable this option and specify the path of a CMDL file to merge that file.
You cannot use double-byte characters, half-space kana characters, equal signs (=), and semicolons (;) when specifying the CMDL file path.
The following information gets merged:
These are general options available for intermediate files.

Specifies the magnification ratio by which the model's vertex coordinates and Translate value should be multiplied.
Selecting All outputs the full range of animation on Softimage (PlayControl.GlobalIn/Out).
Selecting Playback outputs the playback range of animation on Softimage (PlayControl.In/Out).
Selecting Range allows the start frame and end frame to be entered as numeric values. Note, however, that if the entered start frame is lower than Global.In used on Softimage, the GlobalIn value is used for the start frame. If the end frame entered is greater than GlobalOut used on Softimage, the GlobalOut value is used for the end frame.
If attributes are being animated, the start frame value will be output to the CMDL file.
Specifies the range of animation to output (that is, the start frame and end frame).
Specifies whether the vertex color alpha is to be inverted before output.
This option specifies the type of intermediate file to be output.
Set output on/off for the following files.

The value of HasSkinningMatrix in the intermediate file will differ depending on whether the CMDL file and the CSKLA file are output at the same time, or only the CSKLA file is output. This is because vertex processing is omitted when the CMDL file is not output in order to shorten the processing time. Nothing is affected by the differing values for HasSkinningMatrix.
This option is for setting the degree of precision to use for vertex data when converting to binary data.
If a fixed-point number is used, the amount of data is less than when a floating-point number is used, but precision is lowered.

Specifies the precision to use for vertex coordinates.
Setting Float stores the position as a 32-bit floating-point number.
Setting Short stores the position as a 16-bit fixed point number.
Setting Short stores the position as a 8-bit fixed point number.
Specifies the precision to use for normal vector.
Setting Float stores the position as a 32-bit floating-point number.
Setting Short stores the position as a 16-bit integer number.
Setting Byte stores the position as an 8-bit integer number.
Specifies the precision to use for texture coordinates.
Setting Float stores the position as a 32-bit floating-point number.
Setting Short stores the position as a 16-bit integer number.
Setting Byte stores the position as an 8-bit integer number.
These are model-related options.

| Mode | Description |
| Bind By Index | Applies visibility animations based on numbers. The visibility animations may not be applied correctly if node compression has been conducted. |
| Bind By Name | Applies visibility animations based on names. |
| If you need to maintain compatibility with older intermediate files, specify Bind By Index. If compatibility is not required, specify Bind By Name. |
Enabling this option allows correct lighting of models whose XYZ scaling is non-uniform, but increases the drawing process load. Because the maximum number of matrix palettes goes down, the drawing process load ultimately increases when using skin models with many nodes that are being influenced.
If disabled, the rendering process load goes down, but models whose XYZ scaling is non-uniform cannot be lighted correctly.
This setting specifies the number of uniform registers used for vertex lighting and user uniform. The setting value ranges from 0 to 57 (0 to 54 if Non-Uniform Scale is ON).
| Because the number of uniform registers is limited, they are shared by skinning, vertex lighting and user uniforms. The number of uniform registers that can be used for skinning is therefore determined based on the number of lights used for vertex lighting and the number of user uniforms. The larger the value specified, the lower the number of uniform registers available for skinning and the higher the load associated with drawing skin models. The specific value to set is given by Number of vertex lights × 6 + Number of user uniforms. Vertex lights are not included in the case of hemispherical lighting. Check with the lead project programmer for the number of vertex lights and user uniforms. Set to 0 when not using vertex lighting and user uniforms. |
These are animation-related options.

Setting this option to ON, bakes the animation before output.
Currently, this option cannot be set.
Specifies frame precision when animation curve data is automatically created from baked data.
If 1.0 is set, data is baked at the integer frame level.
If 0.5 is set, data is baked at the 0.5 fractional frame level.
If 0.2 is set, data is baked at the 0.2 fractional frame level.
If 0.1 is set, data is baked at the 0.1 fractional frame level.
Increasing precision can more accurately reproduce animations that vary discontinuously at a fractional frame timing, but the amount of time required for output increases.
If this option is selected, data for loop playback is output.
If this option is cleared, data for one-time playback is output.
Animation curve data created using this option varies when animation curve data is created automatically from baked data.
If enabled, skeletal animations are stored in frame format.
If disabled, skeletal animations are stored in key format.
The playback process load is lower with frame format than key format, but the amount of data is greater than usual.
For skeletal animation, the quantization precision can be set to one of 10 levels, ranging from 0 to 9.
The quantization setting only influences the content of the binary file.
The animation curve data output to the intermediate file is not affected.
You thus need to be remember that the result cannot be evaluated until it is checked on the actual hardware viewer.
Acceptable Tolerance Values for Scale / Translate
| Compression Quality | Acceptable Tolerance Values | Comments |
|---|---|---|
| 0 | ∞ | Always quantize to minimum volume format. |
| 1 | 0.40 | -- |
| 2 | 0.30 | -- |
| 3 | 0.20 | -- |
| 4 | 0.10 | Recommended value for start of adjustment |
| 5 | 0.06 | -- |
| 6 | 0.03 | -- |
| 7 | 0.01 | -- |
| 8 | 0.005 | -- |
| 9 | 0 | Never quantize. |
The acceptable tolerance value is set the same for the NW4R exporter.
Acceptable tolerance for Scale/Translate is determined in proportion to the maximum amplitude of the curve (the difference between the maximum and minimum values). In other words, the greater the variation in values for an animation, the easier it is to tolerate large errors in actual values.
Acceptable Tolerance Values for Rotate
| Compression Quality | Acceptable Tolerance Values | NW4R conversion | Comments |
|---|---|---|---|
| 0 | ∞ | ∞ | Always quantize to minimum volume format. |
| 1 | 0.50 | 0.025 | -- |
| 2 | 0.40 | 0.020 | -- |
| 3 | 0.30 | 0.015 | -- |
| 4 | 0.20 | 0.010 | Recommended value for start of adjustment |
| 5 | 0.10 | 0.005 | -- |
| 6 | 0.05 | 0.0025 | -- |
| 7 | 0.01 | 0.0005 | -- |
| 8 | 0.005 | 0.00025 | -- |
| 9 | 0 | 0 | Never quantize. |
For Rotate, the acceptable tolerance is determined not in terms of proportion, but by actual values. It takes the value specified by the NW4R exporter. This is done so the setting is the same as for NW4R conversion,
Note: The settings values shown in the table may change in the future.
This option specifies the allowable range of errors when animation curve data is optimized.
If the maximum difference between the start frame value and the value used for every other frame remains below the allowable value specified here, the animation is assumed to be fixed and output is made using only the value for the start frame.
When animation curve data is created automatically from baked data, a key for each frame (in the units specified by Frame Precision) is created and the key for the below tolerance value specified here is deleted by the maximum differential value when performing Hermite interpolation. The smaller the allowable value for differentials, the greater the animation precision; however, as the number of keys grows larger, the amount of animation curve data also increases.
This is the allowable value for errors related to the Translate, Rotate, and Scale values used for character animation.
Node Rotate is specified in units of degree.
Node Translate is the allowable value for errors related to the value prior to multiplying by Magnify.
This is the allowable value for errors related to the Translate, Rotate, and Scale values used for texture and SRT animation.
Texture Rotate is specified in degrees.
This is the allowable value for errors in each color value and alpha value of a color or scene animation.
This is the allowable error that applies to a color value (on Softimage color values are between 0 and 1) after it is multiplied by 255.
You can optimize data using CreativeStudio when outputting intermediate files from Softimage. Optimization-related options are specified here.
For detailed information, see the EffectMaker manual.

Specifies the node compression mode to use for the entire model. The load due to both the matrix computations and the amount of memory used can be reduced by lowering the number of nodes.
The nodes that are compressed are the nodes that are output to the intermediate file; Softimage data is not changed.
| Mode | Description |
| None | Do not compress nodes. Outputs the hierarchical structure used in Softimage as-is. |
| Cull Useless Node | Deletes the nodes that are not required to display the model located at the end of the hierarchical structure and then exports. This is useful for models that use skinning. |
| Cull Uninfluential Node | In addition to the processing performed when Cull Useless Node is specified, nodes whose matrices can be merged are merged and output. Generally, the number of nodes are reduced even more than with Cull Useless Node, but the following limit is placed on the Scale value. An uneven Scale value (a scale value where X, Y, and Z are not the same) must not be set for nodes that have children. A model may not be displayed correctly if compression is performed on a node that does not observe this limitation or on any children of such a node. All frames must respect the limitation described above when a scale value is being animated. |
| Unite Compressible Node |
Nodes for which the uncompressible flag has been set are gathered. Do not select this mode when using skinning. |
| Unite All Node | Gathers nodes and outputs all polygons using global coordinates. (Name of the root node is used for node name.) Do not select this mode when using skinning. |
Nodes for which the compression disable flag has been set using the NW4C_SetNoCompressNode plug-in are not compressed even if Cull Useless Node or Cull Uninfluential Node has been selected. |
Specifies that the material be compressed.
No compression is performed if None is specified. If Compress Same Material is specified, materials that have the same attribute are compressed and gathered for output.
| Even if Compress Same Material has been specified, materials will not be compressed if Compress has been set to Don’t compress by the NW4C Set Material Attribute plug-in (NW4C Set Material Attribute). |
When turned ON, Optimize Primitive optimizes polygon primitives and then outputs. This reduces the drawing process load compared to when set to OFF.
Automatic conversion from a skeletal model (skin model) to a model is not performed if set to ON.
Use this option when you do not want to change to model format such as when using a skeletal animation.
Automatic conversion from a skeletal model (or skin model) to a model
The exporter converts skeletal models into models when the conditions are met.
Models have a simpler structure than skeletal models and can be handled more efficiently by the actual hardware.
The transform information for all bones is an identity transform (Rotate and Translate are 0, Scale is 1).
It is applied to simple single bone items located at the origin or terrain models for which Unite All Node has been selected.
Skeleton information is destroyed, making it impossible to use skeletal animation and billboarding.
An output option specific to Softimage.

Specifies whether the vertex color alpha is to be inverted before output.
Sets whether to ignore textures connected to ambient.
If enabled, textures connected to an ambient are not output.
Options set in the Export plug-in are automatically saved to a file during intermediate file output. The next time the dialog box is opened, the options are automatically reloaded as initial values.
Option settings are saved in $(NW4C_ROOT)/tools/DccPlugin/softimage/ini. Although intermediate file output settings are saved in last_export_options.c3es, plug-in settings are saved in plugin_preference.txt.
If these files are deleted and the Export Plug-in is run, the options are set to their default values.
Items that have been set can also be input or output as a C3ES (CTR 3D Export Settings) file.
For details on the format of the C3ES file, see c3esFileFormat.pdf.
Select NW4C Auto Save Export Setting from the NW4C menu to open the dialog box and turn on/off the Auto_SaveLoad_Setting checkbox.
If the checkbox is selected:
If the checkbox is left unselected:
The default is On.
c3es File I/O
To control the input/output of the c3ES files, click Save or Load, located in the lower left of the intermediate file output dialog box.
Clicking Save displays a dialog box, and the following items can be set. (The same applies for the Load dialog box.)
The Export plug-in can be executed from the script editor in the following command format.
This process is called Script Command Output.
The format of the script command NW4CExportSettingFile is as follows.
NW4CExportSettingFile c3esFileName, [sceneName], [outputFolder]
c3esFileName:
Specifies the C3ES file to be used for option settings as a full path.
sceneName:
Specifies the name of the intermediate file to output.
If not specified, then OutputFileName of the C3ES file is applied.
outputFolder:
Specifies the folder to output intermediate files to.
If not specified, then OutputFolder of the C3ES file is applied.
Below are some execution examples:
Intermediate files can be output in Softimage by specifying a folder and batch exporting one or more scenes all at once, as well as one at a time.
This process is called batch export.
Click NW4C > Batch Export to display the Batch Export option window.
Specify an Input Folder and Output Folder and click OK to automatically load scn files in the specified Input Folder and output intermediate files to the specified Output Folder.

Specifies the folder storing scn files to be converted to intermediate files.
Specifies the folder to output intermediate files to.
If an error occurs during output, it is displayed by Script Editor and in the status line (at the bottom of the Softimage screen).
Errors that deserve particular attention are described in alphabetical order.
CreativeStudio has not been correctly installed.
CreativeStudio must be installed in the folder tools\CreativeStudio, located beneath the folder defined by the environment variable NW4C_ROOT. If the environment variable NW4C_ROOT is not defined correctly, correct it and restart Softimage.
Cannot get the size of image due to invalid data in the texture file.
This error occurs when the file does not exist, cannot be opened, or cannot be overwritten.
This error occurs when the UV coordinates have not been set for the surface to which the texture has been applied.
CreativeStudio has failed to start. Be sure to check CreativeStudio error output.
The hierarchical scaling method is not standardized.
Nodes that affect envelope are not output. This is issued when the output option Export Target is set to Selection, and a node affected by the envelope is not selected
An out-of-bounds value has been specified for the Max Reserved Uniform Registers option.
The setting value must range from 0 to 57 (from 0 to 54 when the Non-Uniform Scale option is ON.
There is no active node to be output. Be sure to set the node compression disable flag using the NW4C Set No Compress Node plug-in when you want to output only NULL.
This error occurs when the output specifications for the intermediate file are all cleared, or when only the output specifications for texture data are selected but there is no texture to output.
This error occurs if the Export option Output File Name is left blank or contains illegal characters.
This error occurs if the Export option Output Folder is left blank or contains illegal characters.
The number of bones used by a polygon exceeds the maximum number of bones that can be referenced by a primitive.
If an error occurs, adjust the Max Reserved Uniform Registers option to decrease the number of uniform registers being reserved.
This error occurs if the path for the CMDL file to be merged is left blank or if the path name contains illegal characters.
More than one vertex color exists for the user vertex attribute of the given number. For example, this error would occur if there were vertex colors with the names nw4cUser0 and nw4cUser0_b for the same single object. Either delete the unnecessary vertex colors or change their names.
A texture has a size whose height and width cannot be handled by CTR. Height and width must both be set to a power of two equal to or greater than 8 and equal to or less than 1024.
TGA file contents are invalid.
The width or height of the texture image exceeds 1024.
This is issued when four or more textures are being used by the material.
Make sure the number of textures used by a material is three or less.
This error occurs when there are vertices whose total envelope weight is a value other than 1.0. Be sure to correct the weight value.
Note that the total is automatically adjusted to 1.0 when the weight value is changed, as long as the Normalize button of Weight Editor is on.
If a warning occurs during output, it is displayed by Script Editor.
Warnings which should be paid particular attention are described in alphabetical order.
NURBS curves cannot be output. Output as NULL.
NURBS surfaces cannot be output. Output as NULL.
Subdivision surfaces cannot be output. An original shape is output.
The specified end frame is set earlier than Animation Start in Softimage. Animation End in Softimage is output as the end frame.
A material name output to the intermediate file was changed because two or more materials had the same name. This error occurs when the materials that have the same name exist across different material libraries.
This warning occurs when two or more nodes have the same name, when illegal characters are included in a node name, or when the node name to be output to the intermediate file is changed.
A shader not supported by the Export plug-in is being used.
Correct output is not possible because the scale inclination (shear) of the kinematics node has a value other than 0. Be sure to set the scale inclination (shear) to (0, 0, 0).
The start frame has been set after the end frame. Data is output after the value for the start frame is swapped with the value for the end frame.
The specified start frame is set after Animation End in Softimage. Animation Start in Softimage is output as the start frame.
The texture name contains illegal characters. Illegal characters are converted to an underscore (_) and output as such.
A normal vector that has length 0 exists. Lighting effects will not be carried out normally. Correct this using XSI_UserNormalEditing.
The optimization process in CreativeStudio has failed.
CONFIDENTIAL