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

Cropped d4cd7ac1381dc72b731d1c4cdf542dd3.png

はじめに

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のようなちらつきが出る場合があります。そのため、少しだけ外側に浮かせる設定が実用的です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA