private (GameObject, IReadOnlyList <VRMShaders.MaterialFactory.MaterialLoadInfo>) ToUnity(GltfData data, VRMC_vrm vrm) { // Model => Unity using (var loader = new Vrm10Importer(data, vrm)) { var loaded = loader.Load(); return(loaded.gameObject, loader.MaterialFactory.Materials); } }
static GameObject Import(byte[] bytes, FileInfo path) { using (var data = Vrm10Data.ParseOrMigrate(path.FullName, bytes, doMigrate: true, out Vrm10Data result, out MigrationData migration)) using (var loader = new Vrm10Importer(result)) { var loaded = loader.Load(); loaded.ShowMeshes(); return(loaded.gameObject); } }
private (GameObject, IReadOnlyList <VRMShaders.MaterialFactory.MaterialLoadInfo>) ToUnity(GltfParser parser) { // Model => Unity using (var loader = new Vrm10Importer(parser)) { loader.Load(); loader.DisposeOnGameObjectDestroyed(); return(loader.Root, loader.MaterialFactory.Materials); } }
GameObject BuildGameObject(Vrm10Data data, bool showMesh) { using (var loader = new Vrm10Importer(data)) { var loaded = loader.Load(); if (showMesh) { loaded.ShowMeshes(); } loaded.EnableUpdateWhenOffscreen(); return(loaded.gameObject); } }
static GameObject Import(byte[] bytes, FileInfo path) { var parser = new GltfParser(); parser.Parse(path.FullName, bytes); using (var loader = new Vrm10Importer(parser)) { loader.Load(); loader.ShowMeshes(); return(loader.DisposeOnGameObjectDestroyed().gameObject); } }
GameObject BuildGameObject(GltfParser parser, bool showMesh) { using (var loader = new Vrm10Importer(parser)) { loader.Load(); if (showMesh) { loader.ShowMeshes(); } loader.EnableUpdateWhenOffscreen(); return(loader.DisposeOnGameObjectDestroyed().gameObject); } }
static GameObject Import(byte[] bytes, FileInfo path) { if (!Vrm10Parser.TryParseOrMigrate(path.FullName, bytes, doMigrate: true, out Vrm10Parser.Result result)) { return(null); } using (var loader = new Vrm10Importer(result.Data, result.Vrm)) { var loaded = loader.Load(); loaded.ShowMeshes(); return(loaded.gameObject); } }
public void EmptyThumbnailName() { using (var data = Vrm10Data.ParseOrMigrate(TestAsset.AliciaPath, true, out Vrm10Data vrm, out MigrationData migration)) { Assert.NotNull(vrm); var index = vrm.VrmExtension.Meta.ThumbnailImage.Value; // empty thumbnail name vrm.Data.GLTF.images[index].name = null; using (var loader = new Vrm10Importer(vrm)) { loader.LoadAsync(new VRMShaders.ImmediateCaller()).Wait(); } } }
async Task <RuntimeGltfInstance> LoadAsync(string path) { var data = new GlbFileParser(path).Parse(); if (!Vrm10Data.TryParseOrMigrate(data, true, out Vrm10Data vrm)) { throw new System.Exception("vrm parse error !"); } using (var loader = new Vrm10Importer(vrm)) { var instance = await loader.LoadAsync(); // VR用 FirstPerson 設定 var controller = instance.GetComponent <Vrm10Instance>(); await controller.Vrm.FirstPerson.SetupAsync(controller.gameObject); return(instance); } }
void LoadModel(string path) { if (!File.Exists(path)) { return; } Debug.LogFormat("{0}", path); var ext = Path.GetExtension(path).ToLower(); switch (ext) { case ".vrm": { if (!Vrm10Parser.TryParseOrMigrate(path, doMigrate: true, out Vrm10Parser.Result result)) { Debug.LogError(result.Message); return; } using (var loader = new Vrm10Importer(result.Data, result.Vrm)) { var loaded = loader.Load(); loaded.ShowMeshes(); loaded.EnableUpdateWhenOffscreen(); SetModel(loaded.gameObject); } break; } case ".glb": { var data = new GlbFileParser(path).Parse(); using (var loader = new UniGLTF.ImporterContext(data)) { var loaded = loader.Load(); loaded.ShowMeshes(); loaded.EnableUpdateWhenOffscreen(); SetModel(loaded.gameObject); } break; } case ".gltf": { var data = new GltfFileWithResourceFilesParser(path).Parse(); using (var loader = new UniGLTF.ImporterContext(data)) { var loaded = loader.Load(); loaded.ShowMeshes(); loaded.EnableUpdateWhenOffscreen(); SetModel(loaded.gameObject); } break; } case ".zip": { var data = new ZipArchivedGltfFileParser(path).Parse(); using (var loader = new UniGLTF.ImporterContext(data)) { var loaded = loader.Load(); loaded.ShowMeshes(); loaded.EnableUpdateWhenOffscreen(); SetModel(loaded.gameObject); } break; } default: Debug.LogWarningFormat("unknown file type: {0}", path); break; } }
async void LoadModel(string path) { if (!File.Exists(path)) { return; } Debug.LogFormat("{0}", path); GltfData data; try { data = new AutoGltfFileParser(path).Parse(); } catch (Exception ex) { Debug.LogWarning(ex); return; } var vrm = await System.Threading.Tasks.Task.Run(() => { if (Vrm10Data.TryParseOrMigrate(data, doMigrate: true, out Vrm10Data _vrm)) { return(_vrm); } else { return(null); } }); if (vrm != null) { // vrm using (var loader = new Vrm10Importer(vrm, materialGenerator: GetVrmMaterialDescriptorGenerator(m_useUrpMaterial.isOn), doNormalize: m_useNormalization.isOn)) { // migrate しても thumbnail は同じ var thumbnail = await loader.LoadVrmThumbnailAsync(); if (vrm.OriginalMetaBeforeMigration != null) { // migrated from vrm-0.x. use OldMeta m_texts.UpdateMeta(vrm.OriginalMetaBeforeMigration, thumbnail); } else { // load vrm-1.0. use newMeta m_texts.UpdateMeta(vrm.VrmExtension.Meta, thumbnail); } var instance = await loader.LoadAsync(new RuntimeOnlyAwaitCaller()); SetModel(instance); } } else { // gltf using (var loader = new UniGLTF.ImporterContext(data, materialGenerator: GetMaterialDescriptorGenerator(m_useUrpMaterial.isOn))) { var instance = await loader.LoadAsync(new RuntimeOnlyAwaitCaller()); SetModel(instance); } } }
void LoadModel(string path) { if (!File.Exists(path)) { return; } Debug.LogFormat("{0}", path); var ext = Path.GetExtension(path).ToLower(); switch (ext) { case ".vrm": { var parser = new UniGLTF.GltfParser(); parser.ParsePath(path); using (var loader = new Vrm10Importer(parser)) { loader.Load(); loader.ShowMeshes(); loader.EnableUpdateWhenOffscreen(); var destroyer = loader.DisposeOnGameObjectDestroyed(); SetModel(destroyer.gameObject); } break; } case ".glb": { var file = File.ReadAllBytes(path); var parser = new GltfParser(); parser.ParseGlb(file); using (var loader = new UniGLTF.ImporterContext(parser)) { loader.Load(); loader.ShowMeshes(); loader.EnableUpdateWhenOffscreen(); loader.ShowMeshes(); var destroyer = loader.DisposeOnGameObjectDestroyed(); SetModel(destroyer.gameObject); } break; } case ".gltf": case ".zip": { var parser = new GltfParser(); parser.ParsePath(path); using (var loader = new UniGLTF.ImporterContext(parser)) { loader.Load(); loader.ShowMeshes(); loader.EnableUpdateWhenOffscreen(); loader.ShowMeshes(); var destroyer = loader.DisposeOnGameObjectDestroyed(); SetModel(destroyer.gameObject); } break; } default: Debug.LogWarningFormat("unknown file type: {0}", path); break; } }