Problem
We've identified two issues affecting emote playback in wearables:
-
Non-standard node naming:
- Some wearables use non-standard names for skeleton nodes (e.g., "Armature.001" instead of "Armature")
- This breaks compatibility with emotes that expect standard node names
- While we've patched the preview to handle numeric suffixes, other naming variations could still cause issues
-
Animation dependency on skeleton hierarchy:
- Some emotes (like the DAO Pony emote) use a mixed animation approach:
- Main motion is applied to the Armature node
- Short positioning animations are applied to individual bones
- This approach relies on proper skeleton hierarchy for bone inheritance
- If the Armature node isn't found or properly named, the entire animation fails
Solution
The Wearable Editor should automatically validate these issues before allowing wearable publication:
-
Node Name Validation:
- Scan the GLB file's node hierarchy
- Check for standard DCL node naming convention
- Flag any deviations from the standard naming (e.g., "Armature.001", "Avatar_Head.001")
- Prevent users from publishing such GLB and show them the faulty names of the nodes.
-
Animation Baking Validation:
- Analyze animation data in the GLB
- Detect if animations are properly baked to all relevant bones
- Flag animations that only target the Armature without full bone baking
- Warn users that this approach of animation could not work on legacy emotes that don't have a propery skeleton hierarchy, encourage them to bake animations in all bones.
Implementation Path
-
GLB Inspection:
- Use existing GLB parsing libraries (like @babylonjs/core) to load and inspect models
- Create a validation module that:
- Lists all nodes in the hierarchy
- Identifies standard DCL node names vs non-standard ones
- Maps animation targets and their keyframes
-
Validation Rules:
- Define a list of standard DCL node names
- Create rules for valid node naming patterns
- Define requirements for animation baking coverage
-
UI Integration:
- Add validation step in the import provess
- Show clear error messages for naming issues
- Show warning messages for animation issues
-
Documentation:
- Update wearable creation guidelines
- Document standard node naming requirements
- Explain animation baking best practices
This enhancement will improve wearable compatibility and reduce animation issues in the platform. It can be tested using the BabylonJS Sandbox (https://sandbox.babylonjs.com) to verify proper node naming and animation baking.
Related
Problem
We've identified two issues affecting emote playback in wearables:
Non-standard node naming:
Animation dependency on skeleton hierarchy:
Solution
The Wearable Editor should automatically validate these issues before allowing wearable publication:
Node Name Validation:
Animation Baking Validation:
Implementation Path
GLB Inspection:
Validation Rules:
UI Integration:
Documentation:
This enhancement will improve wearable compatibility and reduce animation issues in the platform. It can be tested using the BabylonJS Sandbox (https://sandbox.babylonjs.com) to verify proper node naming and animation baking.
Related