From 6ead0f20993d69112db655f27653ddae5dad9e6c Mon Sep 17 00:00:00 2001 From: ousttrue Date: Thu, 17 Apr 2025 15:33:16 +0900 Subject: [PATCH] GltfDuplicatedNameConversionRule.FixNames --- .../UniGLTF/IO/GltfDuplicatedNameConversionRule.cs | 10 ++++++++++ Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs | 6 +----- Assets/UniGLTF/Tests/UniGLTF/GlbParserTests.cs | 2 +- Assets/VRM/Tests/MToonTest.cs | 1 + Assets/VRM/Tests/VRMTextureEnumerateTests.cs | 2 ++ Assets/VRM10/Tests/MaterialImportTests.cs | 1 + 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfDuplicatedNameConversionRule.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfDuplicatedNameConversionRule.cs index ea1bfa18c..f6d2002d4 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfDuplicatedNameConversionRule.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfDuplicatedNameConversionRule.cs @@ -204,6 +204,16 @@ namespace UniGLTF } } + // `v0.129.0` GlbLowLevelParser.Parse からこちらに移動 + public static void FixNames(glTF GLTF) + { + FixMeshNameUnique(GLTF); + FixTextureNameUnique(GLTF); + FixMaterialNameUnique(GLTF); + FixNodeName(GLTF); + FixAnimationNameUnique(GLTF); + } + public static void FixNodeNameUnique(glTF GLTF) { var m_uniqueNameSet = new HashSet(); diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs index b41fa5eed..d94f52e4b 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs @@ -155,11 +155,7 @@ namespace UniGLTF await awaitCaller.Run(() => { // `v0.129.0` GlbLowLevelParser.Parse からこちらに移動 - GltfDuplicatedNameConversionRule.FixMeshNameUnique(GLTF); - GltfDuplicatedNameConversionRule.FixTextureNameUnique(GLTF); - GltfDuplicatedNameConversionRule.FixMaterialNameUnique(GLTF); - GltfDuplicatedNameConversionRule.FixNodeName(GLTF); - GltfDuplicatedNameConversionRule.FixAnimationNameUnique(GLTF); + GltfDuplicatedNameConversionRule.FixNames(GLTF); }); } diff --git a/Assets/UniGLTF/Tests/UniGLTF/GlbParserTests.cs b/Assets/UniGLTF/Tests/UniGLTF/GlbParserTests.cs index 2e187bbe8..a39dcab17 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/GlbParserTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/GlbParserTests.cs @@ -35,7 +35,7 @@ namespace UniGLTF var parser = new GlbLowLevelParser("Test", data.ToGlbBytes()); using (var parsed = parser.Parse()) { - GltfDuplicatedNameConversionRule.FixTextureNameUnique(parsed.GLTF); + GltfDuplicatedNameConversionRule.FixNames(parsed.GLTF); Assert.AreEqual("FooBar", parsed.GLTF.textures[0].name); // NOTE: 大文字小文字が違うだけの名前は、同一としてみなされ、Suffix が付く。 diff --git a/Assets/VRM/Tests/MToonTest.cs b/Assets/VRM/Tests/MToonTest.cs index da25735e7..dce2f396a 100644 --- a/Assets/VRM/Tests/MToonTest.cs +++ b/Assets/VRM/Tests/MToonTest.cs @@ -69,6 +69,7 @@ namespace VRM var path = AliciaPath; using (var data = new GlbFileParser(path).Parse()) { + GltfDuplicatedNameConversionRule.FixNames(data.GLTF); var vrmImporter = new VRMImporterContext(new VRMData(data), null); var materialParam = new BuiltInVrmMaterialDescriptorGenerator(vrmImporter.VRM).Get(data, 0); Assert.AreEqual("VRM/MToon", materialParam.Shader.name); diff --git a/Assets/VRM/Tests/VRMTextureEnumerateTests.cs b/Assets/VRM/Tests/VRMTextureEnumerateTests.cs index 3a83ab4b2..ead20536f 100644 --- a/Assets/VRM/Tests/VRMTextureEnumerateTests.cs +++ b/Assets/VRM/Tests/VRMTextureEnumerateTests.cs @@ -61,6 +61,7 @@ namespace VRM new ArraySegment(Array.Empty()) )) { + GltfDuplicatedNameConversionRule.FixNames(data.GLTF); var vrm = new glTF_VRM_extensions { materialProperties = new List @@ -124,6 +125,7 @@ namespace VRM new ArraySegment(Array.Empty()) )) { + GltfDuplicatedNameConversionRule.FixNames(data.GLTF); var vrm = new glTF_VRM_extensions { materialProperties = new List diff --git a/Assets/VRM10/Tests/MaterialImportTests.cs b/Assets/VRM10/Tests/MaterialImportTests.cs index 019c6e33b..abf9e9ece 100644 --- a/Assets/VRM10/Tests/MaterialImportTests.cs +++ b/Assets/VRM10/Tests/MaterialImportTests.cs @@ -23,6 +23,7 @@ namespace UniVRM10 var migratedBytes = MigrationVrm.Migrate(File.ReadAllBytes(AliciaPath)); using (var data = new GlbLowLevelParser(AliciaPath, migratedBytes).Parse()) { + GltfDuplicatedNameConversionRule.FixNames(data.GLTF); var matDesc = new BuiltInVrm10MaterialDescriptorGenerator().Get(data, 0); Assert.AreEqual("Alicia_body", matDesc.Name);