Blender でセルルックを作る方法まとめ
線画の描画は輪郭抽出する方法まとめを参照。
目次
概要
ビュー変換の設定
Matcap
法線のスムージング
影パカ対策
任意の場所に影を作る
マテリアルでセルルックを作る
コンポジット
プロシージャルトーン
アドオン・マテリアル
外部リンク
概要
セルルックを作る方法は大きく分けてふたつある。ひとつはマテリアルでセルルックを作成する方法で、もうひとつはディフューズ等のマテリアルでレンダリングした結果をコンポジットでセルルックに変換する方法だ。Blender レンダーや Eevee はマテリアルでセルルックを作成したほうが、レンダリングが高速かつ管理が容易なので基本的にはそちらを推奨する。しかし Cycles はマテリアルでセルルックを作る方法が制限されているので、コンポジットでセルルックを作ることになる。
ビュー変換の設定
バージョン 2.80 からビュー変換のデフォルト(標準)が Filmic になった。Filmic はダイナミックレンジが広がるため、フォトリアルなルックでは重要だ。しかしアーティストが直接色を指定するセルルックでは、コントラストの低下や色の変化が起こるため推奨しない。セルルックではビュー変換をデフォルト(標準)にした方がよい。

Matcap
バージョン 2.80 からは自作の Matcap が使える。Matcap 画像の格納ディレクトリは「Blenderのインストールディレクトリ/2.80/datafiles/studiolights/matcap」。Matcap 画像は 512 x 512 の画像ファイルで、exr だけでなく jpg や png も使える。Matcap 画像を生成する .blend ファイルも配布されている。
外部リンク
If you would like, you can use pic.twitter.com/u5k2D96g28
— Kisaragi Evangelista|きさらぎエヴァンジェリスタ (@project_2039) 2019年3月27日
Eevee
Blender Render
Cycles
OSL と放射(Emission)ノードとを使えば Cycles でもセルルックができる。OSL のランバートシェーダは以下のようになる。このランバートシェーダはライトの位置を入力する必要がある。ライトの位置は Combine XYZ とドライバーとで指定できる。
OSL を使うと GPU を使ったレンダリングはできないことに注意する。OSL を有効にするには「プロパティパネル > シーン > パフォーマンスの Open Shading Language」にチェックを入れる。

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; }

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


外部リンク
Toonkit for Cycles($40)は輪郭抽出やフォンシェーダのような便利なノードが使える。
Cyclesのトゥーンシェーダ【3DCG(Blender)で日本のアニメ的な表現をする方法まとめ】
法線のスムージング
法線を手動で編集する方法はBlender で法線を編集するアドオンを参照。この項目では、データ転送モディフィアを使って球ポリゴンの法線をコピーする方法を紹介する。
データ転送モディフィアはカスタム法線を転送する。なので法線転送元メッシュの法線を頂点単位で編集することもできる。
法線の表示
Mapcap を使えば法線を可視化できる。プロパティパネル > シェーディング > Matcap にチェックを入れ、虹色の球を選択する。

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

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

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

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

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

法線メッシュの編集
コピーした頭を使う
球の法線に違和感を覚えるときはコピーした頭ポリゴンを使う方法もある。コピーした頭ポリゴンにポリゴン数削減モディフィアと細分割曲面モディフィアとを適用してデータ転送する。
バージョン 2.83 以降
コピーした頭メッシュにボクセルリメッシュまたは四角面リメッシュをかけ、スカルプトモードでメッシュフィルターのサーフェススムーズやリラックスを使ってスムージングをかける方法もある。リメッシュはメッシュにある穴を自動的に塞いでくれるので、法線を転写する際に都合がいい。

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

影の中にライトを入れる
影になっている頬に三角形のハイライトを入れるには、シェイプキーで三角形メッシュを出し入れする方法が簡単だ。三角形の形にメッシュループを作成して法線を編集する方法もある。
Been working on this quickly yesterday and today. For use in the Abnormal add-on development. Her name is... Abnormal-chan. Topology is Guilty Gear-inspired and specially done to assist in normals editing. The face loops around each shadow zone contain/support the normal edits. pic.twitter.com/82AzyQgXwm
— ruki (@rukikuri) February 28, 2020
外部リンク
よその子は顔の影綺麗のにうちの子は影渋いと悩む方々へBlenderでCustom Normalsを簡単に使うやり方ですけど、アニメスタイル3Dで線を生かして影を簡単にする時助かります pic.twitter.com/Du6wjChHHm
— D.K (@dkground) 2018年1月18日
顔の丸みを保ったまま、柔らかい感じに法線転写する方法です。Blender2.79(英語)を使用しています〜。四拾弐さん(@yosohuta)に教えていただきました、ありがとう!! pic.twitter.com/8y44HraWIS
— クロイニャン【黒猫洋品店】3Dモデル・VRアバター・VTuberモデル製作 (@K_youhinten) June 9, 2020
服や胸の法線の修正
影パカ対策
ハードサーフェスをセルルックにすると、広い面積の平面が一瞬で影になったり、明るくなったりすることがある。これを影パカと呼ぶ。
サンライトを使うと影パカが発生する。これはサンライトに明るさの距離減衰がないことが原因で起こる。これに対処するにはサンライトではないライトを遠方に配置する。もしくは以下のように法線を使う方法で対処できる。
セルルックのメカなどの平面部分の影パカ対策をblenderでテスト
— カッパタン (@kappatan2010) August 22, 2020
Pencil+4でやってたことのそままやったらうまくいった pic.twitter.com/vTQnibgbDh
任意の場所に影を作る
シェイプキーで影メッシュを出し入れする方法もある。
コンポジットで陰色を付ける方法
Cycles や Eevee はディフューズの色とシェーディングとを分離して取得できる。これとテクスチャを参照できる UV マッピング(Map UV)ノードとを使えば、コンポジット側でシェーディングが可能だ。
UV をレンダリングする方法
UV をレンダリングする方法はレンダリングされた UV をもとにコンポジットでテクスチャを参照する。これはマテリアルオーバーライドを使う方法よりも高速でセットアップの手間が少ない。加えて UV 座標が変更されない限りテクスチャを編集しても再レンダリングする必要がない。
ただし透過マテリアルを処理できず、複数のオブジェクトがある場合はマスクする手間がかかる欠点がある。
設定
「レンダーレイヤー > パス > UV」にチェックを入れる。

透過を無効にする。

そしてグレーでレンダリングする。このグレーのレンダリング結果をもとに、陰にする場所をきめる。マテリアルオーバーライドを使うと、いちいちマテリアルからテクスチャをはがす手間が省ける。
コンポジット
通常のテクスチャと影色のテクスチャとを用意して、コンポジットで合成する。
マテリアルインデックスやオブジェクトインデックスでマスクする
オブジェクトやマテリアルごとに参照するテクスチャが異なる場合は、オブジェクトインデックスやマテリアルインデックスでマスクする。マテリアルオーバーライドを使ってシェーディングした場合、マテリアルインデックスは取得できない。そこでマテリアルインデックスのみを出力するレンダーレイヤーを作成し、そのレンダーレイヤーからマテリアルインデックスを取得する。
水彩
有料アドオン
Blender Illustration Shader($2+)
イラストタッチのシェーダグループ。
プロシージャルトーン
Experiments with NPR/Toon shading in Eevee
ハッチング表現マテリアルの作り方【NPR / Eevee / Blender】
Blender(2.80 Beta)シェーダ・ノードグループ「PixelArtIshNode_shade」
Highspeed tutorial time!! :D I want to share the new way i found to make an even better dots pattern. Enjoy! #b3d #blender3d #Eevee #npr pic.twitter.com/fCksGaKxSN
— 100drips (@100drips) 2019年2月8日
ウインドウのアスペクト比は波テクスチャ(Wave Texture)のスケールで調整する。
i am a very simple man... i am very happy about the new vector math nodes in 2.81. A similar shader like this would take over 3 times as much nodes in 2.80#b3d #blender3d #b281 pic.twitter.com/5O6sqOkYzq
— 100drips (@100drips) September 2, 2019
乗算と減算ノードとで、0 -> 1 の UV 座標を 0 -> 1 -> 0 に変換している。
Blender 2.83.13 #b3d #blender #Patterns #nodes #cycles pic.twitter.com/kevy8gdLRh
— Benny Govaerts (@BennyGovaerts) April 12, 2020
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 に関する情報のリンク集(英語)。
セルルック
キャラ
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がプリキュアの制作現場を効率化する。
一枚目の唇~顎先間の修正だけしようと思ってたんだけどどうせ直すんならってことで前々から考えてた案で全面改修した。法線統合は割とメジャーな方法だと思うけど手間の割に見えない(見せない)部分なせいかあまり見かけないよね https://t.co/nTEjINk9ul pic.twitter.com/bg7z7ei8yR
— 春鳥/HALBERD (@CrestBird) 2019年8月25日
髪の毛の毛先のモデリングの処理について pic.twitter.com/Ga6hdLwa1e
— つかばたー_(:3」∠)_ (@tukabutter3) December 17, 2019
天使の輪
天使の輪の件って結局どうなったの? pic.twitter.com/v5oK3vHcNh
— BLUGjp(beta) (@blug_jp) 2019年1月29日
go stupid go crazy with the node setup for the blue one, if you make something cool with it lemme see pic.twitter.com/JaY8ruBYUn
— Cool Beans (@zzzmatazzz) 2019年4月10日
Hair specular reflection by JuskAseK on Discord.#b3d #bnpr pic.twitter.com/sVo1e1NyrQ
— Lightbwk (@Lightbwk) March 31, 2020
Some further work on previous shading study, now in 3D action (normal edit). @CodyWinch Really appreciating the Abnormal add on for this! #BNPR #b3d #3d pic.twitter.com/WtP7HC255x
— Allen (EKS) (@EpicKStudios) August 22, 2020
What I did is not a pretty solution, but it's all just experimenting lol. Since abnormal doesn't allow split normal's yet I broke out each area, set their direction, then merged them all back into one model. It's not pretty because I can't merge the vertex's themselves atm. pic.twitter.com/5UXK73nylZ
— Allen (EKS) (@EpicKStudios) August 22, 2020
リアルタイムセルルック
エフェクト
Realtime Smoke Effect Pack 1(Blender 2.8+/Eevee)
以前に作った、お気にいりの破片吹き飛ばし用のモディファイア群をEeveeで派手に光らせながら。多分モディファイアの実行速度も全体的に向上してるんじゃないかな。 pic.twitter.com/SNXaZIrqa6
— Q@スタジオぽぷり (@popqjp) 2018年12月7日
A little simple Blender tip as im digging back into 3D a bit again.
— MortMort (@mnrART) November 5, 2019
You can make simple cool bullet effects by sliding the UVs
The texture is a 4x2 texture with the colours of the bullet, you can offset the UVs in different ways to get different results#blender3d #b3d pic.twitter.com/WpYhuKP4q0
Stylized lightning.
— Eris snail (@Erisdraw3D) March 31, 2020
displace plane with cloud texture and animate a empty to control the flow
animate wave texture in shader to fading effect.
constrain a hook modifier to suzanne and particle system with colision for sparks#b3d #eevee pic.twitter.com/72IuoBL6QK
Here's a small tutorial that could have been a few tweets on how to make some quick sword trails in Blender! #b3d
— hyper3d (@hyper3d) April 11, 2020
Totally not ripoff of @Mrdodobird 👀 https://t.co/cGXfuwh1Nd pic.twitter.com/5CzuZrnKg9
Blenderでいちばんお手軽簡単軽めに炎作るとしたらこうかなぁというノード pic.twitter.com/zEINz0TdK8
— 友 (@tomo_) September 29, 2020
To get a beautifully colorful starry night sky in #b3d Eevee, put these nodes in your World material. Don't forget to turn on bloom! pic.twitter.com/NXleR3GHVt
— Feline🐈Entity (@FelineEntity) October 11, 2020
Just throw down a cylinder and slap these nodes on it!
— Late, as usual (@lateasusual_) November 26, 2020
Tip: you can type #frame into a value node to quickly add a time driver pic.twitter.com/JoUgMEWaxQ
and the rest of the eye setup + a better pic of the sparkle shader; copy the x and z location of your controller "copy as new driver" -> "paste as driver" into the seperate xyz node to drive your uv mapping node (2/2) pic.twitter.com/pkw7z7yldQ
— chichi (@cheeezu_) December 15, 2020
Hot take: layered voronoi is better than perlin noise
— Late, as usual (@lateasusual_) December 20, 2020
Nodes below! #b3d pic.twitter.com/zhxawQV5q0
眼鏡の反射
took some time to actually make a more "decent" version of the anime glasses glare shader. simple and works on any angle. pic.twitter.com/tfSj7C1cnp
— Lester Tusi (@lestertusi) September 23, 2020
Circular Effect

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


コンポジット
【Blenderコンポジットノード配布】
— 大城🐈 (@Magryllia) September 7, 2019
CGを油彩画風の絵面にするコンポジションを作りました
お手軽に絵画っぽい雰囲気が出せます
▼download here▼https://t.co/njRtiN8h9v #b3d #npr pic.twitter.com/BnMzoO2DlS
シェーダ
and in case anyone is interested: here is the old shader.... slightly more complex, but definitely more adjustable #b3d #b280 #Blender3d #eevee #NPR pic.twitter.com/ARZNe37gqG
— 100drips (@100drips) 2018年12月17日
難しそうなワード使ってるわりに実際やってる処理これだけだったりする #b3d pic.twitter.com/OvQFb1ta97
— 大城🐈 (@Magryllia) July 13, 2019
In Blender, using the scene`s center aka vector 0,0,0 as the mapping for your materials texture can create some really cool stuff, from procedural cracks to VFX.#blender #b3d #eevee #animeblender #3dmodeling #Blender3d #NPR pic.twitter.com/NwEu6bE3HL
— Chris (@IdentyTee) July 5, 2019
Several ways to make cracks in a surface. Anime style tutorial
このエフェクトはオブジェクトが原点にあると、再現できない。再現できるオブジェクトの位置は(0, 0, 1)など。
Just like using image editing software, but Layer become Mix Node, distort/transform is the manipulation of position vector.😎#Blender3d #b3d pic.twitter.com/SGjZc1PY8M
— Hans Chiu (@chiu_hans) July 18, 2019
Anime style beam attack FX tutorial
inspired by the awesome @chiu_hans i've made my own version of an lcd panel shader. you can grab it here:https://t.co/X5I6fYEv2t#b3d #eevee #shaders #procedural pic.twitter.com/tkk431x9jg
— 100drips (@100drips) 2019年8月5日
Guilty Gear shader in Blender 2.8――Gumroad($5)
#b3d
— Allosteric 凍結したら→@RB_ARAR (@KTakahiro1729) September 22, 2019
以前、blenderのdevtalkで見かけたやつ
VectorにNoiseを入れると、ShaderでもBlurが再現できる。 pic.twitter.com/FlZMshyKTf
blender2.81 eeveeのシェーダノードでぼかしシェーダをつくる
FREE
— Eris snail (@Erisdraw3D) January 13, 2020
free sketch shader for eevee and single vector option.
base texture made in krita.
hope and like https://t.co/8N9ylXVS4e#eevee #realtime #b3d pic.twitter.com/FFKU6FgHGs
You all asked for it, so here we go! Elvis Mosaics - Lazy Tutorial for Lazy People by Lazy People! #b3d #cg pic.twitter.com/NuFOuMv3kZ
— Ian Hubert (@Mrdodobird) February 23, 2020
Blender コンポジターではなくシェーダーノードでフィルターをかけれちゃう 友ちゃんフィルターシェーダーノードセット ver.1.0 公開!
シェーダでテクスチャにフィルターをかけるノード集。
Procedural Toon Water Shader (Blender 2.83+)($0+)