Open iCyP opened 2 years ago
カスタム法線持ちのvrm export 出来るblendファイルを添付します。(blender3.0 custom normal suzanne.zip
ありがとうございます!
FB_ngon_encodingのマージも含めてGW中目標に作業します!
すみません、こちらFB_ngon_encodingコミット https://github.com/saturday06/VRM_Addon_for_Blender/commit/9099d39887899833d46e5f869d598ad1533970d1 いったんマージさせていただいたのですが、コーナーケースへの対応もやっておきたいため、いったん tessface_fan()
内で素朴な三角分割のみ行い、頂点の並べ替えをせずにリターンするようにしました ↓ https://github.com/saturday06/VRM_Addon_for_Blender/blob/2_3_13/io_scene_vrm/exporter/legacy_vrm_exporter.py#L1646
三角分割は bmesh.calc_loop_triangles()を使うと法線が保たれるっぽいのでそれを用いています。シェイプ無しの法線は正しくなるようになりましたが、シェイプキーでの変形時の法線がまだちょっと怪しいので引き続き検証します。
未解決だったシェイプキー法線ですが、どうやらBlenderが自動計算したシェイプキー法線とだいたい同じ出力ができていることは確認できたのですが、どうもその自動計算がMToonと非常に相性が悪いということがわかりました。また、Unityでfbxインポート時に、シェイプキー法線の削除を選ぶのも一般的( https://qiita.com/ApricotLemon/items/221cbd85b8e149e832c0 )のようなので「MToonの場合はデフォルトではシェイプキー法線を出力しない」を実装しました。設定で個別に出力をONにできます
シェイプキー無し
シェイプさせる:Blender自動計算シェイプキー法線
シェイプさせる: シェイプキー法線データを全削除
Describe the bug / バグについて A clear and concise description of what the bug is. カスタム法線の出力が壊れている。
To Reproduce / バグの再現方法 カスタム法線を持つモデルを出力すると法線がおかしくなっている。
Screenshots / スクリーンショット
Desktop (please complete the following information) / PC環境情報
Additional context / なにか他に書いておきたいことはこちらへ bmesh.ops.triangulate はカスタム法線を維持しないようです。 カスタム法線(ex:球法線を転写したモデル)にて下記を実行するとカスタム法線が破損します。
また、
はカスタム法線を維持したまま分割できますが、meshオペレーターなので、やり方を変えないといけなくなると思います。 また、手前味噌ですが、先のFB_ngon_encodingブランチ 9099d39 はこの問題を回避できるようです。
既出のissue,失礼しました。いつもお疲れ様です。よろしくお願いいたします。