概要Houdiniのレンダリングを自動化ワークフローに統合するには、一般的には以下のコマンドラインのどれか、または両方とも必要となります。PythonまたはHScriptを(個々に)実行して、HoudiniのGUIでできることほとんど(レンダーノードからIFDファイルを生成するなど)をコマンドライン上から行なうことができます。MantraレンダラーはIFDファイル(Mantraのシーン記述フォーマット)を受け取り、それを使って画像をレンダリングします。この2つの手法の主な違いは、hbatchはHoudiniライセンスを使用するのに対して、Mantraはレンダーライセンスのみを使用します。共通する一般的なワークフローは、1台のホストを使ってアニメーションフレームのIFDファイルを生成し(1つのフルライセンスを使用)、そのレンダリングをMantraインスタンスでファーム上で計算します(安いレンダーライセンスを複数使用)。環境変数とHoudiniプログラムのパスを設定したコマンドラインシェルが開きます。Postレンダーノードを使えば、スクリプトを実行して、レンダリング前にサーバーからジオメトリファイルを読み込み、レンダリング後にレンダリング画像をサーバーに保存することができます。Nullレンダーノード(例えば、FINAL_OUTPUT)をレンダーネットワークの最後に追加すれば、常に最後のノードを一貫して参照できるようになるので良いやり方です。テイクを指定してレンダーノードをレンダリングすることができます。これはレンダーパスをセットアップする方法が簡単です。レンダーの依存関係レンダーノードをお互いに接続して依存関係のネットワークを構築すれば、レンダーの起動順を制御することができます。入力と出力は任意の数だけ接続することができます。ノードをレンダリングすると、まず始めにHoudiniは入力ノードすべてをレンダリングします。ノードBがノードAに依存していれば、ノードBの任意のフレームをレンダリングする前にノードAのフレームすべてがレンダリングされます(A1、A2、...、An、B1、B2、...、Bn)。なく、依存関係を交互に扱いたい(A1、B1、A2、B2、...、An、Bn)のであれば、renderコマンドの-Iオプションを使います。パラメータは無視されます。(Strict)"では、Houdiniは入力ノードのフレーム範囲内でのみフレームを出力します。例:compositeは、char_diffuse、char_specular、backgoundに依存しています。char_diffuseとchar_specularはどちらもcharacterに依存しています。compositeをレンダリングする場合、レンダリング処理の順番は、以下のようになります:characterのフレームすべてchar_diffuseのフレームすべてchar_specularのフレームすべてbackgroundのフレームすべてcompositeのフレームすべてHoudiniでは循環依存関係を作成することはできません。サブネットワーク内側のノードよりも先にサブネットの入力のレンダーノードすべてがレンダリングされます。サブネットワークでは、同じフレームまたはフレーム範囲でその"最終の"ノード(出力に何も接続されていないレンダーノード)すべてをレンダリングします。なります(ノードを作成した順番)。Mergeレンダーノードノードを使って最終のレンダーノードを結合して、そのMergeノードの入力を利用して順番を決めます。サブネットワーク内のレンダーノードは子のレンダーノードとサブネットワークの入力のレンダーノードとは直接、接続されていません。そのため、サブネットワークで何の入力もないSwitchやBatchレンダーノードを使ってもサブネットワークの入力に何も影響がありません。thisノードを他のノードの出力に依存させる"親"のレンダーノードの出力を、依存させるノードの入力に接続します。レンダーノードに2つ以上の入力があれば、Houdiniは順番に入力をレンダリングします。兄弟関係にある入力は、お互い依存関係がありません。依存関係修正レンダーノードいくつかのレンダーノードは依存関係を管理しますが、それらのノード自身は何もレンダリングしません。"main"ブランチの前/後を実行することができます。Batchは、要求したフレーム順とは関係なく、1パスの連番で入力のフレームをレンダリングします。Dependencyは、フレームを他のフレーム時間に依存させます。Mergeは、依存関係すべてをまとめて結合してネットワークを読みやすくします。Switchは、依存関係にする入力の切り替えをします。ワークフローレンダーノードAlembicは、シーンをAlembicファイルに"出力"します。Archiveは、シーンをレンダラーで(プロシージャルシェーダを使って)読み込むのに最適化なジオメトリフォーマットを"出力"します。Geometryは、Houdiniのシーンの一部をジオメトリファイルに"出力"します。Shellは、スクリプトまたはコマンドを実行します。レンダーパスレンダーパス毎に別々のオブジェクトを表示/非表示する方法が2つあります:テイク別に、レンダーパス毎に可視性と設定をセットアップし、そのテイクを使ってレンダリングするレンダーノードを設定します。パスで可視にするオブジェクトを指定したバンドルやワイルドパターンを作成します。タブを使って、レンダーノードがレンダリングするオブジェクトを指定します。Houdiniのワイルドカードは名前を含めたり、除外することができます。Tip良いやり方は、レンダーパス毎に別のレンダーノードを作成することです。パラメータをスクリプト化する方法もあります。IFDやRIBファイルの生成IFDはHoudiniで生成されるシーン記述フォーマットであり、レンダリング画像やアニメーションシーケンスを生成するためにMantraで使用します。IFDファイルにはシーンの完全な記述とレンダリングの設定が含まれています。RIBはIFDをRenderManとRenderMan互換レンダラー用にしたものです。レンダー出力ノードをセットアップして、直接画像をレンダリングするのではなく、ファイルに保存します。これは、他の時間で、他のマシンから、またはレンダーファームでレンダリングができる柔軟性があります。詳細は、ネットワークレンダリングを参照してください。ファイル選択アイコンをクリックしてファイルパスを設定します。ボタンをクリックするとIFDファイルが保存されます。<<output_filename>>.pic(-fオプションを指定しなかった場合、MantraはstdinからIFDを読みます。)コマンドラインで.hipファイルからIFDファイルを保存するhbatchコマンドラインプログラムを使って.hipファイルを読み込み、レンダーノードを実行します。上記のようにIFDを出力するようにレンダーノードをセットアップします。.hipファイルをhbatchに読み込みます。myjob.hiphbatchコマンドラインで、renderコマンドを使ってレンダーノードを実行します。quitコマンドラインから直接.hipファイルをレンダリングする$HFS/binにあるhrenderスクリプトを使います。このスクリプトはcshで記述してあります。このスクリプトをWindowsで使うには、CygwinのようなUNIXライクの環境を使う必要があります。このスクリプトはhbatchを使っているので、Houdiniライセンスを使用します。反対に、MantraでIFDをレンダリングする時は、レンダリングライセンスのみを使います。コマンドラインでのMantraの使い方IFDファイルがあれば、コマンドラインからMantraを使って、それをレンダリングすることができます。rendered_frame0001.pic(-fオプションを指定しなかった場合、MantraはstdinからIFDを読みます。-hは利用可能なオプションの一覧を表示します。コマンドラインのオプションのほとんどがプロパティを上書きすることができます。シーンカメラ上にこれらのプロパティを設定して、必要に応じてコマンドラインでそれらのプロパティを上書きすることができます。hostlistレンダリングを実行するホストをカンマで区切ったリストを指定します。chili,cayenne。valネットワークレンダリングを使ってレンダリングするプロセスの数(お勧めしません。-jを使うことを薦めます)。maj.min(.ren)ネットワークレンダリングをする時、リモートホストは最低でもMantraのこのバージョンで動いている必要があります。0は最大のスレッド数を使います)を指定します。filestdinではなくファイルからIFDを読み込みます。指定したファイルの拡張子が.gzや.scであれば、Mantraは、そのファイルが圧縮されていると判断します。op:またはhttp:プロトコルを使用してIFDファイルを指定することができます。Proceduralシェーダの使用を有効または無効にします。デフォルトはbasicではなくnoneです。その理由は、ジオメトリを生成するプロシージャルを有効にするには、MantraでSOPネットワークを評価する環境をセットアップしなければならなくて、それは起動時のパフォーマンス(メモリと時間の両方)に影響するからです。この影響は、環境によって異なります。あるスタジオのEngineモードではプロセス起動時間が12秒でも、他のスタジオでは0.5秒以内だったりします。Proceduralの使用を無効にします(デフォルト)。basicProceduralシェーダがカーブまたはポイント(enginecurvegenとenginepointgen)だけを生成します。Engineライセンスを消費しません。Engineライセンスを使用します。シーンにSOPプロシージャルがあっても、-eを使ってそれに適切な設定でレンダリングしないと、シェーダはエラーメッセージをプリントし、何もジオメトリを生成しません。他のレンダリングは正常に動作します。-Fすべてのオプションの後の最初の引数が、レンダリングするIFDファイル(出力画像の代わりに)の名前を指定することを示します。file詳細な出力を指定したファイルに出力します。Windowsでは、ファイル名の代わりにconsolewaitやconsolenowaitを使うことができます。consolewaitは出力用にコンソールウィンドウを開きます。次のフレームがレンダリングされる前にウィンドウを閉じなければなりません。これは、速く移動してしまう出力を読むことができますが、ウィンドウを子守する必要があります。consolenowaitはコンソールウィンドウを開き、フレームの処理が終わるとすぐに閉じます。遅いレンダリングなら、出力を読むことができるかもしれません。フレーム毎にウィンドウを閉じるためにクリックする必要がありません。file詳細な出力を指定したファイルに追加します。pyfilterPythonフィルタープログラムを指定します(Pythonのフィルタリングを参照)。IFDプロパティを設定。IFDプロパティを設定。IFDプロパティを1に設定。IFDプロパティを2に設定。consolewaitを使ってウィンドウを開いたままにすることができるので、詳細な出力を読むことができます。レンダリングオプション-rrenderer:renderengineをraytraceに設定します。-qレンダリング品質を設定します(お勧めしません。-Qを使うことを薦めます)。argレンダリング品質を設定します。モーションブラーを無効にします。レイトレースのモーションブラーを無効にします。被写界深度を無効にします。すべてのレイトレースを無効にします。Irradiance/Occlusionを無効にします。factorrenderer:shadingfactorプロパティを設定します。factorrenderer:rayshadingfactorプロパティを設定します。memoryrenderer:geocachesizeプロパティを設定します。filenameレンダリングに使用するスタイルシートファイルを指定します。varianceimage:varianceを指定した値に設定します。-Aimage:samplesを(1,1)に設定します。sizeimage:bucketプロパティを設定します。jitterimage:jitterプロパティを設定します。covingobject:covingプロパティを設定します。画像オプション-i強制的にインタラクティブレンダリングをします(MPlayでレンダリング)。-Iいろいろな画像オプションを設定します(カンマ区切りのリストを使用)。image:resolutionを設定します。image:jitterを設定します。image:subpixelを設定します。image:samplesを設定します。sample=NxNと同じです。resolution=100x80,bucket=16,sample=4,subpixel=1。height画像の幅/高さを指定します(お勧めしません。-Iを使うことを薦めます)。depth画像平面のデフォルトの量子化を指定します。-zデプス画像をレンダリングします。-Zデプス画像をレンダリングします。object[:attrib]renderer:uvobjectを設定します。任意でrenderer:uvattributeプロパティを設定することもできます。出力ログ-Vを使えば、詳細レベル(1から9)を設定することができ、-oを使えば出力ログをファイルまたはデバイスに出力することができます。出力ログに書き込まれる時間の測定方法が色々あります。Timeフレームのレンダリングにかかった実際の時間(壁時計を見て測定する時間)。Time全体的にレンダリングにかかった実際の時間(この時間には実際のフレームレンダリングの前後にかかった作業時間を含みます)。Timeフレームのレンダリングに実際にCPU(s)が費やした時間。Timeの8倍になります)。OnlyMantraがオペレーティングシステムのコール(例えば、ディスクからのデータの読み込み、メモリの割り当て)に費やした時間。この時間は、OSがデバイスを待った時間(例えば、遅いネットワークからファイルを読み込むのに費やした時間)を含みません。Modelパッケージ(hou)が利用可能なPythonコマンドライン環境が起動します。rnode.render()hbatchを実行すれば、HScriptコマンドライン環境が起動します。これは実行したいアクションのほとんどをスクリプトにすることができます。-hは利用可能なオプションの一覧を表示します。マルチスレッドレンダリングMantraはマルチスレッドレンダリングです。単一のMantraでも利用可なプロセッサーを使ってレンダリングを高速化します。デフォルトではMantraはシステムのプロセッサーの数を検出してプロセッサすべてを使ってスレッド処理を開始します。チェックボックスを外せばマルチスレッドレンダリングがオフになります。設定することスレッドの数を手動で設定することができます。シンプルなネットワークレンダリングMantraにはレンダリングをローカルネットワーク上の複数のマシンに分散させる単純なメソッドがあります。これは、1枚の画像をレンダリングする時にその場しのぎで高速化するのに役に立ちます。強固で多機能なネットワークレンダリングを行なうには、HQueueやAlfredなどのレンダーキューマネージャーを使います。-Hオプションでレンダリングするホスト名を指定することができます。パラメータでからIFDファイルをレンダリングすることができます。localhost,clinton,beijing,finlandこのコマンドラインは、localhost、clinton、beijing、finlandという名前の4つのサーバー上でMantraを起動します。各マシンは、タイルをレンダリングして、それをホストマシンに戻して最終画像を組み合わせます。これは1枚の画像のレンダリング用にのみ動作します。すべてのマシンは、同じバージョンのHoudiniライセンスソフトウェア(hserver)を起動している必要があります。指定したマシンの1つが別のバージョンのhserverの場合やhserverがまったく起動していない場合は、レンダーがハングしてしまいます。-lコマンドを実行することで、マシン上で起動しているhserverのバージョンを確認することができます。Houdini9.0.688...Version:の値のメジャーとマイナー(この例では、9.0)がすべてのマシンで同じでなければなりません。レンダーファームの管理HQueueは、複数のサーバー上でタスクを分散、監視、管理をするための汎用的なジョブ管理システムです。これは、Houdiniから投入したレンダリングとダイナミクスシミュレーションの管理に特化していますが、他のアプリケーションからのジョブも取り扱えるようにカスタマイズすることができます。HQueueのインストールと使い方に関する詳細は、HQueueのオンラインドキュメントを参照してください。レンダリングMantraユーザーガイドMantraによるレンダリングの方法サンプリングとノイズMantraでのサンプリングの動作について説明しています。Dielectrics(入れ子状の絶縁体)異なるシェーダが定義されたジオメトリが重なっている時にそこから自動的にジオメトリを"抜き出して"、その内部に別々のシェーディングプロパティを割り当てることができます。Regionツールビューア内を矩形ドラッグして自動的に、そのビューの部分のプレビューだけの更新をレンダリングすることができます。カメラのセットアップファイル名のエクスプレッションファイルパスフィールドに変数とエクスプレッションを使用して、番号が振られた固有のファイル名を生成する方法。フリップブックアニメーションの作成ビューアの内容を画像としてレンダリングして、それらの画像をフルスピードで再生することができます。リニアなライティングとカラーライトのインスタンス化ジオメトリのインスタンス化と同様にレンダリング時にポイント上にライトをインスタンス化することができます。ライトパスエクスプレッション次のステップレンダリングワークフローTipsHoudiniとMantraを効率的にプロダクションパイプラインに統合する方法に関するTips。Mantraのレイトレースシェーディングを理解するMantraがどのようにレイトレースを使って、シーン内のオブジェクトをシェーディングしているのか、その背景の詳細を説明しています。レンダリング品質と速度ボリュームレンダリングサブディビジョンのサーフェスと曲線ワークフローの一部としてのレンダリングディープカメラマップCryptomatteIFDワークフローMantraでレンダリングをする時にIFDファイルのサイズを小さくする方法に関する簡単な概要。HQueueによるIFDの挙動について。IFDジオメトリの保存レンダリングのためにIFDファイルを生成する時、IFDファイルにジオメトリを"インライン(埋め込み)"にするか、外部ファイルにジオメトリを格納するか選択することができます。膨大なポリゴンのレンダリングワイヤーフレームをレンダリングする方法HQueueHQueueは、Houdiniの無料の分散レンダリング/シミュレーションマネージャです。RenderingエンジンがどのようにVEXを使用してライティングを計算しているのかについて。クラウドコンピュータでのレンダリングHoudiniのビルトインクラウドレンダリングは、現在のところ利用不可です。Cloudレンダリングを復活させるつもりです。追加画像平面(ディープラスター)のレンダリングIFDファイルフォーマットMantraレンダーでPythonを使用SOHO高度なレンダリング他のレンダラーRenderManを使ったレンダリングAIRの使い。