diff --git a/en/.doctrees/environment.pickle b/en/.doctrees/environment.pickle index 42d23b63e..5c80b1067 100644 Binary files a/en/.doctrees/environment.pickle and b/en/.doctrees/environment.pickle differ diff --git a/en/.doctrees/implementation/fast_spring_bone.doctree b/en/.doctrees/implementation/fast_spring_bone.doctree new file mode 100644 index 000000000..5a3da5657 Binary files /dev/null and b/en/.doctrees/implementation/fast_spring_bone.doctree differ diff --git a/en/.doctrees/index.doctree b/en/.doctrees/index.doctree index 0708c953e..1d979b2a8 100644 Binary files a/en/.doctrees/index.doctree and b/en/.doctrees/index.doctree differ diff --git a/en/_sources/implementation/fast_spring_bone.md.txt b/en/_sources/implementation/fast_spring_bone.md.txt new file mode 100644 index 000000000..5f2e40c93 --- /dev/null +++ b/en/_sources/implementation/fast_spring_bone.md.txt @@ -0,0 +1,47 @@ +# FastSpringBoneについて + +## 概要 +UniVRMでは、DOTSを利用した高速なSpringBone実装である「FastSpringBone」を用意しています。 + +揺れ物の各房を並列処理・最適化することで1フレームあたりの処理時間を大幅に抑えます。 + +VRM0.x と VRM1.0 で、それぞれFastSpringBoneの立ち位置・実装が異なります。 + +## VRM 1.0 での FastSpringBone の概要 +VRM1.0ではFastSpringBoneが揺れものの標準実装です。 + +VRMのライフサイクルに紐付いて自動的に生成・破棄されます。 + +## VRM 0.x での FastSpringBone の概要 +VRM0.xでは後方互換性を保つため、デフォルトでは従来のDOTS実装でないSpringBoneで動作します。 + +VRM0.x向けのFastSpringBone実装は `VRM/Runtime/FastSpringBone` ディレクトリにあります。 + +## VRM 0.x での FastSpringBone の導入方法 +差し替えを行いたいタイミングで `FastSpringBoneReplacer.ReplaceAsync` を呼び出してください + +これを明示的に呼ばなければ、従来のSpringBoneのまま動作します。 + +```cs +using (var loader = new UniGLTF.ImporterContext(data)) +{ + var instance = await loader.LoadAsync(); + SetModel(instance); +} +FastSpringBoneReplacer.ReplaceAsync(instance.Root) + +instance.EnableUpdateWhenOffscreen(); +instance.ShowMeshes(); +``` + +## Burstの導入について +UniVRM に加えて Burst を別途導入すると、 FastSpringBone が Burst によって高速化されます。 + +Burst の導入方法は [こちら](https://docs.unity3d.com/ja/2019.4/Manual/upm-ui-install.html) をご参照ください。 + +## FastSpringBoneServiceについて +FastSpringBone が実行されると、`FastSpringBone Service` GameObject が `DontDestroyOnLoad` で生成されます。 + +これは全 VRM の FastSpringBone を集め、バッファの構築や、 FastSpringBone の実行タイミングの制御などを行う GameObject です。 + +明示的に破棄を行いたい場合は `FastSpringBoneService.Free` を呼んでください。 diff --git a/en/_sources/index.md.txt b/en/_sources/index.md.txt index c35471bcf..de619c407 100644 --- a/en/_sources/index.md.txt +++ b/en/_sources/index.md.txt @@ -53,6 +53,7 @@ vrm0/firstperson implementation/runtime_resource_management implementation/texture_manipulation implementation/coordinate +implementation/fast_spring_bone ``` ### Samples diff --git a/en/implementation/coordinate.html b/en/implementation/coordinate.html index 1d240c04f..91cacb7a5 100644 --- a/en/implementation/coordinate.html +++ b/en/implementation/coordinate.html @@ -17,7 +17,7 @@ - +