private (GameObject, IReadOnlyList <VRMShaders.MaterialFactory.MaterialLoadInfo>) ToUnity(byte[] bytes) { // Vrm => Model using (var data = new GlbBinaryParser(bytes, "tmp.vrm").Parse()) using (var migrated = Vrm10Data.Migrate(data, out Vrm10Data result, out MigrationData migration)) { if (result == null) { throw new Exception(); } return(ToUnity(result)); } }
public void EmptyThumbnailName() { using (var data = new GlbFileParser(TestAsset.AliciaPath).Parse()) using (var migrated = Vrm10Data.Migrate(data, out var vrm1Data, out var migration)) { // Vrm10Data.ParseOrMigrate(TestAsset.AliciaPath, true, out Vrm10Data vrm, out MigrationData migration)) Assert.NotNull(vrm1Data); var index = vrm1Data.VrmExtension.Meta.ThumbnailImage.Value; // empty thumbnail name vrm1Data.Data.GLTF.images[index].name = null; using (var loader = new Vrm10Importer(vrm1Data)) { loader.LoadAsync(new VRMShaders.ImmediateCaller()).Wait(); } } }
public void Sample() { var path = "Tests/Models/Alicia_vrm-0.51/AliciaSolid_vrm-0.51.vrm"; Debug.Log($"load: {path}"); using (var data = new GlbFileParser(path).Parse()) using (var migrated = Vrm10Data.Migrate(data, out Vrm10Data result, out MigrationData migration)) { Assert.NotNull(result); var go = BuildGameObject(result, true); Debug.Log(go); // export var vrmBytes = Vrm10Exporter.Export(go, new EditorTextureSerializer()); Debug.Log($"export {vrmBytes.Length} bytes"); } }