VRM-1.0
var vrm = await Vrm10.LoadPathAsync(
path,
canLoadVrm0X: true,
normalizeTransform: true,
showMeshes: false,
awaitCaller: new RuntimeOnlyAwaitCaller(),
materialGenerator: new Vrm10UrpMaterialDescriptorGenerator(),
vrmMetaInformationCallback: updateMeta,
ct: cancellationToken
);
if (vrm) {
m_instance = vrm.GetComponent<RuntimeGltfInstance>();
}
Code language: C# (cs)
ドキュメント:
Runtime Load (v1.0~) | UniVRM Programming ドキュメント [公式]
コード:
LoadModel – VRM10ViewerUI.cs at v0.109.0 – GitHub
LoadPathAsync – Vrm10.cs at v0.109.0 – GitHub
LoadAsync – Vrm10Importer.cs at v0.109.0 – GitHub
非同期読み込み
バージョン 0.44 以降で LoadAsync
を使う場合、次のような非同期関数でモデルを読み込む。
private async Task<GameObject> LoadVrmAsync(string vrmFilePath) { var parser = new GltfParser(); await Task.Run(() => { var file = File.ReadAllBytes(vrmFilePath); parser.ParseGlb(file); }); using (var context = new VRMImporterContext(parser)) { await context.LoadAsync(); context.EnableUpdateWhenOffscreen(); context.ShowMeshes(); context.DisposeOnGameObjectDestroyed(); return context.Root; } }
(出典:UniVRM )
ドキュメント:
Runtime Import (v0.44 ~) | UniVRM Programming ドキュメント [公式]
DisposeOnGameObjectDestroyed (v0.68 ~) | UniVRM Programming ドキュメント [公式]
参考:
UniVRM を使って VRM モデルをランタイムロードする方法 v0.44 – Qiita
VRM のランタイムロードがなんもわからん | simplestar の技術ブログ
Await Caller
- ImmediateCaller: タスクを即時に実行する/同期実行したい場合に用いる (デフォルト)
- RuntimeOnlyAwaitCaller: ランタイム時に非同期実行する
ドキュメント:
Runtime Import 非同期ロード (v0.87 ~) | UniVRM Programming ドキュメント [公式]
VrmUtility
VrmUtility.LoadAsync
を使って、非同期で VRM ファイルを読み込む。
VrmUtility.MaterialGeneratorCallback materialCallback = (VRM.glTF_VRM_extensions vrm) => GetVrmMaterialGenerator(m_useUrpMaterial.isOn, vrm);
VrmUtility.MetaCallback metaCallback = m_texts.UpdateMeta;
var instance = await VrmUtility.LoadAsync(path, GetIAwaitCaller(m_useAsync.isOn), materialCallback, metaCallback);
SetModel(instance);
Code language: C# (cs)
(出典:UniVRM )
ドキュメント:
簡単 API (v0.95 ~) | UniVRM Programming ドキュメント [公式]
コード:
VRM ファイルからモデルをロードするだけ (nishi-yuki) – GitHub Gist
参考:
VrmUtility で VRM ファイルをランタイムロードするメモ | にし
VRM0 から VRM1 への変換
ドキュメント:
ドキュメント
Load – VRM-1.0 API | UniVRM Programming ドキュメント [公式]