広告
広告

Blender でセルルックを作る方法まとめ

カテゴリ:blender

線画の描画は輪郭抽出する方法まとめを参照。

目次

Eevee

Blender レンダー

Cycles

法線のスムージング

コンポジットを使う方法

UV をレンダリングする方法

水彩

外部リンク

Eevee

Eevee のセルルック技法まとめ

Blender Render

ノードでセルルック

basic
基本的なノード
ramp
ノード上で範囲を調整できるようにする
影の中にグラデーションをつける
影の中に影をつくる

テクスチャを使う場合

bi texture
テクスチャで陰色を指定する場合のノード

その他

任意の場所に影を作る

考察編 02: 新トゥーンマテリアルの設定と、アニメ表現における陰色の決定要因のお話。

顔の中に口を埋め込む

Cycles

Cycles のマテリアルを使う方法では色をコントロールできない。後述するコンポジットで色を付ける方法を使うほうがいい。

Toonkit for Cycles($40) と Emission(放射)ノードを使えば Cycles でセルルックができるようだ。

Cyclesのトゥーンシェーダ【3DCG(Blender)で日本のアニメ的な表現をする方法まとめ】

Is there really a way to make a true toon shader material in Cycles?

Cycles OSL toon shader setup

任意の場所に影を作る(Cycles)

法線のスムージング

法線を手動で編集する方法はBlender で法線を編集するアドオンを参照。 この項目では球ポリゴンの法線をコピーする方法を紹介する。

法線の表示

Mapcap を使えば法線を可視化できる。プロパティパネル > シェーディング > Matcap にチェックを入れ、虹色の球を選択する。

matcap
Matcap による法線表示

法線転写の手順

球の法線を顔にコピーするには、まず頭を包むような球を作成し、その球のシェーディングをスムーズにする。

sphere
顔を包む球

次に頭ポリゴンの自動スムーズにチェックを入れる。

auto smooth
自動スムーズ

最後に頭ポリゴンにデータ転送モディフィアをつける。これにはショートカットも用意されており、転送先メッシュ(頭のメッシュ)、転送元メッシュ(球のメッシュ)と選択した後に「Ctrl + Shift + T > カスタム法線」を選択する。

data transfer setting
データ転送の設定

ショートカットを使う場合は頂点グループで法線の転写先(頭のメッシュ)をマスクする機能が使えないデメリットがある。

shortcut
Ctrl + Shift + T を使う場合

陰が凸凹になるときは、データ転送の下に細分割曲面をつける。

modifier stack
データ転送の後で細分割曲面

カスタム法線が不要になった場合は形状データから削除できる。

delete cusom normals
カスタム法線の削除

法線メッシュの編集

コピーした頭を使う

球の法線に違和感を覚えるときはコピーした頭ポリゴンを使う方法もある。コピーした頭ポリゴンに「ポリゴン数削減」と「細分割曲面」とを適用してデータ転送する。

カプセルポリゴン

カプセル型のポリゴンの法線をコピーする方法もある。

capsule polygon
カプセル型のポリゴン

コンポジットで陰色を付ける方法

コンポジットで色を付ける方法は3つのレンダーレイヤーを使って色を付ける。ひとつ目はグレーでシェーディングしたレイヤー、ふたつ目は影のない色でレンダリングしたレイヤー、最後は影色でレンダリングしたレイヤーだ。これはマテリアルでやっていたことをコンポジットでやっているだけだ。

この方法はテクスチャの使い方に制限がある。マテリアルオーバーライドを使ってレンダリングするので、レンダーレイヤーあたりテクスチャが1枚しか使えない。既存のモデルでこの方法を使う場合はテクスチャを結合し、UV を修正する必要がある。

手順

明るい色のレンダーレイヤー・陰色のレンダーレイヤー・マスク用のレンダーレイヤーを用意してノードで合成する。

layer
レンダーレイヤーの設定
ノード

テクスチャを使う場合

実際はこの球のように単色で塗られることはなく、テクスチャが使われるだろう。 その場合には以下の3つのレンダーレイヤーとテクスチャとを用意しミックスする。

  • 明るい色でレンダリングされたレイヤー
  • 陰色でレンダリングされたレイヤー
  • 影色を指定するマスクレイヤー

マテリアルを設定する際にはマテリアルオーバーライドを使う。 マテリアルオーバーライドを指定すると、そのシーンのすべてのオブジェクトは指定したマテリアルを適用してレンダリングされる。 これを使わないとモデルを複製する必要があるうえ、レイヤーを3つ消費する。

material override
マテリアルオーバーライド指定

Blender Render では明るい色・陰色を指定するマテリアルに Shadeless を指定すると、余計な影が乗らなくなる。

shadeless
Blender Render で Shadelss の指定

マスクマテリアルのテクスチャを黒で塗ると、そこに影色を乗せられる。

mask texture
マスクテクスチャに常に影になる場所を指定する
render results
それぞれのレイヤーのレンダリング結果:左からマスク、影色、明るい色

レイヤーをミックスするノードは以下のようになる。

レンダーレイヤーをミックスするノード

.blend ファイルダウンロード

UV をレンダリングする方法

UV をレンダリングする方法はレンダリングされた UV をもとにコンポジットでテクスチャを参照する。これはマテリアルオーバーライドを使う方法よりも高速でセットアップの手間が少ない。加えて UV 座標が変更されない限りテクスチャを編集しても再レンダリングする必要がない。

ただし透過マテリアルを処理できない欠点がある。

設定

「レンダーレイヤー > パス > UV」にチェックを入れる。

enable uv
UV の有効化

透過を無効にする。

disable transparent
透過を無効にする

そしてグレーでレンダリングする。このグレーのレンダリング結果をもとにどこを陰にするかをきめる。マテリアルオーバーライドを使うと、いちいちマテリアルからテクスチャをはがす手間が省ける。

コンポジット

uv-node
コンポジットノード

マテリアルインデックスやオブジェクトインデックスでマスクする

オブジェクトやマテリアルごとに参照するテクスチャが異なる場合は、オブジェクトインデックスやマテリアルインデックスでマスクする。マテリアルオーバーライドを使ってシェーディングした場合、マテリアルインデックスは取得できない。そこでマテリアルインデックスのみを出力するレンダーレイヤーを作成し、そのレンダーレイヤーからマテリアルインデックスを取得する。

水彩

再現:スタジオジブリさんの水彩コンポジット

blender 3d『水彩調の3DCGテスト設定』

もっとアニメらしく!>>ゲーム&アニメのセルルック3D最新事情(2016.09.21)

西川善司の「試験に出るゲームグラフィックス」(1)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,前編

西川善司の「試験に出るゲームグラフィックス」(2)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,後編



関連記事

任意の場所に影を作る

輪郭抽出する方法まとめ

顔の中に口を埋め込む

Blender 記事の目次


広告
広告