ボーン接続
このページを読むと 塗るボーンを選ぶ 2 つの方法、5 種類のブラシと正規化のルール、対称ペイントの名前の規則、ボーンウェイトの結合の方法、別メッシュからウェイトを取得方法がわかります。
SkinnedMeshRenderer 専用です通常のメッシュでは、このタブは使えません。
ボーンを選ぶ
ボーン接続 タブのボーン一覧には、ボーンの階層がツリーで表示されます。各行の左のラジオボタンがアクティブボーン、つまり今塗るボーンです。ボーン名またはラジオボタンをクリックして選びます。ツリーのルートは、SkinnedMeshRenderer.rootBone が設定されていればそれを使います。
ボーンを選んでいないと、まだ塗れないことが案内されます。
| ツール | 役割 |
|---|---|
| 検索 | 名前で絞り込みます |
| 展開 / 折りたたみ | ツリー全体を展開または折りたたみます |
| シーンビューにボーン表示 | シーンビューにボーンを描画します |
| ウェイトのあるボーンのみ | 実際にウェイトを持つボーンだけを残します。初回はオンで、最後に選んだ状態を記憶します |
シーンビューでもボーンを選べます。
Ctrl+ ボーンをクリック: アクティブボーンを設定または解除します。Ctrl+Shift+ ボーンをクリック: スムーズの対象チェックをオン・オフします。
チェックしたボーン
ラジオボタンとは別に、各行にはチェックボックスがあります。チェックしたボーンは、選択ボーンのスムーズ、ボーンウェイトの結合、ウェイトを取得 の対象範囲として使われます。件数は チェックしたボーン: {n} と表示されます。
ロック
行の L ボタンを押すと、そのボーンのウェイトをロックします。ロックしたボーンは、塗る操作、正規化、転送の対象から外れます。ロックしたボーンを塗ろうとすると、シーンビューにその理由が表示されます。
ブラシ
| ブラシ | キー | 役割 |
|---|---|---|
| 加算 | 1 | アクティブボーンのウェイトを上げます |
| 減算 | 2 | アクティブボーンのウェイトを下げます |
| スムーズ | 3 | 周囲となめらかにつなぎます |
| ブラー | 4 | 周囲と混ぜ合わせます |
| 平均 | 5 | ブラシ範囲のウェイトを均一にします |
Ctrl は加算と減算を反転させます。Shift は押している間だけスムーズになります。
半径、強さ、減衰(スムーズ · 球形 · シャープ · 一定)を調整できます。[ ] で半径を、, . で強さを変えます。F と Shift+F は、マウスで操作するモーダルを開きます。
塗った内容は、現在のポーズにすぐ反映されます。腕を曲げた状態で塗れば、結果をすぐに確認できます。
ヒートマップ
ヒートマップをオンにすると、ウェイトが頂点の色で表示されます。値が大きくなるにつれて、青から緑、赤の順に色が変わります。チェックしたボーンがあれば、チェックしたボーンの合計を表示します。なければアクティブボーンの値を表示します。表示強度を調整でき、凡例も表示されます。
自動正規化と最大影響ボーン数
- 自動正規化: オンのとき、ストロークのたびに頂点のウェイトの合計を 1 に戻します。既定でオンです。
- 最大影響ボーン数: 1 つの頂点が持てるボーンの数を制限します。
自動正規化をオフにすると、正規化せずに加算と減算だけを行います。その場合、合計が 1 にならないことがあるので、作業が終わったら 全体を正規化 を押してください。オフのまま保存しても、メッシュ保存 の直前に合計が 1 でない頂点を正規化し、その数を通知します。
全体を正規化(N)は、メッシュ全体を一度に正規化します。どのボーンにも付いていない頂点は、一覧の先頭のボーンではなく、最も近いボーンに付けます。近いボーンが見つからない場合は、ルートボーンに付けます。
頂点がすでに 4 つの影響を持っているときに弱い値が入ってくると、その値はスキップされます。シーンビューに理由が表示されます。
対称ペイント
対称ペイント をオンにすると、塗るときに反対側の頂点にも、左右対応のボーンが一緒に塗られます。対応するボーンの名前が表示されます。
名前の規則は次のとおりです。
| 形式 | 例 |
|---|---|
| 接尾辞 | Arm_L ↔ Arm_R、Arm.L ↔ Arm.R、Arm-L ↔ Arm-R(小文字の _l _r も同様に扱います) |
| 接頭辞 | L_Arm ↔ R_Arm、L.Arm ↔ R.Arm、L-Arm ↔ R-Arm |
| 単語 | Left Arm ↔ Right Arm、left ↔ right、LEFT ↔ RIGHT |
| 日本語 | 左腕 ↔ 右腕 |
名前から作られたボーンが実際に存在する場合にのみ、ペアとして扱います。Hips や Spine のような中央のボーンはペアがないので、自分自身として塗られ、その旨が通知されます。
(X) はキーの案内ではありません対称ペイント のラベルには (X) が付いていますが、このオプションはウィンドウのチェックボックスでのみオン・オフします。シーンビューで X を押しても切り替わりません。
選択ボーンのスムーズ
複数のボーンにチェックを入れてから使う、一括のスムーズ処理です。
反復回数: 1~20 回強さスムーズを適用(シーンビューのショートカットK)
スライダーを動かしている間は、基準のスナップショットからリアルタイムで再計算して表示します。スライダーを離すと、元に戻す操作 1 回として確定します。チェックしたボーンが 1 つもない場合、K は何もしません。
ボーンウェイトの結合
ボーン A のウェイトをすべてボーン B に移します。移したあと A のウェイトは 0 になるので、そのボーンを安全に削除できます。
| ボタン | 役割 |
|---|---|
| アクティブボーンを親(親の名前)へ結合 | アクティブボーンのウェイトを親のボーンに移します |
| チェックしたN個のボーンをアクティブボーンへ結合 | チェックしたボーンのウェイトをアクティブボーンに移します |
移す先は、親のボーンか別のボーンから選びます。移す元と先が同じ場合や、ボーンがロックされている場合は、結合されません。
衣装で使わない余分なボーンを整理するときに使います。→ 衣装のフィッティング
別メッシュからウェイトを取得
アバターの体のように、すでにウェイトが設定されたメッシュをソースに指定すると、表面上で最も近い点のウェイトを、現在のメッシュへ移します。衣装フィッティングの基本の作業です。
ソースメッシュに、すでにウェイトが設定されたSkinnedMeshRendererを指定します。最大距離を設定します。適用範囲を選びます。ウェイトを取得を押します。
適用範囲 | 対象 |
|---|---|
| メッシュ全体 | すべての頂点 |
| チェックしたボーンのウェイトのみ | チェックしたボーンの影響だけ |
| ウェイトのない頂点のみ | まだどのボーンにも付いていない頂点だけ |
結果には、適用された頂点数、範囲外の頂点数、スキップされた頂点数が表示されます。ソースメッシュの Read/Write がオフの場合や、ウェイトがない場合は、取り込みは行われません。
空間がずれているとき
ウェイトはバインドポーズのデータなので、対応する点が正しく合うには、2 つのメッシュが同じ空間にある必要があります。ソースとターゲットのレンダラーのトランスフォームが異なる場合は、ウィンドウが警告します。結果がずれる場合は、ソーストランスフォームを無視(バインドポーズのローカル空間で照合) をオンにして、もう一度実行してください。このオプションでは、ワールドのトランスフォームではなく、バインドポーズのローカル空間で照合します。
ウェイトの保存方法
塗った値は、同じ位置の ウェルドグループ 全体に同じ値として書き込まれ、合計は 1 に正規化されます。
直接塗る操作は、Unity の従来の 4 スロットの範囲で動作します。塗っていない頂点の 5 つ以上のボーン影響は、そのまま保持されます。→ 可変ボーンウェイト
ボーン影響がスロット数を超えると、弱い影響から切り捨てられ、その頂点数が通知されます。