Skip to content

[Feature]: Research — text→VRMA pipelines, Blender VRMA authoring, and 2D toon visemes on VRM #52

Description

@rosspeili

One-line summary

Open a research track for richer motion and mouth presentation: Hugging Face / local text-to-motion → Blender → .vrma, and optional 2D toon-style viseme overlays on VRM (as demonstrated in the wild with CC0 assets) — so AVATAR stays a player while authors can make “anything” offline.

Problem / motivation

Today AVATAR plays bundled + custom .vrma, fires one-shots from Motion Deck, and drives the mouth with amplitude lip sync. That is enough for a companion, but it leaves three gaps that keep showing up in community discussion:

  1. Authoring custom motion is still opaque — Settings → Directories → Animations can load any .vrma, yet contributors ask “where do the clips come from?” Docs already list Photo Booth / BOOTH / Blender / Kimodo-style research, but we have not investigated and documented a concrete, repeatable path that lands a clip in the Motion Deck.
  2. Text-to-motion is moving fast on Hugging Face, but outputs are usually SMPL / robot / generic skeletons — not VRM humanoid .vrma. Without a retarget → export story, those models stay demos, not AVATAR assets.
  3. 3D mouth blendshapes are not the only look — combining 2D sprites with VRM (toon mouth cards / sprite-sheet visemes) is underrated for “stand out” companions. Amplitude cycling on mesh visemes cannot express that style.

Prompt for this issue came from Jin (@dankvr on X · @madjin on GitHub), who pointed at Hugging Face text-to-motion, Blender VRMA pipelines, and the value of 2D+VRM hybrids — plus a concrete demo of 2D toon visemes on a VRM using CC0 Tubby Cats art (tweet, thanks also @VIANVOLAEUS for the tutorial thread).

This issue is discussion + investigation + small tests, not a commitment to ship a generator inside the Electron app.

Proposed solution

Treat this as a research spike with written findings and, if useful, tiny prototypes or docs PRs. Three workstreams that can proceed in parallel:

A. Blender → .vrma (highest leverage for “do anything”)

Jin’s point: if you can generate or hand-key animation in Blender and export VRMA, the rest of AVATAR (custom folder, Motion Deck, stage animation.play / mode: once) already consumes it.

Investigate and write down:

  • saturday06/VRM-Addon-for-BlenderVRM Animation import/export (humanoid bone rotations, hips translation, expression preview values; VRM 1.0 armature).
  • Minimal happy path: import a VRM humanoid → animate (or paste mocap) → export .vrma → drop into Settings → Directories → Animations → fire from Motion Deck.
  • Failure modes worth testing: missing T-pose, expression tracks ignored by our player, look-at unsupported on export, clip that loops when we wanted one-shot (Motion Deck already forces once playback).
  • Doc outcome: expand Bring your own .vrma with a short “Blender addon checklist” once verified — still player not authoring tool; we document, we do not bundle Blender.

B. Hugging Face / local text-to-motion → retarget → .vrma

Keep an eye on (and spike one end-to-end when time allows):

Family Why it matters Gap for AVATAR
NVIDIA Kimodo (docs, GitHub) Text (+ constraints) → 3D skeletal motion; commercial-ready humanoid models Output is not VRMA; needs retarget to VRM humanoid then Blender/UniVRM export
Tencent HY-Motion 1.0 Large DiT / flow-matching text→motion on SMPL-H Same retarget gap; VRAM-heavy
Others as they appear New HF spaces / papers Track license + skeleton format

Research questions (answer in comments / a short notes doc, not in product code first):

  1. What is the smallest offline pipeline that ends in a playable .vrma on a stock AVATAR build?
  2. Which licenses allow streaming / redistribution of generated clips vs personal use only?
  3. Should AVATAR ever call HF APIs? (Default no — local-first; generation stays outside the app, same stance as Kimodo/ARDY in current docs.)
  4. How do generated clips interact with Motion Deck (one-shot) vs Animations selection (loop)?

C. 2D toon visemes / sprites on VRM (presentation layer)

Investigate Jin’s demo direction and adjacent practice:

Spike ideas (pick one small experiment, document results):

  1. Authoring-only: can a VRM be prepared (Blender / Unity) with a mouth quad + sprite atlas so existing three-vrm expression weights still “work,” or does that require a different driver?
  2. Runtime overlay (Electron): billboard / plane in the Three.js scene, parented near the jaw bone, swap UVs or textures from the same amplitude (or a future phoneme) signal — body stays VRM, mouth is 2D.
  3. Hybrid: keep 3D body VRMA; only replace mouth presentation for “toon companion” skins.

Success for this spike is a decision memo: shipable in-app, docs-only recipe, or park until #9 / #43 land.

Alternatives considered

Primary surface

Animations

Constraints you accept

  • Should stay usable offline / local-first
  • Browser-only mode may remain limited vs Electron

Mock / sketch / reference (optional)

Constraints you accept expanded for this one

  • Should stay usable offline / local-first (generation offline or BYO; no mandatory cloud SaaS in the app)
  • Browser-only mode may remain limited vs Electron
  • AVATAR remains a player — authoring pipelines are documented or optional external tools, not bundled Blender/HF runtimes
  • Licensing of generated clips, CC0 packs (e.g. Tubby Cats), and VRM model terms stays on the user — same as custom Directories today

Community note from Jin / dankvr:

Keep an eye on Hugging Face for text to motion, and Blender pipelines. I believe there’s a Blender VRMA plugin so if you can generate animations there you can have and do anything.
Also in terms of animation I feel like combining 2D sprites with VRM is underrated and will help to make stuff stand out when used correctly.

Demo to study: x.com/dankvr/status/1849206006724829430 — 2D toon visemes on VRM + CC0 Tubby Cats; tutorial shout-out to @Vianvolaeus.

Tooling to verify:

Investigation checklist (for whoever picks this up)

  • Reproduce one Blender → .vrma → custom folder → Motion Deck one-shot on desktop
  • Note which expression / look-at channels survive into our player
  • List 2–3 HF text-to-motion models and their skeleton + license in a table comment
  • Attempt (or explicitly defer) one retarget path to VRM humanoid; record blockers
  • Watch / break down the dankvr 2D viseme demo; sketch how it would map onto three-vrm + our audio graph
  • Recommend: docs-only vs prototype overlay vs wait for [Feature]: Improve lip-sync beyond amplitude cycling (viseme quality) #9/[Feature]: VRM facial expressions (presets + triggers) #43
  • Optional: open follow-up issues once a lane is chosen (do not turn this ticket into an epic that never closes)

Out of scope (for this issue)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:animationsDefault sequence, VRMA clips, cross-fadearea:lip-syncVisemes, live green dot, mouth mappingarea:voiceAudio sources, capture, permissions, restartfeatureNew feature or improvement requestneeds designNeeds UX / visual decision before implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions