メインコンテンツまでスキップ

playVrma

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

vrm.playVrma(options) はキャラクター上で VRMA アニメーションを開始します。

const character = await Vrm.spawn("my-mod:character");

await character.playVrma({
asset: "vrma:idle-maid",
repeat: repeat.forever(),
transitionSecs: 0.5,
});

オプション

オプションデフォルト説明
assetstring(必須)VRMA アニメーションのアセット ID
repeatVrmaRepeatリピートモード:repeat.forever()repeat.never()、または repeat.count(n)
transitionSecsnumber現在のアニメーションからのクロスフェード時間(秒)
waitForCompletionbooleanfalsetrue の場合、アニメーション完了までブロックします
resetSpringBonesbooleanfalsetrue の場合、バウンスアーティファクトを防ぐためにスプリングボーンの速度をリセットします

クロスフェードトランジション

transitionSecs を使用して、現在のアニメーションから新しいアニメーションへスムーズにブレンドします。

await character.playVrma({
asset: "vrma:idle-maid",
repeat: repeat.forever(),
transitionSecs: 0.5,
});

完了待機

waitForCompletion: true を設定すると、ワンショットアニメーションが完了するまでブロックします。

await character.playVrma({
asset: "my-mod:wave",
repeat: repeat.never(),
waitForCompletion: true,
});

// 手を振るアニメーション完了後にこの行が実行されます
await character.playVrma({
asset: "vrma:idle-maid",
repeat: repeat.forever(),
transitionSecs: 0.5,
});

スプリングボーンリセット

大きく異なるポーズのアニメーション間を切り替える場合、resetSpringBones: true を使用してスプリングボーンの速度をリセットします。

await character.playVrma({
asset: "vrma:grabbed",
repeat: repeat.forever(),
resetSpringBones: true,
});

ビルトインアニメーション

@hmcs/assets MOD は以下のデフォルト VRMA アニメーションを提供します:

アセット ID説明
vrma:idle-maid立ちアイドルアニメーション(ループ)
vrma:grabbedつかまれ/持ち上げポーズ(ループ)
vrma:idle-sitting座りアイドルアニメーション(ループ)