セルアニメ風眉毛の描画方法を再現

セルアニメで「前髪に隠れているはずの眉毛が前髪の前面に描かれる」なんてケースをよく見掛けますが、3DCGでその描画方法を再現してみたいと思います。
概要は、各オブジェクトを別々のレイヤーに分けてレンダーレイヤーで管理。それらをコンポジットノードで読み込み描画方法の設定を行います。

オブジェクトを分ける
では、具体的な設定方法を・・・。
前髪、眉毛、その他(ボディなど)を別々のオブジェクトとして扱えるようにします。

眉毛を別レイヤーに移動
眉毛オブジェクトを[M]キーで別レイヤーに移動します。続けてカメラやランプなども別レーヤーに移動します。
「前髪とその他(ボディなど)」「眉毛」「カメラやランプなど」がそれぞれ3つ、別々のレイヤーに分かれるように配置します。

区切り線
レンダーレイヤーの新規作成
レンダーレイヤーの設定を行います。
既存の「RenderLayer」は、「前髪とその他(ボディなど)」「カメラやランプなど」の2つのレイヤーが表示されるように設定します。
新たにレンダーレイヤーを作成し、「眉毛」「カメラやランプなど」の2つのレイヤーが表示されるように設定します。新規で作成したレイヤーに関しては、背景を透明にするため[背景]を無効にします。

レンダーレイヤーをミックスノードで合成
コンポジットノードで、用意した2つのレンダーレイヤーを読み込み、ミックスノードで合成すれば眉毛が前髪の前面に描かれるようになります。(ミックスノードのプルダウンメニュー右側のアイコンをクリックしてアルファチャンネルを有効にする必要があります)

しかし、これで完了ではありません。お気付きの方もいると思いますが、このままでは、キャラクターが後ろを向いたとき後頭部に眉毛が描画されてしまいます。

マスクレイヤーの設定
前髪以外は眉毛が透けないようにしなければいけません。対処法をしてレンダーレイヤーの[マスクレイヤー]を活用します。
まず、前髪と眉毛以外のその他のオブジェクトをレイヤー移動します。移動先のレイヤーを選択する際、[shift]キーを押しながらクリックします。これにより複数のレイヤーに股がって配置することができるようになります。

次に「眉毛」「カメラやランプなど」の2つのレイヤーが表示されるように設定したレンダーレイヤーの[マスクレイヤー]で、ボディなどその他のオブジェクトが配置されているレイヤーを有効にします。これで、ボディなどその他のオブジェクトがマスクの役割を果たしてくれるようになります。

セルアニメ風眉毛/レンダリング仕上がり見本
レンダリング結果がこちらです。無事、キャラクターが後ろを向いても後頭部に眉毛が描画されなくなりました。
この眉毛の描画方法、トゥーンシェードなどセルアニメ風表現では、今後活用できるんじゃないかと思います。


You may also like...