예제 #1
0
 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));
         }
 }
예제 #2
0
파일: LoadTests.cs 프로젝트: vrm-c/UniVRM
        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();
                    }
                }
        }
예제 #3
0
        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");
                }
        }