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

SpringBone

FastSpringBoneService.Instance

  • FastSpringBoneService.Instance はシングルトンですべての VRM-1.0 モデルのスプリングをまとめて処理します

v0.106.0 毎フレーム外力を加える

外力

ジャンプや風など、一時的な力の表現を想定した機能です。

VRM10Instance instance;

// each frame
// 既存の Gravity に加算されます
instance.Runtime.ExternalForce = new Vector3(0.1f, 0, 0);

v0.106.0 SpringBone の手動更新

手動更新

開始前に処理を回して SpringBone を安定させるなど、特殊用途向けです。

  • FastSpringBoneService.UpdateTypes.Manual を追加
  • FastSpringBoneService.ManualUpdate を追加
// 管理している VRM-1.0 がすべて入っている
List<VRM10Instance> instances;

// setup
foreach(var instance in instances)
{
// SpringBone を手動にするために、
// VRM-1.0 本体も手動に変更している。
// VRM本体 => SpringBone という処理順を守る。
instance.UpdateType = UpdateTypes.None;
}
FastSpringBoneService.Instance.UpdateType = FastSpringBoneService.UpdateTypes.Manual;

// each frame
foreach(var instance in instances)
{
// SpringBone よりも先に VRM10Instance を更新
instance.Runtime.Process();
}
// 最後に FastSpringBoneService を更新
// すべての VRM-1.0 の SpringBone がまとめて処理されます。
FastSpringBoneService.Instance.ManualUpdate(time.deltaTime);