はじめに
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 などにしておくと、左右の管理がしやすくなります。
基本的な流れは次の通りです。
- Add > Mesh > UV Sphereで球体を追加
- 眼球サイズにScale調整
- 白目用Materialを設定
- Object名を
EyeBall.Lなどに変更 - Transformを必要に応じてApply
眼球は後でArmatureの眼球専用BoneにParentします。そのため、眼球の原点はできるだけ球体の中心に置いておくのが重要です。
2. 眼球専用Boneを用意する
次に、Armature側に眼球専用Boneを作ります。
例として、左目用に Eye.L、右目用に Eye.R のようなBoneを作ります。眼球を回転させたい場合、このBoneのHeadまたは中心位置が眼球中心と一致していることが重要です。
眼球中心とBoneの位置がずれていると、眼球が不自然な円運動をしたり、左右で見た目がずれたりします。
眼球をBoneにParentする
眼球オブジェクトを眼球専用BoneへParentします。
一般的な手順は次の通りです。
- Object Modeで眼球オブジェクトを選択
- Shiftを押しながらArmatureを選択
- Pose Modeに入る
- 眼球専用Boneを選択
- Ctrl + P
- Boneを選択
Blender公式マニュアルでは、Bone Parentingは、子オブジェクトを選択した後にArmatureを選択し、特定BoneへParentする流れとして説明されています。
この設定により、眼球は眼球専用Boneの移動・回転に追随します。
3. 瞳オブジェクトを作る
瞳は、眼球表面に貼り付く薄い円盤または少し湾曲したメッシュとして作ります。
単純な平面円でも作れますが、眼球表面に自然に沿わせるには、Shrinkwrapを使う方が扱いやすくなります。
基本構成は次の通りです。
| 項目 | 設定例 |
|---|---|
| 瞳オブジェクト名 | Pupil.L / Iris.L |
| 形状 | 円形メッシュ、薄いディスク |
| 配置 | 眼球前面 |
| ModifierまたはConstraint | Shrinkwrap |
| Target | EyeBall.L |
| Offset | 眼球表面より少し外側 |
Shrinkwrap Modifierは、対象オブジェクトの各頂点を対象メッシュ表面へ近づける機能です。公式マニュアルでも、Shrinkwrap Modifierはオブジェクトを別オブジェクトの表面へ沿わせるためのModifierとして説明されています。
瞳にShrinkwrapを設定する
瞳オブジェクトにShrinkwrap Modifierを追加します。
設定例:
| 設定項目 | 内容 |
|---|---|
| Target | EyeBall.L |
| Wrap Method | ProjectまたはNearest Surface Point |
| Offset | 0.001〜0.005程度 |
| Apply | 基本的にはしない |
Offsetを0にすると、瞳が眼球表面と完全に重なり、Z-fightingのようなちらつきが出る場合があります。そのため、少しだけ外側に浮かせる設定が実用的です。


コメントを残す