広告
広告

Blender のラインアートの使い方

カテゴリ:blender

目次

概要

ラインアートのパフォーマンス

カメラの設定

ラインアートの作成

ラインアートの設定

線幅・不透明度の設定

交差線

辺マーク

重複頂点を削除

Overlapping Edges As Contour

クリース

Occlusion

透過

線の加工

入り抜き

Vertex Weight Transfer

チェーン化

線のコントロール

リアルスケールの問題

ライトの不使用

任意の場所に線を置く

不要な線を除去する

フリースタイル

ベイク

SVG エクスポート

外部リンク

概要

ラインアートはバージョン 2.93 以降で使える。ラインアートは、カメラから見たオブジェクトの輪郭抽出を行い、グリースペンシルオブジェクトのレイヤーに書き出すモディフィアだ。

ラインアートはモディフィアなので、ひとつのグリースペンシルオブジェクトに重ねて使える。エッジタイプごとにモディフィアを分けたり、レイヤーを分けたりしておくと、ベイク後に編集が楽になることもある。

ラインアートのパフォーマンス

ラインアートは CPU でエッジ検出のみを行い、描画にはグリースペンシルを使う。ラインアートモディフィアの最適化が不足しており、バージョン 2.93 の時点ではシングルスレッド動作で、リアルタイムで動作できるポリゴン数の上限は二万ポリゴン程度。交差線の検出を有効にするとさらに遅くなる。マルチスレッド化は現在開発中で、近日公開予定とのこと(Also, a multithread loading and intersection calculation is under development and will be available shortly.)

lanpr-under-gp ブランチを自分でビルドすれば、キャッシュシステムが実装されたラインアートモディフィアが使える。ただし、オフィシャルバージョンと互換性がなくなる可能性が高く、作業内容の保存は推奨されない

ラインアートを無効にするには、ラインアートモディフィアを非表示にする。グリースペンシルオブジェクトを非表示にしても、ラインアートモディフィアは動作し続けることに注意する必要がある。

カメラの設定

ラインアートはカメラから見る必要がある。カメラとビューポートとを一致させるには、ビュー > カメラ設定 > アクティブカメラ(Numpad 0)でカメラからの視点に切り替え、サイドバー(N)で「カメラをビューに」にチェックを入れる。

lock camera
カメラをビューにロック

ラインアートの作成

「Shift + A > グリースペンシル」からコレクションやシーンを指定して作成するのが簡単だ。

1から設定するには以下の手順になる。

  1. ブランクのグリースペンシルを作成
  2. グリースペンシルの新規レイヤーを作成
  3. グリースペンシルのマテリアルを作成
  4. グリースペンシルにラインアートモディフィアを追加
  5. ラインアートモディフィアのコレクション、レイヤー、マテリアルを設定

ラインアートの設定

線幅・不透明度の設定

ラインアートモディフィアでも線幅・不透明度を設定できるが、これはプレビュー用だ。ラインアートをベイクするとこれは変更できない。なので最終的には幅モディフィアと不透明度モディフィアとで調整する。

交差線

ソースタイプがオブジェクトの場合、交差線が出ない場合がある。その場合はソースタイプをコレクションかシーンにする。

交差線は頂点グループを指定して色を変更できない。なので色トレスを行う場合は、交差線を使わないモデルを作成する必要がある

辺マーク

メッシュのエディットモードで「Ctrl + E > Freestyle辺をマーク」で任意の辺に線が出せる。

重複頂点を削除

重複頂点を削除するオプション。モデリングの途中で線を確認する際によく使う。ただしこのオプションで頂点が削除されると Vertex Weight Transfer がうまく機能しない。

Overlapping Edges As Contour

辺分離モディフィアを使ってシェーディングをコントロールしているメッシュは、分離箇所に二重に線が引かれてしまう。Overlapping Edges As Contour オプションはこのような重複した線を除去してくれる。ただし実行速度は遅くなる。

クリース

クリースは角度が閾値以下の辺に線を引く。なので背景用ビルやタンスのような鋭利なエッジを持つオブジェクトには適している。

曲面と鋭利なエッジで構成されたメッシュでクリースを使うと、ノイズが問題になりやすい。

noise
クリースによってできたノイズ

曲面と鋭利なエッジで構成されたメッシュでクリースがうまく機能しない場合は、クリースを外して手動でエッジマークをつけるか、オブジェクトを分割するかする。

オブジェクトのクリース設定

「プロパティパネル > オブジェクト > ラインアート」でオブジェクトごとのクリースを設定できる。

crease override
クリースのオーバーライド

Occlusion

ポリゴンの裏にある線を描画する機能。X線エフェクトやガラス窓等で必要になる。レベルは遮蔽されているポリゴン枚数。

透過

メッシュの透過マテリアルでマスクする機能。ガラス窓や眼鏡、水面など、意外と利用場面は多い。

メッシュの透過マテリアルの透過ビットはマテリアルタブで設定できる。

set transparent bit
透過ビットの設定

ラインアートの透過でマスクするマテリアルを設定する。透過メッシュがあることで遮蔽されているので、Occlusion のレベルも適切に設定する必要がある。

line art occlusion setting
ラインアートの透過設定

線の加工

入り抜き

幅モディフィア(Thickness modifier)

ラインストロークに入り抜きを設定できる。フリースタイルのような深度に沿った入り抜きは設定できない。

幅モディフィアを使った入り抜きはアニメーションではちらつきが発生する。

設定

幅を均一化にチェックを入れ、カスタムカーブを設定する。

thickness modifier
幅モディフィアの設定

Vertex Weight Transfer

Vertex Weight Transfer は重複頂点を削除オプションと相性が悪い。重複頂点を削除オプションが有効な場合、ただしくウェイトを転送できないことがある。

Vertex Weight Transfer は、メッシュの頂点グループのウェイト情報を、グリースペンシルの頂点グループに転送する機能だ。この転送された情報をつかって、幅モディフィアの入り抜きを設定できる。そのほかラティスやノイズ等のモディフィアも頂点グループで影響力を設定できる。

Match Output のチェックを外せば、転送先の頂点グループを指定できる。そうでない場合は、メッシュの頂点グループ名とグリースペンシルの頂点グループ名とは一致する必要がある。

Vertex Weight Transfer の Filter Source の行頭が一致する頂点グループがすべて転送される。

vertex weight transfer
モディフィアの設定

チェーン化

入り抜きを入れると団子状の線が発生することがある。これは奥行き方向の距離差やエッジフローなどが原因で線がつながっていないために起こる。

thickness noise
団子状の線

チェーン化を設定すると、閾値以下の線の始点と終点とが結合される。線をつなげるには、画像の閾値(Image Threshold)を大きくし、角度で分割(Angle Splitting)を小さくする。

chaining demo
チェーン化の設定例

線のコントロール

リアルスケールの問題

リアルスケールでは線幅の選択肢がない。たとえば 160 cm のキャラの線幅は1しか選択肢がない。ラインアートはこれ以上線幅を細くできず、2では太い。対策としてはエンプティにラインアートのグリースペンシルを除くすべてのオブジェクト(カメラやライト、背景を含む)を親子付けして、エンプティを 5~10 倍拡大する方法がある。

グリースペンシルオブジェクトを拡縮すると線幅を変更できるが、1より細くはならない。

ライトの不使用

グリースペンシルレイヤーはデフォルトではライトの影響を受ける。発光体に線を引く場合、線が黒くなるため、このチェックは外した方がいい。

use light
グリースペンシルレイヤーのライトを使用のチェックを外す

任意の場所に線を置く

辺のみのポリゴンを配置すると任意の場所に線が出せる。シェイプキーを使ってメッシュ内に隠す、もしくは縮小すれば任意のタイミングで消すことも可能。

place line
辺を配置して線出し

不要な線を除去する

ベイクした後に線を削除するか、Vertex Weight Tranfer を使う。Vertex Weight Transfer を使う場合は、線の出てほしくない辺のウェイトを1にして、不透明度モディフィアの係数を0にする。

巨大なモデルならば幅モディフィアの幅を0にする方法も使える。ただし幅モディフィアは線の幅が0にならないので、数センチメートルの大きさのオブジェクトの線はオブジェクトで隠せない。

hide edge
開口部の輪郭線を非表示にしてある
(オブジェクトが巨大なので隠れてみえないだけ)
opacity modifier
不透明度モディフィアの場合

カメラの角度によって線の幅を変えるには視点依存リグを参照。

フリースタイル

ラインアートで交差線だけ出力して、残りはフリースタイルを使う方法もある。

ベイク

ベイクは時間がかかる。フレーム数が多い場合は数GB~数十GBのメモリが必要になる。Ryzen 5 2600 のマシンで、4万ポリゴン・400 フレームのシーンをベイクするのに 20 分かかり、Blender の使用しているメモリは8GB、ベイク結果を保存したファイルは 2.3 GBになった。

ベイクしたグリースペンシルの頂点数は 600 万頂点になり、何をするにも数秒待たされる。現状、数万ポリゴンのラインアートのベイクは実用的ではない。

ベイクの注意点

ベイクすると線画を編集できるが、ラインアートモディフィアの設定を変更できなくなる。ベイクをクリアするとグリースペンシルの編集内容は失われる。

ベイクすると「クリアなしで続行」もできる。別レイヤーを作成し、ラインアートモディフィアのターゲットレイヤーを切り替えることで、ベイク内容を保存しておける。

SVG エクスポート

バージョン 2.93 以降はグリースペンシルを SVG にエクスポートできる。

export svg
グリースペンシルを SVG にエクスポート

【Line Artモディファイアの機能紹介・使い方】リアルタイムで確認できる新しいライン描画方法【Blender2.93 / グリースペンシル】

開発資料

Line Art As GPencil Modifier FAQ

LANPR GP New Solutions

LANPR Document Draft

Yiming's Blender Wiki Content Index


WYSIWYG NPR: Drawing Strokes Directly on 3D Models

Two Fast Methods for High-Quality Line Visibility

A modified ZS thinning algorithm by a hybrid approach

関連記事

輪郭抽出方法まとめ

Blender 記事の目次


広告
広告