はじめに
3Dモデルでアウトラインがほしい時ありますね。
基本的にはViewport shadingのOutlineで済ませていました。しかし物足りなくなったので調べた結果です。
尚、冒頭のガチャガチャのアウトラインはLineArtという機能のものです。
参照元
www.youtube.com
アウトラインを得る方法
- FreeStyle
- 背面法(Inverted Hull)
- compositor から行う方法(メモ無し)
- LineArt(旧名: LANPR)
この記事ではFreeStyle と 背面法 は触り程度にしています。というのも動画を見た感じの熱量でいうと最後のLANPRに一番熱が入っていて、私としても一番近道をしたいので直でLANPRを選びます😃。
なのでLANPRは Windows 10ですがインストールを行い簡単にまとめています。
FreeStyle
- 特徴
- 最も有名で一般的な方法
- Eevee でも Cycle でも使える
- Advantage(利点)
- Cycle時だと FreeStyle のみ有効にしてレンダリングしたりできる(らしい)
- Drawback(欠点)
有効にする手順
- Render PropertyのFreeStyleにチェックを入れる
設定画面
背面法(Inverted Hull)
- 特徴
- マテリアルでアウトラインを作成する
- Eevee でも Cycle でも使える
- Advantage(利点)
- 簡単
- Drawback(欠点)
- アウトラインしたいオブジェクト全てに設定する必要があり時間がかかる
- この手順を簡単にするアドオンがある模様 gumroad.com
- 外側に法線が向いているマニホールドメッシュである必要がある
- 🤔マニホールドってなんだろう?という事で最後のメモに調べたメモを残しています。
- Textなどにもそのままでは適用できないとの事
- 厳密に言うとメッシュに変換してないテキストはカーブであり、Solidify モディファイアーはカーブ用のものとの事
- 厳密に言うとメッシュに変換してないテキストはカーブであり、Solidify モディファイアーはカーブ用のものとの事
- アウトラインしたいオブジェクト全てに設定する必要があり時間がかかる
設定手順
- Solidify モディファイアーを適用する
- Thickness は線の太さ
- Flip Normals にチェック
- Material Index Offsetはマテリアル index を設定
- アウトラインの色を設定したマテリアルを作成
- Backface Culling にチェックを入れる
- Backface Culling にチェックを入れる
LineArt(旧名: LANPR)
LineArtとは?
freestyleの代替としてリアルタイムでアウトラインを作るもの
- Yiming Wu氏開発中
- 公式サイト?Just a moment...
- 特徴
- おそらく少し躓くが一旦使い方がわかると簡単
- Advantage(利点)
- レンダリングが早い
- キレイ
- Drawback(欠点)
- 少し実験的なものに挑戦する姿勢が必要
- ドキュメントが少しざっくりしている
LineArt インストール
せっかくなのでウィークリービルドから最新版で試します。
ウィークリービルド
blender.community
- ダウンロード
- 解凍するとLineArt機能のついた Blender2.91 Alpha でした。
- ツールフォルダーへ移動する(これを見て作業している方は自身のツールフォルダーやテンポラリで作業してください)
LineArt 使い方
必要な手順は全て下記動画ありそれを参考に詳細な手順にしています。
www.youtube.com
動画の手順の詳細
- Grease Pencilを作成する(`Shift + A’→メニューからBlankを選択)
- レイヤーを作成
- アウトラインはグリースペンシルで描かれる。その描画内容を格納するレイヤー
- マテリアル(ペン)を作成
- アウトラインを描くのに使うペン
- アウトラインを描くのに使うペン
- Grease Pencil に LineArt モディファイアーを追加
- モディファイアーの設定
- Source Collection: アウトラインをつけたいオブジェクトが格納されいるコレクション
- Target Layer: 作成したレイヤー
- Target Material: 作成したマテリアル(ペン)
- このパネルについてはこの記事最後のメモで少しまとめています
- LineArt モディファイアーの設定という項目です
- LineArt モディファイアーの設定という項目です
- Render Property の Line Art を有効にする
テストシーン
- Unreal Engine から拝借したマネキンをおいています。Rigify が適切に行われているのでとても使いやすい。
- LineArt(ピンク)のフォントはCurve(デフォルト)です
- LineArt(上段の黒)のフォントはメッシュです。※CurveからMeshに変換処理をしたものです
- スザンヌとICOSphere
- 四角い枠はCubeを細分化しWireframeモディファイアーを使っているものです
結果
😃すごいですね。
もういっちょ
🤔遮蔽物(オクルージョン)があって辺が見えていない場合は線が描かれないようです
なめらかにするために欠けているベベルでもなめらかにしすぎると消えますね。
なめらかにする目的などでベベルをかけるならモディファイアーにするなどの工夫が必要かもしれませんね。少しコツがいりそうです。
メモ
LineArt モディファイアーの設定
Use Contour ~ Intersection までのチェックを変えた例
manifold メッシュとは?
- 定義
Michigan Technological University – Mesh Basics
https://pages.mtu.edu/~shene/COURSES/cs3621/SLIDES/Mesh.pdf
下記2つを満たすものはマニホールドメッシュだそう
- 辺が1つまたは2つの面につながっている
- 頂点に付随する面は、閉じた扇形または開いた扇形を形成する。
その他関連リンク
– Manifold(多様体)
ja.wikipedia.org
- What is non-manifold geometry? マニフォールドジオメトリではないものとは?
非マニホールドジオメトリは現実世界では存在しないもの(これは3Dプリンタではマニホールドメッシュである事が重要な理由)
英語メモ
- Drawback 欠点