Studio GuideWorld SDK Guide
Log In

Custom Body Deformations

Preparations

Download the Deformations.blend file. This file contains a base skeleton, and the required empty object structure for recording deformation changes.

  • The sample file contains the size guidelines.

❗️

caution

When creating outerwear, make sure the end of the corresponding body type does not exceed the maxSize in the guideline or falls short of the minSize. (You cannot upload objects that are outside this range.)


ℹ️

Deformations

Deformations are translation and scale values recorded to empty objects. These values are the change in values between the typical T-pose and the new custom deformation pose.

For better readability, on the root armature, go to the Object menu, then Apply > All Transforms to Deltas. This will make copying data to the deformations empty objects easier.

1506

Using the armature in pose mode, move and scale bones to fit your desired custom body shape. For general scaling for the whole character, scale the armature object named “root” in object mode. Use this general scaling option in lieu of scaling the hips bone. Do not change the rotations of any bones, as this will cause errors. In general: Only use scale on scale bones. Exceptions to this include the head, foot, and hand bones. For limbs and the spine, try moving the bone to the desired length before applying scale. Make sure that the feet are above the floor. If your deformations have put the feet below the floor plane, please raise the skeleton via the hips bone to get the feet above the floor plane.

1304

When the deformations body is in the desired pose, the change in bone transforms needs to be recorded to the corresponding empty objects found parented under the “deformations” empty object. A deformation object needs to record the change in translation of its corresponding bone from its original position, as well as the corresponding bone’s scale. In Blender, the original T-pose bone transform values are set to 0 (or near 0) in pose mode by default, so bone transforms will always record the change in translation as well as the direct scale. When recording deformations to the deformation object transforms, simply input the transform values of the corresponding bone.

Example input for a deformation empty object: _foot_L

Translate X = 3.438 (posed value) - 0 (original value) = 3.438
Translate Y = 0
Translate Z = 0.4 (posed value) - 0 (original value) = 0.4
Ignore Rotations
Scale X = 1.302
Scale Y = 1.302
Scale Z = 1.302 (Scale values taken directly from the foot_L bone changes)


Make sure to read the following information:

  • If you wish to adjust the overall size, enter the scale value on the root. Here, the scale X, Y, and Z must be identical values.
  • If the root contains translate or rotate values, this becomes a cause for rejection.
  • Do not adjust the scale values on the hips. (You can adjust the overall size from _root).
  • You can delete the empties of the bones that do not have values.
  • When you intend to modify a part of the body such as the legs, arms or torso, adjust the translation value. (Entering an incorrect scale value can cause problems when animations are applied)
  • Having non-zero rotation values or excessive modification and resizing can be causes for rejection. (The _root scaleAll values of ZEPETO characters are limited to between 0.3 to 1.35.)
  • You cannot use bone names other than the bone names under deformations within the provided fbx file.
  • For scale values, please stick to scale bones if possible. (Some items may not be able to stay attached.)
  • If you have elongated the legs, adjust the _hips height so that the position of the foot does not drop below the scene floor. (Having the feet clip into the ground can be a cause of rejection during the evaluation process).

Exporting

Reset bone transformations to their original position. Select all of the deformations empties and expand the Delta Transforms section in the object properties. Input a Delta Transforms Rotation X value of 90 and set the Delta Transforms Scale values to 0.01. Export the mask, deformations_mesh, armature, and deformations empties to an FBX file.


Import the .fbx into unity and convert it into a ZEPETO Style prefab.


Select the prefab, and check the inspector. Find the “Skinned Mesh Renderer” component and disable it by unchecking the checkbox to the left of the component title.


If you need to make changes to your deformations, make changes in Blender and re-export as opposed to making changes in Unity.

When testing body type deformations in Unity in play mode, adding your custom deformation will disable the deform buttons in the game view.


When testing is complete, and everything looks correct in Unity, select the prefab and create a .ZEPETO file through the ZEPETO Studio -> Export as ZEPETO menu.