VRM addon for Godot Engine
This Godot addon fully implements an importer for models with the VRM specification, version 0.0. Compatible with Godot Engine 3.2.2 stable or newer.
Proudly brought to you by the V-Sekai team.
This package also includes a standalone full implementation of the MToon Shader for Godot Engine.
IMPORT support for VRM 0.0 is fully supported. Retargeting for animation currently requires an external script.
What is VRM?
See https://vrm.dev/en/ (English) or https://vrm.dev/ (日本語)
"VRM" is a file format for handling 3D humanoid avatar (3D model) data for VR applications. It is based on glTF 2.0. Anyone is free to use it.
What VRM Specification features are currently supported in Godot Engine?
- vrm.blendshape
- binds / blend shapes: implemented (Animation tracks)
- material binds: implemented (Animation tracks)
- vrm.firstperson
- firstPersonBone: implemented (Metadata)
- meshAnnotations / head shrinking: implemented (Animation method track
TODO_scale_bone
) - lookAt: implemented (Animation tracks)
- vrm.humanoid
- humanBones: implemented (Metadata dictionary)
- Unity HumanDescription values: unsupported
- Automatic mesh retargeting: planned
- humanBones renamer: planned
- vrm.material
- shader
VRM/MToon
: fully implementedVRM/UnlitTransparentZWrite
: fully implementedVRM_USE_GLTFSHADER
with PBR: fully implementedVRM_USE_GLTFSHADER
withKHR_materials_unlit
: fully implemented- legacy UniVRM shaders (
VRM/Unlit*
): supported - legacy UniGLTF shaders (
UniGLTF/UniUnlit
,Standard
): uses GLTF material
- renderQueue: implemented (maps to render_priority; not consistent between models)
- floatProperties, vectorProperties, textureProperties: implemented
- shader
- vrm.meta (Metadata, including License information and screenshot): implemented
- vrm.secondaryanimation (Springbone)
- boneGroups: fully implemented (engine optimization patch is recommended)
- colliderGroups: implemented (engine optimization patch is recommended)
EXPORT is completely unsupported. Support will be added using the Godot 4.x GLTF Export feature in the future
Godot 3.x
For VRM, use this godot3 branch.
Runtime VRM usage (springbones, metadata) works out-of-the-box with any official Godot engine 3.2.2 or above.
To import VRM files and use the Editor Plugin, this addon includes a GDNative port of the upcoming extensible Godot 4.x GLTF module. This modules supports Windows, macos, and Linux (tested on CentOS 8). This GDNative addon is not necessary in release builds.
Furthermore, it can be compiled into the engine as a module if necessary.
GDNative source code for the godot_gltf addon, as well as a module version, are available here:
- gltf module: https://github.com/V-Sekai/godot-gltf-module (
gdnative
branch)
Optional engine patch to improve springbone performance:
- https://github.com/V-Sekai/godot branch
improve_skeleton_for_vrm_3.2
Godot 4.x
Please use the master branch for Godot 4.x support.
How to use
Install the vrm addon folder into addons/vrm. MUST NOT BE RENAMED: This path will be referenced by generated VRM meta scripts.
Install Godot-MToon-Shader into addons/Godot-MToon-Shader. MUST NOT BE RENAMED: This path is referenced by generated materials.
Install the godot_gltf GDNative helper into addons/godot_gltf. MUST NOT BE RENAMED: The GDNative C++ code also hardcodes this path.
Enable the VRM and MToon plugins in Project Settings -> Plugins -> VRM and Godot-MToon-Shader.
Credits
Thanks to the V-Sekai team and contributors:
- https://github.com/fire
- https://github.com/TokageItLab
- https://github.com/lyuma
- https://github.com/SaracenOne
For their extensive help testing and contributing code to Godot-VRM.
Special thanks to the authors of UniVRM, MToon and other VRM tooling