広告
広告

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

カテゴリ:blender

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

目次

概要

ビュー変換の設定

Matcap

法線のスムージング

影パカ対策

任意の場所に影を作る

マテリアルでセルルックを作る

Eevee

Blender レンダー

Cycles

コンポジット

コンポジットを使う方法

UV をレンダリングする

水彩

プロシージャルトーン

アドオン・マテリアル

外部リンク

概要

セルルックを作る方法は大きく分けてふたつある。ひとつはマテリアルでセルルックを作成する方法で、もうひとつはディフューズ等のマテリアルでレンダリングした結果をコンポジットでセルルックに変換する方法だ。Blender レンダーや Eevee はマテリアルでセルルックを作成したほうが、レンダリングが高速かつ管理が容易なので基本的にはそちらを推奨する。しかし Cycles はマテリアルでセルルックを作る方法が制限されているので、コンポジットでセルルックを作ることになる。

ビュー変換の設定

バージョン 2.80 からビュー変換のデフォルト(標準)が Filmic になった。Filmic はダイナミックレンジが広がるため、フォトリアルなルックでは重要だ。しかしアーティストが直接色を指定するセルルックでは、コントラストの低下や色の変化が起こるため推奨しない。セルルックではビュー変換をデフォルト(標準)にした方がよい。

flimic VS. default
Filmic とデフォルト(標準)との比較

Matcap

バージョン 2.80 からは自作の Matcap が使える。Matcap 画像の格納ディレクトリは「Blenderのインストールディレクトリ/2.80/datafiles/studiolights/matcap」。Matcap 画像は 512 x 512 の画像ファイルで、exr だけでなく jpg や png も使える。Matcap 画像を生成する .blend ファイルも配布されている。

外部リンク

Eevee

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

Blender Render

Blender レンダーでセルルック

Cycles

OSL と放射(Emission)ノードとを使えば Cycles でもセルルックができる。OSL のランバートシェーダは以下のようになる。このランバートシェーダはライトの位置を入力する必要がある。ライトの位置は Combine XYZ とドライバーとで指定できる。

OSL を使うと GPU を使ったレンダリングはできないことに注意する。OSL を有効にするには「プロパティパネル > シーン > パフォーマンスの Open Shading Language」にチェックを入れる。

osl
OSL を有効にする
shader lambert(
    vector light_location = vector(0,0,0),
    float threshold = 0.2,
    float strength = 1.0,
    output color Color = color(1,1,1)
)
{
    vector to_light = light_location - P;
    vector lay_dir = normalize(to_light);
    float val = dot(N, lay_dir);
    if( val < threshold ){
        // invisible from light location
        Color = color(0,0,0);
        return;
    }
    
    float distance_to_light = length(to_light);
    int is_shadow = trace(P, lay_dir, "maxdist", distance_to_light);
    if( is_shadow > 0 ){
        // shadow area
        Color = color(0,0,0);
        return;
    }
    
    Color = val/(distance_to_light*distance_to_light) * strength;
}
result
ノードと実行結果

複数ライトを使う場合は Add を使う。

multi light
光源を複数使う場合

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

放射ノードの間接光を無効にする

ライトパスの「カメラレイか?(Is Camera Ray)」を使うと間接光を無効化できる。放射ノードの強さにつなぐ場合は影ができる。透過ノードと組み合わせると影も消せる。

emit direct
放射ノードに直接つなぐ場合
emit transparent
透過ノードと組み合わせる場合

外部リンク

Toonkit for Cycles($40)は輪郭抽出やフォンシェーダのような便利なノードが使える。

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

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

法線のスムージング

法線を手動で編集する方法はBlender で法線を編集するアドオンを参照。この項目では、データ転送モディフィアを使って球ポリゴンの法線をコピーする方法を紹介する。

データ転送モディフィアはカスタム法線を転送する。なので法線転送元メッシュの法線を頂点単位で編集することもできる。

法線の表示

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

matcap
Matcap による法線表示

法線転写の手順

1. 頭を包むような球を作成し、その球のシェーディングをスムーズにする。

sphere
顔を包む球

2. 頭ポリゴン(球ではない)の自動スムーズにチェックを入れる。

auto smooth
自動スムーズ

3. 最後に頭ポリゴンにデータ転送モディフィアをつける

これにはショートカットも用意されており、転送先メッシュ(頭のメッシュ)、転送元メッシュ(球のメッシュ)と選択した後に「オブジェクト > 関係 > メッシュデータの転送(Ctrl + Shift + T)> カスタム法線」を選択する。

data transfer setting
データ転送の設定

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

shortcut
Ctrl + Shift + T を使う場合

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

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

法線メッシュの編集

コピーした頭を使う

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

バージョン 2.83 以降

コピーした頭メッシュにボクセルリメッシュまたは四角面リメッシュをかけ、スカルプトモードでメッシュフィルターのサーフェススムーズやリラックスを使ってスムージングをかける方法もある。リメッシュはメッシュにある穴を自動的に塞いでくれるので、法線を転写する際に都合がいい。

surface smooth
サーフェススムーズ

カプセルポリゴン

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

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

影の中にライトを入れる

影になっている頬に三角形のハイライトを入れるには、シェイプキーで三角形メッシュを出し入れする方法が簡単だ。三角形の形にメッシュループを作成して法線を編集する方法もある。

外部リンク

Blenderでの法線転写のやり方(2.79)


服や胸の法線の修正

Fixing dress edges shading

Fixing breast shading

影パカ対策

ハードサーフェスをセルルックにすると、広い面積の平面が一瞬で影になったり、明るくなったりすることがある。これを影パカと呼ぶ。

サンライトを使うと影パカが発生する。これはサンライトに明るさの距離減衰がないことが原因で起こる。これに対処するにはサンライトではないライトを遠方に配置する。もしくは以下のように法線を使う方法で対処できる。

任意の場所に影を作る

メッシュを使う方法

テクスチャを使う方法

シェイプキーで影メッシュを出し入れする方法もある。

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

Cycles や Eevee はディフューズの色とシェーディングとを分離して取得できる。これとテクスチャを参照できる UV マッピング(Map UV)ノードとを使えば、コンポジット側でシェーディングが可能だ。

composite cycles
コンポジット例

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

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

ただし透過マテリアルを処理できず、複数のオブジェクトがある場合はマスクする手間がかかる欠点がある。

設定

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

enable uv
UV の有効化

透過を無効にする。

disable transparent
透過を無効にする

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

コンポジット

通常のテクスチャと影色のテクスチャとを用意して、コンポジットで合成する。

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

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

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

水彩

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

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

有料アドオン

Blender Illustration Shader($2+)

イラストタッチのシェーダグループ。

プロシージャルトーン

Experiments with NPR/Toon shading in Eevee

[2.8]プロシージャルテクスチャ:パターンとマスク

最近Blenderでモデリングしていないお話

ハッチング表現マテリアルの作り方【NPR / Eevee / Blender】

Blender(2.80 Beta)シェーダ・ノードグループ「PixelArtIshNode_shade」


circle tone
丸トーンのマテリアルノード

ウインドウのアスペクト比は波テクスチャ(Wave Texture)のスケールで調整する。

tone example
明るさに応じてトーンのサイズを変更する

node
バージョン 2.81 のノード
triangle
三角形

diamond
ひし形

乗算と減算ノードとで、0 -> 1 の UV 座標を 0 -> 1 -> 0 に変換している。




Procedural Nodes


アドオン・マテリアル

Toonkit for Cycles($40)

Cycles でセルルックや輪郭抽出、フォンシェーダのような便利なノードが使える。

Manga Shader for Blender($10)

セルルックノードに加えハーフトーンノードがついている。Cycles と Eevee に対応。

Toon Shader Pack, Komikaze($30)

Eevee 用のハーフトーンマテリアル。

Sketch Style Add-On($22)

AO を利用した SketchUp 風のマテリアルを設定するアドオン。線画はフリースタイル。

Kaio Toon 6($0, $2)

Inkwood - Ink Drawing Shader Pack($15)

Motionfx($8~$20)

ジャギーブラーを作るアドオン。

外部リンクの目次

Creating a Stylized Chaparral Environment in UE4

LEARNING RESOURCES

モデリング・シェーディング・輪郭抽出等の NPR に関する情報のリンク集(英語)。


アニメ調3Dキャラクターの作り方(テクスチャ編)

GUILTY GEAR Xrd開発スタッフが送るアニメ調キャラモデリングTIPS

[Unite]映像制作にも使える高機能シェーダ「ユニティちゃんトゥーンシェーダーVer.2」はどのように作られたのか

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

[CEDEC]「STREET FIGHTER V」のアートディレクションに見るイメージイラストを3Dで再現するカプコンの秘伝

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

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

[Unite]Unityがプリキュアの制作現場を効率化する。



天使の輪

specular high light node
最適化したノード

セルアニメ風(トゥーンレンダリング)“天使の輪”〈その1〉

セルアニメ風(トゥーンレンダリング)“天使の輪”〈その2〉

node
ノード例







Realtime Smoke Effect Pack 1(Blender 2.8+/Eevee)














Cartoon Explosions tutorial



光がキューッって集まるやつ [.blend/CC0]






procedural fire
ノード

node
ノード



眼鏡の反射

eye glasses node
眼鏡の反射ノード

Circular Effect

demo
動作デモ

Frame は値ノードで、「#frame」を入力する。

circular effect
Circular Effect

有料ノード

4k Anime Fire Pack

X 線

object
オブジェクトのマテリアル
glass
ガラスマテリアルは IOR を1にする

CRT Filter








Several ways to make cracks in a surface. Anime style tutorial

このエフェクトはオブジェクトが原点にあると、再現できない。再現できるオブジェクトの位置は(0, 0, 1)など。

crack effect
ノード

Anime style beam attack FX tutorial



Guilty Gear shader in Blender 2.8――Gumroad($5)




blender2.81 eeveeのシェーダノードでぼかしシェーダをつくる




Blender コンポジターではなくシェーダーノードでフィルターをかけれちゃう  友ちゃんフィルターシェーダーノードセット ver.1.0 公開!

シェーダでテクスチャにフィルターをかけるノード集。

Procedural Toon Water Shader (Blender 2.83+)($0+)

関連記事

任意の場所に影を作る

輪郭抽出する方法まとめ

顔の中に口を埋め込む

Blender 記事の目次


広告
広告