SpringBone

FastSpringBoneService.Instance

  • FastSpringBoneService.Instance is a singleton that collectively handles springs for all VRM-1.0 models

v0.106.0 apply external force every frame

external force

It is a function that assumes the expression of temporary force such as jumping and wind.

VRM10Instance instance;

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

Manual update of v0.106.0 SpringBone

Manual update

For special uses, such as spinning things around and stabilizing the SpringBone before starting.

  • Added FastSpringBoneService.UpdateTypes.Manual

  • Added 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);