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-Blender — VRM 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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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