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