vrm-c / UniVRM

UniVRM is a gltf-based VRM format implementation for Unity. English is here https://vrm.dev/en/ . 日本語 はこちら https://vrm.dev/
https://vrm.dev/en
MIT License
2.64k stars 427 forks source link

Export時にエラーが発生する #366

Closed Yukoneko-User closed 4 years ago

Yukoneko-User commented 4 years ago

バグについて

そもそもExport出来ない状態に陥ることと、Exportしてもテクスチャのデータだけを残して他が消えてしまう現象

再現方法

Incident 1: マテリアルをMToonに変更済みのモデルを用意する。(アクセサリーで複数のMeshあり) 通常のExport手順を行う エラーが発生し「"モデルの名称"(normalized)」と名付けられたものがHierarchyに出来る。 ※この際、Export先に指定したファイルの中身は存在しない Incident 2: 原因がExo_Spine(Mesh)ということがわかり、非表示にする 通常のExport手順を行う 出力されたVRMファイルをUnityにinportする エラーが発生しテクスチャが入ったファイルとVRMファイルのみがファイルの中に存在する。

スクリーンショット

Incident 1: Error_1 Incident 2: Error_2

環境情報

hiroj commented 4 years ago

ご報告ありがとうございます 下記のissueと同じ現象の可能性があるため、UnityEditorのツールバーにある Edit >Preferences… > General から 「Compress Assets on Import」にチェックを入れた状態で再度Export&Importを試していただけますでしょうか。 https://github.com/vrm-c/UniVRM/issues/336 image

Yukoneko-User commented 4 years ago

チェックが入っている状態で試しましたが、変わらずエラーが発生しています

hiroj commented 4 years ago

Incident 1の2つめのエラーからの推測になってしまいますが、Mesh(SkinnedMeshRenderer)がスキニングのために参照していたボーンが無くなっていて出力に失敗している可能性があります。 Unityに読み込んだ元の状態からボーンの編集が行われたかどうか確認出来ますか? またExport時にエラーが出る状態で何れかのボーンを動かすと、Meshが参照していたボーンが無くなっている影響でスキニングがおかしくなる箇所があるかもしれないため合わせて確認をお願いいたします。

Yukoneko-User commented 4 years ago

Incident 1はExo_Spineの本来のRootBoneをモデルに追加することで解決出来ました、ですが2については相変わらず"MissingReferenceException: The object of type 'Material' has been destroyed but you are still trying to access it."というエラーが出ております。MeshのRootBoneを変更するのはこのエラーの原因となりますか?

hiroj commented 4 years ago

MeshのRootBone変更はエラーに影響はないと思われます。 MissingReferenceException: The object of type 'Material' has been destroyed but you are still trying to access it. 同じ内容のエラーが出ている #336 ではUnity2018.4でImportすると正常にImport出来る場合があったため、お手数かけて申し訳ないのですがUnity2018.4または2019系でImportを試していただけるでしょうか。

Yukoneko-User commented 4 years ago

2018.4.14f1でUniVRMのImport及びモデルのExportを行いました。特に問題なくPrefabが生成されましたが、Assertion failed on expression: 's_AssetProgressBar.dialog'というエラーが発生しました。これは何か影響を及ぼしますか? 補足:Compress Assets on Importにチェックを入れた状態でUniVRMのImportを行いました

hiroj commented 4 years ago

Assertion failed on expression: 's_AssetProgressBar.dialog' 恐らくですが変換中に出ているプログレスバーでエラーで何等かのAssertionが失敗しているだけのようなので、入出力のファイルやプレハブには影響は無いと思います。こちらでもエラーが確認できた場合は追って調査致します。 また、Unity 2017.4.28f1でMissingReferenceExceptionを回避する方法が見つかり次第修正を入れます。

hiroj commented 4 years ago

Unity 2017.4の公式サポートが切れたため、このissueはクローズします。