Previous post:
Hi developers,
We’re excited to release several new technologies and features for avatars in the near future. In order to do this, the entire avatar needs to use MeshPart instances. This will change heads and accessories from using SpecialMesh instances to using MeshPart instances.
Opting Into MeshPart Heads & Accessories
Since this may break scripts that depend on the existing structure of heads, we have introduced a new property Workspace.MeshPartHeadsAndAccessories
, as a way to opt-in to this new format.
This property gives you three settings:
- Disabled - Keep the current behavior
- Enabled - Characters will load using MeshPart Heads & Accessories
- Default - Currently, means the same as “Disabled”, but will switch to mean “Enabled” as we continue to roll this feature out.
Default will switch to Enabled on May 27th, 2021
You should change this setting to “Enabled” as soon as possible and make any necessary script changes. This will prevent unexpected changes in behavior in the future when “Default” is changed.
Head Changes
Heads will now be a MeshPart instance and no longer contain a “Mesh” SpecialMesh instance.
Current Format | New Format |
---|---|
In addition, the “face” decal may not exist on heads which do not support faces.
For example, Magma Fiend Head does not support faces. The MeshPart version of this head will load into the game as:
Accessory Changes
The “Handle” Part instance of accessories will now be a MeshPart instance and no longer contain a “Mesh” SpecialMesh instance.
Current Format | New Format |
---|---|
Things to Look Out For
We expect the vast majority of existing games to work perfectly fine with this feature, however there are a few known incompatible features which some games may encounter:
- Reading and writing to
SpecialMesh.Scale
has no direct MeshPart equivalent- Use Humanoid.HeadScale.Value instead
- Reading and writing to
SpecialMesh.VertexColor
has no MeshPart equivalent - Reading and writing to
SpecialMesh.MeshId
has no MeshPart equivalent
Head collision sizes with MeshPart heads may be larger than before in some cases.
Previously, this was always a 2x1x1 box, now the collisions will match the bounding box of the head mesh. If you receive reports about players not being about to fit through some doors or spaces in your game, it’s possible this is the reason why.
We are investigating possible compatibility options for this to allow developers to choose how head collisions work in games.
MeshPart Heads and Accessories will only load through the HumanoidDescription, Player:LoadCharacter()
, or default platform avatar loading systems. If your game uses a custom avatar editor with InsertService:LoadAsset()
, the delivered assets will remain as SpecialMesh assets for the time being. We will be investigating a way to support this in the future.
This change only modifies how assets are loaded into the game. Characters with SpecialMesh heads and accessories will continue to work in the future, but may not support some future features.
If your game does have issues, you should switch the Workspace.MeshPartHeadsAndAccessories
setting to “Disabled” until these issues can be resolved.
Future Features
It is important that you opt-in as soon as possible to give your players the best experience.
In the near future, MeshPart Heads and Accessories will be required for new features like:
- Skinned Meshes
- Layered Clothing
- Physically based rendering
- Facial animations
- And many more avatar features!
You should opt-in with “Enabled” as soon as possible to ensure your game is compatible.
Feedback
If you run into issues with this feature in your game, please let us know why in this thread! We will actively work to make this feature compatible with as many games as possible.
If you find any head or accessory assets that do not look or behave as expected, please also provide those in this thread as well.