GithubHelp home page GithubHelp logo

godot-vrm's Introduction

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.

Example of VRM Addon used to import two example characters

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 implemented
      • VRM/UnlitTransparentZWrite: fully implemented
      • VRM_USE_GLTFSHADER with PBR: fully implemented
      • VRM_USE_GLTFSHADER with KHR_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
  • 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:

Optional engine patch to improve springbone performance:

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:

For their extensive help testing and contributing code to Godot-VRM.

Special thanks to the authors of UniVRM, MToon and other VRM tooling

godot-vrm's People

Contributors

lyuma avatar saracenone avatar tokageitlab avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.