top of page
■第9回目(後期)
●瞳のテクスチャ

眼球のテクスチャをMayaのプロシージャーテクスチャ(ランプとフラクタル)で作成する。

bf10.jpg
bf11.jpg

眼球のオブジェクトは外側と内側の二重構造になっている。

外側のオブジェクトはハイライト用、内側のオブジェクトは瞳用になる。

2つのオブジェクトはロケータにペアレント加されている。

bf12.jpg
bf27.jpg

オブジェクトに割り当てられているLambertシェーダのアトリビュートの

「カラー」マップボタンをクリックする。(自分でシェーダーを作成する場合も同じ)

bf13.jpg
bf14.jpg

[レンダーノードの作成]ウィンドウで、2Dテクスチャの「ランプ」テクスチャを作成する。

bf15.jpg
bf16.jpg

ランプテクスチャで、「補間」を「スムーズ」に変更する。
「白」と「黒」を上図のような位置に配置する。

​さらにカラーを作成して、眼球の血管(ピンク~赤)に設定する。
​※「選択した位置」は絶対ではない。

bf17.jpg

新たにランプカラーを作成して、眼球の中心部分に寄せる。「選択したカラー」のマップボタンをクリックする。

bf18.jpg

「レンダーノードの作成」ウィンドウで、2Dテクスチャから「フラクタル」を作成する。

bf20.jpg
bf22.jpg

​さらにランプカラーを追加して、眼球の中心部分に寄せる。これが瞳孔になる。

bf19.jpg
bf21.jpg

「フラクタル」テクスチャの「比率」によって、虹彩部分の模様が表現される。

bf28.jpg

「フラクタル」テクスチャのカラーバランス「カラーゲイン」と「カラーオフセット」の色を設定する。

bf38.jpg

【カラーゲイン】

H:30

S:0.3

V:0.6

bf39.jpg

【カラーオフセット】

H:20

S:0.8

V:0.2

​※キャラクター(人)によって虹彩は、いろいろな種類があるので、自分でカラーを設定して構わない。

bf35.jpg

「フラクタル」テクスチャの「place2dTexture」の「繰り返しUV」の「V」値を下げる。
​これによって虹彩の筋が細かくなる。これが虹彩の内側の模様になる。

bf24.jpg
bf23.jpg

「フラクタル」テクスチャを選択して、ハイパーシェードの[編集]>[複製]>[ネットワークへの接続付き]を選択する。

bf26.jpg

「palce2dTexture」ノードを共通にしたフラクタルテクスチャが複製される。

bf34.jpg

複製したフラクタルテクスチャの「比率」「カラーゲイン」「カラーオフセット」を変更する。

​これが虹彩の外側の模様になる。

bf40.jpg

【カラーゲイン】

H:15

S:0.6

V:0.4

bf41.jpg

【カラーオフセット】

H:10

S:0.9

V:0.1

bf37.jpg
bf25.jpg

​ランプテクスチャでランプカラーを追加する。この「選択したカラー」に複製したフラクタルテクスチャをコネクトする。

マウスの中ボタンで、「フラクタル」⇒「選択したカラー」にドラッグする。

※クリックするとアトリビュートが切り替わってしまうでの注意すること。

​●toeSwing_Lのドリブンキー

bf36.jpg
bf33.jpg

ランプテクスチャの「選択したカラー」の位置や、フラクタルテクスチャの「カラーゲイン」「カラーオフセット」の色に

​よって眼球が設定される。「選択した位置」にキーフレームを設定して瞳孔の広がりをアニメーションすることもできる。

●セットアップ(バインド)
bf01.jpg
bf02.jpg

「headCtrl」や「neckCtrl」を動かすとジョイントしか動かない。まだジョイントとオブジェクトの関連付けがない。

bf03.jpg
bf04.jpg

オブジェクト「face_m」と「headジョイント」を選択して、[スキン]>[スキンのバインド]□を選択する。

bf05.jpg

バインドスキンのオプションで「バインド対象」を「選択したジョイント」に設定して、スキンのバインドを実行する。

​この場合は、選択したオブジェクトにウェイト100%でバインドされる。

bf06.jpg

「headCtrl」を選択して動かすと、顔のオブジェクトは動くが、眼球などが動かない。

bf07.jpg
bf08.jpg

「headジョイント」⇒「head_partsグループ」の順に選択して、[コンストレイント]>[ペアレント]を実行する。

bf09.jpg

これで「headCtrl」を選択して動かすと、顔、眼球、まつげが追従する。

●ブレンドシェイプの応用
bf43.jpg
bf42.jpg

「face_m」オブジェクトは、すでにバインドしている。チャンネルボックスの入力ノードで、

「skincluster」ノードが確認できる。

bf44.jpg

​ターゲットオブジェクト⇒ベースオブジェクトの順に選択する。

ブレンド02.jpg
ブレンド03.jpg

[デフォーム]>[ブレンドシェイプ]□(オプション)を選択する。[編集]>[設定のリセット]を実行する。

​「作成」ボタンをクリックして、ブレンドシェイプを実行する。

bf47.jpg

ベースオブジェクト(face_m)を選択して、入力ノードを確認する。

「skinCluster1」⇒「blendShape1」の順になっている場合は、「バインド」⇒「ブレンドシェイプ」の順に

実行したことになる。入力ノードは下から上に向かってヒストリが表示される。

bf45.jpg
bf46.jpg

この場合、「headCtrl」と「neckCtrl」を移動、回転してから、シェイプエディタでスライダを動かすと、

​オブジェクトが動いしてしまう。この原因は、「バインド」⇒「ブレンドシェイプ」にある。

bf49.jpg

バインドしてから、ブレンドシェイプを設定する場合には、ブレンドシェイプのオプションで、

​「詳細設定」タブの「変形順序」を「プリデフォメーション」に設定する必要がある。

bf48.jpg
bf50.jpg

「変形順序」を「プリデフォメーション」に設定して、ブレンドシェイプを実行する。

​この場合には、入力ノードの順番は「blendShape1」⇒「skinCluster1」になる。

「ブレンドシェイプ」⇒「バインド」の順に実行したことになる。

「headCtrl」と「neckCtrl」を移動、回転してから、シェイプエディタでスライダを動かしても問題ない。

bf51.jpg

まつげのブレンドシェイプを作成する。

ターゲットオブジェクト「eyelashes_blink」「eyelashes_swing」⇒ベースオブジェクト「eyelashes」を選択する。

​[デフォーム]>[ブレンドシェイプ]を実行する。※オプションは初期選定(設定のリセット)

bf52.jpg

別のブレンドシェイプノード(blendShape2)が作成される。

「eyelashes_blink」「eyelashes_swing」のスライダを動かすと、まつげが動く。

​瞼のブレンドシェイプ「eye_blink」とまつげのブレンドシェイプ「eyelashes_blink」を合わせるのは面倒になる。

​そこで、2つのブレンドシェイプを接続する。

※ドリブンキーで接続することも可能だが、ブレンドシェイプ同士で0⇒1の関係なので、ノードエディタを使用する。

bf54.jpg

[ウィンドウ]>[ノードエディタ]を選択する。

bf55.jpg

ノードエディタのウィンドウの大きさは自由に変更することができる。

[Alt]キーとマウスボタンの組み合わせで、移動、拡大・縮小が可能である。

​「グラフのクリア」ボタンをクリックする。

bf53.jpg

ブレンドシェイプのノードを選択するには、シェイプエディタの「blendShape1」をクリックして、右ボタンクリックする。

​「ブレンドシェイプノードを選択」を選択する。

bf56.jpg

ノードエディタで、「選択してノードをグラフに追加します」ボタンをクリックして、ブレンドシェイプノードを表示する。

bf57.jpg

「blendShape2」ノードも追加する。「blendShape1」を左、「blendShape2」を右に配置する。

​それぞれのモードボタンをクリックして、フルモードにする。(簡易⇒接続⇒フル)

bf58.jpg

それぞれの「ウェイト」を展開して、「eye_blink」のウェイト出力を「eyelashes_blink」のウェイト入力に接続する。

bf59.jpg

同様に「eye_swing」のウェイト出力を「eyelashes_swing」のウェイト入力に接続する。

bf61.jpg
bf60.jpg

シェイプエディタで「eye_blink」のスライダを動かすと、「eyelashes_blink」のスライダが連動する。

「eye_swing」のスライダを動かすと、「eyelashes_swing」のスライダも連動する。

●眼球の制御
bf65.jpg

bananaのオブジェクトを移動すると、眼球がその方向を向くように、エイムコンストレイントを設定する。

bf77.jpg
bf66.jpg

「banana」⇒「eye_R」の順に選択する。今回、眼球の2つのオブジェクトは、ロケータにペアレントされている。

bf67.jpg
bf68.jpg

[コンストレイント]>[エイム]□(オプション)を選択する。[編集]>[設定のリセット]を実行する。

bf69.jpg

bananaのオブジェクトは+Z方向にあるので、「エイムベクトル」は、XYZを0、0、1に設定する。

「ワールドアップタイプ」はデフォルトでは「ベクトル」に設定されている。

bf62.jpg

このまま実行した場合、bananaオブジェクトを移動するだけでは問題はない。

​しかし、眼球を含む顔全体が傾く(回転)した場合の違いを別のテクスチャで説明する。

bf63.jpg

「ワールドアップタイプ」はデフォルトでは「ベクトル」の場合

​「アップベクトル」が+Y方向に設定されているので、眼球は常に上向きになる。眼球が回転するように見える。

bf70.jpg
bf64.jpg

「ワールドアップタイプ」を「なし」に設定すると、顔全体が傾いても眼球は回転することはない。

bf71.jpg

これでbananaを移動すると、その方向を眼球が追う設定になった。

このままで問題はないが、今回エイムコンストレイントのターゲットはbanana1つである。

​そのため、眼球は少しだけ内側を向いて、寄り目になっている。

bf73.jpg
bf72.jpg

眼球のロケータ「R_eye」、「L_eye」を選択して、チャンネルボックスを確認すると、Y回転しているのが分かる。

bf75.jpg

​正面を向かせたい場合には、ロケータにペアレントしている2つのオブジェクトを回転する。

bf74.jpg
bf76.jpg

2度~3度、外側(内側)に回転すると、正面を向くようになる。

© 2020 by Kurita   Japan  Electronics  College  Computer  Graphics  Department

bottom of page