Skip to main content

VRM development

VRM Features (for Developers)

  • vrm-0.x vrm-1.0 Right-handed Y-Up coordinate system ➡️Coordinate
  • vrm-0.x vrm-1.0 Metric unit is meter ➡️ You don't have to worry about whether 1 is 1 meter or 1 cm.
  • vrm-0.x vrm-1.0 It is a humanoid model and has a fixed bone configuration ➡️ Easy to use general-purpose humanoid motion and motion capture
  • vrm-0.x vrm-1.0 T-pose as the initial posture (0.x towards Z-axis 1.0 towards Z+axis) ➡️ can be used directly for Third-Person-Shooter mode
tip

技術的に VRM-0.X は bake 済みの T-Pose を介して FK の humanoid motion を共有する仕組みです。

T-Pose bake をVrm-0.X 正規化と呼んでいます。

VRM-1.0 は bake しない T-Pose を介して humanoid motion を共有する仕組みです。 そのため異なる T-Pose 同士での retarget 手法を VRM-Animation で補完しました。

VRM-1.0 に対応するためには、FK retarget の実装が必要になります。 VRM-0.x(各ボーンの rotation を代入するだけ) に比べて RunTime の実装難易度がやや高くなります。

  • Guaranteed that there is no rotation or scale in the initial posture ➡️ The burden of writing code that takes initial posture into account can be reduced.
  • It is guaranteed that bones and mesh overlap in the initial posture (the skinning Bind matrix only includes movement) ➡️ The burden of baking before processing the mesh can be reduced.
  • Expression/eye gaze manipulation are in BlendShapeProxy ➡️ BlendShapeProxy
  • A non-physical shaking thing has been set up ➡️ It shakes without interfering with physics, so it won't interfere with the game's gimmicks or become violent.
  • VR settings are available ➡️ FirstPerson
  • License information is defined ➡️ You can avoid using the model in a way that does not meet the wishes of the model owner.

Rather than packaging it as an asset in a traditional game development project, The intended use is to load it dynamically at runtime.

Runtime Import with UniVRM

You can use UniVRM's loading functionality at runtime. UniVRM creates GameObjects directly on the scene without creating Assets (Prefabs). A loaded GameObject can be treated like an instantiated Prefab.

Runtime Export with UniVRM

You can use UniVRM's export functionality at runtime. You can use this feature to implement a character creation tool.

Assets/VRM.Samples/Scenes/VRMRuntimeExporterSample.unity

Other VRM Implementations

showcase