gltf-extensions icon indicating copy to clipboard operation
gltf-extensions copied to clipboard

GLTF Rigged Avatars with NLA Animations – Unsolved Challenges

Open EvieMarie opened this issue 3 years ago • 0 comments

Current successful working process:

  1. Rigged avatar creation.
  2. Imported into Mixamo.
  3. Export one skinned and xx unskinned animations.
  4. Import all into Blender.
  5. Save skinned avatar with all animations (Mixamo or other) through NLA process.
  6. Export as GLTF.
  7. Import into a world that accepts GLTF avatars. If world allows, animations can be called by animation name. Calling animation wildcard plays all animations at once.

CHALLENGE: appending additional animation with/without prop in an environment.

Example One (with prop): Avatar walks up to a table and sits (internal animation). Touches a coffee mug, picks it up and drinks (external animation)

Example Two (without prop): Avatar attends a music event and dances (internal animations). When the musician plays the Macarena, Avatar touches dance ball and chooses the Macarena Dance (external animation).

Discussions on topic have included possible avenues:

  1. animated skeleton (skinned with prop) appended to original skeleton or root?
  2. animated skeleton replacing existing skeleton within gltf (prop appended to specific bone).
  3. import/export problem • Blender exporter? • GLTF importer? • three.js bug?

** could solution already exist but not properly executed somewhere in process chain?

CHALLENGE: In order to make the above work in a generalized manner, Bone Mapping/Name Standardization/Scaling must also be considered:

  1. How many bones?
  2. Bone names?
  3. Mapping API to identify 1) and 2) above?
  4. How to apply adopted GLTF standards to any avatar – including the Mixamo skeletal animations.
  5. Scaling of unskinned animations to match current avatar size.

EvieMarie avatar Dec 17 '21 00:12 EvieMarie