はじめに
blenderで人体リグを作成していると、手首・肘・肩のような関節を、できるだけ少数のTarget BoneやPole Boneで自然に動かしたい場面,すなわちポージングがあります。特に、IKを使って腕全体を制御しながら、関節ごとの可動域を人間らしく制限したい場合、Boneの回転制限をどの機能で管理すべきかが問題になります。
その中で分かりにくいのが、Bone > Inverse Kinematics > Limit X/Y/Z と、Bone Constraints > Limit Rotation > Limit X/Y/Z の違いです。どちらも一見すると「Boneの回転範囲を制限する機能」に見えるため、IK側で目視調整した関節可動域を、そのままLimit Rotation Constraintへ反映できるのではないか、と考えたくなります。しかし,設定可能範囲は,Bone > Inverse Kinematics > Limit X/Y/Z では,min値は-180~0度,max値は0~180度と、Bone Constraints > Limit Rotation > Limit X/Y/Z では,min/maxともに,-360度~360度と,少しトリッキーです.
従って、IK Limitの値をLimit Rotationへ単純にコピーしても、同じ可動域にはなりません。これは個別の設定ミスというより、Blender内部でIK Solver用の制限と通常Constraint用の回転制限が別系統として扱われているためです。
この問題は新しいものではなく、Blenderユーザーコミュニティでも以前から繰り返し質問されてきました。本記事では、人体リグにおける自然な腕の制御を念頭に置きながら、IK LimitとLimit Rotation Constraintの違い、なぜ単純変換が難しいのか、そして実務上どのように使い分けるべきかを整理します。
― 回転制限が2つある理由と、リギング実務での使い分け ―
Blenderでキャラクターリグや機械リグを作っていると、Boneの回転制限に関して混乱しやすい場面があります。
特に紛らわしいのが、次の2つです。
Bone > Inverse Kinematics > Limit X/Y/Z
Bone Constraints > Limit Rotation
どちらも「Boneの回転を制限する機能」に見えます。
そのため、次のように考えたくなります。
Bone > IK > Limit X/Y/Z で設定した関節可動域を、
Bone Constraints > Limit Rotation の min/max に自動変換できるのではないか?
しかし、実際に試してみると、単純には一致しません。
IK側のLimit値をLimit Rotationへコピーしても、同じ可動域にならないことがあります。
これは単なる操作ミスではなく、Blender内部でこの2つが別の制御システムとして扱われているためです。
1. 結論:IK LimitとLimit Rotationは別用途の機能
まず結論から言うと、両者の役割は次のように違います。
| 機能 | 主な用途 | 評価される場所 |
|---|---|---|
| Bone > IK > Limit X/Y/Z | IK Solver内部での関節制限 | IK Solver内 |
| Bone Constraints > Limit Rotation | FK操作・通常Constraint後の回転制限 | Constraint Stack上 |
つまり、どちらも「回転制限」ですが、同じものではありません。
IK Limitは、IK SolverがTarget Boneへ向かってチェーン全体を解くときに使う制限です。
一方、Limit Rotation Constraintは、Pose BoneやObjectのEuler回転値をmin/maxでクランプする通常Constraintです。
Blender公式マニュアルでも、Limit Rotation Constraintについて、IKの影響を受けるBoneでは期待どおり動かないため、BoneのIKパネル側のLimit設定を使うように説明されています。
2. IK Solverとは何をしているのか
IK、つまりInverse Kinematicsは、Targetに向かってBoneチェーン全体を自動的に曲げる仕組みです。
たとえば腕のリグで、手首のIK Targetを動かすと、前腕・上腕が自動的に回転して手先がTargetへ届くようになります。
Blender公式マニュアルでも、IK Constraintは「1本のBoneだけでなく、Boneチェーン全体をTargetに追従させる」機能として説明されています。
このときIK Solverは、単純に1本のBoneのEuler角だけを見ているわけではありません。
Targetに届くか
Pole Target方向を維持するか
チェーン長はどうか
各BoneのIK制限はどうか
親Boneの姿勢はどうか
といった条件を見ながら、チェーン全体の姿勢を解きます。
そのため、IK Limitは「このBoneのEuler Xを何度から何度までにする」というより、IK Solverの解探索の中で使われる関節制限と考える方が自然です。


コメントを残す