diff --git a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs index 1e154dffb..c0561cb56 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs @@ -284,6 +284,10 @@ namespace UniVRM10 public void ExportVrmExpression(ExpressionManager src, List _, List materials, List nodes) { + if (Storage.gltfVrm.Expressions == null) + { + Storage.gltfVrm.Expressions = new List(); + } foreach (var x in src.ExpressionList) { Storage.gltfVrm.Expressions.Add(x.ToGltf(nodes, materials)); diff --git a/Assets/VRM10/Runtime/IO/VrmExpressionAdapter.cs b/Assets/VRM10/Runtime/IO/VrmExpressionAdapter.cs index b03d9057b..c4d30c371 100644 --- a/Assets/VRM10/Runtime/IO/VrmExpressionAdapter.cs +++ b/Assets/VRM10/Runtime/IO/VrmExpressionAdapter.cs @@ -116,18 +116,25 @@ namespace UniVRM10 OverrideLookAt = EnumUtil.Cast(x.OverrideLookAt), OverrideMouth = EnumUtil.Cast(x.OverrideMouth), }; + + g.MorphTargetBinds = new List(); foreach (var blendShapeBind in x.MorphTargetBinds) { g.MorphTargetBinds.Add(blendShapeBind.ToGltf(nodes)); } + + g.MaterialColorBinds = new List(); foreach (var materialColorBind in x.MaterialColorBinds) { g.MaterialColorBinds.Add(materialColorBind.ToGltf(materials)); } + + g.TextureTransformBinds = new List(); foreach (var materialUVBind in x.TextureTransformBinds) { g.TextureTransformBinds.Add(materialUVBind.ToGltf(materials)); } + return g; }