【Blender5.0】ラインアート(Lineart)モディファイア 設定まとめ:グリースペンシル

blender
記事内に広告が含まれています。

Blenderのグリースペンシルで使えるラインアート(Lineart)モディファイアは、簡単にオブジェクトの輪郭線を生成してくれて、線画アニメを作るのにめちゃくちゃ便利です。

しかし、結構うまく表示されないときも多くて、そのためにいろいろ設定したくても、設定項目多すぎてよくわからないので、マニュアルなどからどういうときにどういう設定をすればいいのかざっとまとめておきます。

スポンサーリンク

Line Art Modifier とは?

シーン内の3Dオブジェクトから線を自動生成する Grease Pencil モディファイア。
アクティブカメラ視点から見える部分だけ線を作る
毎フレーム計算するので重い。そのためベイク機能があります。
※カメラがないと動かない

Line Art は各モディファイアごとにオクルージョン計算(カメラから見たときの“遮蔽(しゃへい)/隠れ具合”の判定計算)をする
同じグリースペンシルオブジェクトにLine Artを2つ入れると計算も2回→ 激重
Use Cache(同じグリースペンシルオブジェクトにLine Artを2つ以上入れるとこの項目が出る)
2個目以降の Line Art が1個目の計算結果を使う
= 少し軽くなる(ただし一部機能制限あり)

線の遮蔽

ラインアートモディファイアはデフォルトでオブジェクトプロパティ > Viewport Display > In Frontがオンになっています。

ラインアート同士では、オブジェクトの位置によって線を遮蔽してくれますが、他のグリースペンシルストロークがあったときに、強制的にラインアートが手前にきたりします。

他のストロークとも順番を合わせたい場合はIn Frontをオフにしてください。

スポンサーリンク

基本設定

Source Type(線を取る対象)

  • Scene(全部)
  • Collection(特定コレクション)
  • Object(単体)

普段は Collection 推奨(軽くなる)

Layer
生成された線を入れるGrease Pencilレイヤー

Material
生成する線のマテリアル

Line Radius / Opacity
線の太さと不透明度

スポンサーリンク

Edge Types(どの線を出すか)

Illumination Filtering
光の当たり方で描く線を選別する機能(Light Referenceに参照用ライトを指定する必要あり

  • None → 通常
  • Illuminated → 明部だけ線を出す
  • Shaded → 暗部だけ線を出す
  • Illuminated (Enclosed) → 明るい領域からの線を選択し、輪郭線・ライトコンター線・影線の組み合わせを閉じた形状にする。(複雑な形状だとそもそもあまり閉じた形状にはならないのでよくわかりませんでした)

Silhouette Filtering

  • Contour…表裏の境界線
  • Silhouette…物体全体の外輪郭だけ(Invert/逆もできる)
  • Individual Silhouette…オブジェクトごとの輪郭(Invert/逆もできる)(コレクション選択などで、複数のオブジェクトがあるとき、それぞれの輪郭線をだすことができる)

Crease
角度のついたエッジ
Crease Threshold で角度指定(面と面の角度がこの値以下なら折り目として線を引く)
→ 建物なら 30〜60°が目安

Intersections
面と面の交差線に線を描きます。
他のモディファイアと併用すると挙動が不安定になる(例えばBuildと組み合わせたとき、描きあがる最後の方で交差線が点滅します)

Material Borders
異なるマテリアルの境界
(複数のオブジェクトではなく、1つのつながったオブジェクトに複数のマテリアルをつけたときのボーダーに線ができる)

Edge Marks
Freestyleっていう他の線画機能で使う、エッジマークを使用する。編集モードで辺選択にし、線を描きたい辺を選択して右クリックしてMark Freestyle Edgeでそこに線を描くことができます。

Loose
面を持たないエッジ(辺のみでも線を描けます)

Light Contour
光と影の境界線に線を描きます。
※Source Typeがオブジェクトだと機能しません。

Cast Shadow
影を線として投影
※Source Typeがオブジェクトだと機能しません。

Allow Overlapping Types
通常は複数の Edge Type に同時に該当しても、1種類としてしか出力されません。この機能をオンにすると該当したエッジをきちんと出力します。例えばシルエットとクリースが重なっていると、クリースがうまく出ないときなどに、この機能をオンにするときちんとすべてのエッジの線が出ます。(計算は重くなる)

スポンサーリンク

Geometry Processing(処理系)

Custom Camera
別カメラ基準で線生成。別カメラを指定できます。

Overlapping Edges as Contour
物理的に重なって不安定になったりするエッジを強制的に輪郭線として描く

Instanced Objects
パーティクルやインスタンスにも線を描くようになります。
大量インスタンスで重くなります。

Clipping Boundaries
カメラの Near / Far クリッピング平面で「切断された断面」に線を出すかどうか

Crease on Smooth
スムーズシェイドなどをかけたときも、Edge TypeでCreaseの設定をしたときに輪郭線が描画されるようになります。(通常は線が出なくなる)

Crease on Sharp
編集モードの辺選択で、Mark SharpしたところをCreaseで線を出すようにします。

Force Backface Culling
裏面削除で軽量化(完全に閉じたメッシュでやる)
ただし線の見え方が変わる(裏面から見ると、裏面を計算から除外するので、後ろにある線が隠されず描画されるようになる)

スポンサーリンク

Occlusion(隠れ線制御)

線を隠す、見せるなどの制御をする場所。

Level
0 = 見えている線
1 = 1枚の面で隠れた線
数字が増えるほど奥に隠れた線になります。

Range
指定範囲のオクルージョンのみ表示。
Level0~1の範囲の線だけ表示する、ということができる

Material Mask
特定のマテリアルを持つ面に隠された線だけを選ぶ機能

使い方
① 各マテリアルにOcclusion Maskを設定。
Line Art > Material MaskにチェックをしてMasksのパネルで番号割り当て
(右図の例:赤い平面のマテリアルに左上のパネルを割り当て、緑の平面のマテリアルに左上とその右隣のパネル2枚を割り当て)

② Line Artモディファイア側で「どのマスクで隠された線を拾うか」を指定。
●まずRangeやLevelでどの位置の線を見せるか指定
●Material Maskにチェックして、Masksでどのパネル指定したマテリアルを選択するか決める
(右図例:左上とその右隣のパネル2枚を指定すると、さっき左上パネルに割り当てられた赤いマテリアルと、左上+右隣パネルに割り当てた緑マテリアルにさえぎられた線だけを表示する)

Exact Match(完全に一致)
OFF …指定したMaskの「どれか1つ」に隠されていればOK
ON …ビットの組み合わせが完全一致した場合のみ
(右図例:左上とその右隣のパネル2枚を指定すると、その二枚を割り当てた緑マテリアルに遮られた線しか表示しない)

特定パーツに隠れた部分のみの線を表示したいとき(前髪に隠れた目や眉とか)に使えます。

スポンサーリンク

Intersection

どのコレクションのオブジェクトと交差している線か検出して表示することができる機能です。

使い方

  • Cube,SuzanneなどをそれぞれCubeコレクション、Suzanneコレクションに入れます。
  • LineArtのSource TypeSceneにして全体に効果をつけます。
  • Edge TypesのIntersectionsをオンにします。
  • それぞれのコレクションのコレクションプロパティ > Line ArtでCollection Maskにチェックをいれて、Masksのパネルに割り当てます。
  • Line ArtモディファイアのIntersection > Collection Masksでどのコレクションと交差した線を出すか指定します。
  • Exact Matchをオンにするとパネルで指定したコレクションとの交差線しか出しません。
スポンサーリンク

Face Mark Filtering

FreestyleのFace Mark(面マーク)を使ってどの境界線にストロークを出すか制御する機能
通常のLine Artは自動判定ですが、これは 自分で「ここに線出せ」と指定できる 仕組み。

そもそもFace MarkはFreestyleの機能なので、
レンダープロパティ > Freestyleにチェック
ビューレイヤープロパティ > Face Marksにチェック
しないと使えるようになりません。
Edit Modeで面を選択すると
右クリック → Face Data > Mark Freestyle Face
で「Face Mark」を付けられます。

Boundaries(境界)
これが基本機能。
Face Markが付いた面と
付いていない面の境界線だけを出す

Invert(反転)
Face Markの判定を逆にします。

Keep Contour
Face Mark Filteringを使うと
通常のContour(外形線)まで消えることがあります。
Keep ContourをONにすると:
フィルタしても外形線は残す

スポンサーリンク

Chaining

バラバラに検出された線分を、1本のストロークとしてつなぐ処理
Line Artはまず細かい線分を大量に生成します。
Chainingはそれを「きれいな線」にまとめます。

Intersection with Contour
交差線を、輪郭線(Contour)とつなげる。
ON:交差線が近くの輪郭線と連結される
OFF:交差線は独立したまま

All Lines
すべての線を「Contour扱い」にして全部つなぐ。

Loose Edges
面を作っていない浮いたエッジも連結対象にする。

Loose Edges as Contour
面を持たないエッジを「輪郭線扱い」にする。
Loose Edges ON だけだと単に連結するだけ。
これはさらに「種類もContourにする」。

Preserve Details
同じエッジ上で隠れ具合(オクルージョンの状態)が変わる場所で、線を分割するかどうか
ON:細かいギザギザやディテールを残す
OFF:滑らかで整理された線になる
複雑なものじゃないとほぼ違いがないです。

Geometry Space
連結判定を「3D距離」で行う。
通常は2D(画面上)距離でつなぎますが、
ONにすると3D空間での距離基準になります。

Image Threshold
2D画面上で、端点同士がこの距離以内ならつなぐ。
数値を上げると:
少し離れた線もつながる
下げると:
きっちり近いものだけつながる

Smooth Tolerance
チェーンに対してかけるスムージング強度。
高い → なめらかになる
低い → 元の形を保持

Angle Splitting
指定角度以上に「急カーブ」したらそこで分割する。
例:
30°にすると鋭角部分で線が切れる
180°にするとほぼ分割されない
アニメ線で角を残したいなら低め

※一応全部やってみましたが、結構複雑な形状じゃないと変化がなかったり、オンオフを繰り返しても同じ線が出るかが微妙だったり、結構計算が不安定なのかな?という印象です。ただBuildとか使うときにIntersection with Contourをオンにしていると線の点滅などがなくなることがあって、そういうときにここを構うといい感じになるときがあるかもしれません。

スポンサーリンク

Vertex Weight Transfer

元の3Dメッシュの「頂点グループ(ウェイト)」情報をLine Artで作られたストロークに転送する

  • 線の太さをウェイトで制御
  • 線の透明度をウェイトで制御
  • GPのモディファイアで部分的に変形

などが可能になります。

基本的な使い方

  • オブジェクトに頂点グループを作る
  • ラインアートをつけたグリースペンシルオブジェクトにも同名の頂点グループを作る
  • Vertex Weight Transfer > Filter Source に転送したい頂点グループ名を入れる(Match Outputはオン)
  • これでグリースペンシルの頂点にも頂点グループのウェイトが乗っているので、ThicknessモディファイアなどでVertex Groupを指定してそこにだけ効果をかけることができる

Filter Source(フィルターソース)
名前がこの文字列で始まる頂点グループだけを転送する
例:
元メッシュに
Line_Thick
Line_Thin
Arm_Deform
があった場合、
Filter Source に「Line_」と入れると
Line_Thick と Line_Thin だけ転送される。

Match Output(出力を一致させる)
ON の場合:
元メッシュの頂点グループ名と同じ名前の
Grease Pencil側ウェイトグループを作って転送

Target(ターゲット)
Match Output が OFF のとき使う。
転送されたウェイトを、1つの指定したGP頂点グループにまとめる
もし複数グループが対象だった場合:
一番大きいウェイト値がコピーされる

スポンサーリンク

Composition

カメラとの関係でストロークをどう処理するか

主に

  • 画面端で線が切れる問題
  • 深度ズレ問題

を解決する設定です。

Overscan(オーバースキャン)
Blenderは高速化のため、カメラに写っている範囲だけ線を計算するという最適化をしています。
Overscanを上げるとカメラ外側にも余分に計算し、線を描画してくれます。

Image Boundary Trimming
画面境界(Overscanの範囲含む)までで線を強制的に切る
※カメラを動かしながら見るとわかりやすいです

Depth Offset
線をほんの少しカメラ側に前に出す
(Line Artのストロークはメッシュ表面とほぼ同じ深度に生成されるのでビューポートでチラつくことがある(Zファイティング)
Depth Offset を上げると線が少し前に出てモデルと干渉しなくなる)
※「Show In Front」がONだと使えません。
Show In Front は常に前面表示する機能なので、Depth計算を無視してるからです。

Towards Custom Camera
通常はアクティブカメラ方向にオフセットですが、
カスタムカメラを指定している場合:
そのカメラ方向に向かってオフセットします。

スポンサーリンク

Bake(ベイク)

Line Artモディファイアの結果を実際のグリースペンシルのキーフレームに変換すること
ベイク後はただの描画データになる→モディファイアは無効化される

Bake Line Art
アクティブなグリースペンシルだけをベイク
シーンの Start〜End フレーム範囲で
そのオブジェクトだけ処理

※そのフレームでカメラから見えるところだけ線を描画するので、カメラをアニメーションするときは、カメラのアニメーションを作ってからベイクする必要がある。

Bake All
Line Artモディファイアを持つ全GPオブジェクトをベイク
大規模シーン向け。
アニメ完成前の一括確定に使う。

Clear Baked Line Art
アクティブオブジェクトのベイク結果を削除

Clear All(すべてクリア)
すべてのGPオブジェクトのベイク結果を削除
※そのフレーム範囲に同じGPオブジェクト内で手描きストロークがあった場合
それも消えます


Continue without Clearing
ベイク済みストロークを消さずに
モディファイアを再有効化する
例えば:
1〜50フレームをベイク

51〜100を後から作りたい
Start位置を50、Endを100にして
Continue without Clearing
Bake Line Art
すると、次のフレーム分だけをベイクできる

スポンサーリンク

関連記事

Generate系モディファイアは下記の記事でまとめています。

DeformとColor系モディファイアまとめ

グリースペンシルの基礎的な使い方まとめ

コメント