by 0x8b257b97c0e07e527b073b6513ba8ea659279b61 (Morph)
.vrm support for DCL avatars
What
VRM is the current leading model format for VR social applications & games. It’s an extended wrapper class around .glbs/gltf that can add additional complexity like jiggle bones, expressions and VR player mapping.
How
Decentraland’s human skeleton model is an exact match to the VRM-humanoid model, making this process feasible. We would not need to add jiggle bones or expressions, they are optional; The VR player mapping can be done in the .glb → .vrm conversion thanks to this already matching bone structure. A unity plugin, uniVRM, does this automatically already - we would need to implement this functionality in a pipeline that can automate this process.
Why
An API that can export the .vrm of a player would be incredibly useful, not only for the upcoming VR Client, but also for interoperability with all VR and non-VR games. The .vrm model is easily imported to external games, allowing our avatars to travel ‘across the metaverse’ without custom implementations and rigging.
This API should be locked so you can only export your current character, ensuring that you can only bring your current avatar into other games. This process would require an eth sign on API request to ensure the user has ownership, enabling DCL to remain in control of the ownership and creator rights.
Conclusion
Overall, I think this would be a powerful step forward for interoperability as well as avatar/wearable ownership, enabling a ‘one-click’ button to import DCL characters into other games. I already use my ‘morphbot’ avatar on both twitch and VRChat thanks to this process, but an automated API would unlock this for all users and developers.
Keen to hear thoughts and would love to hear the VR team’s feedback on whether this is being explored currently, the M3 org has also expressed interest in this, as it would enable import of DCL avatars to the webaverse’s upcoming MMO.
- Implement an API that can generate, cache, and export a user’s current model as .vrm
- Do not implement, not useful
- Unsure of feasibility to run and maintain
- Invalid question/options