Nodes/Kimodo Motion Bridge/Kimodo Render Rive Skinned Character
ComfyUI Node

Kimodo Render Rive Skinned Character

Watch a real Rive character do what you typed

By GuardSkill·Created a day ago·Updated a day ago· 0
Kimodo Render Rive Skinned Character
  • motion
  • video_mp4
  • preview_gif
  • asset_zip
rive_skin_pathbuiltin:Zombie_Character.riv
filename_prefixkimodo_rive_character
sample_index0
viewfront
bone_mapping_jsonbuiltin:zombie-kimodo-map.json
pixels_per_meter240.00
include_root_motiontrue
width720
height720

Every other node in this pack shows you a skeleton or hands you files for another tool. Kimodo Render Rive Skinned Character is the one that makes you a video of an actual character doing the generated motion - it takes an authored, weighted .riv character (2D, skinned, with bones), drives it with the Kimodo motion through Rive's real runtime, and renders MP4 + GIF out. It's the node you reach for when you want to see the result instead of the plumbing.

The great news: it runs out of the box

The rive_skin_path default is builtin:Zombie_Character.riv and bone_mapping_json defaults to builtin:zombie-kimodo-map.json - the pack ships a redistributable, MIT-licensed Rive Zombie skin with a pre-made bone map. Wire up the standard chain (Load Model → Text Encode → Sampler → this node), leave the builtins, and queue. You get a zombie doing your prompt with zero asset work. That's unusually generous for a pack like this and it's the fastest way to see what the whole thing is for.

Inputs that matter

  • motion - from the sampler (add Kimodo Post Process first for clean feet).
  • rive_skin_path - builtin: for the demo, or your own authored, weighted .riv under ComfyUI/input/rive/ (e.g. rive/MyCharacter.riv) or an absolute path.
  • bone_mapping_json - maps target Rive bone names to Kimodo joints. Leave builtin for the Zombie; for a new rig you write a JSON mapping like "hips": "pelvis", "body": ["spine1", "spine2", "spine3"], … If bone names don't match, the character won't animate - this is the file to edit.
  • view (front/side), pixels_per_meter, include_root_motion, and render resolution width/height (default 720²) round it out.

Outputs: video_mp4, preview_gif, and asset_zip (a reusable bundle with the skin, motion JSON, and bone map).

The mechanism and its prerequisites

The .riv file is never rewritten. Instead, the pack loads it through the official Rive Canvas Advanced runtime, then drives the character's existing weighted bones with the projected Kimodo track. Because it renders for real (not a stick figure), it needs the browser stack the other Rive node hints at: Node.js 18+ with npm, ffmpeg/ffprobe on PATH, and a Chromium browser - Playwright Chromium is supported. The pack's install.py runs npm ci for the runtime; if you skipped install steps, rendering fails with a "npm not found" or missing-Chromium error while the rest of the pack works fine. Core generation doesn't need any of this; this node does.

Honest caveats

  • It's still a 2D projection. Front-view characters can't convincingly twist or turn around from 3D motion alone - that requires authored views or state-machine art swaps in Rive, per the README.
  • New rigs = new bone map. The Zombie works instantly; your own character needs a bone_mapping_json that matches its actual bone names, which is fiddly the first time.

If you want the single most "whoa, it works" demo from the Kimodo pack - type a sentence, get a video of a zombie walking and waving - this is the node.

CategoryKimodo/Export

Inputs (10)

NameTypeDefaultDescription
motionKIMODO_MOTION
rive_skin_pathSTRINGbuiltin:Zombie_Character.rivAuthored and weighted .riv skin; builtin: uses the packaged demo
filename_prefixSTRINGkimodo_rive_character
sample_indexINT00–15
viewCOMBOfront2 options: front, side
bone_mapping_jsonoptSTRINGbuiltin:zombie-kimodo-map.jsonTarget Rive bone -> Kimodo bone name(s).
pixels_per_meteroptFLOAT240.001–2000
include_root_motionoptBOOLEANtrue
widthoptINT720128–2048
heightoptINT720128–2048

Outputs (3)

NameTypeDescription
video_mp4STRING
preview_gifSTRING
asset_zipSTRING