タグ: blender-manual

  • Blender : Add-on 取説 ~ KenJin Eye Look Driver ~ 黒目をCamera方向に自動的に動かす自作アドオン

    Blender : Add-on 取説 ~ KenJin Eye Look Driver ~ 黒目をCamera方向に自動的に動かす自作アドオン

    概要

    KenJin Eye Look Driver は、Blender 5.1で作成したキャラクターの黒目オブジェクトを、Cameraまたは指定した対象方向に追従させるための自作アドオンです。

    通常の Track To で眼球全体を回転させる方法ではなく、黒目を平面またはスクリーン状のオブジェクト上で X方向・Z方向に移動させることで、2D的な黒目表現を作ることを目的にしています。

    特に、以下のような用途に向いています。

    • 球体の眼球ではなく、平面上の黒目を動かしたい
    • 顔の表情を2D的にデザインしたい
    • カメラ方向に応じて黒目だけを自然に移動させたい
    • 左右の目を .R / .L で管理したい
    • 片側の設定値を反対側にコピーしたい

    BlenderのDriverは、あるプロパティを別の値に応じて自動的に変化させる仕組みです。本アドオンでは、CameraとReferenceの位置関係をDriverで読み取り、PupilオブジェクトのLocation X/Zを自動制御します。Blender公式マニュアルでも、Driverは変数や式によってプロパティを制御する仕組みとして説明されています。

    対象バージョン

    • Blender:5.1
    • アドオン:KenJin Eye Look Driver v1.4.9
    • 必要なobject
      • カメラ : 黒目のターゲットとなる : camera objectに指定
      • 投影面 :黒目を投影する平面(が望ましい) : Referenceに指定
      • 黒目 : shrinkwrapで投影面に張り付ける : pupilに指定
    • Nメニュータブ:KJ Mirror
    • パネル名:KenJin Eye Look Driver
    Image
    Image
    Image

    Add-on Python code, KenJin Eye Look Driver, Ver.1.4.9, 2026/06/30

    ~メンバー専用 ↓
    ~~~~~~~~~~~~~~~~~~~
    ↑ メンバー専用~

    無料登録は右の握手ボタンからかできます.

    このアドオンでできること

    このアドオンでは、左右の黒目に対して以下の設定ができます。

    機能内容
    Camera Object黒目が追従する対象。通常はCameraを指定
    Pupil Object実際に動く黒目オブジェクト
    Reference Object方向計算の基準になるオブジェクト
    ModeCameraとReferenceの位置差をどの座標系で計算するか
    Forward Axis正面方向として扱うローカル軸
    Invert X / Z黒目の左右・上下の動きが逆の場合に反転
    Live Offset黒目の中心位置をリアルタイム調整
    Live Movement黒目の移動量・感度を調整
    Live Limits黒目が動きすぎないように移動範囲を制限
    Copy Params片側の黒目設定を反対側にコピー

    v1.4.9では、.R / .L の名前を使って、片側のPupilまたはReferenceを指定したときに、反対側の対応オブジェクトを自動設定できるようにしています。

    例えば、pupil.R を指定すると、Blender内に pupil.L が存在する場合、自動的にLeft Side側へ設定されます。

    事前準備

    使用前に、以下のオブジェクトを用意しておきます。

    種類説明
    CameraCamera黒目が追従する対象
    右黒目pupil.R右目の黒目オブジェクト
    左黒目pupil.L左目の黒目オブジェクト
    右Referencereference.R右目側の方向計算基準
    左Referencereference.L左目側の方向計算基準

    名前は、できるだけ次のように統一します。

    pupil.R
    pupil.L
    reference.R
    reference.L

    または、以下のような形式でも自動判定できます。

    pupil.R.001
    pupil.L.001
    reference.R.001
    reference.L.001

    .R.L の対応名が一致していないと、自動設定できません。

    基本的な考え方

    このアドオンでは、次の3つのオブジェクトが重要です。

    Camera Object

    黒目が見る方向の対象です。

    通常は、レンダリングに使用するCameraを指定します。

    Pupil Object

    実際に動く黒目オブジェクトです。

    このオブジェクトの Location XLocation Z にDriverが設定されます。

    Reference Object

    Cameraとの位置差を計算するための基準オブジェクトです。

    Referenceは、各目の中心、または黒目を動かすスクリーンの中心付近に置くと扱いやすくなります。

    画面の開き方

    Blenderでアドオンを有効化した後、3D Viewportで以下を開きます。

    3D Viewport > Nキー > KJ Mirror > KenJin Eye Look Driver

    パネルには、主に以下の項目があります。

    • Common
    • Right Side Settings
    • Left Side Settings
    • Apply / Clear Pupil Drivers
    • Last Apply Result / Warnings
    • Notes

    Commonの設定

    Camera Object

    黒目が追従する対象を指定します。

    通常は Camera を指定します。

    Mirror X Offset on Copy

    片側のPupilパラメータを反対側にコピーするとき、Base X Offsetを左右反転する設定です。

    左右対称の目では、通常はONでよいです。

    設定用途
    ON右目と左目でX方向の中心補正を反転してコピー
    OFFX Offsetも同じ値のままコピー

    Right Side Settingsの設定

    Right Sideは、基本的に .R のPupilとReferenceを設定する場所です。

    Object Assignment

    ここで右目側のオブジェクトを指定します。

    項目指定するもの
    Right Side Pupil Objectpupil.R
    Right Side Reference Objectreference.R

    v1.4.9では、pupil.R を指定すると、存在する場合は pupil.L がLeft Side側に自動設定されます。

    同様に、reference.R を指定すると、reference.L がLeft Side側に自動設定されます。

    Driver Structure

    Driver Structureでは、黒目がどの方向を前方として動くかを設定します。

    最初は以下の設定でよいです。

    項目推奨初期設定
    Right Side ModeWorld Normalized
    Right Side Forward Axis+Y Forward
    Right Side Invert XOFF
    Right Side Invert ZOFF

    Mode

    Modeには以下があります。

    Mode内容
    World NormalizedCameraとReferenceのワールド座標差を使って方向を計算
    Reference Z NormalizedReferenceのZ回転を考慮して方向を補正

    通常は World Normalized で始めます。

    顔や目の土台をZ方向に回転させ、その回転も考慮したい場合は Reference Z Normalized を試します。

    Forward Axis

    Forward Axisは、Referenceまたは目スクリーンのどのローカル軸を正面方向として扱うかを指定します。

    正面方向設定
    ローカル +Y が正面+Y Forward
    ローカル -Y が正面-Y Forward
    ローカル +X が正面+X Forward
    ローカル -X が正面-X Forward

    最初は +Y Forward でApplyし、動きが合わない場合に変更します。

    Invert X

    黒目の左右移動が逆になる場合にONにします。

    例えば、Cameraを右へ動かしたときに黒目が左へ動く場合は、Invert X をONにします。

    Invert Z

    黒目の上下移動が逆になる場合にONにします。

    例えば、Cameraを上へ動かしたときに黒目が下へ動く場合は、Invert Z をONにします。

    Live Center / Offset

    黒目の中心位置を調整する項目です。

    項目内容
    Base X Offset黒目の左右方向の中心位置
    Base Z Offset黒目の上下方向の中心位置
    Set Current as Offset現在の黒目位置を中心位置として登録
    Reset OffsetOffsetを0に戻す

    黒目を手動でちょうどよい中心位置に動かした後、Set Current as Offset を押すと、その位置を基準位置として登録できます。

    このOffsetはPupilオブジェクトのCustom Propertyに保存されます。Blender公式マニュアルでも、Custom Propertiesはデータブロックに独自データを保存でき、リギングなどにも使用できると説明されています。

    Live Movement

    黒目の移動量と感度を調整する項目です。

    項目内容
    X Range左右方向に動ける基本距離
    Z Range上下方向に動ける基本距離
    X Sensitivity左右方向の反応の強さ
    Z Sensitivity上下方向の反応の強さ

    初期値の目安は以下です。

    項目目安
    X Range0.030
    Z Range0.020
    X Sensitivity0.350
    Z Sensitivity0.350

    黒目の動きが小さい場合は、RangeまたはSensitivityを上げます。

    黒目の動きが大きすぎる場合は、RangeまたはSensitivityを下げます。

    Live Limits Relative to Offset

    黒目が動きすぎないように、Offsetを基準にした最小値・最大値を設定します。

    項目内容
    X MinBase X Offsetから見た左方向の限界
    X MaxBase X Offsetから見た右方向の限界
    Z MinBase Z Offsetから見た下方向の限界
    Z MaxBase Z Offsetから見た上方向の限界

    初期値の目安は以下です。

    項目目安
    X Min-0.030
    X Max0.030
    Z Min-0.020
    Z Max0.020

    黒目が目の外へ出る場合は、このLimitを狭くします。

    Apply / Clear This Pupil

    Apply Driver to Right Side Pupil

    Right Side PupilにDriverを設定します。

    以下を変更した場合は、再度Applyが必要です。

    • Camera Object
    • Pupil Object
    • Reference Object
    • Mode
    • Forward Axis
    • Invert X
    • Invert Z

    一方、Offset、Range、Sensitivity、Min、MaxはリアルタイムでPupilのCustom Propertyに反映されるため、通常は再Apply不要です。

    Clear Driver from Right Side Pupil

    Right Side PupilのLocation X/Zに設定されたDriverを削除します。

    黒目の動きを一度リセットしたい場合に使います。

    Copy Right Side Pupil Params to Left Side Pupil

    Right Sideの黒目パラメータをLeft Sideへコピーします。

    コピーされるのは、Offset、Range、Sensitivity、Min、MaxなどのPupilパラメータです。

    Camera、Reference、Mode、Forward Axis、Invert設定はコピーされません。

    Left Side Settingsの設定

    Left Sideは、基本的に .L のPupilとReferenceを設定する場所です。

    項目指定するもの
    Left Side Pupil Objectpupil.L
    Left Side Reference Objectreference.L

    Right Sideと同じ流れで設定します。

    右側から自動設定された場合は、内容を確認してからApplyします。

    基本操作の流れ

    最小限の使い方は、以下の流れです。

    1. pupil.Rpupil.Lreference.Rreference.L を用意する
    2. Nメニューの KJ Mirror から KenJin Eye Look Driver を開く
    3. CommonでCamera Objectを指定する
    4. Right Side Pupil Objectに pupil.R を指定する
    5. Right Side Reference Objectに reference.R を指定する
    6. .L 側が自動設定されたか確認する
    7. Right Side Modeを World Normalized にする
    8. Right Side Forward Axisを +Y Forward にする
    9. Apply Driver to Right Side Pupil を押す
    10. Left Side側も同様にApplyする
    11. Cameraを動かして黒目の動きを確認する
    12. 動きが逆ならInvert XまたはInvert Zを調整する
    13. 黒目の中心がずれていればBase X/Z Offsetを調整する
    14. 黒目が動きすぎる場合はLive Limitsを狭める

    推奨初期設定

    まずは以下の設定から始めると分かりやすいです。

    項目Right SideLeft Side
    ModeWorld NormalizedWorld Normalized
    Forward Axis+Y Forward+Y Forward
    Invert XOFFOFF
    Invert ZOFFOFF
    X Range0.0300.030
    Z Range0.0200.020
    X Sensitivity0.3500.350
    Z Sensitivity0.3500.350
    X Min / Max-0.030 / 0.030-0.030 / 0.030
    Z Min / Max-0.020 / 0.020-0.020 / 0.020

    左右コピーの使い方

    片側で黒目の動きを調整した後、反対側へ値をコピーできます。

    右から左へコピー

    Right Side側のApply / Clear欄にある次のボタンを使います。

    Copy Right Side Pupil Params to Left Side Pupil

    左から右へコピー

    Left Side側のApply / Clear欄にある次のボタンを使います。

    Copy Left Side Pupil Params to Right Side Pupil

    Mirror X Offset on Copy がONの場合、Base X Offsetだけ左右反転されます。

    左右対称の目ではONが自然です。

    Last Apply Result / Warningsの見方

    Apply後は、Last Apply Result / Warningsに結果が表示されます。

    確認すべき項目は以下です。

    表示確認内容
    Target SideRight SideまたはLeft Sideが正しいか
    Target Pupil目的のPupilが指定されているか
    Reference目的のReferenceが指定されているか
    Camera正しいCameraが指定されているか
    Mode意図したModeになっているか
    X initial / Z initial初期位置がLimitに張り付いていないか

    Warningが出た場合は、特に .R / .L の指定ミスを確認します。

    よくあるトラブルと対処法

    黒目が動かない

    以下を確認します。

    原因対処
    ApplyしていないApply Driverを押す
    Camera Objectが未指定CommonでCameraを指定
    Referenceが未指定Reference Objectを指定
    Pupilが未指定Pupil Objectを指定
    DriverをClearしたまま再Applyする
    RangeまたはSensitivityが0値を上げる

    左右が逆に動く

    Invert X を切り替えます。

    Cameraを右へ動かしたとき、黒目が左へ動く場合は Invert X をONにします。

    上下が逆に動く

    Invert Z を切り替えます。

    Cameraを上へ動かしたとき、黒目が下へ動く場合は Invert Z をONにします。

    黒目が目の外に出る

    Live Limitsを狭くします。

    例えば、以下のように小さくします。

    項目
    X Min-0.020
    X Max0.020
    Z Min-0.015
    Z Max0.015

    片側だけ動きが違う

    左右のReferenceの向きが違う可能性があります。

    以下を確認します。

    • .R.L のReferenceの位置
    • Referenceのローカル軸
    • Forward Axis
    • Invert X / Z
    • Offset / Range / Sensitivity
    • Limit値

    .Rを指定しても.Lが自動設定されない

    以下を確認します。

    原因対処
    反対側オブジェクトが存在しないpupil.L などを作成
    名前が一致していない.R / .L の前後を同じにする
    Right / Left という単語だけで命名している.R / .L 形式にする
    Blender上でオブジェクト名が .001 などでずれている対応名をそろえる

    使い分け:World NormalizedとReference Z Normalized

    通常は World Normalized で十分です。

    ただし、顔や目の土台が大きく回転する場合は、Reference Z Normalized を試す価値があります。

    Mode向いている状況
    World Normalized通常の正面顔、Camera方向への単純な追従
    Reference Z NormalizedReferenceのZ回転に合わせて方向補正したい場合

    設定を変えた後は、必ずApplyし直します。

    運用上の注意

    このアドオンは、Pupil ObjectのLocation X/ZにDriverを設定します。

    そのため、PupilのLocation X/Zを別のアニメーションやConstraintで同時に制御している場合、意図しない動きになることがあります。

    安全に使うには、PupilのX/Z移動はこのアドオンに任せ、別の仕組みで同じプロパティを制御しないようにします。

    また、Driver Structureを変更した後は再Applyが必要です。OffsetやRangeなどの数値調整はリアルタイム反映されますが、Camera、Reference、Mode、Forward Axis、InvertのようにDriver式や変数構造に関わる項目は再Applyが必要です。

    まとめ

    KenJin Eye Look Driverを使うと、Blender 5.1で黒目の2D的な視線移動を作りやすくなります。

    基本は、Camera、Pupil、Referenceを指定してApplyするだけです。

    最初は以下の設定で始めるとよいです。

    項目設定
    ModeWorld Normalized
    Forward Axis+Y Forward
    Invert X必要時のみON
    Invert Z必要時のみON
    Mirror X Offset on CopyON

    .R / .L の命名をそろえておけば、片側を指定したときに反対側も自動設定できるため、左右の指定ミスを減らせます。

    黒目の動きが逆ならInvert、動きすぎるならLimit、中心がずれるならOffsetを調整します。

    参考文献・出典

    【注意点・例外】
    v1.4.9の実機動作確認は、こちらではBlender上で実行していません。構文上の設計としては、.R/.L の自動設定、Pupilパラメータ保存、Driver再Applyの流れは整合していますが、実際のリグ構造やReferenceのローカル軸により、Forward AxisやInvert設定は調整が必要です。