![見出し画像](https://assets.st-note.com/production/uploads/images/66839754/rectangle_large_type_2_10b6993e66fe3f354dd33861acaa883e.png?width=1200)
Blenderなんかやっていたら無職になっちゃいました(涙)
こんにちは。小説家で映像作家の榊正宗です。
↓こちら、わたしが無職になってしまった証拠写真です。
![](https://assets.st-note.com/img/1638340850162-7oZ5O5imOA.png?width=1200)
って、また、いつもの釣りじゃねぇか!
と、お怒りの皆様、わたしは嘘はついてませんよ(・∀・)!それに、「いつもの」ってなんですか👿!プンプン💢!
Blenderなんかやってたので、うっかり、無職(転生のスタッフ)になっちゃいました(爆笑)。またオレ何かやっちゃいました😉?
さて、あんまり(オッサン構文)やりすぎると本気で怒る人がいそうなのでこの辺で。
改めまして、無職転生の20話のフィギュアのシーンを担当致しました。もちろん、Blenderで制作しております!
今日の記事は、実際に無職転生にも使われているテクニックではございますが、お仕事の守秘義務が関わる作品独自のテクニックではなく、わたしが昔から力を入れております3DCGの輪郭検出技法についてまとめたいと思います。(※今回は無職転生に関するメイキング記事ではありませんのでご了承下さい。ここでは権利的にも最重要機密であるロキシーちゃんのパンツは見れません。観たい人はアマプラで!製作委員会に許可申請とかしてない記事なので、あくまで一般的な技法の検証です。って書いておかないと、最近わりとマジでこのあたり厳しいのです……)
こちらの記事は、BLUGjpさん主催のアドベント・カレンダーの記事になっております。
今年のアドベント・カレンダーは、まだ、あんまり埋まってないようなので(12月2日時点)、どんどん参加して、Blender界隈を盛り上げましょう!
そういえば、とある方に今年はBlendxJPやらないんですか?って、聞いたら、『お酒が飲めないからやらない』とおっしゃってましたよ!(※真面目な話をすると、一方的なイベント発表だけでなく、ユーザー同士のコミュニケーションを重視されているそうです)
さて、Blenderの輪郭線ですが、いろいろな手法があります。最近LineArtという新機能が実装されて、話題になりましたよね。実際、どの輪郭線描画機能が良いのか徹底的に検証してみました。
今回は、FreeStyle、LineArt、Toonkit、塗り分け法、反転ポリゴンの5つの技法について比較検証していきたいと思います!
今回長い記事なので、忘れないうちにポチッと❤マークをお願いします。(モチベーションがアップします!)
■流体での輪郭線の比較
では早速、下記は、流体に対して輪郭線を出してみた比較動画とそのレンダリングにかかった時間です。輪郭線以外の条件は基本同じです。※今回はEeveeを使用しています。ToonkitのみCyclesです。
▼FreeStyle
![](https://assets.st-note.com/production/uploads/images/66843620/picture_pc_4a6690650370f2ba4ac60788b5a69d7d.gif?width=1200)
線そのものはとてもきれいですが、よくみると、動画としては線のチラツキが発生しています。
▼LineArt
![](https://assets.st-note.com/production/uploads/images/66844263/picture_pc_cfee1e3011446332ffbb142da6154fc1.gif?width=1200)
FreeStyleと似た感じのチラツキが出ています。デフォルトでは、やや線が出過ぎる感じですね。ベイクしてからグリースペンシルで線を手作業で消すという運用が必要のようです。
▼Toonkit
![](https://assets.st-note.com/production/uploads/images/66844503/picture_pc_5a54a5cc4ca71fd5f2fc8acd4c0cf9a6.gif?width=1200)
ちょっと線が薄いのは、太くすると線が乱れるためです。動画としてはかなりキレイですが、Cyclesにしか対応してないのでレンダリング時間が遅いのが難点です。
▼塗り分け法
![](https://assets.st-note.com/production/uploads/images/66844777/picture_pc_fbfeb40a0d75daa386a4dbe478157c23.gif?width=1200)
静止画としてはやや太さにばらつきのあるノイジーな線ですが、動画だと比較的自然です。線が出過ぎることもなくバランスが良い仕上がりになりました。ちなみにこの塗り分け法という技法は2008年頃に神風動画さんのセミナーで知った技法です。なお、元ネタの神風動画さんは色ではなくマスクをたくさん使われていて、After Effectsを使用されています。
▼反転ポリゴン
![](https://assets.st-note.com/production/uploads/images/66844967/picture_pc_690f32e489d2c84e4a41f759f5b8d28a.gif?width=1200)
思ったよりきれいな線になりました。レンダリングも最速でした。このくらいなら案外映像用途でも使えるかも。ただし1000万ポリゴンとかあると、2000万ポリゴンになっちゃうので、ポリゴン数が膨大な背景モデルなんかには使えません。
■それぞれの輪郭検出の詳細なレビュー
▼Freestyle
静止画については抜群にきれいで線の装飾もたくさんの種類があります。静止画についてはめちゃくちゃ優秀です。ですが、残念ながら、動画については、かなり弱いです。細かい線がチラついたり途切れたりします。この調整は静止画だったらそれほど負担ではないのですが、動画ではかなり厳しいです。
漫画家さんには圧倒的にオススメ。でも、アニメ業界では絶対に使わないください。とくに背景動画での使用は禁止です!
▼LineArt
とても面白い機能です。ベイクすることで、3Dで抽出した輪郭線がグリースペンシルになります。つまり、「理想の線がでなければ、描けばいいじゃない?」という、マリー・アントワネット的なツールが、このLineArtです。まったくそのとおりなのですが、実際にベイクして書いてみると、フレームが多い場合はかなり大変です。コマ数の少ない、手書きしたグリースペンシルの補助として使うのが良いと思います。グリースペンシルとの相性は抜群なので、顔だけ手描きのグリースペンシルといった使い方がオススメです。線質、線の太さが完全にいっしょになるので、ほんとうに全部手で書いたようになります。
【Blenderクイズ063】
— 榊正宗@BlenderQuiz (@megamarsun) October 15, 2021
グリースペンシルでメッシュ上に絵を書く方法は?#Blenderクイズ pic.twitter.com/Eyo1BG2eKA
↑こちらのようなグリースペンシルと合成した作例では、LineArtが良いと思います。線質が同じなので、全部グリースペンシルで手描きしたように見えます。
リアルタイムでも表示可能なLineArtですが、ポリゴン数が増えるとめちゃくちゃ重くなります。とあるアニメのお仕事で、車を6台走らせるシーンで使用しましたが、144フレームのレンダリングで8時間ほどかかってしまいました(涙)その後に塗り分け法でやりなおしたら30分で終わりました。
▼Toonkit
Blenderマーケットで販売されている有料アドオンです。
動画はすごくきれいなのですが、太い線が苦手です。細くすると若干薄くなりすぎる傾向があります。また、線の設定があまりないので、狙った場所に線を出すのが難しいです。
![](https://assets.st-note.com/img/1638346244499-mzncPLOvsN.png)
現在、ToonkitはCyclesでしか使えません。CyclesXの登場で、状況は変わるかもしれませんが、現状では他の輪郭検出と比較して、レンダリング速度が遅くなるだけなので、あまり魅力を感じませんでした。
▼塗り分け法
我らが大大大本命!塗り分け法。わたしはこちらが一押しです!昔は頂点カラーでやっていましたが、最近はUVカラーの利用をオススメしております。こちらについては、ピックアップして、のちほど設定方法を詳細に説明します。
塗り分け法の輪郭線は、静止画としてはややノイズが入った、太さにばらつきのある線になります。しかし、動画にするととても自然で、手描きアニメの線と馴染む、アナログ感のある線になります。
昔は、こちらの技法を人に勧めると、塗り分けるのが面倒だと言われることがありました。たしかに昔はそうだったかもしれません。しかし、AOVが搭載されたことにより状況が変わりました。(詳細は後述)
また、検出した線がアンチエイリアスなしになってしまう問題も、コンポジットノードのアンチエイリアスノードの実装で解消されました。
昨今、Blenderを採用するアニメ作品が増えています。アニメ作品に使う輪郭検出は、塗り分け法一択だと思います。アニメ業界に広まれ!
▼反転ポリゴン
みんな大好き反転ポリゴン!ゲームやVRなどは、ほぼこの技法が使われています。Blenderではソリッド化モディファイアで手軽に実装できるため、Youtubeなどのモデリング講座では多くの方が、こちらを推奨されているようです。欠点としては、近くと遠くで太さが変わること。迫力が出て良いのですが、線ではなく立体であることがわかってしまい、3Dっぽさが強調されてしまうことがあります。このため手描きアニメとの親和性があまり高くありません。
![](https://assets.st-note.com/img/1638346754688-5rP94gOjdV.png?width=1200)
【Blenderクイズ055】
— 榊正宗@BlenderQuiz (@megamarsun) October 11, 2021
手軽にあつかえて便利な反転ポリゴンによる擬似輪郭線ですが、そのままだと近づくと太くなってしまいます。近くに寄った時に線を細くする方法は?#Blenderクイズ pic.twitter.com/WIhwcdqaVL
ソリッド化のモディファイアーにドライバを仕込むことでシーン単位では、線の太さをカメラに対して自動制御可能です。しかし、オブジェクト単位で部分的にカメラに合わせて輪郭線を調整することは、現状は難しいようです。(カメラ距離で頂点ウェイトを調整すれば出来るかもですが、うーん……)
検証では、レンダリング速度は最速でしたが、必ず2倍以上にポリゴンが増えますので、ハイポリになるとめちゃくちゃ重くなります。背景に使ってみたことがありますが、レンダリングどころか、ポリゴンが増えすぎてBlenderが落ちてしまいました(涙)リアルタイム表示のキャラクター向きの技法だと思います。
■総評
![](https://assets.st-note.com/img/1638347268391-4TzvnoukFL.png?width=1200)
こちらに総評をまとめました。
結論しては、静止画ならFreestyle、動画なら塗り分け法ということになると思います。
■ピックアップ
今回はピックアップとして塗り分け法の基本的な実装方法をご紹介します。Blender2.93以降では、塗り分け法は、AOVとアンチエイリアスノードを使用するのがオススメです。
▼AOVを設定
AOVは、新しく搭載されたマテリアル出力機能です。簡単にいうと、マテリアルノードで設定できるものはなんでも、レンダーパスに出力できます。この機能がなかった頃は、レンダーレイヤーを分ける作業が大変でした。
![](https://assets.st-note.com/img/1638347493682-ZxLFiq3Png.png?width=1200)
Shadingタブからシェーダーエディタの、追加→出力→AOV出力で出力先を設定します。
![](https://assets.st-note.com/img/1638347554424-TchgikEKm3.png)
たとえば、Lineという名前をつければLineというレンダーパスを増やす準備が整います(※これだけではレンダーパスにはなりません)
![](https://assets.st-note.com/img/1638347658771-F6Kc9cmLMl.png)
ビューレイヤープロパティから、シェーダーAOVの項目の+ボタンを押すとレンダーパスに出力されるAOVが追加されます。先程設定したLineと同じ名前にするとシェーダーノードとレンダーパスが接続されコンポジットノードで使用可能になります。(名前は手動で設定する必要があります)
![](https://assets.st-note.com/img/1638347812710-wjfqz2gHXz.png?width=1200)
上記はAOVにUVマップをカラー出力した例です。ビューポートでAOVを確認したい場合は、レンダーシェーディングにして、レンダーパスの項目を選ぶと追加したAOVに切り替えることが可能です。
塗り分け法は、頂点カラー、深度、ノーマルなど様々な色情報を使用して、塗り分けることで、その境目に線を出す技法です。AOVが実装されたことにより、手作業で塗り分けなくても、いい感じの線を出すマテリアルをいろいろと試すのが楽になりました。ものによっては手作業の塗り分けは不要です。
今回は初心者向けに、UVカラーの使用を前提にお話を進めます。
▼コンポジットを設定
![](https://assets.st-note.com/img/1638348023986-ABwoNMeZ4w.png?width=1200)
塗り分け法はAOVから取り出した色情報にソーベルフィルターをかけることで輪郭を検出します。追加→フィルター→フィルターを追加して、タイプをソーベルにします。
![](https://assets.st-note.com/img/1638348116092-Hx2ndr3XfN.png?width=1200)
![](https://assets.st-note.com/img/1638348158414-z46ZB4crLz.png?width=1200)
こんな感じに輪郭が検出されます。なんか色が気になりますね。このままだと輪郭線にならないので、こちらをカラーランプで調整します。
![](https://assets.st-note.com/img/1638348217493-UuwdHZcRk8.png?width=1200)
追加→コンバーター→カラーランプで、白黒の輪郭線になります。
![](https://assets.st-note.com/img/1638348372772-naIdRtbvze.png?width=1200)
カラーランプを一定にすると線がくっきりします。昔、ここで反転を使っていたのですが、カラーランプの色を、左側を白に、右側を黒にすればカラーランプだけで白地の黒の線が表現出来ることに最近気が付きました。
![](https://assets.st-note.com/img/1638348504228-fZd12h6HYQ.png?width=1200)
昔は、ここで線のジャギを消すために200%でレンダリングしてAfterEffectsで縮小することでアンチエイリアスをつけたりしていましたが、アンチエイリアスノードが実装されたので、そのまま完成出力が出来るようになりました。
![](https://assets.st-note.com/img/1638348624123-bAIYvnBnjo.png?width=1200)
元のマテリアルに輪郭線を合成する場合は、追加→カラー→ミックスを使用します。輪郭線は係数に接続してください。
![](https://assets.st-note.com/img/1638348725289-RfRNxG1gbq.png?width=1200)
元のマテリアルを、画像からミックスの下段に接続します。上段に指定した色が輪郭線の色になります。
如何でしたでしょうか。めんどくさいと思われていた塗り分け法ですが、コンポジットが内包されているBlenderだと簡単に実装できます。昔はAfterEffectsを使用していたので、ほんとうに楽に実装できるようになりました。
静止画最強のFreeStyleとAfterEffectsなどの外部ソフト不要で実装できる動画最強の塗り分け法。この両方が、Blenderでは本当に手軽に利用できます。Blenderめっちゃ凄いですね!
セル調アニメ風の3DはBlenderを使用するのが最強だと思うんですよね。
(オマケ)
▼VRoidの輪郭線
塗り分け法を使うと、VRoidの輪郭線が出しやすいと思います。VRoidはアバターパーツの種類を増やすためだと思われますが、透過テクスチャーが多用されています。他の技法だと、透過テクスチャーに対してうまく線が出ないので、透過テクスチャーのあるマテリアルをAOVで色に変換してやって線を出すのが良いかと思います。
【Blenderクイズ098】
— 榊正宗@BlenderQuiz (@megamarsun) November 5, 2021
VRoidで作ったデータをBlenderで輪郭線付きでレンダリングする方法は?テクスチャーに透過が多用されいてるのでコツが必要です。ヒント:動画はコンポジットを使用しています。#Blenderクイズ #BlenderQuiz #b3d pic.twitter.com/GW5rft8tyw
![](https://assets.st-note.com/img/1638364855960-u7KjRBKCMf.png?width=1200)
輪郭専用のAOVカラーもテクスチャーで透過しておけば、ちゃんと線が透過した袖のところで出ますよ!透過テクスチャはアルファクリップを使いましょう。
▼線の太さも変えられますよ
【Blenderクイズ101】
— 榊正宗@BlenderQuiz (@megamarsun) November 6, 2021
ノードを使った輪郭線で線を太くする方法は?#Blenderクイズ #BlenderQuiz #b3d pic.twitter.com/UUWfjVeAAe
![](https://assets.st-note.com/img/1638409163466-k1o3dzxWtG.png)
検出した線のモノクロ画像から白をカラーキーで透過してから、インペイントというノードを追加すると輪郭線を太くすることが出来ます。
▼自動塗り分けノード
流体のサンプルはUVが使えないのでこのようなノードになっています。
![](https://assets.st-note.com/img/1638353033426-RM6SK51aZ0.png?width=1200)
▼UVを使った塗り分けのコツ
![](https://assets.st-note.com/img/1638366470478-cPq3qWPryd.png)
![](https://assets.st-note.com/img/1638366537883-R4oseo0pAT.png?width=1200)
![](https://assets.st-note.com/img/1638366619444-urB1juXc4z.png?width=1200)
![](https://assets.st-note.com/img/1638366750498-dr72z5nVRv.png?width=1200)
つまり、UVを使った塗り分けは、シームをマークしてバラバラになった面を、それぞれの原点を使って「Sキー→0」で点にしてやることで、線を出す場所を、FreeStyleの辺マークのようにコントロール出来るわけですね。すごいですね。めちゃくちゃ便利ですね。
▼省略作画も表現出来る
【Blenderクイズ077】
— 榊正宗@BlenderQuiz (@megamarsun) October 25, 2021
コンポジットによる輪郭検出ですが、カメラからの距離に応じて手書きアニメの省略作画のようにディティールを調整する方法は?#Blenderクイズ pic.twitter.com/K0eqwwdpAd
AOVで距離に応じて色を合成するシェーダーを実装することで省略作画を表現可能です。
▼実はリアルタイム表示も可能なんです
具体的な活動報告や情報提供はこれからになりますが、今後BlenderとUnityの連携に力を入れてまいります!動画はずん子本でもやってる頂点カラーによる輪郭検出をUnityのリアルタイムで実装したものです。ポストエフェクトの輪郭検出は今のところ、Blenderだけでは出来ません!#b3d #unity pic.twitter.com/lugYUciZ98
— 榊正宗@BlenderQuiz (@megamarsun) May 16, 2018
↑過去に一度実験して止まってますが、Unityなんかでは、塗りわけ法のリアルタイム表示が可能なんです。Blender開発のロードマップでは、ビューポートでのコンポジットのリアルタイム表示があるみたいなので、将来的には塗り分け法がBlender上でもリアルタイムで表示出来ると思います。
▼3dsMAXのPencil+4でも試してみました
![](https://assets.st-note.com/production/uploads/images/66968948/picture_pc_fe31e6cf9f7662a0ee54d0f8ac520675.gif?width=1200)
流石にキレイですね~。でも、よく見るとFreeStyleほどではありませんが、ほんの少しだけノイズが入っていますね。Pencil+4も原理的にはFreeStyleと同じなので、ポリゴン数が増えるほどに、レンダリング速度については塗り分けのほうが高速になります。リアルタイムポストエフェクトが実装されたら、3dsMAXからBlenderの塗り分け法に移るメリットは大きいと思います。
塗り分け法そのものは、ただの二次元輪郭検出ですから、あらゆるソフトで実現できる昔からある手法です。ですが、もともとコンポジットが一体になっているのに加えて、AOVとアンチエイリアスノードの実装で、Blenderが一番手軽で使いやすくなってきています!ぜひお試し下さい!
▼過去の仕事でもちょいちょい使ってました。
この技法は、TVアニメ「Phantom in the Twilight」でも使用されています。バスや車などはBlenderによるソーベル検出で作っています。きれいすぎるCGっぽさがなく、アナログ感があるので、作画との馴染みがよいのではないかと思います。 pic.twitter.com/FbhkPrHgPu
— 榊正宗@BlenderQuiz (@megamarsun) September 4, 2018
▼破線なんかを作ることも出来ます
【Blenderクイズ146】
— 榊正宗@BlenderQuiz (@megamarsun) December 3, 2021
塗り分け法で出した輪郭線を破線にする方法は?#Blenderクイズ #BlenderQuiz #b3d pic.twitter.com/aVtBDzIQGC
↑要するにマスクを作れば良いだけなので、破線なんかも自由自在に作れます。こちらのクイズでは下記のようなノードを使っています。
![](https://assets.st-note.com/img/1638544106211-bovUseZQKf.png?width=1200)
マスクは何でも良いのですが、今回は設定がらくな市松模様をつかいました。
![](https://assets.st-note.com/img/1638544174689-YXXMBEMLBV.png?width=1200)
マスクに使った市松模様をインペイントで外に広げてから使うのがポイントです。そのままですと、検出した輪郭線よりも狭い範囲しかマスク出来ません。
■無職転生20話ぜひ観てね!
最後になりましたが、無職転生20話にもこちらの技法を使用しております。無職転生は、こだわったので線を出す場所を頂点カラーで細かく塗り分けてあります。あと、顔だけはグリースペンシルで作画してあります。
ぜひアマゾンプライムでご確認下さい。
追伸
うつ病の薬もゼロになり、来年のお仕事も頂いております。ロートルで病気上がりの私なんかがお仕事を頂けるのは、たまたま、Blenderをやっていたおかげです。Blenderには感謝してもしきれないほど恩恵を受けております。
8年前にわたしにBlenderを教えてくれた、Sくん。そして、開発者の皆様。Blenderを使って盛り上げてくださっているユーザーの皆様。ここに、すべてのBlenderに関わる人に感謝の意を表明させていただきます。
Blenderなんかやっていたら無職になっちゃいました(涙)|榊正宗 Official note@映像作家&小説家 #note #アドベントカレンダー https://t.co/VV2chGZIO7
— 榊正宗@BlenderQuiz (@megamarsun) December 1, 2021
↑アニメ業界で広くBlenderが使用されるようになりましたが、輪郭線の技法で苦労されているケースが多いようです。困ってる現場がありましたら、ぜひ、こちらの記事をご紹介下さい。
この記事が気に入ったらサポートをしてみませんか?