Rendering

Tips

modoでレンダリング完了後に音声ファイルを再生する方法

レンダリング完了後に、任意の音声ファイルを再生する方法について書いてみます。
LightWave、3dsMax、AfterEffectsにはレンダリングが完了したときに、ビープ音や音声ファイルを鳴らす設定がありました。バックグラウンドでレンダリングしながら、他のソフトで作業中してるときにレンダリング完了が音でわかるので便利だったりします。

modoにレンダリング終了後に音を鳴らす設定がないので、レンダリング実行後にオーディオファイルを再生するマクロを作ります。マクロの内容は以下の通りです。

#LXMacro#
render
audio.playFile filename:C:\Windows\media\notify.wav

「audio.playFile」コマンドはmodo 701から搭載された機能で、好きな音声ファイルを指定することができます。このマクロではWindowsのシステム音を指定してます。このマクロをテキストエディタにペーストして、適当な名前「RenderCompleteSound.LXM」みたいな感じで保存すればOKです。

 

マクロファイルはmodoのスクリプトフォルダに入れておくと、コマンドラインに「@RenderCompleteSound.LXM」と入力するだけでマクロを実行することができます。ショートカットに割り当てたり、UIにボタンを追加すると便利かもしれません。

modoのスクリプトフォルダは「システム / ユーザースクリプトフォルダを開く 」で開くことができます。

 

レンダリング完了後にメールを送信したい場合は以下のフリースクリプト「eMailNotify」を試してみると良いかもしれません。
http://community.thefoundry.co.uk/asset/scripts/view.aspx?id=1412

 

参考

https://community.foundry.com/discuss/topic/60548/play-sound-when-render-is-complete

Tips

modoのパーティクルで破壊表現

パーティクルとテクスチャリプリケータでアイテムを破壊するような表現について書いてみます。
大まかな設定は前回の「パーティクルで波紋を表現 」と同じですが、パーティクル位置からパーティクルを2種類発生させています。1つはテクスチャリプリケータ用、もう一つは破片用のパーティクルです。

 

パーティクルの設定は以下の通りです。Particle Simulation_1 はパーティクル発射用で、Particle Simulation_2 と Particle Simulation_3 はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。Particle Simulation_4 は破片用のシミュレーションです。

スケマティックは前回とほぼ同じですが、破片用のシミュレーション部分が長くなっています。
Particle Simulation_2 はテクスチャリプリケータ用のシミュレーションで、コリジョンが当たった位置に発生しとどまります。Particle Simulation_3 は破片用のシミュレーションで、「寿命で除去」をONにして1フレームで消えるように設定しています。このパーティクルを元に Source Emitter を使用して破片がはじけるシミュレーションを設定しています。
Particle Simulation_4 は Particle Operator を使用して破片が回転するように設定しています。回転は「寿命」を「角速度」にリンクすることで設定します。「寿命」に200掛けてるのは回転数を調節するためです。

破片はボックスを「シャッター & グルー」で生成したアイテムを使用しています。「シャッター & グルー」を使うと破片ごとに別アイテムになるので、「センターをバウンディングボックスへ」を実行してメッシュの中心にセンターを移動します。
アイテムはグループタブでグループ化します。このグループをリプリケータの「原型アイテム」に設定すると、グループ内のアイテムがランダムで使用されるようになります。リプリケータで複数のアイテムを複製するときに便利な機能です。

 

レンダリングの設定はディスプレースメント用の画像をテクスチャリプリケータとして使用しています。ディスプレースメント用の画像は「シャッター & グルー」で粉砕したメッシュを適当にバラバラにしてから「形状をブラシへ」機能で作ってみました。ディスプレースメントは凸ではなく、凹にしたいので「上限値」を-100%に設定しました。

ディスプレースメントはデフォルト設定だと荒くレンダリングされるので、Render 設定のマイクロディスプレースメントで「ディスプレースメント評価」を0.2Pixelに変えています。

いくつか似た感じの記事を書いてみましたが、パーティクルとテクスチャリプリケータという同じ機能の組み合わせでも色々なエフェクトや表現が作れるんじゃないかと思います。単純な機能だけど発想しだいで無限の可能性感があって面白いですね。

次回以降も引き続きパーティクル制御について書きながら、徐々にボリュームを使った爆発表現なんかにシフトしていこうかと思います。

Tips

modoのパーティクルで波紋を表現

パーティクルとテクスチャリプリケータで水面に広がる波紋の表現について書いてみます。
結論から言うとテクスチャリプリケータはパーティクルごとランダムに消えるような表現ができませんでした。

大まかな設定は前回の「パーティクルでアイテムに穴を開ける」と同じですが、パーティクル位置から発生させたパーティクルをParticle Operatorで制御してます。

パーティクルの設定は以下の通りです。Particle Simulation_1 は発射用で、Particle Simulation_2はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。

スケマティックも前回とほぼ同じです。 Particle Operator の「寿命」を自身の「サイズ」にリンクすることで、パーティクルが発生してから徐々にサイズが大きくなるように設定しています。イーズイン、イーズアウトをより詳細に制御したい場合はチャンネルリレーションシップを使うと便利です。

スケマティックでは「寿命」を「ディゾルブ」にリンクしていますが、テクスチャリプリケータは「ディゾルブ」に対応していないため透明にならないようです。(リプリケータ、ボリューム、ブロブにはディゾルブが正しく反映されます)

波紋が消えるシーケンスデータを設定すれば寿命に合わせてアニメーションするんじゃないかと思って試したましたが、レイヤーの不透明度と同様に同じフレームで全てのパーティクルが消えてしまいました。もし渇するとリプリケータで波紋のメッシュを発生させて、シェーダーノードを使ってメッシュとのレイ判定をバンプに設定すればうまく行くかも知れません。

波紋のテクスチャは Gradient Fill レイヤーを使用しました。Gradient Fill は放射状のグラデーションを手軽に作れるので便利です。レイヤーエフェクトは「バンプ」に設定して、テクスチャリプリケータに Particle Simulation_2 を設定することでパーティクルの位置に波紋を発生させています。
上記の通り波紋が個々に消えるタイミングは上手く制御できなかったので、単純にレイヤーの「不透明度」に100から0に変化するキーを設定しました。


 

今回はSFっぽいエフェクトにも使えるように、パーティクルが衝突したタイミングで波紋を発生させたかったかったのですが、残念ながらテクスチャリプリケータでは表現できないようでした。単純に雨の波紋を作りたい場合は「Rainレイヤー」を使用すると簡単かもしれません。

次回も引き続きパーティクル制御で、オブジェクトが砕けるような表現について書いてみたいと思います。

Tips

modoのRainレイヤー

modoには「拡張 : Modo テクスチャ」として147種類のプロシージャルレイヤーが搭載されています。他の3Dソフトに比べてかなり強力です。今回はそんなプロシージャルレイヤーのRainについて書いてみます。

Rain レイヤーはその名の通り雨で水面に波紋が発生するような表現に適したレイヤーです。「時間」に0~100%を繰り返すカーブを設定することで、ループする波紋を簡単に作成することができます。ちょっとした雨の表現が欲しいときに便利かもしれません。

Rain レイヤーに限らず拡張 : Modo テクスチャには「時間」というパラメータを持ったレイヤーがいくつか存在します。「時間」を持ったレイヤーはアニメーションでループ可能なので、ゲーム向けの素材作成なんかにも使えるんじゃないでしょうか。

Tips

modoのレイオフセット係数

modo 11.2 以前のバージョンではデフォルト設定でローポリをレンダリングすると、レイトレースのセルフシャドーがバキバキして目立つという問題がありました。

modo 901 頃からは Render 設定の「レイオフセット係数」を調節することで、この問題を回避する事ができます。「レイオフセット係数」はプロパティーには表示されないため、チャンネルビューポートで編集する必要があります。ローポリモデルをレンダリングするときは知ってると役に立つかもしれません。

 

「レイオフセット係数」はレイトレースをオフセットさせるためのパラメータなので、値を大きくすると影が出なくなったり不正確な形になります。

 

このレイトレースの影は「レイトレースシャドーターミネーター問題 (Raytrace Shadow Terminator Problem)」というレイトレーシングアルゴリズムの一般的な問題らしいです。LightWave、Maya Software 、Octaneなど他のレンダラーでも同じような問題を発生させることができます。大抵の場合は回避用のパラメータがあって、デフォルトでは目立たない値が設定されています。

 

modo 12 はこの問題が発生しなくなったという話を見かけたので「レイオフセット係数」のデフォルト値が変わったのかと思いましたが、値は変わっていないようです。何かレンダリングの計算が変わったのかしら?

Tips

modoのパーティクルでアイテムに穴を開ける

パーティクルとテクスチャリプリケータでアイテムに穴を開ける表現について書いてみます。
大まかな設定は前回の「パーティクルでアイテムを濡らす」と同じですが、今回はパーティクルがコリジョンと衝突したら消滅して、新たにパーティクルを発生するように設定しています。

パーティクルの設定は以下の通りです。Particle Simulation_1 は発射用で、Particle Simulation_2はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。

スケマティックも前回とほぼ同じです。 Particle Operator の「衝突イベント」を自身の「消滅」にリンクすることで、コリジョンに衝突したタイミングでパーティクルを消滅させている点が違います。

レンダリングの設定は Constant レイヤーのレイヤーエフェクトを「ディゾルブ」に設定し、テクスチャリプリケータにParticle Simulation_2 を設定してアイテムに穴が開いたように見せています。単純ですね。

 

パーティクルがアイテムと衝突するだけなら「パーティクルで文字を書く」と同じで、新たにパーティクルを発生させなくてもいいんじゃないか?と思うかもしれません。

最初はそう設定していたのですが、テクスチャリプリケータの「ランダムサイズ」「ランダム回転」を使用すると、アニメーションレンダリング時に、一部のパーティクルでフレームによってパーティクルのサイズや回転が変わってしまうという問題が発生しました。原因は謎ですがコリジョンの影響でフリップしているように見えたので、新しくパーティクルを発生させることで問題を回避出来ました。

 

他にも穴を開けるような表現をする場合は、リプリケータとレンダーブーリアンを使うこともできます。下の画像では色を設定していますが、マテリアルの設定でディゾルブを100に設定すると透明にくり抜くことができます。
レンダーブーリアンはメッシュの形状を使用して複雑なくり抜きができますが、メッシュが重なっている箇所で望ましくないレンダリング結果になることがあります。欲しい表現に適した方法を選択するといいと思います。

 

次回も引き続きパーティクル制御で、雨の波紋のような表現について書いてみたいと思います。

Tips

modoのパーティクルでアイテムを濡らす

今回もパーティクルとテクスチャリプリケータでアイテムを濡らすような表現について書いてみます。
大まかな設定は前回の「パーティクルで文字を書く」と同じですが、今回はパーティクルがコリジョンと衝突したら、パーティクルを発生するように設定しています。

 

パーティクルの設定は以下の通りです。Particle Simulation_1 は流れ落ちるパーティクル用で、Particle Simulation_2はコリジョンと衝突したときにパーティクルを発生させる用のシミュレーションです。

modoではパーティクルから別のパーティクルを発生させたい場合は、Particle Simulationノードを複数作成します。Particle Simulation 間の連携は Collector / Emitter ノードを使用します。Particle Operator はリンクされた Particle Simulation のパーティクルを制御するためのノードです。

このスケマティックでは Particle Simulation_1 に Particle Operator をリンクし、「特長の追加」から「衝突イベント」と「位置」を追加しています。
「衝突イベント」はコリジョンと衝突した場合に、衝突したことを出力するチャンネルです。これを Collector / Emitter の「パーティクル放射」にリンクすることで、コリジョンに衝突したタイミングでパーティクルを発生させています。
「位置」はそのままパーティクルの位置です。 Collector / Emitter にも「位置」を追加してリンクすることで、 Particle Simulation_1 の個々のパーティクルの位置からパーティクルが発生するようになります。Particle Operator と Collector / Emitter の ◇ をリンクするのを忘れがちなので要注意です。

パーティクルの速度や重量のによりますが、パーティクルが線のように発生しない場合は Particle Simulation_1 の ステップ数を 8 など大きな値を設定すると「衝突イベント」の回数が多くなり、線のようにパーティクルを発生させることができます。

レンダリングは前回同様に Constant レイヤーをテクスチャリプリケータで設定しています。濡れたマテリアルを作成して「レイヤーマスク」、あと「バンプ」を追加してます。

次回も引き続きパーティクルとテクスチャリプリケータで、オブジェクトに穴を開ける表現について書いてみたいと思います。

Tips

modoのパーティクルで文字を書く

パーティクルとテクスチャリプリケータ機能で文字を書くような表現について書いてみます。パーティクルとコリジョンの設定方法がわからない場合は、modo Japan Groupのチュートリアルがお勧めです。

パーティクルの制御は見たままで単純です。エミッターを文字の形になるように一筆書きでアニメーションしています。文字間は「放射レート」にキーを設定してパーティクルが出ないように設定しています。
エミッターの設定は放射タイプを「均一」に変更して、一定間隔でパーティクルが発射されるようにしています。さらに「速度継承」をOFFにして、エミッターの移動がパーティクルに影響をあたえないように設定しています。

 

コリジョンの設定も単純で「跳ね返り」「マージン」「パーティクル衝突粘性」を 0 にします。これで平面にあたったパーティクルがその場で停止します。

 

文字部分のレンダリングはテクスチャリプリケータ機能を使用します。単色の線を表現する場合は Constant レイヤーを使うのが手軽です。Constant レイヤーは単色塗りつぶし専用のレイヤーです。ブレンドモードで画像の色味を少し変えたい場合なんかにも便利に使えます。

 

テクスチャリプリケータの機能が把握出来れば、作り方は簡単に想像できたんじゃないでしょうか。次回はもう少し手間の掛かったパーティクル制御でアイテムが濡れる表現について書いてみます。

 

参考

CG News

Arnold 5.1

新しいToonシェーダが組み込みこまれたようです。絵を見た感じシェーダーベースのラインに見えます。どんな感じか使ってみよう。
https://www.solidangle.com/news/arnold-5-1/

 

トゥーンシェーダー

Contour Filterと組み合わせて提供されるノンフォトリアリスティックレンダリング(NPR)ソリューションの一部として新しい Toonシェーダ が統合し、信じられないほど新しいスタイルや効果を実現しやすくなりました。Arnoldは美しいフォトリアリスティックな画像を作成することで長い間知られていますが、多くのユーザーがトゥーンやノンフォトのルックを可能にする機能を求めています。この新しいシェーダは非常に幅広い選択肢を広げます。

Tips

modoのテクスチャリプリケータ

modoにはアイテムをメッシュの頂点に複製する「リプリケータ」という機能がありますが、テクスチャ版の「テクスチャリプリケータ」という機能が便利なので紹介したいと思います。

テクスチャリプリケータ はアイテムの頂点にテクスチャを配置することで、模様を作ったりテクスチャのタイリングを目立たなくしたりに使える機能です。

画像だけでなくプロシージャルテクスチャにも使用する事ができます。ノイズテクスチャを使用すると下の画像のようになります。

Surface Generatorと併用することで、アイテムのメッシュに依存することなくランダムにテクスチャを散布することができます。
modoはプロシージャルテクスチャ機能が豊富なので、ゲーム向けにテクスチャをベイクして活用したいときなんかにも便利に使えると思います。

Gradient レイヤーにはテクスチャリプリケータに関連する設定があります。入力パラメータを「テクスチャパーティクルID」に設定するとランダムな色を設定することができます。

入力パラメータを「ロケータまでの距離」に設定すると、放射状のグラデーションにすることができます。

 

テクスチャリプリケータの面白いのが「パーティクルソース」にParticle Simulationを指定できて、パーティクル特性を利用できることす。例えばパーティクルが「サイズ」が徐々に大きくなるように設定すると、テクスチャリプリケータに反映されます。
下の画像はシェーダーツリーでレイヤーエフェクトを「ディフューズ色」と「バンプ」に設定したものです。

スケマティックも貼っておきます。Particle Operator に「寿命」と「サイズ」を追加して、「寿命」チャンネルを「サイズ」にリンクします。これで個々のパーティクルが発生してから徐々に大きくなるように設定しています。

 

あまり語られることはありませんが、modoのパーティクルはモデリング、レンダリングに次いで強力な機能だと思います。パーティクル機能とテクスチャリプリケータを併用することで、水の波紋、オブジェクトが濡れる表現、文字を書く、など他のソフトでは専用プラグインが必要そうな表現を標準機能だけで作ることができます。

次回はパーティクルとテクスチャリプリケータ使ったエフェクト的な表現について書いてみたいと思います。

CG News

Instant Lighting Kit for Modo

Instant Lighting Kit for Modoというライティングプリセット集が発売されたみたいです。価格は$30。3月26日まで早期割引期間で、クーポンコードを使用すると25%OFFの$22.50で購入できるようです。
https://gumroad.com/l/lightingkit

製品概要

インスタント ライティング キットは可能な限り短時間で美しいレンダリングを作成できるように設計されています。シーンを素早くライティングしてボタンをクリックするだけでプロのライティング結果を得ることができます。

いくつかの異なるルックとムードを作り出すリグで、魅力的なシーンを素早く作成できるようにしたいという思いから生まれました。モデルを見せたり、プロダクトレンダリングを作成したり、アーキテクチャに最適です。

このキットには合計36の異なる環境を提供します。これらの環境はスタジオ、インテリア、エクステリアの3つの大きなカテゴリーに分かれています。プリセットブラウザから3つのカテゴリの1つを選択すると、それぞれの環境で12種類の環境が順番に切り替わります。さまざまなオプションをすばやく比較し、数分でシーンに適したものを選ぶことができます。

このキットは、ライティングに多くの時間を費やしたくない人に最適です。モデラーは最小限の労力で美しくメッシュを表示できます。シーンをすばやく作成する必要のある専門家にも適しています。

CG News

V-Ray 3.6 for MODO リリース

V-Ray 3.6 for MODOがリリースされたようです。
http://v-ray.jp/v-ray/modo/

V-Ray 3.6 for Modo 新機能

  • MODO 12 シリーズをサポート
  • GPU ハイブリッドレンダリング
    V-Ray GPU のCUDAデバイスとしてCPUを利用する事が可能です。CPUとGPUの境界が無くなりレンダリング環境の選択がより容易になります。(CPU用レンダーファームをGPUレンダリングで利用したり、その逆も可能)
  • 再起動の無いデバイス選択
    MODOを再起動する事なくGPUレンダリングデバイスを選択できます。
  • V-Rayファー(芝生)
    V-Ray Fur生成機能をサポートし、レンダリング時に手続き的に短毛を生成します。芝生やラグマットのディテール作成に大変便利です。
  • VRscansをサポート [※別売りライセンス]
    ChaosGroupが特許を取得したマテリアルスキャニングシステムを使用したスキャンデータをMODOでも活用いただけます。VRscansではBRDFの代わりに、BTF (bidirectional texture functions) を使用して、物体表面構造(模様)や光の反射率を完全にキャプチャーし再現します。ライセンスを購入するとChaosGroupが既にキャプチャした 650 以上もの汎用スキャンデータを活用いただけます。
  • 完全なライトセレクトエレメント
    GI、反射/屈折、SS等を含めた完全なライト別の要素出力に対応。ポスト編集で完全なライトのOn/Off、掛け合わせ処理が可能になります。
  • クリプトマット
    ポスト処理で被写界深度、モーションブラー等を適用する為に必要な情報を含めたIDマスクを自動的に生成します。ポスト処理の効率を大幅にUPします。現在 NUKEとFusionでご利用いただけます。

その他、機能改善と不具合の修正が含まれます。

参考資料

NVIDIA RTX and GameWorks Ray Tracing Technology Demonstration

映画品質のリアルタイム レンダリングを提供するレイトレーシング技術の NVIDIA(R) RTXを発表されました。DrectX 12にレイトレーシングのパイプラインを統合した「DirectX Raytracing(DXR)」のAPIを使用するアプリケーションと互換があるようです。

レイトレースのメリットであるシャドーやリフレクションの正確さがわかるいいデモです。擬似的な表現に比べて絵が安定して見えます。デノイズを使用してリフレクションブラーを滑らかにするデモも素晴らしい。

DXRはDrectX 12に対応したGPUであればDXRを使用できるとのことですが、RTXはデモに使用されたハードスペックがだいぶ高いっぽいです。将来的には昔から研究されているレイトレース専用チップを搭載したグラフィックカードが登場して、DCCツールのビューポートでレイトレースが動いたり、レンダリングが早くなったりしたら面白いですね。
http://www.4gamer.net/games/033/G003329/20180323013/

CG News

OctaneRender 4

OctaneRender 4が発表になりました。既存ユーザーはプレビュー版を使用できるようです。

OctaneRender 4はライセンスに大きな変更があり、新しくフリー版が発表されました。フリー版は商用利用でも最大2つのGPUコアまで無料で利用できます。フリー版には有料版のすべての機能が含まれており、DCCおよびCADツール用のプラグインのうち約12個にアクセスできます。
サブスクリプションライセンスは最大20のGPUコア、すべてのDCCプラグインを含んでいて月額 $20。追加のネットワークノードは月額 $10 。2番目のスレーブライセンス。
永久ライセンスは最大200のネットワークGPUコアと、NvidiaのNVLink GPU相互接続技術をサポートする「エンタープライズ」に移行する予定。
https://render.otoy.com/forum/viewtopic.php?f=33&t=66013

  • AI Lightの新機能
    OctaneにAI Lightが導入されたことで、ライトが多いシーンでは光のサンプリングが大幅に改善されます。AI Lightは学習システムとして、より多くのサンプルをレンダリングするうちに改善されます。Adaptive Samplingと併用すると一部のピクセルがサンプリングされなくなるので、他のライトが重要になることがわかるため、AI Lightはさらに向上します。
    これを有効にするには、カーネル設定のLightの設定を参照してください。
  • AIシーン
    AIシーンはシーンの読み込み時間を大幅に短縮し、ビューポートのインタラクティビティを大幅に向上させます。数百万のトライアングルがあるシーンでも、リアルタイムでジオメトリを配置や変更できます。一定のトポロジを持つ頂点アニメーションは、タイムスライダの移動に伴い複雑なシーンでもリアルタイムに更新されます。大規模なシーンのビューポートでギズモを使用することもリアルタイムです。
  • AI デノイザー
    Spectral AI Denoiserは、わずかな時間でノイズを除去します。 Camera Imager 設定で有効にできます。
  • アウトオブコアジオメトリ
    Octaneはコアジオメトリをサポートし、システムメモリの大部分をジオメトリデータに使用できるようになりました。複数のGPUもコアジオメトリ外でサポートされています。
    Out-of-coreの下に4つのスライダが表示されます。システムRAMの使用制限により、Octaneがコアジオメトリおよびテクスチャの外に使用するシステムメモリの量を制限することができます。これにより、ジオメトリに関連するテクスチャがVRAMから削除されるレベルのバランスを取ることができます。
現在の問題

上記の機能はアプリケーション全体で必要な変更が加えられており、それらをすべて解決するために努力しています。このリリースで現在認識している問題を以下に示します。

  • ネットワークレンダリングは現在無効です。
  • シーンを変更すると、AI Sceneは変更をキャッシュしてレンダリングを高速化します。これにより、一時的にビューポートがフリーズすることがあります。
  • 大量の発光トライアングル(数百万)があるシーンでは、AIライト処理が遅くなることがあります。
  • 最初のAIシーンキャッシング中に変更を加えると、エミッタが機能しなくなるかビューポートが一時的にフリーズします。
  • リグメッシュアニメーションでタイムスライダを変更しているとき、時々レンダリングエラーが発生します。
  • レンダリング速度とVRAMの使用状況プロファイリングはまだ未解決の課題です。将来のリリースでレンダリング速度とジオメトリの使用率を向上させることが期待されます。
  • AI SceneとAI Lightはまだヘア/スフェアプリミティブタイプでは完全には動作していません。
  • AI Denoiserは現在、1つのGPUのみをサポートしています。これは、環境設定ダイアログのデバイスタブから選択できます。
  • AI DenoiserはまだVoltaに取り組んでいません。