[Update] June 28, 2022
We’re excited to announce that we’re releasing a public Studio Beta of Automatic Skinning Transfer, which is an extension to the existing Cage Mesh Deformer first announced here. Auto-skin transfer is useful because it allows accessories to deform accurately without having to build skinning into the asset itself. This new feature also allows accessories to fit on to and deform accurately with a wider variety of different characters and avatars.
Automatic skinning transfer is designed to work with the new Dynamic Heads Studio Beta announced here and all of the accessories that go along with Dynamic Heads (i.e. beards, eyebrows, hair, etc.). These types of auto-skinned accessories can be seen on these goblin and blocky-type characters.
The main benefits of this new Automatic Skinning Transfer feature are:
Content creators no longer need to apply skinning to the accessories that they create.
- With auto-skin transfer enabled, an accessory will only need the mesh itself and its associated cages (Inner and Outer cages). Painting skin weights is typically a complex task that requires technical expertise in 3D tools. This feature automates this task by transferring skin weights from the avatar’s head or body onto the accessory at run-time.
Auto-skinned accessories will work well with most geometries and characters they are attached to, even those using different kinds of skinning.
- An accessory (in general) will only deform accurately with a geometry or character that has a similar kind of skinning that the accessory itself has, but there would be problems with the deformation if used on a character that is using a different kind of skinning (e.g. a different number of bones, different skinning-weight patterns, etc.). This requirement would have been especially difficult for the new Dynamic Heads since these heads can use different numbers of joints and different skinning internally. Now with Automatic Skinning Transfer, the actual skinning of the character doesn’t matter since whatever that skinning is, it will be transferred automatically and applied to the accessory at run-time.
What is Automatic Skinning Transfer?
This is an opt-in feature of the Cage Mesh Deformer that, if enabled for an accessory, will perform an additional computation to transfer the skinning weights and rig information from the source geometry onto the accessory itself. This transfer happens during run-time within the engine when the accessory is applied to the character.
The new skinning weights and rig associated with the accessory will then be used to drive the accessory’s deformations and motions in sync with the source geometry itself. This is depicted in the figure below where a Beard accessory is being applied to both a Blocky-type and a Goblin character.
Since Automatic Skinning Transfer is an extension to the existing Cage Mesh Deformer, all of the requirements of that deformer, as noted here, also apply. This means that accessories still need proper Inner and Outer cages. The actual skinning transfer process uses those cages to help with the projection of the skinning from the source geometry onto the accessory, so it is important that all of those Cage Mesh Deformer rules, requirements, and guidelines are followed.
This left image shows a non-skinned beard applied to our Goblin character performing a cheek-puff and eyebrow-raise animation, and since the automatic-skin transfer isn’t used here, the beard remains static with respect to the face deformation.
The right image shows the beard using the new automatic-skin transfer feature, and because of this, the beard now deforms accurately with the Goblin’s face.
As the Automatic Skinning Transfer name implies, skinning information will be transferred from the source geometry onto the accessory being attached. This means that the source geometry or character actually has to have skinning information associated with it. If the source character is not skinned, the transfer process will not take place. This means that R15 bodies that are not skinned can’t currently make use of this new feature, although we plan to support auto-skin transfer for such bodies soon.
How do I use this new Auto-Skin Transfer feature?
We’ve prepared this example place to demonstrate the use of Automatic Skinning Transfer: Dynamic Head Customization Example.rbxl.
You will need to enable the Automatic Skinning Transfer and the Facial Animation Beta Features in order to use the example place.
Once enabled, you should see a new Parameter associated with every WrapLayer instance in the DataModel. The WrapLayer instances are part of the Cage Mesh Deformer and are associated with (usually children of) all accessories that can be applied using the deformer. The new Enum Parameter is called AutoSkin and can be seen in the example Properties window below. There are three options for the AutoSkin Property:
Disabled: This is the default value for this Property, and as the name implies, does not activate the Automatic Skinning Transfer stages of the Cage Mesh Deformer.
EnabledOverride: This option will Enable the Auto-Skin Transfer process and will allow it to OVERRIDE any existing skinning information found on the accessory. Choose this setting when you want to set or replace the existing skinning of an accessory using the Auto-Skin Transfer version.
EnabledPreserve: This option will Enable the Auto-Skin Transfer process but will NOT allow it to override any existing skinning information found on the accessory. Choose this setting when you want to preserve and maintain any existing skinning of an accessory, but create new skinning automatically if there is no existing skinning to maintain.
By setting the value of this new parameter, we expect that content creators will enable or disable the Automatic Skinning Transfer feature for their specific accessory before they upload it to the catalog. In most cases, only the content creator will know if the auto-skin transfer is effective for their accessory, so we expect them to test and apply the feature if they wish to use it. However, the AutoSkin property on the WrapLayer instances can be changed procedurally at run-time through Lua scripts if desired.
Currently, it is known that Automatic Skinning Transfer works well for Beard, Eyebrow, and Hair facial-type accessories. It can also work well for Shirt, Pants, Shoes, and Jacket body-type accessories, although currently, the transfer will only take place if the body itself is skinned. Transfer may not work as well for Eyelash-type accessories due to the (usual) complexity of the character’s geometry around the eye region. It also doesn’t work well for Hat and Glasses type accessories because it would introduce deformation in areas that should be ‘rigid’. In general, those types of accessories (Hat, Glasses) probably shouldn’t have any skinning associated with them and should remain rigid. A summary of reasonable initial settings for the AutoSkin parameter listed by accessory type is shown in the table below:
|Enabled Override||Enabled Override||Disabled||Enabled Override||Disabled||Disabled||Enabled Override or Enabled Preserve||Enabled Override or Enabled Preserve||Enabled Override or Enabled Preserve|
Please try out this new feature and let us know if you have any questions, suggestions, or if you run into any issues.