From 77a8c21213fc8e5d33cd65a1276c05f7a5a5127e Mon Sep 17 00:00:00 2001 From: ousttrue Date: Mon, 19 Jul 2021 12:34:14 +0900 Subject: [PATCH 1/2] fix GetOrLoadExpression --- Assets/VRM10/Runtime/IO/Vrm10Importer.cs | 44 ++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs index 14c386d5e..351022032 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs @@ -267,16 +267,40 @@ namespace UniVRM10 clip.OverrideLookAt = expression.OverrideLookAt; clip.OverrideMouth = expression.OverrideMouth; - clip.MorphTargetBindings = expression?.MorphTargetBinds?.Select(x => x.Build10(Root, m_map, m_model)) - .ToArray(); - clip.MaterialColorBindings = expression?.MaterialColorBinds?.Select(x => x.Build10(MaterialFactory.Materials)) - .Where(x => x.HasValue) - .Select(x => x.Value) - .ToArray(); - clip.MaterialUVBindings = expression?.TextureTransformBinds?.Select(x => x.Build10(MaterialFactory.Materials)) - .Where(x => x.HasValue) - .Select(x => x.Value) - .ToArray(); + if (expression.MorphTargetBinds != null) + { + clip.MorphTargetBindings = expression.MorphTargetBinds?.Select(x => x.Build10(Root, m_map, m_model)) + .ToArray(); + } + else + { + clip.MorphTargetBindings = new MorphTargetBinding[] { }; + } + + if (expression.MaterialColorBinds != null) + { + clip.MaterialColorBindings = expression.MaterialColorBinds.Select(x => x.Build10(MaterialFactory.Materials)) + .Where(x => x.HasValue) + .Select(x => x.Value) + .ToArray(); + } + else + { + clip.MaterialColorBindings = new MaterialColorBinding[] { }; + } + + if (expression.TextureTransformBinds != null) + { + clip.MaterialUVBindings = expression?.TextureTransformBinds?.Select(x => x.Build10(MaterialFactory.Materials)) + .Where(x => x.HasValue) + .Select(x => x.Value) + .ToArray(); + } + else + { + clip.MaterialUVBindings = new MaterialUVBinding[] { }; + } + m_expressions.Add(clip); } return clip; From e57235d0a0f905b5b5b2bb05ecdc4863beb9e84f Mon Sep 17 00:00:00 2001 From: ousttrue Date: Mon, 19 Jul 2021 12:37:14 +0900 Subject: [PATCH 2/2] fix ExpressionTest --- Assets/VRM10/Tests/SerializationTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/VRM10/Tests/SerializationTests.cs b/Assets/VRM10/Tests/SerializationTests.cs index 4740b2846..85f0aca51 100644 --- a/Assets/VRM10/Tests/SerializationTests.cs +++ b/Assets/VRM10/Tests/SerializationTests.cs @@ -212,7 +212,7 @@ namespace UniVRM10 data.OverrideBlink = UniGLTF.Extensions.VRMC_vrm.ExpressionOverrideType.block; var json = Serialize(data, UniGLTF.Extensions.VRMC_vrm.GltfSerializer.__expressions_Serialize_Custom_ITEM); - Assert.AreEqual($"{{{q}preset{q}:{q}custom{q},{q}overrideBlink{q}:{q}block{q},{q}overrideLookAt{q}:{q}none{q},{q}overrideMouth{q}:{q}none{q}}}", json); + Assert.AreEqual($"{{{q}overrideBlink{q}:{q}block{q},{q}overrideLookAt{q}:{q}none{q},{q}overrideMouth{q}:{q}none{q}}}", json); } {