日: 2026年6月4日

  • Blender : リグ : 眼球・瞳・目の影を分けて作る:Bone追随、Shrinkwrap、Track Toを使った目の基本リグ [2026/06/04]

    Blender : リグ : 眼球・瞳・目の影を分けて作る:Bone追随、Shrinkwrap、Track Toを使った目の基本リグ [2026/06/04]

    はじめに

    Blenderでキャラクターの目を作る場合、眼球、瞳、影を1つのメッシュにまとめる方法もあります。しかし、アニメーションや調整のしやすさを考えると、次のように役割ごとにオブジェクトを分ける方法が有効です。

    • 眼球:白目・角膜などの基準になる球体
    • 瞳:眼球表面に貼り付く黒目・虹彩部分
    • 目の影:眼球より少し大きい透明球または半透明球
    • 眼球専用Bone:眼球の位置・回転を制御するBone
    • Camera:瞳が向く対象

    この構成にすると、眼球そのものはArmatureの眼球専用Boneに追随し、瞳は眼球表面に吸着しながらカメラ方向を向き、影オブジェクトは眼球位置に追随するようにできます。

    Blender公式マニュアルでは、Shrinkwrapは対象メッシュ表面へオブジェクトまたは頂点を吸着させる機能として説明されています。また、Copy Locationは対象の位置をコピーするConstraint、Track Toは対象方向へ向きを合わせるTracking系Constraintとして扱われます。

    全体構成

    今回の目の構成は、以下のように考えます。

    要素役割主な設定
    EyeBall眼球本体Armatureの眼球専用BoneにParent
    Iris/Pupil瞳・虹彩Shrinkwrapで眼球表面へ吸着、Track ToでCamera方向へ向ける
    EyeShadow目の影用オブジェクト眼球より少し大きい球体、透明マテリアルを使用
    Eye_Bone眼球専用Bone眼球の位置・回転制御
    Camera視線方向の参照先瞳のTrack To Target

    ポイントは、眼球・瞳・影を完全に同じ動かし方にしないことです。

    眼球はBoneに追随させます。
    瞳は眼球表面に沿わせます。
    影は眼球と同じ位置に追随させます。
    瞳の向きはCameraへ向けます。

    このように役割を分離すると、後から目の表現を調整しやすくなります。

    1. 眼球オブジェクトを作る

    まず、眼球本体となる球体を作成します。

    Blenderでは、UV Sphereなどを使って眼球を作成できます。名前は分かりやすく EyeBall.L や EyeBall.R などにしておくと、左右の管理がしやすくなります。

    基本的な流れは次の通りです。

    1. Add > Mesh > UV Sphereで球体を追加
    2. 眼球サイズにScale調整
    3. 白目用Materialを設定
    4. Object名を EyeBall.L などに変更
    5. Transformを必要に応じてApply

    眼球は後でArmatureの眼球専用BoneにParentします。そのため、眼球の原点はできるだけ球体の中心に置いておくのが重要です。

    2. 眼球専用Boneを用意する

    次に、Armature側に眼球専用Boneを作ります。

    例として、左目用に Eye.L、右目用に Eye.R のようなBoneを作ります。眼球を回転させたい場合、このBoneのHeadまたは中心位置が眼球中心と一致していることが重要です。

    眼球中心とBoneの位置がずれていると、眼球が不自然な円運動をしたり、左右で見た目がずれたりします。

    眼球をBoneにParentする

    眼球オブジェクトを眼球専用BoneへParentします。

    一般的な手順は次の通りです。

    1. Object Modeで眼球オブジェクトを選択
    2. Shiftを押しながらArmatureを選択
    3. Pose Modeに入る
    4. 眼球専用Boneを選択
    5. Ctrl + P
    6. Boneを選択

    Blender公式マニュアルでは、Bone Parentingは、子オブジェクトを選択した後にArmatureを選択し、特定BoneへParentする流れとして説明されています。

    この設定により、眼球は眼球専用Boneの移動・回転に追随します。

    3. 瞳オブジェクトを作る

    瞳は、眼球表面に貼り付く薄い円盤または少し湾曲したメッシュとして作ります。

    単純な平面円でも作れますが、眼球表面に自然に沿わせるには、Shrinkwrapを使う方が扱いやすくなります。

    基本構成は次の通りです。

    項目設定例
    瞳オブジェクト名Pupil.L / Iris.L
    形状円形メッシュ、薄いディスク
    配置眼球前面
    ModifierまたはConstraintShrinkwrap
    TargetEyeBall.L
    Offset眼球表面より少し外側

    Shrinkwrap Modifierは、対象オブジェクトの各頂点を対象メッシュ表面へ近づける機能です。公式マニュアルでも、Shrinkwrap Modifierはオブジェクトを別オブジェクトの表面へ沿わせるためのModifierとして説明されています。

    瞳にShrinkwrapを設定する

    瞳オブジェクトにShrinkwrap Modifierを追加します。

    設定例:

    設定項目内容
    TargetEyeBall.L
    Wrap MethodProjectまたはNearest Surface Point
    Offset0.001〜0.005程度
    Apply基本的にはしない

    Offsetを0にすると、瞳が眼球表面と完全に重なり、Z-fightingのようなちらつきが出る場合があります。そのため、少しだけ外側に浮かせる設定が実用的です。

    4. 瞳をCameraへ向ける:Track To

    瞳を常にCamera方向へ向けたい場合、瞳オブジェクトにTrack To Constraintを設定します。

    このとき、瞳オブジェクトのどの軸を前方向として扱うかが重要です。

    例:

    設定項目設定例
    ConstraintTrack To
    TargetCamera
    Track Axis-Z または Yなど、モデルの向きに合わせる
    Up AxisYまたはZなど、回転の安定する軸

    Track Toは、指定した対象へオブジェクトを向けるためのTracking系Constraintです。瞳をCameraへ向ける設定では、瞳のローカル軸とTrack Axisが合っていないと、瞳が横を向いたり、回転が反転したりします。

    このため、設定後は必ず正面・斜め・横から確認します。

    5. 目の影オブジェクトを作る

    目の影は、眼球より少し大きい球体として作ります。

    目的は、まぶたや眼窩内の影、眼球周辺の陰影表現を補助することです。

    基本的な作り方は次の通りです。

    1. 眼球を複製する
    2. 名前を EyeShadow.L にする
    3. 眼球より少し大きくScaleする
    4. 透明Materialを設定する
    5. 影を出したい部分だけ不透明または半透明にする
    6. 影を出したくない部分はAlphaで透明にする

    この方法では、影を眼球本体に直接描き込まず、別オブジェクトとして制御できます。

    6. 影が出ない部分を透明にする

    影オブジェクトでは、全体を黒くするのではなく、必要な部分だけを半透明にします。

    方法としては、以下が考えられます。

    方法内容向いている用途
    透明MaterialAlpha値を下げる全体を薄い影にする
    Texture Alpha画像のAlphaで透明部分を作る特定範囲だけ影にする
    Vertex Group + Material頂点グループで影範囲を制御手作業で調整したい場合
    Shader NodeGradientやTexture Coordinateで制御手続き的に影を作りたい場合

    実用上は、影オブジェクトに透明Materialを設定し、影を出したい部分だけ黒〜グレーのAlphaを残す方法が扱いやすいです。

    7. 影オブジェクトをCopy Locationで眼球に追随させる

    影オブジェクトは眼球と同じ位置に置きたいですが、眼球と完全に同じParent関係にしない方が便利な場合があります。

    その場合、影オブジェクトにCopy Location Constraintを設定します。

    設定例:

    設定項目内容
    ConstraintCopy Location
    TargetEyeBall.L
    X/Y/ZON
    Target SpaceWorld SpaceまたはLocal Space
    Owner SpaceWorld SpaceまたはLocal Space
    Influence1.0

    Blender公式マニュアルでは、Copy Location Constraintは対象オブジェクトまたはBoneのLocationに一致させるConstraintとして説明されています。

    影オブジェクトは眼球より少し大きいため、Copy Locationで位置だけ追随させ、回転やScaleは独立させることができます。

    8. 推奨する親子・Constraint構成

    最終的な構成は次のようになります。

    オブジェクトParentConstraint / ModifierTarget
    EyeBall.LEye.L Boneなし、または必要に応じて回転制御Armature Bone
    Pupil.L必要に応じてEyeBallまたは空ObjectShrinkwrapEyeBall.L
    Pupil.L同上Track ToCamera
    EyeShadow.Lなし、または任意Copy LocationEyeBall.L

    ここで注意したいのは、すべてを同じParentにしないことです。

    瞳は眼球表面に貼り付く必要があります。
    影は眼球位置に追随する必要があります。
    眼球はBoneで制御する必要があります。

    この3つは似ていますが、目的が違います。そのため、Parent、Modifier、Constraintを使い分ける方が管理しやすくなります。

    9. よくある問題と対策

    瞳が眼球の中に埋まる

    ShrinkwrapのOffsetが小さすぎる可能性があります。

    対策:

    • ShrinkwrapのOffsetを少し上げる
    • 瞳メッシュの法線方向を確認する
    • 眼球ScaleをApplyする

    瞳がCameraを向かない

    Track ToのTrack Axisが合っていない可能性があります。

    対策:

    • Track Axisを変更する
    • Up Axisを変更する
    • 瞳オブジェクトのローカル軸を確認する
    • Object RotationをApplyする

    影オブジェクトが眼球とずれる

    Copy LocationのTarget Space / Owner Spaceが合っていない可能性があります。

    対策:

    • World Space同士で試す
    • EyeBallの原点が眼球中心にあるか確認する
    • Copy LocationのX/Y/ZがすべてONか確認する

    眼球がBone回転で変な位置に動く

    眼球中心とBone位置が一致していない可能性があります。

    対策:

    • Boneの位置を眼球中心に合わせる
    • 眼球オブジェクトのOriginを中心に戻す
    • Armatureと眼球のTransformを確認する

    10. この構成の利点

    この構成の利点は、見た目と制御を分離できることです。

    眼球はリグで動かします。
    瞳は眼球表面に貼り付きます。
    瞳の向きはCameraへ向けます。
    影は眼球とは別に調整できます。

    特に、キャラクターの顔を作る場合、目の表現は非常に重要です。眼球、瞳、影を別々に管理しておくと、後から「瞳だけ大きくする」「影だけ弱くする」「カメラ目線を調整する」といった修正がしやすくなります。

    まとめ

    Blenderで目を作る場合、眼球・瞳・影を別オブジェクトとして分けると、調整しやすい構成になります。

    基本方針は次の通りです。

    要素方針
    眼球Armatureの眼球専用BoneにParent
    Shrinkwrapで眼球表面に吸着
    瞳の向きTrack ToでCamera方向へ向ける
    眼球より少し大きい球体を作り、透明Materialで影範囲を制御
    影の追随Copy Locationで眼球位置に追随

    この構成により、眼球のリグ、瞳の向き、影の見た目をそれぞれ独立して調整できます。

    キャラクターの目を自然に見せるには、単に眼球を作るだけでなく、瞳の表面追随、視線方向、影の透明処理を分けて考えることが重要です。

    注意点

    この方法は、比較的シンプルなキャラクター表現に向いた構成です。

    リアルな眼球表現では、角膜、虹彩の凹凸、水分反射、屈折、涙袋、まぶたとの接触影なども考慮する必要があります。また、アニメーション用途では、瞳を常にCameraへ向ける設定が自然とは限りません。視線制御を正確に行う場合は、Cameraではなく視線Target用のEmptyを使う方法もあります。

    また、Shrinkwrap、Track To、Copy Locationを併用する場合、ConstraintやModifierの評価順によって見え方が変わることがあります。挙動が不安定な場合は、瞳用のEmptyを中継Targetにするなど、構成を分けて確認するとよいです。

    参考文献・出典


    【根拠】
    Blender 5.1公式マニュアル上、Shrinkwrapは対象メッシュ表面への吸着、Copy Locationは対象Locationのコピー、Bone Parentingは選択オブジェクトを特定Boneに親子付けする操作として説明されています。

    【注意点・例外】
    瞳をCameraへ直接Track Toすると、常に視聴者目線になり、キャラクターの自然な視線制御とは異なる場合があります。自然な視線を作るなら、Cameraではなく「Look_Target」などのEmptyを作り、そのEmptyをTrack To Targetにする方が安定します。

    【出典】
    上記「参考文献・出典」に記載。

    【確実性: 高】
    Blender標準機能に基づく構成です。ただし、Track Axis、Up Axis、Shrinkwrap Offsetの最適値は、モデルのローカル軸・サイズ・眼球形状に依存します。