diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs index 5ab9e55a8..ee0c53b02 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs @@ -52,6 +52,10 @@ namespace UniGLTF MATERIALS_GREATER_THAN_SUBMESH_COUNT, MATERIALS_CONTAINS_NULL, UNKNOWN_SHADER, + + [LangMsg(Languages.en, "Meshes containing BlendShapes with multiple Frames cannot be exported")] + [LangMsg(Languages.ja, "複数Frameを持つBlendShapeを含むMeshはエクスポートできません")] + MULTIFRAME_BLENDSHAPE, } public IEnumerable Validate(GameObject ExportRoot) @@ -78,6 +82,22 @@ namespace UniGLTF yield return Validation.Error($"{info.Renderers}: {Messages.MATERIALS_CONTAINS_NULL.Msg()}"); } } + + // blendShapeFrame + var shapeCount = info.Mesh.blendShapeCount; + var multiFrameShapes = new List(); + for (int i = 0; i < shapeCount; ++i) + { + if (info.Mesh.GetBlendShapeFrameCount(i) > 1) + { + multiFrameShapes.Add($"[{i}]({info.Mesh.GetBlendShapeName(i)})"); + } + } + if (multiFrameShapes.Count > 0) + { + var names = String.Join(", ", multiFrameShapes); + yield return Validation.Error($"{names}: {Messages.MULTIFRAME_BLENDSHAPE.Msg()}", ValidationContext.Create(info.Renderers[0].Item1)); + } } foreach (var m in Meshes.GetUniqueMaterials())