青柳 臣一 ブログ(趣味系)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Blender] 平面に近い眼球を作る方法

「飛べないキキ」制作において参考にしたページ等

こちらで紹介されていた 「Rigging a character with flat eyes」 に猛烈に感動したので私も紹介。

アニメ・マンガ調なんかの目の大きいキャラは眼球を真球で作ることができません。
目がでかすぎて頭から飛び出しちゃうんです。
そこで眼球の代わりに平面に近いメッシュや楕円体で目を作ったりします。
この方法は眼を動かさなければ問題ありませんが、眼を動かすと頭から飛び出したりしてつじつまを合わせるのが大変なんですよね。
Rigging a character with flat eyes」 で紹介されているのは眼を楕円体で作りつつ、動かしても飛び出すことがないという方法です。

トラッキングするためにちょっと複雑になってますが、要するにやってるのは以下のようなことです。

  1. 真球(UVSphere)を 1つ追加。(これが眼)
  2. empty を 1つ追加。
  3. empty の “Empty Display” を Cube にしておくとわかりやすい。
    (以下、オブジェクトモードで)
  4. empty を選択し、Shift キーを押しながら UVSphere を選択。
  5. Ctrl+C で Location、Rotation、Size を empty にコピー。
  6. UVSphere を選択し、Shift キーを押しながら empty を選択。
  7. Ctrl+P で Make Parent する。(これで UVSphere が empty の子になる)
  8. empty のスケールを調整して UVSphere を平たくする。
    たとえば、empty の y軸のスケールを 0.2 にするなど。

どうでしょう?
これで R で UVSphere をぐりぐり回転させてみてください。
平べったいままその場でぐりぐりするはずです。(なんと表現していいかわかんないw)
UVSphere はローカル座標系では真球のままで、これを回転したあとに親である empty のスケール変換がかかって平べったくなってるわけですね。
これなら empty を動かして眼の位置を調整、視線を変えるのは UVSphere の方を回転とすれば顔から眼がはみ出したりしないようにできます。

ただ、ちょっとやってみたところ、この UVSphere を Armature で回転させるというのはうまくいきません。
empty によるスケール変換 → Armature による座標変換 という順なので empty を使う意味がなくなっちゃいます。
そこで上記の記事では UVSphere に Copy Rotation Constraint を追加し、CSpace “Local Space; Local Space” で別の empty(Tracker) のローカル座標系の回転をコピーするようにしています。
もちろん、Tracker は TrackTo Constraint で別のオブジェクトをトラックするようにしているわけです。

ローカル座標系がつぶれているために回転の制御が難しいこともあるような気はしますが、こんな方法があるとはまったく知りませんでした。
目からうろこというか、もう、ほんとに感動しちゃいました。

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://shinichiaoyagi.blog25.fc2.com/tb.php/104-64720aa2
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。