Rendering

Tips

modoのファー使用時のレンダリング設定

ファーを使用するときのレンダリング設定について書いてみたいと思います。
ファーマテリアルを使用するとノイズやチラツキが発生しやすくなります。メッシュが密集するのが原因ですが、以下の設定を変えることで改善します。

  • 「間接サンプル」「放射照度」「反射サンプル」などサンプル値を高くする
  • アンチエイリアシングを高くする

 

サンプル数

タイムラプスで使用した草を使って、どのサンプルがどの要素に影響しているか調べました。まずはmodoのデフォルト設定、「間接照明」の「跳ね返り」は 2 です。

デフォルト

アンチエイリアシング : 8サンプル/ピクセル
シェーディング率 : 0.5
間接サンプル : 64
放射照度 : 256


300%にズームした画像です。ファーの表面でノイズが多いのが確認できます。

 

シェーディング率

念のため「シェーディング率」を0に設定してレンダリングしてみた。

アンチエイリアシング : 8サンプル/ピクセル
シェーディング率 : 0.0
間接サンプル : 64
放射照度 : 256

シェーディング率の記事で書いた通り、「シェーディング率」を低く設定してもノイズへの影響は少ないです。

 

放射照度

GIノイズに影響する「放射照度」の値を上げてみます。

アンチエイリアシング : 8サンプル/ピクセル
シェーディング率 : 0.5
間接サンプル : 64
放射照度 : 512

 

「放射照度」は白い平面のノイズには影響がありましたが、ファーの表面のノイズに影響がないことがわかります。

 

 

間接サンプル

「間接サンプル」の値を上げてみます。

アンチエイリアシング : 8サンプル/ピクセル
シェーディング率 : 0.5
間接サンプル : 256
放射照度 : 256

ファーの表面のノイズが改善されました。ファーのノイズの原因は「放射照度」よりも「間接照明」の「間接サンプル」がより影響することがわかりました。

 

 

 アンチエイリアシング

ファーの形状は「円柱」と「ストリップ」が選択できます。草の場合は厚みのない「ストリップ」を使うんじゃないかと思います。

ですが「ストリップ」を使用するとカメラとポリゴンが垂直になるファーが、破線のようにとぎれてレンダリングされることがあります。板ポリゴンをカメラに垂直の位置でレンダリングすると、厚みがないのでレンダリングされないのと同じような問題です。ファーの場合は多少曲がった形状になることが多いので、アンチエイリアシングのサンプル数を上げることで改善します。

アンチエイリアシング : 8サンプル/ピクセル

 

アンチエイリアシング : 16サンプル/ピクセル

 

アンチエイリアシング : 32サンプル/ピクセル

アンチエイリアシングはファーが細い場合にも効果的です。厚みのないファーが V-Ray Fur で廃止されてるらしいのは、やはり途切れてレンダリングされてしまうからなのかな?

フレームパス

ファーを最も綺麗にレンダリングする最終手段として「フレームパス」があります。「フレームパス」は同じフレームを複数回レンダリングして合成することで、ファー、モーションブラー、被写界深度を柔らかくレンダリングする機能です。とても効果が高いですが、レンダリング時間が長くなります。

フレームパス : 2

ファーのランダムシードを変えてレンダリングして合成するような動作なので、ファーの量が多くなってる。

 

フレームパス : 4

 

ファーのレンダリングに何が影響しているのかがわかれば、効率的に設定を詰めることがでるようになると思います。
次回はファーのレンダリング設定をふまえてヘアーマテリアルをレンダリングしようと思いましたが、ガイドをダイナミックカーブで動かそうとすると、modo 10以降は計算が変な気がしますね。

Tips

modoのアンチエイリアシングとシェーディング率

odoのシェーディング率について書いてみたいと思います。ぼけてないシャープな反射、影、テクスチャを綺麗にレンダリングするには「シェーディング率」を0.1に設定してレンダリングした方がいいという話です。

一般的にレンダリングの綺麗さは以下のパラメータで決まります。ここでいう綺麗さはピクセルの品質のことです。GIの計算とかシェーディングアルゴリズムよりもCGの基礎の話です。

  • アンチエイリアシング
  • シェーディング率
  • サンプル数

 

アンチエイリアシングとは

アンチエイリアシングはレンダリング画像のジャギを滑らかにする処理です。アンチエイリアシングを使用するとチラツキがなくなり自然なアニメーションを作成することができます。
単純なアンチエイリアシング処理だとゲームで使われていたポストプロセス処理があります。周辺のピクセルの平均色を使用する方法でFXAAやTXAAというやつです。アンチエイリアシングの詳細はこちらの記事がわかりやすいです。

 

しかし3DCGは無限にズーム可能なので、ポストプロセスのようにピクセル単位で色を決めると情報が欠落してしまい正確なピクセル色になりません。アンチエイリアシングがポストプロセス処理のゲームを遊んだとき、オブジェクトの境界でチラツキ(クローリー)が発生するのを見かけたことがあると思います。

以下の画像はNvidia コントロールパネルを使用してmodoのビューポートにFXAAを適用したものです。

 

オブジェクトの境界を300%に拡大した画像です。FXAAはポストエフェクトなので静止してる場合はアンチエイリアシングが掛かって綺麗に見えますが、ビューが動くと階段状のチラツキ(クローリー)が発生しているのが確認できます。

 

ゲームは応答速度が重要なのでジャギやチラツキは許容されますが、映像目的のプリレンダリングではチラツキやノイズは好まれません。このため昔から3Dソフトのアンチエイリアシング処理は、1ピクセルを分割しサブピクセルをサンプリングしてピクセルの色を決定します。

例えば1ピクセルを4分割する場合、アンチエイリアシングがない状態で4倍の解像度でレンダリングするのと同じくらいの計算コストが掛かります。アンチエイリアシングのサンプル数を高くすることで、正確なピクセル色を得ることができますがレンダリング時間が長くなってしまいます。

 

全てのピクセルを分割するとレンダリング時間が長くなるので、レンダリング時間を短くする工夫として、3Dソフトのレンダラーはオブジェクトの境界を集中的にアンチエイリアシング処理するのが一般的です。

 

たとえば3dsMaxのスキャンラインレンダラーでレンダリングした画像です。Maxのスキャンラインレンダラーは2000年頃からほとんど変わってなくて、デフォルトでは鏡面部分のシェーディングでサブピクセルがほとんど考慮されない設定になってます。

 

同じ問題はmodoでも発生します。下の画像はmodoのデフォルト設定でレンダリングした画像です。球体の輪郭に比べて、シェーディング部分がジャギってるのがわかると思います。

 

ここまで前置きです。シェーディング部分のジャギを軽減するために使用するのが「シェーディング率」です。

 

シェーディング率

「シェーディング率」はシェーディング部分のサンプリングを増やすことでジャギを軽減します。反射、影、テクスチャのジャギが発生したら、シェーディング率を0.1や0のように小さな値を設定することで改善することができます。

シェーディング率はアンチエイリアシングと関係していて、シェーディング率 0.5は1ピクセルあたり4サンプル、0.25は16サンプリング、0.1は1ピクセルあたり100サンプリングのようにサンプルが増えるらしい。

 

下の画像は「シェーディング率」 の比較画像です。シェーディング部分のジャギが改善しているのを確認することができます。

 

リファインメントしきい値 と リファインメントシェーディング率

「シェーディング率」の下には「リファインメントシェーディング率」「リファインメントしきい値」というパラメータがあります。これはレンダリングを最適化するためのパラメータです。「リファインメントしきい値」で設定されたしきい値内のピクセルのみ「リファインメントシェーディング率」で設定された値でサンプリングします。

modoは「シェーディング率」と「リファインメントシェーディング率」で値が低い方の設定を採用するようです。デフォルトでは「シェーディング率」が0.5、「リファインメントシェーディング率」が1.0に設定されているため、「リファインメントシェーディング率」が使用されることはないようです。通常は「シェーディング率」だけ設定しておけば問題ないと思います。

「リファインメントしきい値」の動作が気になたのでアニメーションしてみました。
色の差が大きいピクセルから徐々に滑らかになるのが確認できます。有効に動作しそうなのは50%以下で、0%になると全てのピクセルがサンプリングされるためテクスチャがぼけたように見えます。

左はテクスチャのみ、右はテクスチャとバンプです。バンプを使用するとシェーディングでチラツキが発生しやすくなります。

 

UV確認用のテクスチャ、テクスチャの模様が滑らかに変化するのが確認できます。AEにいれてコマ送りでみると変化がよくわかると思います。

 

反射サンプル と シェーディング率

「ブラー反射」を使用した場合にノイズが軽減するかテストしてみました。シェーディング率を下げるとノイズが少しぼけますが、ノイズそのものへの影響が少ないことが確認できます。反射やGIのノイズを軽減したい場合は、サンプル数を増やした方がよいです。

反射サンプル:64、シェーディング率:0.5

 

反射サンプル:64、シェーディング率:0.1

 

反射サンプル:1024、シェーディング率:0.5

 

反射サンプル:1024、シェーディング率:0.1

 

「シェーディング率」はRender設定の他に、Shaderにもパラメータが存在します。

Renderのシェーディング率はシーン内の全てのマテリアルに影響しますが、Shaderは特定のマテリアルだけシェーディング率を上げることができます。
modoはRender設定とShaderのうち値が低い方のシェーディング率を採用するようです。またShaderはサンプリングのグループを結合する役目があるようです(後述)。アニメーションなどでレンダリング時間を最適化したい場合は、Shader単位で設定が変えられるのが便利ですね。

 

Shaded AA Samples Output

modoのレンダー出力には、アンチエイリアシングとシェーディング率のサンプリングを確認するための出力「Shaded AA Samples Output」があります。Shaded AA Samples Outputはピクセルのサンプリングの割合を視覚化した物で、1回のサンプリングで終了しているピクセルは青、設定の上限までサンプリングされたピクセルが赤で表示されます。適切なサンプリングが行われてるか確認するのに役立ちます。シェーディング率を0.1にすると全てのピクセルが赤になります。

以下の画像はシェーディング率0.5で、アンチエイリアシングの設定を上げた場合のShaded AA Samples Outputです。アンチエイリアシングを上げると青になるのはピクセルあたりのサンプリング数が増えるため、サンプリングの上限に達する前に計算が打ち切られてるってことかな?このことからアンチエイリアシングを上げた場合はシェーディング率を0.1で固定するよりは、シェーディング率を0.25とか適度に設定した方が効率的にレンダリングできるのかもしれない。

アンチエイリアシング : 8サンプル/ピクセル

アンチエイリアシング : 16サンプル/ピクセル

アンチエイリアシング : 32サンプル/ピクセル

アンチエイリアシング : 64サンプル/ピクセル

色がブロックのようにまとまってるのは、シェーディング部分の効率化による物です。サーフェース上のサンプリングが近い場合、グループとして結合することでシェディングの計算を効率化しているとのことです。

このサンプリングのグループ化は、Shaderのシェーディング率の値によって許容量が決定されるらしい。シェーディング率が1.0の場合、ピクセル内のすべてのサンプルが1つのグループとしてシェーディングけされる可能性がある。

 

 

modoのデフォルトのレンダリング設定は、速さを優先しているように思います。最終レンダリング時には「シェーディング率」は0.1のように低い値に設定するのがお勧めです。「シェーディング率」を下げてモアレやチラツキが酷いときに、はじめてアンチエイリアシングのサンプル数を上げるのがよいのではないでしょうか。

MentalRayやArnoldのようなプロダクション向けのレンダラーは、デフォルトでシェーディング部分をある程度サンプリングする設定になってます。そのため、はじめてレンダリングしたときはレンダリングの遅さが気になったりします。

ちなみにMaxでは「スーパーサンプリング」を使用するすことでシェーディング部分のジャギを消すことができます。

 

参考

https://community.foundry.com/discuss/post/339862
https://community.foundry.com/discuss/post/808199

Tips

modoのファーマテリアルとガイド

modoのファーガイドについて書いてみます。セグメント数の少ないガイドを使用する場合は「ポリライン」より「カーブ」を使用した方がいいんじゃないかという話しです。

 

ファーマテリアルとガイド

modoにはファーやヘアーを表現するためのFur Materialがあります。Fur Materialで髪の毛や長い草のような形状を指定する場合や、アニメーションしたい場合は「ガイド」を使用します。
ガイドとして使用できるのは「カーブ」と「ポリライン」の2種類です。現在はヘアーツールの「ガイドを生成」で生成されるのは「ポリライン」ですが、701以前のバージョンでは「カーブ」が生成されていました。ガイドを多く生成した場合に「カーブ」より「ポリライン」の方がパフォーマンスがよいとのことで仕様が変更されました。

 

ですがタイムラプス表現で使用したように「ダイナミックカーブ」で草を揺らす場合は、ガイドの「セグメント数」が多いと物理計算の負荷が上がります。アニメーションを前提とした場合も「セグメント数」が少ない方が制御しやすいと思います。
そこで少ないセグメント数のガイドを使用したとき、「カーブ」と「ポリライン」でどんな違いが出るかテストしてみました。

 

ガイドと最大セグメントの数

下の画像では緑の線が「ガイド」です。左から順に「セグメント数が20のポリライン」「セグメント数が5のポリライン」「セグメント数が5のカーブ」です。赤の線はファーのプレビューです。パースの関係でガイドの形状が違うように見えますが、全部同じ形状です。

 

ファーをガイドの形状にそわせるには「最大セグメント数」が関わってきます。「最大セグメント数」はファーの長さの分割数で、値が大きいほどなめらかに曲がったファーになります。

 

最大セグメント数:5

 

最大セグメント数:10

 

最大セグメント数:50

 

最大セグメント数:100

 

最大セグメント数:1000

 

レンダリング結果を見ると一目瞭然ですね。ガイドのセグメント数が5のように少ない場合は、ポリラインよりカーブを使用した方がなめらかに曲がります。ポリラインをガイドに使用する場合は、なめらかに曲がる程度のセグメント数が必要です。ファーのガイドをアニメーションさせたい場合は、カーブを使ったほうが良好な結果が得られそうです。またカーブを使用した方がガイドの先端までファーが伸びているのが確認できます。

「最大セグメント数」は値が小さすぎるとカクカクした形状になりガイドから離れてしまいます。値が1000のように大きい場合はガイドに近い曲がり方になりますが、ポリラインを使用した方はセグメント数が20程度だと、ガイドのカクカクした感じがレンダリングにあらわれてしまいます。

「最大セグメント数」の値が大きければよいかというとそうでもなく、「成長ジッター」に値が入っている場合はシェーディングがデコボコすることがります。以下の画像は「最大セグメント数」1000で「成長ジッター」25%(デフォルト)のレンダリング画像です。成長ジッターの影響でセグメントの長さが重なってるのか?バンプを設定したようになりました。髪のように綺麗なスペッキュラが欲しい場合には、このあたりの設定に注意が必要だと思います。

ファーの長さにもよりますが「最大セグメント数」は10~50くらいが実用的かもしれません。ちなみにカーブの作り方は、ポリラインでガイドを生成してから、エッジモードでポリラインを選択して「エッジからカーブ」を実行しました。

 

ガイドオプション

Fur Material でガイドを使用する場合はガイドオプションで「ガイド」の適用方法を指定します。ガイドをアニメーションしたときに、GLでの動きとレンダリングが違うのが気になったので検証してみました。

 

クランプ

クランプは「クランプ量」が設定されてるときファーがガイドに集まるようになります。

クランプはGLとレンダリング結果が変わります。画像の左がポリライン、右がカーブです。ガイドのセグメント数は3ポイントです。ポリラインはカーブに比べてファーの長さが短くなるようです。先端の集まり方も極端ですね。

 

方向

GLとレンダリング結果が一致してます。

 

方向 + 長さ

GLとレンダリング結果が一致してます。

 

シェイプ

GLとレンダリング結果が変わります。赤のガイドは意図した通りにアニメーションしていますが、緑のファーがカクカクしてます。マニュアルによると「シェイプ」は近くの3本のガイドを補間する処理で、ロングヘアーには向いていないとのことです。GLではガイドの補間が処理されないため、ファーの位置が飛んで見えるのかもしれません。

 

範囲

GLとレンダリング結果が変わります。下の画像ではファーが表示されてませんが、「範囲」はポリゴン数が少ないとファーが表示されないようです。ポリゴンを細分化すると表示されるようになります。
またGLとレンダリングでファーの長さが違います。マニュアルにはヘアーの長さはガイドの長さで決まる。ロングヘアーに向いてると書いてます。ガイドが密集してる場所はガイドの長さに近づき、ガイドの外側はファーが短くなる処理されるようです。その範囲の処理がGLに反映されないので、GLとレンダリングが違って見えます。また左のポリラインを使用したレンダリングは、ファーの長さがガイドより短いようです。ポリラインに「範囲」を使用すると、先端が考慮されないのかもしれません。

 

ファーのGL表示は極端な動きに見えることがわかりました。しかしレンダリングでは極端な動きが発生しないことが確認できました。プレビューなのでレンダリングと異なるのは理解していましたが、思ったより違う印象ですね。

ちなみに、ガイドのアニメーションはLinear FalloffのテクスチャロケータにRippleを設定しています。

 

 

次回はファーマテリアルを使用した時のレンダリング設定について書いてみたいと思います。

CG News

SUBSTANCE for MODO アップデート

SUBSTANCEのMODO用プラグインがアップデートされました。ワークフローと生産性に焦点を当てて、Modo内のSubstanceのパワーをさらに強化、より簡単に作業できるらしい。
https://www.allegorithmic.com/blog/substance-modo-improved-workflow-and-productivity

 

32ビット浮動小数点サポート

Substanceマテリアルは32ビット浮動小数点をサポートし、高品質のディスプレイスをレンダリングできます。

 

glTF / Principledシェーダのサポート

マテリアルのPrincipled Shading Modelをデフォルトにしました。Principledモードを使用するとシェーダツリーで変換することなく、メタリック/ラフネス出力で直接作業できます。ModoのglTFマテリアルのサポートも追加しました。

 

プリセットと相対パス

プリセットの読み込みと保存のための新しいUIと、Substanceファイルの埋め込みプリセットを読み込む機能を作成しました。Substanceファイルを相対パスで保存することで、Substanceマテリアルを使用したModoプロジェクトのオープンと共有が簡単になりました。

 

ワークフローの改善

プラグインがLPK形式をサポートするようになりました。Substanceプラグインをインストールするには、LPKをModoにドラッグアンドドロップするだけです。また、グローバルな環境設定にアクセスするための新しいSubstance Kitメニューを追加しました。

Substance Engineを使用すると、GPUエンジンとCPUエンジンの両方でバンプが発生します。CPUエンジンは4Kをサポートしており、GPUエンジンで最大8Kまで出力できます。

 

Linuxサポート

Substance in ModoプラグインはLinuxをサポートしました。

 

Tips

modoのテクスチャロケータのワールド座標系

レンダリングに関する設定で、テクスチャロケータの「ワールド座標系」について書いてみます。

modoには頂点にアイテムを複製するリプリケータという機能があります。アイテムを規則的に並べるのに便利ですが、たとえばノイズテクスチャを追加した場合に、全てのアイテムが同じパターンのノイズになってしまいCGっぽさが強調されてしまいます。

テクスチャロケータの「ワールド座標系」をONにするとアイテムのローカル位置でなくワールド位置を使用してノイズが設定されるようになり、アイテムごとに異なるノイズパターンがでるようになります。

ノイズテクスチャと Vertex Map Textureを組み合わせると、同じアイテムでも汚れやダメージの位置が異なる質感を手軽に作ることができて便利です。

 

ただし「ワールド座標系」ONでアニメーションを設定すると、ノイズがワールド座標に張り付いた状態になります。背景など動かないアイテムで使用するのがお勧めです。

 

「ワールド座標系」と同じ機能はLightWaveにもあって昔から便利に使ってました。実際に作れるかわかりませんが、ボリュームの設定にある「自動テクスチャオフセット」のように、パーティクル位置をテクスチャのオフセットに使用するリグが組めればアニメーションにも対応することができる気がします。

Tips

modoでタイムラプス表現

modoの「自然科学ベースの日光」「自然科学ベースの太陽」、いわゆるフィジカルスカイとフィジカルサンの時間をアニメーションさせて、タイムラプスっぽい表現の作り方について書いてみたいと思います。

 

時間経過のアニメーション

modoでは日の出から日の入りまでのアニメーションが簡単に作れます。空のような環境は、シェーダーツリーのEnvironment Material で環境タイプを「自然科学ベースの日光」を設定します。

ライトの設定の「自然科学ベースの太陽」をONにして、「時」チャンネルを設定すると時間に応じた照射をシミュレーションすることができます。このシーンでは 04:30~20:00 までアニメーションを設定しました。

 

雲のアニメーション

雲の表現にはボリュームを使用しています。Multi-Fractalレイヤーを追加して、レイヤーエフェクトを「ボリューメトリック密度」に設定します。雲の動きはMulti-Fractalのテクスチャロケータの位置をアニメーションさせています。ボリュームの位置は動かしていません。

雲の量を朝夕と日中で変化させるために「上部クリップ」にキーを設定しました。

ボリュームの形状は「立方体」、「半径」を300mに設定して、トランスフォームのスケール Yを10%にして平面的なボリュームにしています。位置は見た目で適当に配置してます。

ボリュームのシェーディングは時間に応じて「密度」「スキャッタリング」「アンビエント」「アンビエント色」をアニメーションしています。

「密度」は朝夕の時間が 10、日中は 7 に設定して雲の厚みを変化させています。同様に「スキャッタリング」も朝夕は 10%、日中は 200% に設定して雲を白くしています。

「アンビエント」「アンビエント色」はボリュームの色に、空の色を反映するために使用しています。modoのボリュームはGIが使用できないので、ボリュームをそのまま使用すると空から浮いて見えます。
「自然科学ベースの日光」で空のアニメーションを設定したら、「アンビエント色」に5~10フレーム間隔でキーを設定して、空の色をスポイトします。
「アンビエント」は朝夕 0 、日中は 1 に設定して「アンビエント色」の影響の強さを設定しています。

 

300mのように大きなサイズのボリュームを使用する場合は「サンプリングレート」の値に注意する必要があります。ボリュームの「半径」を大きくすると、テクスチャのバンディングのような縞模様が目立つようになります。下の画像は半径100mで サンプリングレート 1 の場合の画像です。

サンプリングレート 0.5 に下げると模様が目立たなくなります。ただしレンダリング時間も長くなるので、あまり小さな値は使用しない方がいいです。

 

草のアニメーション

草のアニメーションはダイナミックカーブとファーマテリアルを使用しています。

地面のモデルからヘアーツールの「ガイドを生成」を使用して、「セグメント数」3のガイドを作成します。

作成したガイドに「ダイナミックカーブ生成」でダイナミクスを適用して、「ジョイント角度制限」に小さな値を設定して動き過ぎないようにします。

草を動かすためにTurbulence Forceを追加してランダムにガイドが揺れるように設定します。

 

Fur Material を追加して、ガイドを「方向」に設定するとガイドに合わせてファーが動くようになります。ガイドは「シェイプ」「方向+長さ」「範囲」に設定してもアニメーションします。
本当は「シェイプ」を使用したかったのですが、GLではファーがアニメーションするのにレンダリングでは動かなかったり他のパラメータの影響があるようで、いまいちイメージ通りに動かなかったです。

 

草の質感

草の質感はこんな感じです。

 

Variation Textureでファー一本一本に色のランダムさを加えます。ファーが単色だと人工的に見えるので、ファーやヘアーを使用する場合はVariation Textureを使用すると自然に見えるようになります。

 

Gradient の入力パラメータを「ファーパラメトリック長」にして、草の根元から先端にかけて「サブサーフェース量」が変化するように設定しています。同様に「サブサーフェース色」も設定します。
サブサーフェースを使用することで、逆光のとき葉先の黄色が強くでるように設定してます。

 

チキンのアニメーション

チキンが組み上がるアニメーションは、プロシージャルモデリング機能を使用しています。

骨組みアニメーションのスケマティックです。

「Merge Meshes」したチキンのモデルを「Push」でマイナス方向に縮めます。「Edges to Curves」のカーブモードを「エッジ毎」にして、メッシュの形状のポリラインを生成します。「Delete_1」で全てのポリゴンを削除してポリラインだけにします。「Delete_2」ではリニアフォールオフを使用してポリラインを削除するアニメーションを設定しています。
最後にアイテムのカーブタブで「カーブのレンダリング」をONにすると、ポリラインをレンダリングすることができます。

 

チキンの面アニメーションのスケマティックです。

「Merge Meshes」したチキンのポリゴンを「Delete」で削除しています。ランダムに削除するためにSelectionに「Select Random」というアセンブリを使用します。Percentage Selected チャンネルにキーを設定すると、ランダムにポリゴンを削除するアニメーションを作ることができます。

 

カメラの位置やフレームごとに明るさにもランダムな変化をつけるか迷いましたが、とりあえず単純なタイムラプス表現でした。

 

Edges to Curvesを使うと、骨組みっぽくモデルを手軽に作ることができるので便利ですね。こういった時間経過のアニメーションは、ゲームエンジンの方が天候を変化させたり色々できて便利な気がしますが、レンダリング時間を気にしなければmodoでも手軽に作れます。

ファーでチラツキの少ないレンダリング設定についても書きたかったのですが、テキスト量が多くなりそうだったので記事を分けて書いてみたいと思います。

Tips

modoとAEでアニメ風爆発の作り方

modoとAfter Effectsを使ってアニメ風の爆発の作り方について書いてみます。特に新しい内容ではありませんが、だれかの参考になれば嬉しいです。

最近のアニメでは3DCGが使われることが当たり前になってます。爆発のようなエフェクトも作画ではなく、CGが使用されてるのを多く見かけるようになっています。
CGで爆発を作る場合は大きく分けて2つの方法があります。1つめは球体にトゥーンシェーダを設定して、球体をアニメーションする方法です。2つめはFumeFXのようなフルードダイナミクスや、ボリュームレンダリングを使用する方法です。

今回はmodoのパーティクルとボリュームを使用して爆発の素材を作って、After Effectsでセルっぽい質感にしてみます。

 

ボリュームのレンダリング

modoでボリュームをレンダリングします。色はAfter Effectsで設定するので、無彩色のままレンダリングします。パーティクルやボリュームの設定を解説するのは大変なので、詳細はサンプルファイルをみてください。

■ サンプルファイル

以前の爆発と同じく、今回もゲームっぽく爆発して消えるまでのアニメーションにしてみました。

ボリュームの質感は、爆発の中心を明るくするためにグラディエントレイヤーを「ボリューメトリックルミナンス量」で重ねています。グラディエントの「入力パラメータ」は以下の通りです。

 

デフォルト

わかりやすいように「ボリューメトリックルミナンス量」を使用していない状態の画像です。Multi-Fractal で煙っぽいでこぼこを設定しています。

 

テクスチャ値

入力パラメータに「テクスチャ値」を設定した画像です。Multi-Fractal レイヤーでへこんでいる部分を明るくすることで、煙の中心が高温になってる感じをだすために使ってます。

 

ロケータまでの距離(オブジェクト空間)

入力パラメータに「ロケータまでの距離(オブジェクト空間)」を設定した画像です。個々のパーティクルからの距離でボリュームを明るくしています。「 ロケータまでの距離(オブジェクト空間)」を使う場合は、ボリュームの「自動テクスチャオフセット」や「テクスチャエフェクト」をONにしていると影響を受けてしまうので、使う場合はOFFにする必要があります。

 

ロケータまでの距離

入力パラメータに「ロケータまでの距離」を設定した画像です。爆発の中心からの距離でボリュームを明るくしています。パーティクルを発射直後のボリュームを明るくするために使ってます。

 

最終レンダリング

全てのレイヤーを適用した画像です。

 

After Effects で色付け

modoで無彩色でレンダリングしたボリュームにAEで色をつけます。エフェクトは下の画像の通りです。

トーンカーブでボリュームのコントラストを調節してから、CelMXのGradientMapで爆発の色を設定しています。AE標準のコロラマ エフェクトでも同じことができます。最後にチョークでボリュームの輪郭をシャープにしています。
CelMXはCelFX同様にアニメ撮影処理向けのエフェクト集ですが、MXには3DCGでも便利なエフェクトが入っているので使ってます。

 

このままだと煙がパッキリし過ぎてるので影をぼかします。

レイヤーを複製して、煙の影をBlurCelを追加してぼかします。レイヤーの不透明度を65%くらいにして重ねます。ぼかし方は色々あるので、好きな方法を使うといいと思います。

 

最後に調整レイヤー追加してGlowを適用します。このGlowはお気に入りなので多用しちゃう。

 

作った爆発を Trapcode Particular で適当に発生させるとこんな感じになります。追加で火花や破片、画面ブレをつければ、もっと派手でそれっぽい感じになるんじゃないかと思います。

アニメ撮影に関するメイキングはあまり見かけることがありませんが、最終的なアニメのルックを決める重要なポジションのように感じます。フルCGや実写もそうですがコンポジットって重要ですね。

 

参考

「宇宙戦艦ヤマト 2202 愛の戦士たち」

爆発をLightWaveのハイパーボクセルで作ってるようです。modoでも参考になると思います。
http://www.dstorm.co.jp/dsproducts/lw3d/interview/profile19.html

「劇場版 ソードアート・オンライン –オーディナル・スケール–」

作画の煙の撮影処理前と後の画像が見ることができます。撮影処理で作画の煙のボリューム感がでてます。TurbulenceFDはセルっぽく加工せずに、ボリュームのシェーディングそのまま使ってるようです。こういう合成方法もいいですよね。
https://www.maxonjapan.jp/archives/work/sword_art_online_os

『Fate/kaleid liner プリズマ☆イリヤ』シリーズが実践する、新世代のアニメ撮影ワークフロー

アニメ撮影に関する貴重な記事です。今ではキャラの目や髪にグラデがかかってる作品はあたりまえですね。
https://cgworld.jp/feature/201512-prisma-illya-cgw208t2.html

ufotableのvimeoアカウント

アニメ撮影でとても見応えのある画面をつくるアニメスタジオさん。いくつかメイキング映像が公開されています。
https://vimeo.com/ufotable

Tips

modoのフォールオフ アイテムのイージング

modo 12.0でフォールオフアイテムにイージング機能が追加されました。この機能追加によってカーブを使用した細かなフォールオフ制御ができるようになりました。

例えばリプリケータの「スケール」を制御して結晶化するような表現を作るとき、リニアに大きくなるだけではなく、大きくなったあと少し小さくなる。というようなニュアンスを加えることができます。

 

スケマティックはこんな感じです。

Surface Particle Generatorで球体にパーティクルを発生させます。Particle Modifierは「スケール」を0%に設定し、フォールオフアイテムをリンクしています。フォールオフ アイテムをアニメーションすると、リプリケータのスケールが変化します。

複数のフォールオフアイテムを使用している場合に注意が必要なのは、イージングのカーブが0~1の範囲を超えないように設定する必要があるかもしれません。
上の画像ではリニアフォールオフとテクスチャフォールオフを使用していますが、イージングのカーブが0以下に設定したとき、テクスチャフォールオフの領域に小さな円柱が発生しているのが確認できます。
テクスチャフォールオフの場合は、テクスチャの「上限値」を100以上の大きな値に設定すれば大丈夫なのですが、他のフォールオフ同士の組み合わせでどうなるかは調べてません。

modo11以前のバージョンでもFXアイテムの「パーティクルサイズ」を使用すると、同じようにリプリケータのスケールをアニメーションすることができました。下の画像はGradientのテクスチャロケータをアニメーションさせたものです。

FXアイテムはシェーダーツリーに統合されているので、レイヤーのブレンドやマスクなど制御しやすいのですが、フォールオフアイテムに比べると処理が遅いような気がします。

 

Particle Random Modifier を使うと位置や回転のランダムをフォールオフで制御できるようになります。ちょっとしたモーショングラフィックっぽいアニメーションが簡単に作ることができます。やはり同じような制御をFXアイテムでもできましたが、スケマティックで関係性が見やすいぶんフォールオフアイテムが使いやすい気がします。

 

ちなみに、この結晶化のアニメーションはレンダリングに5時間かかりました。初めのフレームは30秒くらいなのですが、最後のリプリケータのアニメーションが終わったあたりは1枚4分かかります。アイテムのランダムさはリプリケータの「ランダムスケール」を設定してます。

 

マテリアルのシェーディングモデルは「従来」を使用して、レンダリングの設定では「反射深度」2、「屈折深度」1と速度重視に設定してますが、反射と屈折が組み合わさるとレンダリング時間が長くなります。もっとリアルに磨かれていないような質感にしようとすると、反射と屈折にブラーを加えることになるので、もっとレンダリング時間がかかりそうです。

今回はレンダリング時間を短くする工夫として反射用のオブジェクトやライトの変わりに MatCap を使用してみました。輪郭が浮き上がっていい感じに反射してるように見えます。GLでは問題なかったのですが、レンダリングでは使用したマップの上下左右が少し切れてるのが原因で、チラツキが発生してしまいました。

さらにIridescence Material で表面を虹色っぽく設定してます。MatCapもそうですが、modoはマテリアルを加算でブレンドできるのが面白いですね。

屈折のレンダリングは時間がかかるので、MatCapと反射のみで屈折したような質感を再現できないかと実験してみました。これだけ見るとそういうものかと思うかもしれませんが、屈折したものと比較すると透明には見えないですね。やっぱりカメラが動くとわかちゃいます。この反射だけの質感だとレンダリング時間は35分でした。

modoではMatCapをミックスしたりマスクしたりできるので、他のソフトに比べて便利に使える気がします。そのうちトゥーンマテリアルを作ってみようかな。

参考資料

Arnold用のPOTAカメラシェーダ

Arnoldレンダラ用の効率的なカメラシェーダがリリースされました。いわゆるレモン型のぼけや色収差を再現できるシェーダです。
http://zenopelgrims.com/polynomial-optics-arnold/

 

概要

POTA (ARNOLDへのPOLYNOMIAL OPTICS)は、広角レンズ用のスパース高次多項式に基づくアーノルドレンダリング用のオープンソースカメラシェーダです。

POTAは広角レンズ用のスパース高次多項式の実装です。 これはレンズ素子を通る光線を追跡するコストの一部で、高次の収差で画像をレンダリングします。それは、センサ上の光線を外側の瞳孔上の光線に変換するためにブラックボックスとして機能する、適合多項式を事前に計算することによって行われます。

このシェーダはカメラシェーダでの20年の研究努力を表しています。.ZOICでは各カメラの光線がすべてのレンズ要素によって物理的にトレースされています。視覚品質は同等ですが、多項式光学技術は数倍高速であり、薄レンズ計算のコストと比較することができます。特に、複雑なシーンでは、薄いレンズ近似を超える多項式光学系を使用するコストは無視できます。

レンズの記述は近似を有するので、薄いレンズ近似で慣れたように焦点距離を変更することは不可能であることに留意してください。かわりにPOTAをプライムレンズのライブラリと考えてください。いくつかの焦点距離の調整は、センサのサイズを変更することによって行うことができます(実際のカメラのように aps-cセンサのレンズの焦点距離の違いに注意してください)

POTAは波長依存性があり、対応するCIE RGB波長(それぞれの色チャネルごとに1つ)で3枚の画像をレンダリングすることにより、光学的に正しい色収差(正確なデータはほとんどないので、レンズコーティングは無視する)が可能であることを意味する。3つの画像をレンダリングするのは高価ですが、オプションがあります。例えば、赤色チャネルでは700nm、緑色チャネルでは546.1nm、青色チャネルでは435.8nmです。

参考資料

ディズニーが「モアナと伝説の海」の島のデータを公開

ディズニーは2016年の映画「モアナと伝説の海」から、、海、珊瑚、樹木、その他の植生を含むモトヌイ島の完全なデータセットを公開しました。
https://www.disneyanimation.com/technology/datasets

プロダクションで使用される実際のシーンで、プロプライエタリツールなしでレンダリングできるように変更されたデータは、レンダリングアルゴリズムをテストするための標準データセットとして使用することを意図しています。

また、プロダクションデータがどのように構造化されているか、ハードウェアがフィーチャアニメーションで典型的な複雑さのシーンをレンダリングできるかどうかを調べたい人にとっては、優れた学習リソースです。

 

150億のインスタンス化されたプリミティブを含む

データは実際の制作シーンであり、初期のティーザーの一部として使用されます。
「9000万を超えるユニークな四角形と三角形と5百万の曲線」を含むメッシュと、葉、残骸、岩石の2,800万件以上のメッシュを含む20の要素で構成されています。すべてが完全にインスタンス化されると、シーンには150億を超えるプリミティブが含まれます。

ジオメトリはOBEX形式で提供され、Ptexテクスチャ、シェーディング情報、アニメーションがあります。シーンには7つのカメラが含まれています。元のアニメーションテストで使用されたプライマリショットカメラ、およびその他の6つのビューです。

 

ディズニー独自のツール

オリジナルはBonsai植生ジェネレータやHyperionレンダラを含むDisneyの社内ツールをベースにしています。ディズニー外にレンダリングできるようにするために、レンダリング用にシーンが修正されています。
ジオメトリとマテリアルから細かいディテールを取り除くだけでなく、ショットを1回のパスでレンダリングするように調整し、「生きている」アニメーションをベーキングまたは削除することを意味します。

しかし、場合によっては、変換作業がシーンの複雑さを実際に増加させました。元のショットはディズニーの海パイプラインの初期バージョンを使用しました。これは、映画で使用されている最新の技術にアップグレードされ、オリジナルの「ミニマリスト」の水に合わせられました。

 

フィーチャアニメーションで遭遇する主要課題の

WDASはこのシーンを「典型的な制作環境」で遭遇するいくつかの課題を代表するものとして説明しています。インスタンス化されたジオメトリの巨大化、複雑なボリューム光のトランスポートなどです。

モーションブラーや、多数の光源(多数の他の主要な製造上の課題)はありませんが、これはパブリックドメインで本物のアニメーションデータに近づく可能性が最も高いものです。

また、グラフィックスの研究者にとっても素晴らしいリソースです。技術テストでMotunuiをもっと多く見て、今後数年間デモをレンダリングすることを期待してください。

 

可用性とシステム要件

WDASのMoana Island Sceneは、研究、ソフトウェア開発、ベンチマークのみを可能にするカスタムライセンスの下で利用できます。

期待どおり、それは大きなダウンロードです。静止画をレンダリングするのに必要なベースシーンは44.8GB、アニメーションデータはさらに23.6GBです。また、よりシンプルな6.1GBのクロックで動作するオープンソースのpbrtレンダラで動作するように変換されたバージョンのデータもあります。

WDASは、ミツバでレンダリングするためにセットアップされ、クリエイティブコモンズライセンスの下で利用可能な、実際の生産データではなく、複雑な量産クラウドデータセットもリリースしました。

CG News

V-Ray Next for 3ds Max リリース

V-Ray Nextがリリースされたようです。
https://www.chaosgroup.com/vray/3ds-max/

  • レンダリング全体のパフォーマンスを最大25%向上
  • 新しい適応ドームライトは最大7倍高速で、窓や開口部に天窓の入り口を設置する必要がありません。
  • V-Rayフィジカルカメラには簡略化されたUIに加えて、自動露出とホワイトバランスが追加されています。
  • 新しいGPUレンダリングアーキテクチャ、生産のレンダリングの速度を倍増することを約束。
  • エンベローメントフォグ、ボリュームエフェクト、VRScans マテリアルに対するへのGPUのサポートが強化されました。
  • ディズニー・リサーチをベースにした新しいフィジカル・ヘア・マテリアル。光沢、柔らかさ、ランダム性をコントロールするためのスライダーで簡単に見えるようにしました。メラニン・コントロールは色を変え、ヘアカラーの色を変えます。
  • NVIDIA Al Denoiser
  • レンダーエレメントをデノイズする能力。
  • ヒートマップとデータオーバーレイを使用して、シーン内の光レベルを分析し測定するライティング解析ツール。
  • Alembic 1.7をサポート。レイヤリングを含む。
  • オブジェクトに適用された複数のマテリアル間を変更する新しいV-Rayスイッチ。
  • V-Rayプラグインとテクスチャを使用して、UnityやUnrealの手続きテクスチャとPBRマテリアルを含むあらゆるバージョンのV-Rayから3DS Maxに任意のテクスチャや素材をロードできます。

V-Ray Nextの新しいワークステーションライセンスは$1,180。既存のライセンスへのアップグレードには$580。年間レンタルも$470で利用可。

Tips

modoで爆発表現

modoのパーティクルとボリューム機能を使用して爆発を作る方法について書いてみます。
パーティクルもボリュームも特に難しいことはしていないのですが、複合的な要素で成り立っているので解説するのが少し大変です。爆発を作るにあたって気をつけた点を中心に書いてみたいと思うので、細かな所はサンプルファイルを見てください。

サンプルファイル
シミュレーションを実行するとパーティクルを確認できるようになります。

 

爆発を考える

爆発を作るにあたり爆発を構成する要素を考えます。今回の爆発では「衝撃波」「火花」「爆発の中心」「爆発から飛び出す煙」の4種類の要素にしました。爆発で破片を飛ばしたり、爆発で建物が崩れるような場合はもっと要素が増えると思います。

要素別にレンダリングしてみたので、要素ごとに解説してみます。

 

衝撃波

爆発の衝撃波が伝わり、土煙が発生するイメージです。地面に沿ってパーティクルを飛ばすために、円柱から Surface Emitter を使用してパーティクルを放射しています。レンダリングはスプライトを使用しています。

 

火花

爆発で四方に飛散する火花のイメージです。Radial Emitter で放射状にパーティクルを放射しています。レンダリングはスプライトを使用しています。

 

爆発の中心

物が燃えてもっとも煙を出す、爆発の中心になる要素です。球体なんかのアイテムの頂点を使用して手付けでアニメーションさせてもいいのですが、今回は面倒くさかったのでRadial Emitter を使いました。

Particle Simulation の「重力」を正数にして、時間経過とともに空にのぼるように設定しています。
爆発の中心になるパーティクルは「ドラッグ」を設定して、パーティクルが飛びすぎないようにブレーキをかけています。

レンダリングはボリュームとスプライトを使用しています。煙の中心にシャドーをOFFにしたライトを配置しています。modoのボリュームはGIのように周辺を照らすことができないので、ライトを配置して地面やボリュームを照らしました。

本当は地面をもっと広くライトで照らしたかったのですが、ボリュームは「ライトリンク」が機能するのですが、スプライトは「ライトリンク」の設定を無視するため、しかたなくライト1個の設定にしています。ライトマテリアルの「ライトディフューズ量」を使用することでポリゴンだけ明るさを強くしました。

また、modoはフィジカルベースのライトなので、ライトの影響範囲を距離で指定してボリュームをライティングできないのも地味に困りました。フィジカルベースのレンダラーはライトの明るさによって影響範囲が自動的に切り替わります。リアルな物を作る場合にはいいのですが、エフェクトてきな表現の場合は、昔ながらの距離指定の影響範囲が恋しくなります。今回はファイルを公開する関係で1シーンで完結させてますが、別ライティングのシーンを複数作成して合成した方がいいと思います。

ボリュームの色は、グラディエントの「ボリューメトリックルミナンス色」「ボリューメトリックルミナンス量」で設定します。「入力パラメータ」は「ロケータまでの距離」を使用して、爆発の中心が燃えてるような感じに設定しています。

個別にレンダリングして気づいたけど、もう少しモコモコしたテクスチャ設定すればよかったかな。煙の内側方向にパーティクルをスピンさせればフルードっぽい感じにできたかも。

 

爆発から飛び出す煙

爆発から飛び出す煙です。煙は Randomize IDノードを使用して一本ごとにランダムさを設定しています。

レンダリングはボリュームとスプライトを使用しています。ボリュームは厚みのある煙の表現に使い、スプライトは煙が時間経過とともに拡散して薄くなっていく表現に使用しています。

ボリュームの動きと徐々に消える部分は「テクスチャエフェクト」の「拡張&ディゾルブ」を使用しています。「拡張&ディゾルブ」だけだと煙の動きがゆっくりすぎるので、Multi-Fractal のテクスチャロケーターを適当にアニメーションさせることで動きをつけてます。「密度」にキーを設定して煙の厚さを変化させて薄くなるようにしてます。

 

スプライト用のパーティクルは拡散して薄くなる感じを出すため、ボリュームのパーティクルよりも少し移動用が多くなるようにしています。「エフェクト速度」もボリュームとスプライトで差をつけて、スプライトの方が少し長めに表示されるようにしています。

スプライトは「サイズグラディエント」を設定して、時間経過とともに大きくなるように設定しています。最初のはボリュームよりも小さく、時間経過とともにボリュームよりも大きくなるようにしています。

ボリュームの色は、グラディエントの「ボリューメトリックルミナンス色」「ボリューメトリックルミナンス量」で設定します。「入力パラメータ」は「パーティクルエイジ」を使用して、パーティクルが放射された最初の数フレームだけ燃えているような感じになるよう設定しています。

 

パーティクルのスケマティックはこんな感じです。ノードの数は多いですが、特に難しいことはしてないと思います。

「爆発から飛び出す煙」のパーティクル Particle Simulation_4 は Particle Operator を使用して等間隔にパーティクルを発生させています。これは煙の線が途中で切れたように見えるのを避けるためです。Source Emitter を使用するとランダムにパーティクルが放射されるので、パーティクルに隙間ができてしまいます。逆にスプライトは Source Emitter を使用することでランダムに煙が拡散する感じを出すのに利用しています。

パーティクルには Turbulence Force を設定して風に流される感じを出しました。激しく動かしたいときはTurbulence Force を移動すると面白い感じになります。

 

完成

After Effectsでレンズフレアや画面ブレを追加して完成です。今回はゲームのエフェクト的に、爆発が発生して消えるまで作りました。映像用途では爆発してから消えるまでを映すことは少ないので、消えかける部分の調整が「拡張&ディゾルブ」まかせでリニアな感じが出てしまいいまひとつでした。完全に消えるところまで作る場合は、各パラメータに手動でキーを設定した方がいい感じになりそうです。

 

補足ですが、ボリュームとスプライトを同時にレンダリングすると、後半のスプライトとボリュームが重なる部分でチラツキが発生してるのに気がつきました。チラツキが気になったので上の画像は別でスプライトとスプライトのマスクをレンダリングして合成しています。
スプライトのマスクを作成するためにVolumetric Opacity Outputをマテリアルグループに追加してレンダリングしようとしましたが、Volumetric Opacity Outputはマテリアルグループに対応していないため使えませんでした。最終的にボリュームを黒色、スプライトを白色に設定し直してマスクにしました。下はちらついてる画像です。

modoのパーティクルとボリューム機能、なかなか強力で表現力あると思いませんか!?レンダリングに時間かかりますが、魅力的なエフェクトが作れると思います。

Tips

modoのボリューム

今回はmodoのボリューム機能について書いてみます。マニュアルを補完する形で、パラメータをアニメーションしあた場合の変化を画像にしてみました。
modoのボリュームは LightWave の Hyper Voxel が進化したような機能なので、基本となるパラメータや設定は LightWave でも活用できると思います。

ボリュームとは

ボリュームは煙、爆発、炎のようなエフェクト表現に最適な機能です。ボリュームは表面の形状しかない中身からっぽのポリゴンと違い、中身まで詰まったボクセルデータです。このため半透明な設定にするとレンダリング時間が長くなりますが、雲海の中をカメラが進むような表現ができるようになります。

最近では煙と言えば、FumeFXPhoenix FDのようにフルードダイナミクスを使用した表現が主流です。フルードダイナミクスは流体のようなリアルな動きを作成することができますが、シミュレーション空間をボクセルに分割して計算するため、カメラが近づくと荒くみえる。シミュレーションに計算が必要。シミュレーションキャッシュが1フレームで1GB超えることもよくあるため、PCスペックを要求するなどの大変さがあります。

modoのボリュームは流体のようなリアルなアニメーションはできませんが、カメラがどれだけ近づいても荒くならない。シミュレーションが不要のため、PCにかかる負荷が低いというメリットがあります。

ボリュームシェーディング

以下はボリュームシェ-ディング タブのパラメータをアニメーションさせた物です。

密度

ボリュームの厚さを設定する機能。値が50%以下のときは薄く色も明るくなり、値が大きいと厚みのある質感になる。

 

フォールオフ

密度にバイアスを設定する機能。ボリュームはデフォルトで中心から外側に向かって密度が薄くなるので、放射状に密度が変化する。

 

レベル

密度の最大値を設定する機能。AfterEffectsのレベルエフェクトと同じ感じの機能。

 

密度 グラディエント

上にある「密度」をミニグラディエントで制御する便利パラメータかと思うと、全く違うアニメーションになる。ボリュームの厚さをアニメーションしたい場合は、上の「密度」にキーを設定するしかない。

 

ハイパーテクスチャ高さ

レイヤーエフェクトで「ボリューメトリック密度」を設定しているとき、テクスチャが影響する距離を指定する機能。「ディスプレースメント距離」のような機能で、値が小さいとボリュームの中心にテクスチャの影響が出ない。「拡張 & ディゾルブ」を使用する場合は高めに設定しておくとよい。

 

ハイパーテクスチャスケール

ボリュームに設定したテクスチャのスケール。0%のときは100%として扱われる。マニュアルには「テクスチャロケータの スケール 設定と同じ働きをします。」と書かれていたので、テクスチャロケータをスケールした物と比較したが、レンダリング結果は完全に一致しないようだ。

 

テクスチャエフェクト

テクスチャをアニメーションしてくれる便利機能。細かなニュアンスまで制御したいときには、グラディエントレイヤーや、チャンネルにキーを設定した方がいいと思う。
テクスチャエフェクトはパーティクルエイジを使用するので、パーティクルシミュレーションで「パーティクルの寿命」が保存されている必要がある。

 

なし

当然動かない。

 

速度変換

パーティクルの速度ベクトルの方向にテクスチャが移動する。放物線をえがくパーティクルなんかだと変化がわかりやすいかも。

 

拡張

テクスチャのスケールが拡大するアニメーション。テクスチャが大きくなりながらクロスフェードを繰り返す。

 

拡張 & ディゾルブ

拡張のアニメーションしながらボリュームが消える。ディゾルブに使用しているパラメータが「密度 グラディエント」なのかも。個人的に好きなエフェクトで LightWave 時代からよく使ってた。

 

火砕

テクスチャを放射状にブラーしてる感じなかな。

 

エフェクト速度

エフェクトのアニメーション速度を設定する機能。テクスチャエフェクトの画像にある数字はエフェクト速度の値です。遅めは 50% 、早めは 100% を基準に調整開始するといいかもしれない。「拡張 & ディゾルブ」だけ効果が変則的で、50%は30フレーム、25%は60フレーム、10%は150フレームでボリュームが消える。テクスチャや密度の設定により消える時間が変わる気がする。

 

レンダー品質

高い設定にするとボリュームのシェーディングの階調が多く滑らかな見た目になる。

 

サンプリングレート

ボリュームをより精細に計算するための機能。「ボリューメトリック密度」にテクスチャを使用している場合、ボリュームの「半径」やスケールが100mのように大きなサイズにすると、ボリュームにバンディングのような縞模様が発生します。サンプリングレートの値を下げると縞模様を軽減することができます。
ただしサンプリングレートの値を下げるとレンダリング時間が長くなります。参考までにこの画像ではサンプリングレート1のとき2.7秒、0.5のとき4.8秒、0.25のとき9.5秒、0.1のとき23.1秒、0.01のとき5分36.6秒でした。

 

シャドー品質

高い設定するとシャドーが滑らかになる。設定が低いと影が階段状なる。

 

スキャッタリング

ボリュームの光の拡散具合を設定する機能。値を大きくすると白く雲のような感じになる。

 

前方スキャッタリング

背後のライトからの拡散具合を設定する機能。ボリュームの明るさが加算されて明るくなるのを期待したが、値を大きくすると黒くなる。

 

ライトを180°回転して前方スキャッタリングの効果を確認してみた。ライトが背面のときより効果が強く現れる。

前方スキャッタリングを高くすると黒くなるため、スキャッタリングも同時に調整する必要があるようだ。またライトにはシャドーが設定されている必要がある。シャドータイプが「なし」の場合はボリューム全体が明るくなる。

 

ボリュームの設定

今回テストに使用したボリュームの設定を書いておきます。基本的にはボリュームの「密度」を100に設定した以外はデフォルトのままです。

 

テクスチャにはMulti‐Fractalレイヤーを使用しました。ボリュームによく合うお気に入りのテクスチャです。レイヤーエフェクトを「ボリューム密度」に設定しています。テクスチャを設定していない場合、テクスチャエフェクトは機能しません。

 

シーンにはライトを2個配置してます。右のライトはボリュームの後ろ側に配置してます。ボリュームの直径は1m。

 

全パラメータレンダリングするのは面倒だったので、変化が明らかにわかるパラメータは省きました。ボリューム機能があれば、こんな爆発も簡単に作ることができます。次回はパーティクルを使用した爆発の作り方について書いてみたいと思います。