diff --git a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs new file mode 100644 index 0000000000..30f26068d0 --- /dev/null +++ b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs @@ -0,0 +1,44 @@ +using System.Threading.Tasks; +using UniGLTF; +using UniGLTF.SpringBoneJobs.Blittables; +using UnityEngine; + +namespace UniVRM10 +{ + /// + /// SpcriptedImporter 経由の import 向け。 + /// NativeArray の確保や DontDestroyOnLoad を回避。 + /// + public class Vrm10NopSpringboneRuntime : IVrm10SpringBoneRuntime + { + public void Dispose() + { + } + + public Task InitializeAsync(Vrm10Instance instance, IAwaitCaller awaitCaller) + { + return Task.CompletedTask; + } + + public void Process() + { + } + + public bool ReconstructSpringBone() + { + return false; + } + + public void RestoreInitialTransform() + { + } + + public void SetJointLevel(Transform joint, BlittableJointMutable jointSettings) + { + } + + public void SetModelLevel(Transform modelRoot, BlittableModelLevel modelSettings) + { + } + } +} \ No newline at end of file diff --git a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs.meta b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs.meta new file mode 100644 index 0000000000..cb64688e30 --- /dev/null +++ b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10NopSpringboneRuntime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b58249c702cd4054480f69562b43b0b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs index 440143db38..c3c05ff387 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs @@ -54,7 +54,24 @@ public Vrm10Importer( m_externalMap = new Dictionary(); } - m_springboneRuntime = springboneRuntime ?? new Vrm10FastSpringboneRuntime(); + m_springboneRuntime = MakeDefaultRuntime(springboneRuntime, isAssetImport); + } + + static IVrm10SpringBoneRuntime MakeDefaultRuntime(IVrm10SpringBoneRuntime runtime, bool isAssetImport) + { + if (runtime != null) + { + return runtime; + } + + if (isAssetImport) + { + // 何もしない dummy + return new Vrm10NopSpringboneRuntime(); + } + + // Vrm10Instance.MakeRuntime に移譲 + return null; } static void AssignHumanoid(List nodes, UniGLTF.Extensions.VRMC_vrm.HumanBone humanBone, VrmLib.HumanoidBones key) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index 785dd573c3..dc07d28e48 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -230,6 +230,7 @@ QualitySettings: PSM: 5 PSP2: 2 Samsung TV: 2 + Server: 0 Standalone: 5 Switch: 5 Tizen: 2