diff --git a/Assets/VRM10/Runtime/Migration/Migration.cs b/Assets/VRM10/Runtime/Migration/Migration.cs index 4965304f3..ded7b64fb 100644 --- a/Assets/VRM10/Runtime/Migration/Migration.cs +++ b/Assets/VRM10/Runtime/Migration/Migration.cs @@ -444,6 +444,12 @@ namespace UniVRM10 Migration.CheckMeta(vrm0["meta"], vrm1.Meta); Migration.CheckHumanoid(vrm0["humanoid"], vrm1.Humanoid); } + + public static void Check(ListTreeNode vrm0, UniGLTF.Extensions.VRMC_springBone.VRMC_springBone vrm1) + { + var a = 0; + // Migration.CheckSpringBone(vrm0["secondaryAnimation"], vrm1.sp) + } #endregion } } diff --git a/Assets/VRM10/Tests/MigrationTests.cs b/Assets/VRM10/Tests/MigrationTests.cs index 41fe7c900..f0a0bbd6f 100644 --- a/Assets/VRM10/Tests/MigrationTests.cs +++ b/Assets/VRM10/Tests/MigrationTests.cs @@ -17,22 +17,6 @@ namespace UniVRM10 } } - UniGLTF.Extensions.VRMC_vrm.VRMC_vrm GetVRMC_vrm(UniGLTF.glTFExtension extensions) - { - if (extensions is UniGLTF.glTFExtensionImport import) - { - foreach (var kv in import.ObjectItems()) - { - if (kv.Key.GetUtf8String() == UniGLTF.Extensions.VRMC_vrm.VRMC_vrm.ExtensionNameUtf8) - { - return UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.Deserialize(kv.Value); - } - } - } - - return default; - } - static ListTreeNode GetVRM0(byte[] bytes) { var glb = UniGLTF.Glb.Parse(bytes); @@ -40,6 +24,22 @@ namespace UniVRM10 return json["extensions"]["VRM"]; } + T GetExtension(UniGLTF.glTFExtension extensions, UniJSON.Utf8String key, Func, T> deserializer) + { + if (extensions is UniGLTF.glTFExtensionImport import) + { + foreach (var kv in import.ObjectItems()) + { + if (kv.Key.GetUtf8String() == key) + { + return deserializer(kv.Value); + } + } + } + + return default; + } + [Test] public void Migrate0to1() { @@ -50,10 +50,11 @@ namespace UniVRM10 var glb = UniGLTF.Glb.Parse(vrm1); var json = glb.Json.Bytes.ParseAsJson(); var gltf = UniGLTF.GltfDeserializer.Deserialize(json); - var VRMC_vrm = GetVRMC_vrm(gltf.extensions); - Assert.NotNull(VRMC_vrm); - Migration.Check(vrm0Json, VRMC_vrm); + Migration.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_vrm.VRMC_vrm.ExtensionNameUtf8, + UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.Deserialize)); + Migration.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_springBone.VRMC_springBone.ExtensionNameUtf8, + UniGLTF.Extensions.VRMC_springBone.GltfDeserializer.Deserialize)); } } }