Blender #01
カメラ目線のスザンヌ
カメラ目線のスザンヌ
2015-06-02
TIPS第一弾はBlenderマスコットのスザンヌさんに決定!Blenderの基本的な操作や用語は他サイト様でされていることが多いのでなるべく省略し、ここではちょっとした応用編のチュートリアルを書いていきたいと思います。今回作るものはカメラ目線のスザンヌです。(使用バージョン2.74)
CONTENTS
STEP 1. 準備
用意するオブジェクトは主役の Suzanne(Monkey) と、Camera の二つ。
1.1 Suzanne(Monkey) と Camera のオブジェクトを用意。Suzanne がカメラに納まるように Camera をY軸方向に -5 移動させます。
1.1 Suzanne(Monkey) と Camera のオブジェクトを用意。Suzanne がカメラに納まるように Camera をY軸方向に -5 移動させます。
STEP 2. オブジェクトを分離
Suzanne の頭から目を別オブジェクトとして分離させます。
2.1 ここからしばらく Suzanne のみの編集となるので Camera を非表示にしておきます。
2.1 ここからしばらく Suzanne のみの編集となるので Camera を非表示にしておきます。
2.2 Suzanne を選択して Edit Mode へ。すべての頂点を選択し、 Pキー > By loose parts で頭から左右の目となるメッシュを分離させます。By loose parts は繋がっていないメッシュを別のオブジェクトに分離する機能です。メッシュを分離させたことで Suzanne.001 と Suzanne.002 のオブジェクトが作られたことを確認してください。Suzanne は頭、 Suzanne.001 は左目、 Suzanne.002 は右目となっています。
2.3 Object Mode に戻します。先に左目を編集し、右目は後で左目を反転コピーして作る事にするので Suzanne.002 は削除します。また、分かりやすくするために Suzanne.001 を Eye L にリネームします。
STEP 3. 目の編集と反転コピー
目がカメラへ向くように編集し、右目を反転コピーで作ります。
3.1 Eye L の Origin(オブジェクト原点) を目が回転するポイント(目玉の中央であると思われる場所)へ移動させる下準備をします。Eye L を選択して Edit Mode へ。目の中央にある頂点を選択し、Shift + Sキー > Cursor to Selected を選択。3Dカーソルが選択した頂点の位置へ移動しました。
3.1 Eye L の Origin(オブジェクト原点) を目が回転するポイント(目玉の中央であると思われる場所)へ移動させる下準備をします。Eye L を選択して Edit Mode へ。目の中央にある頂点を選択し、Shift + Sキー > Cursor to Selected を選択。3Dカーソルが選択した頂点の位置へ移動しました。
3.2 3Dカーソルの座標が変わったことを確認します。3Dカーソルを目が回転するポイントの座標へ移動させるため Property Shelf > 3D Cursor > Location > Y: のところに -.5 と入力します。-.5 は -0.5 を入力することと同じです。入力した後に3DカーソルのY座標が -0.5 になったことを確認します。(画像では Properties > Scene > Units を Metric(メートル法) に設定してあるので -50cm となります。None の場合は -0.5 。)
3.3 3Dカーソルが目が回転するポイントへと移動し、これで Origin を移動させる下準備ができました。Object Mode に戻り、 Ctrl + Alt + Shift + Cキー > Origin to 3D Cursor を選択。Eye L の Origin を3Dカーソルの位置へと移動させます。
3.4 いよいよ Eye L が Camera へと向くように設定するので Camera を再表示させます。Eye L を選択し、Properties > Constraints > Add Object Constraints > Track To を追加します。Track To は指定したローカル軸をターゲットの方向へと向かせる機能で、オブジェクトの Origin がコントロールの基準点となります。
3.5 Track To > Target: の枠の中をクリックしてターゲットに Camera を指定します。ターゲットの指定ができていれば Eye L の Origin から Camera の Origin へと青い破線が表示されるので確認します。Eye L が頭の中を向いてしまいましたが、これはターゲットに向かせるローカル軸がデフォルトではローカルY軸の正方向となっているからです。Eye L の視線はローカルY軸の負方向を向いているので Track To > To: を -Y に変更します。これで Eye L が正常に Camera の方向へ向くようになりました。
3.6 Eye L を反転コピーする下準備です。作業がしやすいように正面図にします。次に、3Dカーソルを反転コピーの基準点とするために Shift + Sキー > Cursor to Center を選択して原点へ移動させます。Pivot Point が 3D Cursor になっているか確認してください。なっていなければ変更します。
3.7 Eye L を反転コピーします。Eye L が選択されていることを確認して Shift + D > Sキー > Xキー > -1を入力 を順に入力していくと右目のところに Eye L.001 がコピーされます。しかし、反転コピーしたために Eye L.001 のXスケールが-1となっていて、目の一部が頭からはみ出てしまいました。次はこれを修正します。
3.8 Ctrl + Aキー > Scale を選択し、反転コピーでXスケールが-1となっているトランスフォームを適用させます。目がはみ出なくなりましたが、今度は色が黒くなってしまいました。これは反転のトランスフォームを適用させたために面の法線が裏返って内側を向いてしまったからです。次はこれを修正します。
3.9 Edit Mode に入り、すべての頂点を選択した状態で Ctrl + Nキー を押して面の法線が外側へ向くように修正します。面の法線が外側を向いて目の色が正常になりました。
3.10 Object Mode に戻り、Eye L.001 を Eye R にリネームします。頭を動かしたときに目がずれないようにするため Eye L と Eye R を Suzanne にペアレント化させておきます。これで両目が完成!
STEP 4. 動きを確認
カメラを動かして両目がカメラの方向へ向いているかを確認します。
4.1 Camera が Suzanne の方向を向くように設定します。Camera に Track To を追加、Target: に Suzanne を指定します。次にターゲットに向かせるローカル軸の指定ですが、Camera はデフォルトでX軸に90°回転しているため撮影している方向がローカルZ軸の負方向となっています。なので To: を -Z に変更します。また、Camera の上方向はローカルY軸なので Track To > Up: を Y に変更します。これで Camera を動かしてもいつも Suzanne の方向を向くようになりました!
4.1 Camera が Suzanne の方向を向くように設定します。Camera に Track To を追加、Target: に Suzanne を指定します。次にターゲットに向かせるローカル軸の指定ですが、Camera はデフォルトでX軸に90°回転しているため撮影している方向がローカルZ軸の負方向となっています。なので To: を -Z に変更します。また、Camera の上方向はローカルY軸なので Track To > Up: を Y に変更します。これで Camera を動かしてもいつも Suzanne の方向を向くようになりました!
4.2 実際にカメラからの視点で目の動きを確認します。テンキー0 を押して Camera の視点に変更します。次に Camera を選択した状態で Gキー を押してグリグリと動かしてみます。スザンヌの機嫌が良いと Camera の方を向いてくれるようになります!これで完成です。(動きを分かりやすくするためにマテリアルを設定しています)
この記事では簡単にするために Eye L と Eye R のTrack To ターゲットを直に Camera に指定しましたが、間に Empty を挟むことで汎用性がずっと高くなります。
Empty の名前を Eye Target として、Eye L/R を Eye Target に Track To させ、Eye Target には Properties > Constraints > Add Object Constraints > Copy Location を追加、Target: に Camera を指定します。スザンヌを Camera へ向かせたい時は Eye Target の Copy Location を 有効 にし、他のところへ向かせたい時は 無効 にして Eye Target を向かせたい場所へ移動させるといった使い方ができます。
Empty の名前を Eye Target として、Eye L/R を Eye Target に Track To させ、Eye Target には Properties > Constraints > Add Object Constraints > Copy Location を追加、Target: に Camera を指定します。スザンヌを Camera へ向かせたい時は Eye Target の Copy Location を 有効 にし、他のところへ向かせたい時は 無効 にして Eye Target を向かせたい場所へ移動させるといった使い方ができます。