Skip to main content

modifyMouth

import { Vrm } from "@hmcs/sdk";

vrm.modifyMouth(weights) sets mouth-specific expressions for lip-sync. Unspecified mouth expressions are reset to 0.0, but non-mouth overrides (like happy or blink) are preserved.

// Set mouth shape for "ah" sound
await character.modifyMouth({ aa: 0.8 });

// Change to "oh" sound -- aa resets to 0, other overrides stay
await character.modifyMouth({ oh: 1.0 });

// Close mouth -- all mouth expressions reset to 0
await character.modifyMouth({});

This separation lets you control lip-sync independently from emotional expressions.