K06のBLOG

BlenderとInkscapeとDavinciResolveを使用する上での日記的なブログ

【blender3.01】ディスプレイスメントノードとモディファイアーの使い方

f:id:K06:20220308123304j:plain

ディスプレイスメントを使うときはもっぱらモディファイアーでやってた筆者のK06です。

どうもこんにちは!

ディスプレイスメントがわからない人の為に最初に軽く触れておくと、ディスプレイスメントはディスプレイスメントマップ(画像)を使いメッシュを変形させる機能の事です。

バンプマップやノーマルマップはメッシュを変形させずに擬似的に凹凸を作ることができますが、ディスプレイスメントマップはテクスチャ(画像)でメッシュに直接凹凸を作る事ができます。

ディスプレイスメントノードを使ってる人を見たことがないので、恐らく皆さんはディスプレイスモディファイアーでメッシュを変形してるのではないでしょうか?

モディファイアーだと手順が多いのですが、ノードを使えば簡単な上に一箇所(シェーダーエディタ)でディスプレイスメントマップを管理できますので楽になります。

ただし、Eeveeだとディスプレイスメント「ノード」は効かないので レンダリングエンジンをCyclesレンダーにしておく必要があります。(Eeveeだとノードを反映させる設定すらできません)

といったところで早速やってみましょう。

ディスプレイスメントマップノードの使い方

といっても超絶簡単なのでもう結論をお伝えすると、ディスプレイスメントマップを付けたいオブジェクトを選択 → マテリアルプロパティ → 新規 。 f:id:K06:20220308123346j:plain

設定 → ディスプレイスをバンプのみからディスプレイスメントマップのみかディスプレイスメントマップとバンプに変更するとディスプレイスメントマップが使えるようになります。 f:id:K06:20220308123401j:plain

Tabキー(編集)→ Aキー(全選択) → 辺 → 細分化。 f:id:K06:20220308123601j:plain

左下の細分化タブをクリック → 分割数を100 → Tabキー(オブジェクト)にもどしておきます。 f:id:K06:20220308123627j:plain

続いてShadingタブをクリック f:id:K06:20220308123702j:plain

シェーダーエディタ内でShift+A → ベクトル → ディスプレイスメント。

ディスプレイスメントとマテリアル出力のディスプレイスメントを接続 → シェーダーエディタにディスプレイスメントマップをドラッグアンドドロップで読み込み、カラーと高さを接続するとディスプレイスメントマップがきいたはずです。 f:id:K06:20220308123723j:plain

あとはスケールの値を変更することで出っ張り具合を調整できます。 f:id:K06:20220308123750j:plain

ディスプレイス「モディファイアー」の使い方

ディスプレイスモディファイアーの使い方も説明しておきます。

ディスプレイスモディファイアーを付けたいオブジェクトを選択 → Tab(編集) → Aキー(全選択) → 辺 → 細分化 → 3Dビューポート左下の細分化タブを展開 → 分割数の値を100(細かい方が綺麗に形がでますが重くなります。) → Tab(オブジェクト)

モディファイアープロパティー f:id:K06:20220308123833j:plain 

モディファイアーを追加 → ディスプレイスモディファイアーをクリックして追加します。 f:id:K06:20220308123846j:plain

テクスチャプロパティーでディスプレイスになっている事を確認し、新規でテクスチャを作成 → タイプから好きなテクスチャを選択 → あとはテクスチャプロパティのサイズやモディファイアープロパティーの他の項目を編集するだけです。 f:id:K06:20220308123924j:plain

ディスプレイスメント「ノード」と「モディファイア」の使い所

モディファイアーだとblenderのシェーダーエディタ内蔵のいくつかのプロシージャルテクスチャを時、一旦画像にしないと使えないのですが、ノードだとつなげるだけで使えます。

例えばレンガテクスチャ、グラデーションテクスチャ、波テクスチャはノードでしか使えませんね。

逆にクラウド、変調ノイズ、マーブル、凹凸、木目をノードで貼りたい場合、テクスチャペイントで一旦画像として書き出す必要があります。

使いたいテクスチャによってノードとモディファイアーを使い分けるといいと思います。

まとめ

最後にこの記事のまとめを書いてみます。

  • ディスプレイスメントノードを使う時はディスプレイスメントマップノードの使い方で書いたように設定をする必要がある
  • ノードはCyclesレンダー限定
  • ノードとモディファイアーでは使えるプロシージャテクスチャが違う
  • モディファイアーはEevee、Cyclesどちらでも使える

最後まで読んでいただきありがとうございます!

テキストやパスのスムーズシェードを綺麗に見せる方法

f:id:K06:20220302132059j:plain

ローポリのメッシュにスムーズシェードを付けた時、メッシュの表示がおかしければ自動スムーズを適用するとだいたいの事は解決出来ます。

f:id:K06:20220302130710j:plain

スムーズシェードはスムーズシェードをかけたいオブジェクトを選択 → 右クリック → スムーズシェードで出来ます。

f:id:K06:20220302130616j:plain

自動スムーズはプロパティーパネルのオブジェクトデータプロパティー → ノーマルタブ → 自動スムーズにチェックを入れるだけです。

f:id:K06:20220302130730j:plain

しかし、blenderのテキストで押出とベベルの深度を追加すると最初からスムーズシェードがかかってるのに自動スムーズは出来ないようになっています。

f:id:K06:20220302130856j:plain

結論、辺分離モディファイアーで同じことが出来ます。

辺分離モディファイアーは表示がおかしいオブジェクトを選択 → モディファイアープロパティー 

f:id:K06:20220302131001j:plain

続いてモディファイアーを追加 → 辺分離(EdgeSplit)の順に選択すると追加され、自動スムーズと同じ効果が得られます。

f:id:K06:20220302131031j:plain

また、テキストやパスだけではなく普通のオブジェクトでも使えますので、プロパティーパネルをモディファイアーから移動したくない時に自動スムーズの代わりに追加すると良いと思います。

f:id:K06:20220302131112j:plain

10年近くblenderを触ってて昨日Google先生に教えてもらいました。

まだ知らないことって沢山ありますね。

最後まで読んでいただきありがとうございます!

【blender3.01】点密度テクスチャの使い方

f:id:K06:20220301145725p:plain

blender内蔵のプロシージャルテクスチャは沢山ありますが、点密度だけ使い方を最近までわかっていませんでした。

使い方がわかるとめちゃくちゃ楽しかったので紹介したいと思います。

どうもこんにちは!K06です。

プロシージャルテクスチャとは、数式を使ったテクスチャの事です。

といってもピンとこないでしょう。

普通テクスチャと言うとドローソフトやベクター等で出力した物を貼り付けますよね?

ドローソフトで等で作ったテクスチャは気に入らなければ作り直しなんですが、プロシージャルテクスチャは数値を入力して作れるテクスチャなので、気に入らなければ何度もやり直しが効きます。

そして今回紹介する点密度を使うとパーティクルをボリューム化でき、コンポジットノードを使わずとも半透明なパーティクルを飛ばすことが出来ます。

ただ筆者のパソコンではだいぶ重い作業ですので実用性があるかと聞かれるととりあえず「画像でレンダリングするならあり」という感じです。

日本語で紹介されてる方も少ないですし面白いですので一度やってみてはいかがでしょうか?

それでは使い方を説明していきます。


パーティクルを飛ばそう

まずはパーティクルを飛ばすためのオブジェクトを作っていきます。

どんな感じで作っても次の作業でパーティクルをボリュームにできますので思い描くものがあれば好きなように設定してもらって構いません。

以下せっかく説明しますので例をあげて説明してみます。

3Dビューポート内にマウスカーソルを持っていきShift+A → メッシュ → 平面を追加します。

平面を選択した状態でプロパティパネルのパーティクルプロパティをクリック → プラスボタンでパーティクルを追加出来ます。

f:id:K06:20220301145802p:plain

パーティクルアニメーションをSpaceキーで再生しながら設定出来ます。

放射タブ上から数300(開始フレームから終了までに飛ばすパーティクルの数)、終了500(500フレーム目でパーティクルのアニメーションを終了するの意味)、寿命500(途中でパーティクルが消えないように終了フレームと同じ)に設定してます。

f:id:K06:20220301145844p:plain

続いてデフォルトでは落ちていくパーティクルを登っていくようにフィールドの重みの重力を0にしました。

f:id:K06:20220301145914p:plain

今回はアニメーションで書き出さないので設定する必要はないですが、パーティクル登っていくスピードが早いのでノーマルを0.5m/sに設定しました。

これだけでもパーティクルをボリューム化出来るんですが、ボリュームと一緒にパーティクルも書き出したいとか、パーティクルのサイズを変えたい方は以下の設定をしてください。

パーティクルも一緒に書き出したい場合

3Dビューポート内でShift+A → メッシュ → UV球(何でも良いです。) → カメラに映らない所に移動 → 右クリック → スムーズシェード(お好みで)

パーティクルを発生させてるオブジェクトを選択 → パーティクルプロパティのレンダータブ → レンダリングをオブジェクトに変更 → インスタンスオブジェクトを追加した球体に変更でパーティクルも一緒に書き出すことができます。

f:id:K06:20220301150001p:plain

パーティクルのサイズを変更する方法

パーティクルのサイズを変更したい場合パーティクルも一緒に書き出したい場合を設定した後パーティクルプロパティ → レンダータブのスケールやスケールのランダム化で変更できるようになります。

f:id:K06:20220301150041p:plain

スケールやランダム化は、点密度に反映されませんが。

ただレンダリング時にパーティクルを一緒に書き出したくない場合はレンダリング時にパーティクルを発生させているオブジェクトをアウトライナーで非表示にする必要があります。

f:id:K06:20220301150057p:plain


入れ物を作ろう

つづいて入れ物を作りましょう。(入れ物の中のパーティクルがボリュームになります。)

入れ物って聞いてピンと来た方もいらしゃると思います。

そう点密度テクスチャの使い方は物理演算の流体に似てますね。

入れ物は最初からある立方体を使っても良いです。

デフォルト立方体がない場合は3Dビューポート内にマウスカーソルを合わせShift+A → メッシュ → 立方体を追加しましょう。

Zキー → ワイヤーフレーム →
Tabキーを押し編集モードでパーティクルをボリューム化したい範囲を囲います(Gキー=移動やSキー=拡大縮小を使ってください。)

Shadingタブに切り替え → 新規で新規テクスチャを作成 →プリンシプルBSDFを選択 →Xキーで削除 → Shift+A → シェーダー → プリンシプルボリュームを追加します。

プリンシプルボリュームとマテリアル出力のボリュームをつなぐ → Shift+A → テクスチャ → 点密度を追加。

点密度とプリンシプルボリュームの密度をつなぎましょう。

f:id:K06:20220301150142p:plain

囲い終わったらノードの準備は終了です。

しかし、デフォルトのままでは暗くてよくわからないので適当にライティングすると見えるようになります。(筆者はデフォルトのライトをサンに変更し強さを10にしました。)


点密度の設定

点密度ノードのオブジェクトでパーティクルを追加したオブジェクトを選択。

選択するとパーティクルシステムという項目が増えますのでパーティクルシステムを選択するとパーティクルをボリュームにすることが出来ました。

半径の値を上げることでボリュームが大きくなり逆で小さくなります。


f:id:K06:20220301150130p:plain

また、解像度の値を上げるとボリュームのレンダリングの質は上がりますが重たくなりますので注意が必要です。

ここまでの設定で点密度を画像で書き出せるようになります。

点密度を動画で書き出す方法

動画で書き出したい場合は点密度ノードのスペースをオブジェクト空間からワールド空間に変更しましょう。

f:id:K06:20220301150244p:plain

すると3DビューポートをSpaceキーで再生しててもレンダープレビュー(Zキー → 8)出来ます。

あとはプリンシプルボリュームのカラーを変更することで点密度の色を変更出来ますね。

Out of memory in cuArray3DCreate_v2(&array_3d,&desc)ほにゃららと出て画面が更新されない場合はZキー → ソリッド → Zキー  → レンダーと切り替えると画面がうまく更新出来ると思います。

レンダリングするときも出てきますが、一度保存して立ち上げ直すとレンダリングできますよ。

f:id:K06:20220301151316p:plain

いつも最後まで読んでいただきありがとうございます!