3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BlenderのFreestyleの設定を試す

Last updated at Posted at 2021-09-27

Blenderには線画のレンダリングをするFreeStyleレンダラが搭載されています
既に 解説記事はいくつか書かれているものの 利用目的から検索した場合に見つけることができない部分があるようなので
改めて書いてみたいと思います。 (Blender2.93時点での情報になります)

まずは問題になりがちな設定にしたシーンをレンダリングしてみます。
image.png
テクスチャで透過した平面が 平面自体の境界線がレンダリングされている上に透過した向こうの線は出ていません。
また、水色でレンダリングされている板の向こう側にあるキューブの縦線や トーラスの線の一部だけ描かれています。
今回はこういった問題に対処する手順を追ってみます

ラインセットとラインスタイル

Freestyleはビューレイヤプロパティにあるラインセット
シーン内のどの条件の部分に線を引くかを設定します
image.png
ラインセットはビューレイヤ毎に複数設定でき
それぞれのラインセットで設定した選択条件を満たす部分に、対応するラインスタイルの設定の線を引きます

選択条件:の部分で有効になっている部分のみ詳細の設定が現れて 上から順に条件の判別がされるようです
エッジタイプ:の項目の 条件該当/排他 の切り替えは
チェックボックスの設定入った項目に線を引くのが条件該当、チェックの入っていない項目に線を引くのが排他
その横の 論理和(OR)/論理和(AND)
条件該当/排他の条件を元に どれか1つでも満たす部分に線を引くのがOR
同条件を全て満たすもの部分だけに引くのがAND ということになります
image.png
エッジタイプの設定で1つの項目だけをチェックしたラインセットを作って、どこに線が出るのか試してみました
ラインスタイルカラーの項目を調整してラインセットの項目に加筆してある色で描画されるようにしています

  • シルエット:エッジを構成するポリゴンの片方がカメラから見て裏側に行く部分
  • ボーダー:連続するポリゴンのない端っこになるところ(スザンヌの目の部分にはポリゴンに穴が開いています)
  • 輪郭:文字通り個々のオブジェクトと他のオブジェクトや背景との輪郭部分
  • クリース:隣り合う面同士が上のクリース検知オプションの設定よりも鋭角な部分
     (オブジェクトにスムースが入っていて面のスムーズさがオンになっている場合はスムーズでなくて鋭角な部分)

ということになります。
また
辺マークは編集モードの辺メニューでFreestyle辺をマークでマークした辺
外部輪郭はオブジェクトをひとまとめにした背景との境目
マテリアル境界はオブジェクトのマテリアル設定の境目(別オブジェクトの別のマテリアルとの境目は判断されない)
のようです

特定のオブジェクトやパーツのみ線を描かない

ラインセットの設定次第で線の描画を切り替えられるのは先に見た通りですが
特定の設定の部分には線を描きかない設定をしてみます。

コレクション

選択条件のコレクションを使用した例です
先の設定と比較してエッジタイプの下にコレクションの項目が追加されています。
image.png
Shift+M等でオブジェクトをコレクションに登録して「排他」を選択することで
コレクション内にあるオブジェクトの線を描かない設定にできます。
ただし、手前のオブジェクトの線が描画されなくなるだけで、透過した奥にあるものに線が描画されないのは同じです

また、同様に選択条件:面マークの項目では
編集モードでFreestyle面をマークでマーキングした面のみ 線を描いたり、描かない部分に指定することができます

遮蔽物の向こうの線

さて コレクションの「排他」を利用することで テクスチャを使った透明板自体の境界を表示しないということはできましたが
透明物の奥にあるものの線を出したい といった場合どうすればいいでしょう
Freestyleの可視性の項目の中にはQi範囲というのがあります

これは カメラから隠れているものでも 指定の遮蔽の範囲のものを描画単位にするといった設定です
中央のキューブと水色半透明の板をコレクションに加えて指定してみました
image.png
テクスチャの板に隠れた部分が青色の線で描画されています
ただ、水色半透明の板や 黄色のトーラスに隠れた部分も青色線が出ています
これは Qi範囲がこの機能自体は通常のレンダリングで出前にあるのが透明物かどうかに関係なく
「指定した回数のオブジェクトを通り抜ける範囲」で線を描画しているからです
またキューブの上面に一部線が欠けている部分があるのは ここがテクスチャ平面と水色半透明の2つのオブジェクトの重なった向こうだからです

以上の点で 透明物の奥部分だけ線を出すといったことはFreestyleだけではできないようですが
コンポジットを組み合わせることである程度は対応可能なデータが出せそうです

マテリアルで線の変更

ここまでは説明のためにFreestyleラインスタイルで 線の条件毎に線のベースカラーを変更していましたが、
マテリアルによってラインスタイルを変更できるのでその設定も紹介しておきます

ラインスタイルのカラーやアルファ等のタブの下にはモディファイアのプルダウンがあり
この各項目のデータを元に 色や幅等に変化をつける設定ができます。
image.png
この中のマテリアル がマテリアルプロパティ内の設定で線の色を変更する項目になります
image.png
下側にあるプルダウンがラインカラーが選択されている状態だと
マテリアルプロパティの Freestyleライン ので設定されている色が使われることになります
その他の設定項目としてディフューズ色がありますが
これはEeveeやCyclesで使用されるベースカラーではなく 現在の設定では「ビューポート表示」の項目にある色なので注意が必要です
image.png
カラー以外の幅等の項目は機会があればまた触れたいと思います。

因みに ラインスタイルはデータブロック(プリセット)としてファイル内に保存されるので
アペンドやリンクを利用して他のファイルと設定を共有できます。

意図しない線の例

冒頭に触れたように
Freestyleではまれに 形状の奥にあるはずの線が描画されてしまうことがあります。
これは Freestyleでの面と辺の前後関係の計算を面単位で行っているため 計算の誤差が大きいことが原因です

今回使ったシーンを見ると 水色の平面は1つの細長い面で作成されています
image.png
このように 他のオブジェクトと比べて大きい面 特に細長い面がシーン内にあると前後の判別が乱れるようです

同じ形状でも面を少し分割するだけで改善することが多いようです。
image.png
試してみてください

以上 最近見かけた BlenderのFreestyleの設定関連について書いてみました
何かのお役に立てば幸いです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?