Character Setup

Estimated reading: 17 minutes

Follow these guidelines to ensure optimal compatibility and successful validation by preparing your character and scene accordingly.

Character and scene setup guidelines are necessary in-between steps which ensure that all characters uploaded to Wonder Studio share a common and predictable setup.

Character look with USD


Please note that the USD format has limited support for deformers, constraints, materials, and other non-standard elements from your preferred Digital Content Creation (DCC) software.

As a result, your character may not display correctly when viewing USD data, as the mesh and materials might appear broken. However, rest assured that this issue will not impact the animation data itself.

Scene Organization

It is highly recommended to remove everything from the scene that is not needed.

Any Collection setup and hierarchy is supported.

Objects that are "excluded" from the View Layer will not be rendered.

Additionally, excluded objects will not be evaluated when applying transforms on objects.

This helps with rigging systems that may use elements, like deformation cages, whose transforms should not be applied.

The Unit Scale should be set to 1.0!
Please make sure your Scene Unit Scale is set to 1.0.

Multiple Scenes are not supported.
Please make sure you have only 1 (one) scene in your Blender file.

It is highly recommended to remove everything from the scene that is not needed.

It is highly recommended to remove everything from the scene that is not needed.

All geometry that belongs to the character and that will be rendered must be placed inside the "GEO" group.

The rig and all blend shapes need to be grouped separately.
That group needs to have an "_BODY" suffix in order to be recognized by the add-on.

Make sure that the rig is directly parented to the "_BODY" group. Any subgroups should be avoided/removed.

If the character has facial blend shapes, adding the "_FACE" suffix to the face geometry is required.

If a character has xGen hair or fur, those xGen objects need to be in the scene root.

It is important that the names of all objects in the scene are shorter than 50 characters.

image65
Outliner example

Character Position and Size

  • Up axis: +Z
  • Forward axis: -Y
  • Double-check your character's size in the scene. Make sure that the character is not too small or too large.
  • In this position, all objects should have location and rotation values set to 0, and scale values to 1.

TPose

Characters need to be T-Posed prior to uploading them to the platform. Please note that the quality of the T-Pose can directly influence the quality of the animation.

For best animation results please use the Example Character provided in the Downloads section and visit the Bone Mapping, Distribution, and TPose for reference on how to T-Pose your character.

  • Up axis: +Y
  • Forward axis: +Z
  • Double-check your character's size in the scene. Make sure that the character is not too small or too large.
  • In this position, all objects should have location and rotation values set to 0, and scale values to 1.

TPose

Characters need to be T-Posed prior to uploading them to the platform. Please note that the quality of the T-Pose can directly influence the quality of the animation.

For best animation results please use the Example Character provided in the Downloads section and visit the Bone Mapping, Distribution, and TPose for reference on how to T-Pose your character.

Supported Rigs

  • Only FK rigs are supported.
  • All rigging tools and techniques, available natively in Blender, are allowed.
  • When rigging the eyes, ensure that the eye joint's horizontal and vertical rotation axes are aligned with the eye's natural rotation axes.

  • Make sure to remove all construction history from the geometry before rigging the character.
  • Only FK rigs are supported.
  • Currently, only linear skin clusters are supported.
  • Your character must be rigged in a T-pose.
  • Rig controls are not needed and will not be used by the platform.
  • When rigging the eyes, ensure that the eye joint's horizontal and vertical rotation axes are aligned with the eye's natural rotation axes.

Face Blendshapes

When creating shape keys make sure they are active otherwise they will not be activated by the animation muting that expression.

In-between blendshapes


In-between blendshapes can be driven by any system available in Blender (e.g. drivers). We recommend the following naming convention, but it is not a requirement.

  • blendshapeName (main blendshape)
    • blendshapeName_000
    • blendshapeName_030
    • blendshapeName_070
    • blendshapeName_100

When creating face blendshapes make sure to set the deformation order to Pre-deformation.

In-between blendshapes

If the in-between blendshapes follow the below-listed naming convention they will automatically be connected to the main blendshape. This way animation will not be baked to each in-between but will instead be easily controllable from the main blendshape.

  • blendshapeName (main blendshape)
    • blendshapeName_000
    • blendshapeName_030
    • blendshapeName_070
    • blendshapeName_100

Shading

When preparing characters for Wonder Studio, it is important to consider the use case that the character will be involved in, such as whether they will be used for animation, motion capture, or integration into live-action footage.

 

Project types may offer different rendering techniques which will require a different approach to character shading.

Procedural Shading

Complex procedural PBRPBR (Physically Based Rendering) shaders simulate realistic materials by following physical laws of how light interacts with surfaces, using standardized parameters like color, roughness, and metalness. shaders offer the full flexibility that a select DCC can provide.

Discover which DCCs Wonder Studio supports for preparing characters with procedural shading (node or texture based) and explore the compatible project types.

Supported DCCs:

  • Blender

Supported Project Types::

Only Cycles shaders are supported.

Texture-Based Shading

Texture-based PBRPBR (Physically Based Rendering) shaders simulate realistic materials by following physical laws of how light interacts with surfaces, using standardized parameters like color, roughness, and metalness. shaders offer great cross-DCC compatibility ensuring that a shader has a consistent look in any software that uses a PBR rendering pipeline.

Discover which DCCs Wonder Studio supports for preparing characters with texture-based PBR shading and explore the compatible project types.

Supported DCCs:

  • Blender
  • Maya

Supported Project Types:

The primary target of this approach is character support across all project types. As such this approach prioritizes compatibility, standardization, and cross-DCC operations. For these reasons, the USD-compatible PBR shader workflow is adapted. This ensures compatibility with path traced as well as raster render engines.

Limitations:

  • Refraction shaders are not supported!
    Refraction shaders are handled differently in the path-traced and raster render engines. In the interest of preserving character compatibility please avoid using these shaders.
  • Mixing UDIM texture sets and single textures is not supported!
    Shaders on one mesh object need to have either the same set of UDIM textures or just one texture per channel.

Procedural textures and node networks are not supported.

To ensure that your texture passes validation you can bake the nodes down to a single texture or make corrections outside Blender and directly connect them to the shader.

Only the following Cycles shaders are supported:

Shader Input Value Definition
value – Number value in the shader itself.
value_3x – Vector value in the shader itself.
texture – Image texture support via Image Texture node.
normal map – Image texture support via Image Texture plus Normal Map nodes.
ambient occlusion – Supported via two Image Texture nodes plus one Mix node using the Multiply function.
Principled BSDF channel support
ChannelValid Input Values
Base Colortexture value_3x ambient occlusion
Subsurfacetexture value_3x
Subsurface Colortexture value_3x
Metallictexture value_3x
Speculartexture value_3x
Roughnesstexture value_3x
Transmissiontexture value_3x
Emission*texture value_3x
Emission Strength*value
Normalnormal map

*Channel support in rendering coming soon! Characters prepared with this channel will not have to be reuploaded afterward.

Example of ambient occlusion, texture, value, value_3x, and normal map setup.
Principled Hair BSDF channel support

Supported in Melanin Concentration mode.

ChannelValid Input Values
Melaninvalue
Melanin Rednessvalue
Tintvalue_3x
Roughnessvalue
Random Colorvalue
Random Roughnessvalue

Procedural textures and node networks are not supported.

To ensure that your texture passes validation you can bake the nodes down to a single texture or make corrections outside Maya and directly connect them to the shader.

  • Bad example:

Only the following Arnold shaders are supported:

Shader Input Value Definition
value – Number value in the shader itself.
value_3x – Vector value in the shader itself.
texture – Image texture support via file and aiImage nodes.
normal map – Image texture support via file plus bump2d nodes.
standardSurface and aiStandardSurface channel support
ChannelValid Input Values
Base Colortexture value_3x
Metalnesstexture value_3x
Specularvalue
Specular Roughnesstexture value_3x
Transmissionvalue
Subsurfacevalue
Subsurface Colortexture value_3x
Subsurface Radiusvalue_3x
Emission*value
Emission Color*texture value_3x
Opacitytexture value_3x
Normal Cameranormal map

*Channel support in rendering coming soon! Characters prepared with this channel will not have to be reuploaded afterward.

Example of texture, value and normal map setup.
aiFlat channel support
ChannelValid Input Values
Colorvalue_3x
aiStandardHair channel support
ChannelValid Input Values
Base Colorvalue_3x
Melaninvalue
Melanin Rednessvalue
Roughnessvalue
IORvalue
Eye Object/Shader Setup

Eye shaders are an important part of a character's look dev.

In the Live Action use case, Blender characters are not limited in eye geometry/shader setup while Maya characters should comply with the following guidelines for best results.

In the Animation use case, characters created in any DCC should comply with the following guidelines for best results.

An outer eye should be a transparent sphere. It should have:

  • High Specular values.
  • Low Roughness values.
  • Transmission, as well as Alpha (Blender) or Opacity (Maya), value set to 1.0.
  • A desired IOR value for correct rendering in project types that use path trace rendering.

An inner eye should be a solid sphere that contains the iris and the sclera. If should have desired values to achieve the look you are after. Considering it is a solid shape it is not subject to any rules.

The outer eye should be larger than the inner eye.

The inner eye must be a closed surface meaning there are no holes or gaps of any kind in the mesh.

Hair

Hair Curves support is limited.

⚠️ All Geometry Nodes modifiers must be applied on Hair Curves objects except for the Surface Deform geometry node group Contains only the Deform Curves on Surface node, Group Input, and Group Output nodes. modifier.

Particle-based hair is supported.

⚠️ Child particles will be considered when counting the number of hair strands in the scene.

Hair in Maya characters is supported via XGen interactive grooms.

Only Interactive Groom is supported. To convert normal xGen grooms to Interactive Groom:

  1. Select all xGen Descriptions
  2. In the Modeling menu set, go to Generate > Convert to Interactive Groom... > Convert

Hair must be attached to a character’s geometry. This geometry should have non-overlapping UVs and be visible.

Overlapping UVs shown in Maya's UV Editor.

Having overlapping UVs on meshes where hair is attached will result in the hair being detached from the character.

Currently, the only supported shader is Arnold’s aiStandardHair.

Arnold's aiStandardHair shown in Maya's Hypershade Window.

Note that when converting a groom to an interactive groom, you will have to reassign the materials since they will not transfer automatically.