Skip to main content

Avatar Requirements

This document describes the VRM features used by the Adamas runtime to drive avatar animation. It is intended for technical artists and advanced users who create or modify VRM source files and need full avatar support on the Adamas platform.

VRM models are best prepared in Blender and exported as .vrm files. The sections below outline the runtime features implemented on the platform and the corresponding VRM configuration required for each one. Each section also includes a reference screenshot from the VRM Add-on for Blender.

These requirements apply to the authored .vrm source file and are intended for avatar creators configuring the model before upload.

Supported VRM Format

Head tracking requirements

Armature reference for head tracking

Uploaded avatars should conform to the following:

  • VRM 1.0
  • A valid Humanoid bone mapping

The runtime expects a VRM 1.0 file with a valid humanoid armature mapping. Avatars that do not meet this baseline may not animate or display correctly. Refer to the VRM documentation below for additional detail.

Reference:

Armature Inverse Kinematics Requirements

Inverse kinematics requirements

Inverse kinematics setup reference

For reliable IK body motion, the avatar should include the following humanoid bones exactly as mapped in the VRM humanoid definition. In runtime use, leftHand and rightHand are driven by the VR controllers, and head is driven by the VR headset.

  • Core body: hips, spine, chest, neck, head
  • Left arm chain: leftShoulder, leftUpperArm, leftLowerArm, leftHand
  • Right arm chain: rightShoulder, rightUpperArm, rightLowerArm, rightHand
  • Left leg chain: leftUpperLeg, leftLowerLeg, leftFoot, leftToes
  • Right leg chain: rightUpperLeg, rightLowerLeg, rightFoot, rightToes

Reference:

Hand Animation Requirements

Hand animation requirements

Hand animation bone reference

For hand animation, complete finger chains are required on both sides. The following humanoid bones should be present and correctly mapped:

  • Left hand root: leftHand
  • Left thumb: leftThumbMetacarpal, leftThumbProximal, leftThumbDistal
  • Left index: leftIndexProximal, leftIndexIntermediate, leftIndexDistal
  • Left middle: leftMiddleProximal, leftMiddleIntermediate, leftMiddleDistal
  • Left ring: leftRingProximal, leftRingIntermediate, leftRingDistal
  • Left little: leftLittleProximal, leftLittleIntermediate, leftLittleDistal
  • Right hand root: rightHand
  • Right thumb: rightThumbMetacarpal, rightThumbProximal, rightThumbDistal
  • Right index: rightIndexProximal, rightIndexIntermediate, rightIndexDistal
  • Right middle: rightMiddleProximal, rightMiddleIntermediate, rightMiddleDistal
  • Right ring: rightRingProximal, rightRingIntermediate, rightRingDistal
  • Right little: rightLittleProximal, rightLittleIntermediate, rightLittleDistal

Each chain should extend to the distal bone so that hand poses and finger animation can be driven consistently.

Reference:

Lip Sync Animation Requirements

Mouth animation requirements

Lip-sync expression reference

For speech and lip-sync animation, the avatar should provide the standard VRM 1.0 mouth expressions:

  • aa
  • ih
  • ou
  • ee
  • oh

These expressions should be authored and functional in the uploaded avatar. They are used to drive speech-based lip sync and improve facial animation quality. If they are absent, mouth animation quality may be reduced.

Reference:

First-Person Face Occlusion Requirements

First-person face occlusion requirements

First-person face occlusion reference

For correct first-person viewing, the avatar should define appropriate VRM 1.0 first-person mesh settings for face- and head-related meshes. Any mesh that should not obstruct the first-person camera should be labeled as Third-Person Only.

This is especially important for:

  • Face skin
  • Head meshes
  • Eyelashes
  • Eyebrows
  • Any mesh that may block the camera in first-person view

Face-related meshes should be configured so that first-person viewing does not cause unwanted visual obstruction.

Reference: