Boneの親子関係と循環参照
- 2015年06月10日
- 投稿
- タグ: 3DCG, Blender, Tips
- No Comment
ボーンを弄っていて,これはメモしておいたほうがいいなと思った項目をメモ.
“Ctrl+N”でボーン初期角度の再計算
ボーンを追加すると,下の画像のように勝手に変な角度で設置されることがある.そういうときは,ボーンを選択してCtrl+Nを押す.
すると,Recalculate Rollメニューが出てくる.例えば,Global +X Axisボタンを押すと,下の画像のようになる.
中央のボーンの向きがまっすぐになったのがわかる.こういう風に,変な角度のボーンをうまいこと調整できるので便利だ.単にポーズを付けるだけなら初期角度は気にならないかもしれないが,コンストレイントと組み合わせようとすると,軸方向の調整は必須だ.IKのPole Target設定時や,Copy Rotationをするときは,軸を任意の方向に合わせておかないとうまく制御できない.
循環参照でボーンの位置がおかしくなる時の対応
このふたつに限らないかもしれないが,Parentの親になっているボーンが子のボーンを参照すると,動きがおかしくなる.(循環参照でおかしくならないように,追従にリミットがかけられているのだと思う.)
例えば上の図において,選択中のCAL.hip.RはCAL.damp.leg1.RのY軸方向に-Zを向けるようにDamped Trackが設定されている.この場合,CAL.damp.leg1.RをCAL.hip.Rの子にしてはいけない.そうすると,ボーン角度の調整に変なラグが出て,うまく制御できなくなる.そのうえ,画面上でズレた様に見える場合はレンダリングされた画像もズレてしまう.おそらく動画作成をした際には大きな問題になるだろう.この問題はConnectedにするか否かにかかわらず発生する.
上の図はズレた状態である.親となっているボーンを動かした後にRMBで移動をキャンセルすると,子のボーンだけが取り残されて画像のようにズレる.これを回避するためには,下の画像のように組む必要がある.
構成が分かりやすいようにボーン位置をずらしてみると上の図のような感じ.上記の画像では,腰回りのボーンは全てDEF.hipの子になっている.こうしておけば,下半身の動きに脚は追従するし,かといって循環参照にはならずに済む.最悪,ボーンの親子関係を断ち切ってCopy Locationコンストレイントを追加する方法もありかもしれない.
あまり難しく考えなくても,対応策としては他のボーンの位置や回転を参照するボーンは,末端に来るようにする(他のボーンの親にしない)という原則を維持すれば,問題ないだろう.