dskjal
広告
広告

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

カテゴリ:blender

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

目次

概要

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

ビュー変換の設定

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

AgX と標準との比較

AgX と標準との比較

ビュー変換の設定

ビュー変換の設定

Matcap

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

外部リンク

Workbench

デフォルトのセルルックの Matcap を使うか、Matcap を自作する。もしくは以下の方法が使える。

  1. 照明を Matcap にする
  2. アウトラインとキャビティを有効にする
  3. カラーマネジメントのビュー変換を「False Color」にする
  4. カラーマネジメントのガンマを0、露出を7あたりにする
Workbench の設定

Workbench の設定

EEVEE

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

Blender Render

Blender レンダーでセルルック

Cycles

バージョン 2.90 からは影の境界に出るアーティファクトを隠せるようになった。

影の終端オフセット

影の終端オフセット

OSL を使ったセルルック

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 = strength * val/(distance_to_light*distance_to_light);
}
ノードと実行結果

ノードと実行結果

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

光源を複数使う場合

光源を複数使う場合

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

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

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

放射ノードに直接つなぐ場合

放射ノードに直接つなぐ場合

透過ノードと組み合わせる場合

透過ノードと組み合わせる場合

トゥーン BSDF と放射を使う方法

この方法は色を正確に制御できない。

ノード

ノード

外部リンク

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

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

法線のスムージング

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

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

法線の表示

メッシュのエディットモードでビューポートオーバーレイの分割法線を有効にする。

分割法線の表示

分割法線の表示

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

Matcap による法線表示

Matcap による法線表示

法線転写の手順

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

顔を包む球

顔を包む球

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

自動スムーズ

自動スムーズ

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

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

データ転送の設定

データ転送の設定

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

Ctrl + Shift + T を使う場合

Ctrl + Shift + T を使う場合

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

カスタム法線の削除

カスタム法線の削除

法線メッシュの編集

コピーした頭を使う

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

バージョン 2.83 以降

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

サーフェススムーズ

サーフェススムーズ

カプセルポリゴン

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

カプセル型のポリゴン

カプセル型のポリゴン

影になっている頬を明るくする

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

外部リンク

【Unity Shader】原神の顔の影の処理の考察

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

シェーダで法線の編集

外部リンク

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





服や胸の法線の修正

Fixing dress edges shading

Fixing breast shading

ID マップを使った法線編集

影パカ対策

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

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

任意の場所に影を作る

メッシュを使う方法

テクスチャを使う方法

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

SDF Face Shadow Mapping

SDF Face Shadow Mapping は光の当たる場所をテクスチャで指定する方法。ライトの角度によって180°、157.5°、135°、112.5°、90°、67.5°、45°、22.5°、顔の正面0° で合計9枚のマスク画像を使って作成するのが特徴だ。

外部リンク

3D Toon Rendering in 'Hi-Fi RUSH'

SDF Based Transition Blending for Shadow Threshold Map

UE5 SDF Face Shadowマッピングでアニメ顔用の影を作ろう

コンポジターを使う方法

diffDir diffCol を使う方法

diffDir ではグレースケールの陰影が取得でき、diffCol では陰影なしの色が取得できる。これを使用してコンポジターでセルルックを作成する。

バージョン 4.2 ではまだ diffDir と diffCol とはビューポートコンポジターに未対応

バージョン 4.2 ではまだ diffDir と diffCol とはビューポートコンポジターに未対応

ぼかしてディティールをつぶす

Map UV を使う方法

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

例

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

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

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

設定

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

UV の有効化

UV の有効化

透過を無効にする。

透過を無効にする

透過を無効にする

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

コンポジター

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

コンポジターノード

コンポジターノード

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

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

水彩・イラストタッチ

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

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



有料アドオン

Blender Illustration Shader($2+)

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

プロシージャルトーン

Experiments with NPR/Toon shading in Eevee

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

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

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

【Blender#58】トゥーンシェーダの作り方と応用編

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


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

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

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

ボロノイノードを使う方法

ボロノイノードを使う方法

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

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


バージョン 2.81 のノード

バージョン 2.81 のノード

三角形

三角形


ひし形

ひし形

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





Procedural Nodes


アドオン・マテリアル

Imposter Baker

メッシュを板ポリにベイクできるアドオン。

Bake One Click

光の陰影の計算結果を画像に書き出すベイクをワンクリックで実行するアドオン。

Toonkit for Cycles($40)

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

Manga Shader for Blender($10)

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

Toon Shader Pack, Komikaze($30)

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

Cell shading v_001($2+)

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

プロジェクトスタジオQ流 BlenderでつくるアニメCG

『第七王子』のEDクレジットを見ると、なぜ日本アニメの未来がわかるのか

LEARNING RESOURCES

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

セルルック





2017年までのセルルック表現の基礎の振り返り

[CEDEC 2023]「ポケモンSV」はリアルな世界を目指していた。「パルデア地方を描き出す――見た目の仕組みを徹底解説!」レポート

学園アイドルマスターのアイドルをより輝かせるライティング手法

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

【草原・木・岩など】イラスト風の森の作り方【Blender】

Tencent TA experts share their exploration of style and film and television when doing cartoon rendering

キャラ

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グラフィックス」の秘密,後編

「ギルティギア」シリーズ、輪郭線を自在に操る「背面法」実装テクニック【CEDEC2024】

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

アニメ調3Dキャラクターに変えてみた

涙・瞳・汗までこだわる! 「ウマ娘」3Dキャラモデル制作のノウハウを伝授

「ウマ娘」魅力的な会話シーンは物量×演出の賜物! 制作のこだわりを公開



天使の輪

最適化したノード

最適化したノード


【Unity】【シェーダ】プロシージャルな髪の異方性ハイライト(天使の輪)表現を作る方法

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

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

ノード例

ノード例




髪の影

このシェーダは縦の縞模様を縦のグラデーションで減算し、その結果を2値化している。2値化の閾値を変えることで、陰の長さを変更できる。縦縞の本数は UV 座標で調整する。

ノード

ノード

リアルタイムセルルック



エフェクト

Blender→AE→PS→Unityでエフェクトを作る

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

Screen-Space effects in EEVEE

Retro Color Quantization (EEVEE/Cycles)($0+)

Check Out These Cool Stylized Effects in Blender

Fake Anime water blender 2.8 Tutorial

ジオメトリノードを使ったジャギーブラー
















Cartoon Explosions tutorial



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






ノード

ノード


ノード

ノード





















眼鏡の反射

眼鏡の反射ノード

眼鏡の反射ノード


集中線

集中線はノイズをXまたはY方向に拡大することで作成できる。これを円柱に張り付ける。マッピングの位置Xや位置Yをアニメーションさせられる。

ノード

ノード

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

Circular Effect

動作デモ

動作デモ

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

Circular Effect

Circular Effect

波紋

動作デモ

動作デモ

値ノードには「#-frame/5」を入力する。

波紋ノード

波紋ノード

有料ノード

4k Anime Fire Pack

X 線

オブジェクトのマテリアル

オブジェクトのマテリアル

ガラスマテリアルは IOR を1にする

ガラスマテリアルは IOR を1にする

コンポジターでセルルック

CRT Filter

奥行きのある平面をコンポジターで合成

そのほか




シェーダリンク




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

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

ノード

ノード


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+)

アニメーション

2DイラストにMayaを使う奥の手が効く!「聖剣伝説EoM」におけるキャラクターアニメーションの制作手法【CEDEC2022】

メッシュ変形を使ったアニメーションの解説。

関連記事

任意の場所に影を作る

輪郭抽出する方法まとめ

顔の中に口を埋め込む

Blender 記事の目次


広告
広告

カテゴリ