Model Optimization

The following optimization processes are provided by CreativeStudio.

This document gives and overview of each optimization process.

For details about model optimization, we recommend reading the separately provided May Plugin Manual.

Compress Node

Specifies the node compression mode to use for the entire model.

Compress Node offers the folowing five compression methods:

These can be broadly divided into two groups based on the compression target:

The table below provides a comparison of the different Compress Node methods.

Table 1. Comparison of Compress Node methods (for skeletons)

Compression Format Deletion Target Use together with skeletal animation Uneven scale Bone SRT conversion Shape vertex attribute conversion
Cull Useless Node Deletes nodes located at the end of the hierarchical structure that are not required for display of the model, and then exports Possible Possible None. None.
Cull Uninfluential Node In addition to deleting useless nodes (i.e., the Cull Useless Node process), also combines nodes where matrices can be combined, and then outputs. Possible (data size may increase) Impossible Yes None.

Table 2. Comparison of Compress Node methods (for models)

Compression Format Deletion Target Use together with skeletal animation Uneven scale Bone SRT conversion Shape vertex attribute conversion
Unite Below Node Nodes that have polygons located at the end of the hierarchical structure are collected together. Impossible Possible None. Yes
Unite Compressible Node Nodes for which the compressible flag has been set are collected together. Impossible Impossible Yes Yes
Unite All Node Gathers nodes and outputs all polygons using global coordinates. (Name of the root node is used for node name.) Impossible Possible None. Yes

Note that the Unite Below Node functionality is deprecated in version 1.1.0.

Details about these compression methods are presented below.

Cull Useless Node

In the Cull Useless Node method, bones that fully meet the following conditions are deleted.

Note:
The root bone is also deleted if it is named Nw4cRoot and it has only one child bone.

Cull Uninfluential Node

In the Cull Uninfluential Node method, bones are deleted if they meet both of these conditions:

In some cases, the root bone is not deleted and remains after compression even though it fully satisfies the conditions.

If a parent bone is to be deleted, the first bone not to be deleted is made the parent by going up the hierarchical structure of the skeletal model in the parent direction.
If there is a bone to be deleted between a parent bone and child bone after compression, the SRT of the child bone is updated.
The SRT of bone animations is also updated if a skeletal animation is set.

Note:
An uneven scale (where x, y and z are not the same) must not be set for bones to be deleted.
The IsSegmentScaleCompensate property of bones must be false. If it is true, it will be temporarily updated to false during compression.
If a skeletal animation is set for a model, be sure to also carry out optimization of the skeletal animation.
The amount of data for a skeletal animation may increase depending on the model.

How to Optimize a Skeletal Animation

Select a skeletal animation from the Contents panel on CreativeStudio and then select Cull Uninfluential Node from the menu.

You can select multiple content from the Contents panel using CTRL + Left-click, so do this to select a model and a skeletal animation and then perform Cull Uninfluential Node.

Unite Below Node

In the Unite Below Node method, bones are deleted if they meet both of these conditions:

Bones referenced by a shape are overwritten during compression.
In line with this, coordinate conversions for vertex positions, normal vectors and so on are also performed.
If a bone to be deleted is referenced by a shape for which skinning has not been set, the first bone to not be deleted above it is made the reference by going up the hierarchical structure of the skeletal model starting from the bone to be deleted.
Skinning will be deleted and the root bone made the reference regardless of whether a shape for which skinning is set references a bone to be deleted.

Note:
This cannot be used in combination with a skeletal animation.

Unite Compressible Node

In the Unite Compressible Node method, all bones are deleted except for root bones where the Compressible flag is set.

If a parent bone is to be deleted, the first bone not to be deleted is made the parent by going up the hierarchical structure of the skeletal model in the parent direction.
If there is a bone to be deleted between a parent bone and child bone after compression, the SRT of the child bone is updated.

Bones referenced by a shape are overwritten during compression. In line with this, coordinate conversions for vertex positions, normal vectors and so on are also performed.
If a bone to be deleted is referenced by a shape for which skinning has not been set, the first bone to not be deleted above it is made the reference by going up the hierarchical structure of the skeletal model starting from the bone to be deleted.
Skinning will be deleted and the root bone made the reference regardless of whether a shape for which skinning is set references a bone to be deleted.

Note:
This cannot be used in combination with a skeletal animation.
An uneven scale (where x, y and z are not the same) must not be set for bones to be deleted.
The IsSegmentScaleCompensate property of bones must be false. If it is true, it will be temporarily updated to false during compression.

Unite All Node

In the Unite All Node method, all but the root bone is deleted.

Bones referenced by a shape are made the root bone during compression.
In line with this, coordinate conversions for vertex positions, normal vectors and so on are also performed.
Skinning is deleted for shapes for which skinning is set.
The local matrix for the root bone is set to a unit matrix.

Note:
This cannot be used in combination with a skeletal animation.

Compress Material

Compress Material combines materials if they match in status in all aspects other than the name.

The target is materials for which the Compressible flag is set to true.

The name used after combining is the name among those before combining that occurs earliest in dictionary order according to Unicode code point.

Optimize Primitive

Optimize Primitive optimizes polygon primitives and then outputs.

This kind of optimization lightens the load of the rendering process.

SkeletalModel-Simplification

SkeletalModel-Simplification converts skeletal models into models when the conditions are met.

The advantage of this is that the resulting model has a simpler structure than the skeletal model that was converted, so processing is more efficient on the development hardware.

Below are the conditions for converting a skeletal model into a model:

Since all bones are deleted during conversion, coordinate conversion is peformed for vertex positions, normal vectors and so on.

Note:
The skeleton information is destroyed, so the skeletal animation becomes unusable.


CONFIDENTIAL