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

バグ報告: Blenderで編集したVRM1.0モデルがPythonエラーでエクスポートできない / VRM 1.0 Models Edited in Blender Failing to Export Due to Python Errors #675

Open
teresayawn opened this issue Dec 10, 2024 · 5 comments

Comments

@teresayawn
Copy link

バグについて

Blender4.2または4.3でVRM1.0のアバター編集時、メッシュオブジェクトを追加すると、Pythonエラーでエクスポートできなくなるケースがあります(下図:Fig1)。エラーメッセージの内容は、図の下のリンクから確認できます

Clipboard_12-10-2024_01
Python Traceback.txt

バグの再現方法

バグの発生要件は特定できていませんが、少なくとも、Brender4.2または4.3において、VRM1.0モデルの出力時にPythonエラーを返されます。ただし、Blender3.6ではこのような問題は起きません。また、どのバージョンから問題が起きるか、特定できていません。

図ではVroidアバター間(ともにVRM1.0)でHairオブジェクトとFaceオブジェクトの交換作業を行う途中、エクスポートを試みたところ、Pythonエラーが返されています。

今回のエラー再現実験について述べると、まず、HairメッシュとFaceメッシュの交換目的でVRMモデルを2体重ねてインポートします。次に、後から追加したモデルのHairとFaceだけ残し、アーマチュア、コライダーを含め残りのオブジェクトを全て削除します。そして、両オブジェクトの親を最初にインポートしたモデルのArmatureに変更します。付随してきたアーマチュアモディファイアの対象も同Armatureに変更します。

この時点で、Blender3.6であれば、VRM1.0ファイルを出力できるのですが、Blender4.2または4.3では、上図のようなPythonエラーを返され出力できません。送り側モデルがVRM0.x系であっても、受け側がVRM1.0であれば同様なエラーとなります。

ただし、Hairオブジェクトにアーマチュアモディファイアを設定しなければエラーは返されず出力できます。一方で、Faceオブジェクトは、アーマチュアモディファイアの設定に直接関係ないようであり、このケースでは、Hairオブジェクトに反応しているようです。

対処法として、Hair、Faceの送り手側モデルの髪に設定したスプリングボーンだけを残して、その他の送り手モデルのボーンを全て削除します。そして、オブジェクトモードで受け側Armatureに残ったプリングボーンを結合させます。この処置により、Hairのウェイト情報はそのままメッシュに残り、エラーも返されず出力可能となります。後はスプリングボーンの親子設定や揺れもの設定を行えば、目的は達成できます。

期待する動作

今回ご報告したケースでは回避法がありましたが、VRM1.0に限っては、外からのメッシュのインポートだけでなく、編集モードで新たにメッシュを追加した場合でも、出力時にPythonエラーを返されることがあります。
また、今回のFaceオブジェクトのように、直接影響していないメッシュの存在も、何がトリガーになっているか、非常に見極めにくい状況です。

とりあえず、VRM1.0の作業において、少なくともBlender3.6と同じ結果が欲しいです。

PC環境情報

  • OS: [Windows11]
  • Blenderのバージョン [4.2.4 および4.3.0] 対象としてBlender3.6.18
  • アドオンのバージョン [2.32.1] Blender3.6もそれ用の最新をインストールしています

なにか他に書いておきたいことはこちらへ

本文だけでは理解しにくい場合、下記noteに記事をまとめましたので、ご参照ください
https://note.com/melvina/n/nd8f4655ae4c4

@teresayawn teresayawn changed the title バグ報告: Blenderで編集したVRM1.0モデルがPythonエラーでエクスポートできないVRM 1.0 Models / Edited in Blender Failing to Export Due to Python Errors バグ報告: Blenderで編集したVRM1.0モデルがPythonエラーでエクスポートできない / VRM 1.0 Models Edited in Blender Failing to Export Due to Python Errors Dec 10, 2024
@saturday06
Copy link
Owner

報告ありがとうございます!

これはBlender本体のバグでした.....。本体側にバグ報告しておきます。

@teresayawn
Copy link
Author

早速のお返事ありがとうございます。

向こうからのレスをお聞かせいただければ幸いです。

@saturday06
Copy link
Owner

saturday06 commented Dec 10, 2024

↓ こちらで報告しました。向こうからのレスが気になる場合はご確認ください。
KhronosGroup/glTF-Blender-IO#2436

@saturday06
Copy link
Owner

先ほどリリースした最新版2.32.2でバグ回避コードを追加して、エラーにはならないようにしました。確認お願いします!

@teresayawn
Copy link
Author

報告にあげた再現実験でチェックしたところ、Pythonエラーを返されることなく、エクスポートできるようになりました。それ以外のエラーが確認された実験でも、エラーとならず、出力できるようになりました。
VRM1.0を扱う際、一番厄介なエラーだったので、大変助かります。ありがとうございました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants