Inertia

Inertia


Inertia is the effect that the character’s movement has on the vertices of the cloth.
For example, if the cloth sways too much for the movement of the character, it is possible to suppress the overall sway by adding restrictions.
You can also set things like automatically detecting character teleports and resetting the simulation.

Anchor

Excludes the motion of the specified object from inertia.
This is useful for negating the effects when a character rides moving floors or vehicles.

Anchor Inertia

Specify the influence factor of the anchor.

World Inertia

Sets the effect that the movement of the entire character has on the cloth.
For example, a value of 0.1 adds 10% of the character’s movement to the cloth.
This makes it possible to suppress the overall shaking even if the character moves at high speed.

However, if the character moves slowly, the effect is also reduced, so there is also the detrimental effect of making the shaking extremely small.

World Inertia Smoothing

By smoothing out the character’s inertia, you can reduce the problem of simulation disturbances caused by sudden starts or sudden stops.

World Movement Speed Limit

Limits the effect of the movement of the character on the cloth at the set speed.
For example, if the value is 2.0, if the character’s movement speed is within 2m/s, the force will be transmitted as it is, and if it exceeds 2m/s, no further force will be applied to the vertex no matter how fast the character moves.

Basically, it is recommended to use this rather than “World Inertia”.

World Rotation Speed Limit Similar to “World Movement Speed Limit”, it limits the effect of character rotation on cloth by the set speed.
The unit is rotation angle (Degree) per second.
Teleport Mode

Set the behavior when the character teleport is detected.

[None]
Disable automatic teleport detection.

[Reset]
Perform automatic teleport judgment and reset the simulation after teleporting.

[Keep]
Automatic teleport judgment is performed, and the simulation continues as it is after teleporting.

Teleport Distance

Movement distance (m) in one frame of the character detected as teleport

Teleport Rotation

Rotation angle (Degree) in one frame of character detected as teleport

Local Inertia Sets how cloth movement affects vertices in the character’s local space.
This is usually the effect of character animation.
For example, a value of 0.2 will apply a force to the vertex that is 20% of the displacement of the center position in local space.
Local Movement Speed Limit Cuts the effect of the character’s movement in local space on the cloth at a constant speed.
For example, if the value is 2.0, if the moving speed is within 2m/s, the force will be transmitted as is, and if it exceeds 2m/s, no further force will be applied to the vertex.
Local Rotation Speed Limit Cuts the amount of rotation of the character in local space at the specified speed.
The unit is rotation angle (degree) per second.
Local Depth Inertia

Reduces local inertia according to vertex depth values.
If the value is increased, the closer the depth is to the starting point, the harder it will be to move.
The endpoint is not subject to reduction.

This is effective when you don’t want to move too much around the start point for skirts, hair, etc.
However, please note that if the inertia near the starting point is reduced, the overall movement will be weaker.

Centrifual Acceleration

Augmentation value for centrifugal force.
It is possible to increase the centrifugal force by increasing the value.

Partice Speed Limit

Limits the maximum velocity per vertex.
This can alleviate the phenomenon that the tip of a long belt-like object bulges outward excessively due to centrifugal force.

However, if you lower the value below 1.0 (1m/s), the accuracy of collision detection will decrease, so be careful when lowering the value.

Three inertias


Inertia is calculated separately into three parts: anchor, world, and local.
By setting these three effects separately, you can finely adjust the effect that the character’s movement has on the simulation.

Anchor

An anchor is a coordinate space that provides a reference point for inertia.
Usually it refers to the world space itself, but by setting a specific object, the movement of that object becomes the reference for inertia.
By setting the influence rate of the anchor to 0, it is possible to completely exclude the movement of that object.
This is useful when characters ride vehicles.

World inertia

World inertia is the effect a character has as it moves through the world.
This is how the speed of a character walking, running, or riding a vehicle affects the cloth.
It is possible to suppress this effect by manipulating world inertia.
World inertia is calculated from motion excluding the effects of anchors.

Local inertia

Local inertia is the effect of the character’s internal movement.
This can also be said to be an effect of the character’s animation.
By manipulating local inertia, it is possible to reduce its influence.
Local inertia is calculated from the movement excluding the effects of anchor and world inertia.

Inertia smoothing


You can smooth out world inertia by adjusting the WorldInertiaSmoothing parameter.
This can alleviate problems such as sudden starts and stops that disrupt the simulation.
In addition, small irregular movements of the character are smoothed out, making the simulation more stable.

Component placement

To fully utilize the effect of inertia, you need to be careful where you place MagicaCloth components.
This is because each inertia measurement method is different.

Anchor
World Inertia

Anchor and world inertia are measured from the MagicaCloth component’s Transform position.
Therefore, it is usually desirable to place it directly under the character’s root GameObject.

Local Inertia

Local inertia is automatically calculated from the distribution of the fixed attributes of the cloth.
Therefore, no special attention is required.

Below is a diagram of the recommended placement of MagicaCloth components on a character.
It is recommended to place the MagicaCloth component directly under the character GameObject as shown.

Center of local inertia


A cloth always has one center point.
This is automatically determined from the distribution of fixed attributes and is displayed as a gizmo in the scene view as a purple sphere.
Local inertia is measured from the movement of this center point.

Automatic teleport judgment


It is also possible to automatically detect when the character moves a lot and reset the simulation.
By setting the mode to “Keep”, you can continue the simulation with exactly the same posture after teleporting.