Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

同名メッシュが100以上あるときにも対応 #586

Merged
merged 2 commits into from
Oct 27, 2020

Conversation

fantom1x
Copy link
Contributor

UniVRM 0.59 から入っているメッシュの同名修正:ImporterContext.FixUnique(), MakeUniqueName() ですが、割と古い VRMモデルや GLBなどの背景モデルでは同名メッシュが 100個を超えることもあるので、エラーが出て、ロードができないことがあるようです。

FixUnique_support_over100_hierarchy
(※髪の毛やスカート、装飾など、メッシュが結合されてないモデルもある)

(例) vrm
https://3d.nicovideo.jp/works/td41774

(UniVRM 0.59 以降で同名が大量にあるときのロード)
FixUnique_support_over100_original

 
なので試しに、ImporterContext.MakeUniqueName() 内のループ回数の代わりに GUID にしてみたら、上手くロードできるようになりました。

(GUIDにした修正版)
FixUnique_support_over100_edited

ただ、GUID にする場合、MakeUniqueName() でループを回す必要性は無くなるので、FixUnique() の中にまとめてみました。
実質、MakeUniqueName() が不要になってしまいましたが、念のため、削除などのご判断はお任せします(笑)。

 
バグレポでも良かったんですが、コードの方がわかりやすい気がしたので、修正の参考にでもして下さい。

@hiroj hiroj requested a review from ousttrue October 26, 2020 05:11
Copy link
Contributor

@ousttrue ousttrue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

正常に動作することを確認しました

@ousttrue ousttrue added this to the v0.62 milestone Oct 27, 2020
@ousttrue
Copy link
Contributor

ついでに MakeUniqueName を削除しました。

@ousttrue ousttrue merged commit e1690d0 into vrm-c:master Oct 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants