Blender 5.1対応:IK Symmetry Limit Editor v1.2.6d 取扱説明書

概要

KenJin IK Symmetry Limit Editor は、Blenderの左右対称ボーンに対して、IK制限、Limit Rotation制約、IK Pole Angleを比較・編集するためのNメニュー用アドオンです。

(2026/05/04現在,未アップなまで,説明のみ)

最小手順

1. Object modeにする

  • Armatureの選択

2. Pose Modeにする

  1. 左側のboneを選択
  2. Bone constraint > IK constraintのpole angleを調整
  3. Bone constraint > Limit Rotation constraintの角度(その関節に適した)とowner(Local Space)を調整
  4. Bone > Inverse Kinetics > Limit X, Y, Z (稼働範囲のガイドが現れる)を設定する

3. Add-onの操作パネルに移動

  • Add-onのScan Pairボタンを押す
Image

4. Add-onのルールを図の様に設定する.

Image

5. 左側boneの設定を右側のboneの設定にtemp領域に変換する

  • 変換値をtemp領域に書き込む
Image
  • 実際に書き込む
Image

6. 繰り返す


対象Blender上の場所主な編集内容
IK LimitBone > Inverse KinematicsLock IK X/Y/Z、IK Min/Max
Limit RotationBone Constraint > Limit RotationOwner Space、Euler Order、Use Limit、Min/Max
IK ConstraintBone Constraint > Inverse KinematicsPole Angle、Target/Pole Target表示
IK ResetBone Constraint > Inverse KinematicsIK Constraintの再構築

このアドオンは、左右ボーンの設定を直接まとめて編集するだけでなく、Preview機能で片側の値をもう片側へ変換してからApplyする流れを想定しています。


対応バージョン

項目内容
アドオン名KenJin IK Symmetry Limit Editor
バージョンv1.2.6d
対象BlenderBlender 5.1 / 5.1.1
NメニュータブIK Symmetry
主な用途左右ボーンのIK制限・Limit Rotation・Pole Angleの比較と編集

添付コードのヘッダーでは、対象が Blender 5.1 / 5.1.1 と記載されています。


Nメニューでの表示場所

インストール後、対象Armatureを選択すると、3D Viewportの右側Nメニューに以下のタブが表示されます。

IK Symmetry

パネル名は以下です。

IK Symmetry Limit Editor

Nメニュータブ名は、コード上で bl_category = "IK Symmetry" と定義されています。


基本的な操作の流れ

このアドオンの基本操作は、次の順番です。

  1. Pose ModeでArmatureを選択する
  2. 左右どちらかのボーンを選択する
  3. Scan Pair を押す
  4. 左右ボーンの設定値が読み込まれる
  5. 必要に応じてIK Limit / Limit Rotation / Pole Angleを編集する
  6. Preview L → R または Preview R → L で変換結果を確認する
  7. 問題なければ Apply Edited L / R / Both を押す

重要なのは、Previewはテーブル値だけを変更し、実際のBlenderデータは変更しないという点です。実データへ反映するにはApplyが必要です。


Pair Scan / Active Pair

Scan Pair

Scan Pair は、現在選択しているボーン名から左右ペアを自動検出します。

対応している左右名の例は以下です。

.L.R
_L_R
-L-R
LeftRight
leftright

たとえば、upper_arm.L を選択してScan Pairを押すと、upper_arm.R を探します。

コード上では、.L/.R_L/_R-L/-RLeft/Right などのパターンが定義されています。

Reload Pair

Reload Pair は、現在読み込まれている左右ペアを、実際のBlenderデータから再読み込みします。

手動でBlender側のBone設定やConstraint設定を変更した後に、アドオン表示を更新したい場合に使用します。


Bone > Inverse Kinematics パネル

このパネルでは、Pose Bone側のIK制限を編集します。

対象は以下です。

項目内容
Lock IK X/Y/Z各軸のIK制限を有効化する設定
IK Min X/Y/Z各軸の最小角度
IK Max X/Y/Z各軸の最大角度

Apply時には、lock_ik_x/y/zik_min_x/y/zik_max_x/y/z が実際のPose Boneへ書き込まれます。


Bone Constraint > Limit Rotation パネル

このパネルでは、各ボーンに設定されている Limit Rotation Constraint を編集します。

対象は以下です。

項目内容
ExistsLimit Rotation Constraintが存在するか
Constraint Name対象Constraint名
Owner Space制限を評価する空間
Euler OrderEuler回転順
Affect TransformTransform Limitを有効にする設定
Legacy BehaviorLegacy Behavior設定
Use Limit X/Y/Z各軸制限の有効化
Min X/Y/Z各軸の最小角度
Max X/Y/Z各軸の最大角度

Apply時には、Limit Rotationの owner_spaceeuler_orderuse_transform_limituse_legacy_behavioruse_limit_x/y/zmin_x/y/zmax_x/y/z が書き込み対象になります。

注意:Limit Rotationは新規作成されない

現在のv1.2.6dでは、Applyは既存のLimit Rotation Constraintを編集する処理です。

つまり、Limit Rotation Constraintが存在しない場合、Applyを押しても新規作成はされません。

内部処理では、既存のLimit Rotation Constraintを検索し、lr_exists and lr の条件を満たす場合だけ値を書き込む構造になっています。


Bone Constraint > Inverse Kinematics パネル

このパネルでは、IK Constraintの情報を表示し、Pole Angleを編集できます。

表示・編集対象は以下です。

項目内容
IK Constraint ExistsIK Constraintが存在するか
IK Constraint Name対象IK Constraint名
TargetIK Target
SubtargetIK Target Bone
Pole TargetPole Target
Pole SubtargetPole Target Bone
Pole AngleIK Pole Angle
Chain CountIK Chain Count

Apply時に実際に書き込まれるのは、主に Pole Angle です。

targetsubtargetpole_targetchain_count などは表示対象であり、通常のApplyでは直接変更されません。


Mirror / Offset / Preview / Apply パネル

このパネルは、左右反映の中心になる操作パネルです。

IK Limit Axis Rules

IK LimitのMin/Maxを左右へ変換するルールです。

ルール意味
SameMin/Maxをそのままコピー
Invert + Swap符号反転し、Min/Maxを入れ替える
OffsetMin/Maxにオフセットを加える
Invert + Swap + Offset符号反転・Min/Max入れ替え・オフセット加算

Limit Rotation Axis Rules

Limit RotationのMin/Maxにも、IK Limitと同様の変換ルールが用意されています。

v1.2.6dでは、IK Limit用ルールとLimit Rotation用ルールが別々に管理されています。コード上でも、IK用は ik_rule_x/y/z、Limit Rotation用は lr_rule_x/y/z として分けられています。

IK Pole Angle Rule

Pole Angleには、Min/Maxではなく単一角度用の変換ルールが使われます。

ルール意味
Same同じ角度をコピー
Invert符号反転
Offsetオフセット加算
Invert + Offset符号反転後にオフセット加算
Signed 180° Complement180°補完ルール

Signed 180° Complementは、たとえば以下のような変換を想定しています。

元の角度変換後
169°11°
-136°-44°

このルールは、Pole Angle専用の変換としてコード上に定義されています。


Preview L → R / Preview R → L

Preview L → R

左側のテーブル値をもとに、右側のテーブル値を計算します。

対象は以下です。

対象Previewで反映される内容
IK LimitMin/Max、Lock IK
Limit RotationMin/Max、Use Limit、Owner Space、Euler Order、Affect Transform、Legacy Behavior
IK Pole AnglePole Angle

Previewは、実際のBlenderデータを直接変更しません。あくまでアドオン上の表示テーブルを書き換えるだけです。

Preview R → L

右側のテーブル値をもとに、左側のテーブル値を計算します。

こちらも、実データは変更されません。


Apply Edited L / R / Both

Applyは、テーブル上の編集値を実際のBlenderデータへ書き込む操作です。

ボタン内容
Apply Edited L左ボーンだけに書き込む
Apply Edited R右ボーンだけに書き込む
Apply Edited Both左右両方へ書き込む

Applyの対象は以下です。

対象Applyされるか
IK Limitされる
Limit Rotationされる
Limit Rotation Owner Spaceされる
Limit Rotation Euler Orderされる
Limit Rotation Use Limitされる
Limit Rotation Min/Maxされる
IK Pole Angleされる
IK Target / Pole Target通常Applyでは変更されない
IK Chain Count通常Applyでは変更されない

Applyボタンは、内部的に kjik_apply_edited_side() を呼び出し、IK Limit、Limit Rotation、Pole Angleを書き込みます。


IK Constraint Reset / Rebuild

このパネルでは、IK Constraintを再構築できます。

ボタン内容
Reset Selected IK選択中のPose BoneのIK Constraintを再構築
Reset Loaded L/R IK Pair読み込み済み左右ペアのIK Constraintを再構築

再構築時には、既存のIK Constraintから以下の情報を保持します。

保持される主な情報
Constraint名
Target
Subtarget
Pole Target
Pole Subtarget
Pole Angle
Chain Count
Owner Space
Target Space
Influence
IK関連の一般的な設定

コード上では、IK Constraintを一度削除し、新しく作成した後、保存していた情報を再適用する処理になっています。

Pole Angleの扱い

再構築時のPole Angleには、以下のモードがあります。

モード内容
Keep Current現在値を保持
Set 0°0°に設定
Set 180°180°に設定
Use Tableアドオン上のテーブル値を使用

通常は Keep Current が安全です。0°や180°に変更すると、IK姿勢が変わる可能性があります。


Global Symmetry Audit

Global Symmetry Auditは、Armature内の左右ペアをスキャンし、差分を一覧表示する機能です。

監査対象は以下から選択できます。

監査対象内容
Edit BoneHead、Tail、Length、Roll、Parent、Connect
PoseLocation、Rotation、Scale、Rotation Mode
IK LimitLock IK、IK Min/Max
Limit RotationConstraint有無、Owner Space、Min/Maxなど
IK ConstraintTarget、Pole Target、Chain Count、Pole Angle

v1.2.5以降では、大きなArmatureでのフリーズを避けるため、Edit BoneとPose Transformの監査は初期状態でOFFになっています。


Mirror Rule Modeの自動保存

v1.2.6dでは、IK LimitとLimit RotationのMirror Rule Modeが、左右ペア単位で自動保存されます。

操作動作
Scan Pair保存済みルールを自動ロード
Reload Pair保存済みルールを自動ロード
Load Audit Pair保存済みルールを自動ロード
Apply現在のIK/LRルールを左右ペアへ自動保存

手動のSave / Load / Clearボタンは削除され、Apply時に自動保存される設計になっています。

ただし、保存されるのはMirror Rule Modeのみです。

保存される保存されない
IK Limit Axis Rule ModeOffset値
Limit Rotation Axis Rule Mode角度値
左右ペア共有のルールMin/Maxの実値

Offset値や角度値は保存されないため、必要な場合は都度確認してください。


実務上の推奨操作

1. まずScan Pairする

対象ボーンを選択したら、最初に Scan Pair を押します。

左右ボーン名が正しく検出されない場合、ボーン名の末尾が .L/.R_L/_R などになっているか確認します。

2. Previewで確認してからApplyする

直接Applyするのではなく、まずPreviewを使って、右側または左側の値が意図通りに変換されるか確認します。

3. Limit Rotationが存在するか確認する

Limit RotationをApplyしたい場合は、対象ボーンにLimit Rotation Constraintが存在する必要があります。

ExistsがFalseの場合、現在のアドオンでは新規作成されません。

4. Owner Spaceを必ず確認する

Limit Rotationでは、角度Min/Maxだけでなく、Owner Spaceの違いが結果に大きく影響します。

左右のLimit Rotationが同じ数値でも、Owner Spaceが異なると挙動が変わる可能性があります。

5. IK Resetは慎重に使う

IK Constraint Resetは、IK Constraintを削除して再作成する処理です。

保持される項目は多いですが、Rigの構造によっては姿勢が変わる可能性があるため、実行前に保存しておくことを推奨します。


よくある疑問

Q1. ApplyボタンでLimit Rotationも反映されますか?

はい。反映されます。

Apply対象には、Limit RotationのOwner Space、Euler Order、Use Limit、Min/Maxなどが含まれています。

Q2. Limit RotationのOwner SpaceもApply対象ですか?

はい。対象です。

コード上では、次のように owner_space が書き込まれます。

kjik_safe_setattr(lr, "owner_space", getattr(settings, f"{prefix}_lr_owner_space"))

このため、Nメニュー上のL Space / R Spaceは、Apply時に実際のLimit Rotation Constraintへ反映されます。

Q3. Limit Rotation Constraintがない場合、Applyで作成されますか?

いいえ。現在のv1.2.6dでは作成されません。

既存のLimit Rotation Constraintがある場合だけ、その値を編集します。

Q4. Previewを押すとBlenderの実データが変わりますか?

いいえ。Previewはテーブル値だけを変更します。

実際のボーンやConstraintに反映するには、Applyが必要です。

Q5. IK TargetやPole TargetもApplyで変更されますか?

通常のApplyでは変更されません。

表示はされますが、Applyで主に反映されるIK Constraint関連値はPole Angleです。

Q6. Nメニュータブ名は変更されていますか?

変更されていません。
v1.2.6dでもNメニュータブは IK Symmetry です。


まとめ

KenJin IK Symmetry Limit Editor v1.2.6dは、左右ボーンのIK関連設定を比較・編集するための実用的なBlender 5.1向けアドオンです。

特に重要なポイントは以下です。

ポイント内容
Preview実データを変更せず、左右変換結果を確認
Applyテーブル値を実際のBone / Constraintへ書き込み
Limit RotationOwner Spaceを含めてApply対象
IK Pole Angle左右変換ルールを使って調整可能
IK ResetIK Constraintを保持情報付きで再構築
Mirror RuleApply時に左右ペアへ自動保存
NメニューIK Symmetryタブ、変更なし

このアドオンは、左右対称RigのIK Limit、Limit Rotation、Pole Angleを整理する際に有効です。
一方で、Limit Rotation Constraintの新規作成は行わないため、必要なConstraintは事前にBlender側で作成しておく必要があります。


注意点・例外

この取説は、添付された KenJin-IK-Symmetry-Limit-Editor-126d.py のコード内容をもとに整理したものです。
実際のBlender 5.1 / 5.1.1での挙動は、使用しているRig構造、Constraintの順序、Owner Space、Bone Roll、親子関係、IK Target / Pole Targetの配置によって変わる可能性があります。

Rigが複雑な場合や、商用・公開用モデルに適用する場合は、専門家に確認が必要です。


参考文献・出典

  • 添付ファイル:KenJin IK Symmetry Limit Editor v1.2.6d(KenJin-IK-Symmetry-Limit-Editor-126d.py)