This commit is contained in:
ousttrue
2022-11-08 13:02:14 +09:00
parent 0a8931c3e2
commit a830dd657b

View File

@@ -3,35 +3,16 @@
## FastSpringBoneService.Instance
* FastSpringBoneService.Instance はシングルトンですべての VRM-1.0 モデルのスプリングをまとめて処理します
## `v0.106.0` SpringBone の手動更新
* FastSpringBoneService.UpdateTypes.Manual を追加
* FastSpringBoneService.ManualUpdate を追加
```csharp
List<VRM10Instance> instances;
// setup
foreach(var instance in instances)
{
instance.UpdateType = UpdateTypes.None;
}
FastSpringBoneService.Instance.UpdateType = FastSpringBoneService.UpdateTypes.Manual;
// each frame
// 先に VRM10Instance を更新
foreach(var instance in instances)
{
instance.Runtime.Process();
}
// 最後に FastSpringBoneService を更新
FastSpringBoneService.Instance.ManualUpdate(time.deltaTime);
```
## `v0.106.0` 毎フレーム外力を加える
- [\# 1863](https://github.com/vrm-c/UniVRM/pull/1868)
```{admonition} 外力
:class: info
ジャンプや風など、一時的な力の表現を想定した機能です。
```
```csharp
VRM10Instance instance;
@@ -39,3 +20,39 @@ VRM10Instance instance;
// 既存の Gravity に加算されます
instance.Runtime.ExternalForce = new Vector3(0.1f, 0, 0);
```
## `v0.106.0` SpringBone の手動更新
```{admonition} 手動更新
:class: info
開始前に処理を回して SpringBone を安定させるなど、特殊用途向けです。
```
* FastSpringBoneService.UpdateTypes.Manual を追加
* FastSpringBoneService.ManualUpdate を追加
```csharp
// 管理している 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);
```