コンテンツにスキップ

拡張機能🔗

alt text

法線・接線を再計算🔗

alt text

本機能の適用範囲について

本機能を有効化するとプレビューとして「メッシュ全体」で再計算が行われます。
BlendShapeとしてモーフユニットを出力する場合はベースと変化量の差分のみが書き込まれるためベースには書き込まれず、プレビューとは違う見た目になる場合があります。

ベイクメッシュで書き出す際にはプレビュー通り「メッシュ全体」で再計算が行われて出力されます。

また本機能を有効化してもプレビュー及び出力で既存のBlendShapeには適用されません。
既存のBlendShapeで再計算したい場合、BlendShapeをユニットに読み込んでください。

トゥーン調アバターで使用する際の注意事項

トゥーン調アバターの顔は法線の向きを敢えてある程度平坦になるよう調整している場合が多いです。 そのため本機能を顔に使用することは極端に影がついたり不自然な見た目になる可能性が高いためおすすめしません。
同様の理由で法線を調整している衣服モデル等では逆にのっぺりとした見た目となったり不自然な見た目になる可能性があります。

再計算結果がおかしくなる場合

現在の実装では頂点が密集している箇所や向かい合う面が近接している箇所等トポロジーによって再計算が不自然になる場合があります。 その場合、以下スムーズ角度や結合しきい値を大きくすることで改善する可能性がありますが、意図しない接続で見た目が少し悪くなる可能性があります。
また、プレビューで不自然でもBlendShapeとして出力する際にはベースとの差分計算であるため問題ない見た目になる場合もございます。

本機能を有効化することにより変形前・変形後のメッシュ形状に対して法線・接線を再計算させることが可能です。
形状や面の向きが大幅に変わるような編集で本機能を使用することにより、ライティングが不自然になることを避けることが可能です。

例えばアバターで胸を平べったくするシェイプキーで、おかしな陰影を修正することが出来ます。

既存のBlendShapeは再計算しませんが、BlendShapeを参照でユニットに読み込むことで擬似的には使用可能です。(今後オプション追加予定)

再計算モード🔗

プレビュー・メッシュ出力時に再計算する方式を選択します。

簡単に言うと

「全計算」はベースで変わっていない箇所も含めて再計算を行います。

BlendShapeで動かさない箇所も含めて全体で再計算したい場合こちらがおすすめですが、前述した通り意図的に法線を調整していたりトポロジーによっては再計算結果がおかしくなる可能性があります。

「ベース差分」はベースはそのままに、変わった箇所のみ再計算を行います。

厳密にはベースの再計算結果と変位後の再計算結果の差分を取っています。そのため全計算より重いです。
法線再計算でBlendShapeを書き込む時はこのベース差分と同じ処理になります。よってBlendShape出力時の見た目に一番近いです。

ベースとの変位差分なので再計算による影響を変位部分に抑えれます。

  • ver1.1.0より前のバージョンでの動作
状況 再計算
プレビュー 全体が再計算されます。
ベイクメッシュ 全体が再計算されます。
BlendShape+Mesh出力時のベース 再計算されません。
BlendShape+Mesh出力時のBlendShape ベースとの差分計算結果がBlendShapeに書き込まれます。
  • 全計算
状況 再計算
プレビュー 全体が再計算されます。
ベイクメッシュ 全体が再計算されます。
BlendShape+Mesh出力時のベース(ベイクあり) 全体が再計算されます。
BlendShape+Mesh出力時のベース(ベイク無し) 全体が再計算されます。
BlendShape+Mesh出力時のBlendShape ベースとの差分計算結果がBlendShapeに書き込まれます。
  • ベース差分
状況 再計算
プレビュー ベースは再計算せず、モーフユニットによる変化はベースとの差分計算結果になります。
ベイクメッシュ ベースとの差分計算結果が書き込まれます。
BlendShape+Mesh出力時のベース(ベイクあり) ベースとの差分計算結果が書き込まれます。
BlendShape+Mesh出力時のベース(ベイク無し) 再計算しません。
BlendShape+Mesh出力時のBlendShape ベースとの差分計算結果がBlendShapeに書き込まれます。

◎ = 全計算
◯ = ベースとの差分計算
● = 新しいベースとの差分計算
✕ = 再計算無し

ベース/BlendShape

出力方式 全計算 ベース差分
BS_Bakeあり ◎/◯ ◯/●
BS_Bake無し ◎/◯ ✕/◯
Bake Mesh

スムーズ角度🔗

どのくらい曲がっていても同じ面として平均するかを決めるしきい値です。

小さいほどハードエッジを残しやすく、大きいほど滑らかになります。

結合しきい値🔗

この距離以内にある頂点群は同一点グループとして扱われ、スムージングの対象になります。

頂点ウェイトリマッピング🔗

本機能の適用範囲について

BlendShapeに頂点ウェイトは焼けないため本機能で変更したものは現状「BlendShape+Mesh書き出し時にベイクするモーフユニットに指定した形状」及び「ベイクメッシュ書き出し」にのみ反映されます。
つまり、「長袖を半袖にBlendShapeで移動させる」ような使い方は出来ません。

本機能の注意事項

現状の実装はBlenderのウェイトペイントのような複数ボーンに跨って微調整するようなものではなく、単純にそのメッシュに存在する頂点ウェイトを「どこ」から「どこ」へと移すものです。

そのため移動させた頂点がボーンのつなぎ目辺りになると移動で対応できないため気をつけてください。

本機能を使用することで頂点ウェイトを変更することが可能です。

「裾を短くしたらHandにウェイト乗ってて手首曲げたらおかしくなっちゃう」等の他ボーンを跨ぐ移動による問題を修正できます。

あとすごい無茶ですがメッシュがそれ単体なら「太もも」にある絆創膏を「腕」に持っていくとかも可能です。

変更前(From)/ 変更後(To)🔗

どの頂点ウェイトをどのボーンに移すかを設定します。

変更前(From)には 対象メッシュ で割り当てられている頂点ウェイトのあるボーンのみ表示します。
変更後(To)には 対象メッシュ がスキニングで参照できるボーンが表示されます。

Fromで使用しているボーンのみ表示 を有効化している間、変更後(To)にはFromのボーンのみ表示されます。
横にあるテキストフィールドに任意文字列を入力することでフィルタリングも可能です。

子ボーンを含める🔗

変更前(From)で選択したボーンの子にある頂点ウェイトも全て移行元とします。 例えば袖を短くする時、手だけでなく親指にもウェイトが乗っている時に手のみの選択で移行できるため便利です。

左右ミラー適用🔗

同名ミラーを自動で適用します。ミラー判定は以下のとおりです。

{ ".L", ".R" }
{ ".l", ".r" }
{ "_L", "_R" }
{ "_l", "_r" }
{ "-L", "-R" }
{ "-l", "-r" }
{ " L", " R" }
{ " l", " r" }
{ "Left", "Right" }
{ "left", "right" }