Houdini 20.0 Solaris

ライティング向けLOPsチュートリアル 1

最初のチュートリアルでは、サンプルのLOPsシーンファイルを開いて探索し、ポイントライトと新規カメラを作成し、LOPsとレンダリングのプロパティと設定をいくつか調整して、テストレンダーを生成します。

On this page

始める前に

  • このチュートリアルを始める前に既にHoudiniを知っている必要があります。 始める前にSolarisの“知っておくべき事”のセクションも目を通してください。 そこでは、いくつか初級者向けの良いページのリンクを載せています。

  • このチュートリアルを学習する上でLOPs初級チュートリアルを学習する必要はありませんが、役に立つと思います。

シーンを読み込む

  • Houdiniを起動します。

  • Solarisデスクトップに切り替えます。

  • tutorial-lighting-start.1.hipファイルを読み込みます。

    • BarSceneディレクトリは、この.hipファイルと同じ階層になければなりません。

  • ライティングを無効にすると、ビューポートでは下図のような表示になるはずです。

Note

シーン内のどこにもライティングが見れない場合は、単に新しいScene Viewerタブを作成してください。

何も表示されないようであれば、Stage Managerがディスク上のアセットを見つけることができていないのが原因です。 シーンが表示されていれば、このセクションの以降の説明をスキップしてください。

ビューポートに何も表示されていない場合(または、複数のユーザー間でアセットを共有できるようにするために、他の場所にアセットを移したい場合)、以下の説明に従ってください:

  • Stage Manager LOP を選択します。

  • パラメータエディタのギアアイコンの左側にある“Show/Hide Parameters”アイコンをクリックします。すると、Stage Mangerに収集されたすべての単一アセットが表示されるはずです。Stage Mangerに慣れていないようであれば、チュートリアル 2を復習してください。

  • 各タブに“Reference File”パラメータがあることに気づくと思います。これは、Houdiniがアセットを検索するディスク上の場所を指しています。 現時点では、Houdiniは$HIP/BarSceneを検索します($HIPは、“Houdiniを起動したディスク上の場所”または“読み込んだファイルが置かれているディスク上の場所”を意味します)。 $HIPの直下のサブディレクトリにBarSceneディレクトリが存在しなかった場合、そのディレクトリを用意してください。以下に修正方法を載せます:

    • Hscriptテキストポートを開きます(Windows -> Hscript Textport)。

    • Hscriptテキストポートで、opfind \$HIP/BarSceneとタイプします。

    • これは、“$HIP/BarScene”で始まる参照を持ったHoudini内のすべてのノードを表示します。なぜバックスラッシュを使ったのでしょうか?このバックスラッシュは変数を“保護”します。つまり、Houdiniは$HIP を検索するのではなく、“$HIP”というワードを文字通りに検索するようになります。

    • この結果として“/stage/stagemanager1”のみが表示されるはずです。

    • では、すべての参照を変更しましょう。この例では、アセットが/home/projects/assets/BarSceneに配置されているものと想定します。 Hscriptテキストポートで、次のようにタイプします: opchange \$HIP/BarScene /home/projects/assets/BarScene

    • Houdiniは、変更したパスを報告して、シーンが更新されるはずです。

ノードネットワークを探索する

下図のようにノードネットワークが表示されていると思います:

  • 既に説明したように Stage Manager では、アセットをステージに収集しています。

  • Edit Properties LOPを使用することで、Primsにアトリビュートを追加することができます。これは後で説明します。

  • SOP Create LOPノードを使用することで、SOPのパワーを利用してLOP内でジオメトリを作成することができます。このノードを選択してENTERを押すと、どのようにシーンの背景が作成されたのか見ることができます。uを押して上の階層に戻ります。

  • Camera LOPは、その名前のとおりでカメラです。

    • Camera LOPのパラメータエディタで“View”タブに進んで、 Horizontal ApertureVertical Aperture19.210.8に設定することで、HD解像度のカメラを作成することができます。

Note

被写界深度をレンダリングするには、“Sampling”タブのF-Stopパラメータをゼロ以外の値にしなければなりません。 このチュートリアルでは被写界深度を使ってレンダリングしません。

セカンドカメラを追加する

シーンには既にカメラがあります。もう1個カメラを作成しましょう。

  • shot_0001 Camera ノードをALTドラッグしてコピーします。

  • 名前を“shot_0002”に変更します(これは必要になった場合です。Houdiniでは、自動的にそのように名前が変更されているはずです)。

  • shot_0002shot_0001 の下になるようにネットワークを接続します。

  • shot_0002 カメラの表示を有効にします。

  • ビューポートをshot_0002カメラ視点にします。

    • ビューポートをロックして、タンブルさせて、別アングルのカメラビューにします。

  • “Primitive Path”の値に注目してください。これは、シーン内のカメラの格納先をLOPs(とUSD)に伝えます。

    Primitive Path

    /cameras/$OS

  • shot_0002 LOPを選択すると、 Scene Graph Tree/cameras下にカメラが格納されていることがわかります。

テーブルランプを追加する

Note

続ける前に、このチュートリアルの最後にある完成したノードネットワークの画像を見てください。 途中で悩んだ場合は、この画像を見て、ネットワークの接続方法を参照してください。 たいていの部分は、ノードの接続順で相違がないので、通常では、このチュートリアルの画像のネットワークとあなたが組んだノードネットワーク間の相違は無視して構いません。

では、シーンにライトを追加する準備ができました。 まず最初に、ランプの笠の内側に電球を表現したライトを配置します。 この電球のジオメトリ表現は円柱にします。

Note

次のセクションでは、シーンの一部をズームインします。 カメラに近すぎてシーンの一部が表示できない場合は、ニアクリップ平面を調整してください。 ビューポート内でdキーを押してをDisplay Optionsダイアログを表示し、Near Clip Planeを0に設定します。

  • ビューポートの左側にある磁石のMulti-Snappingアイコンを有効にして、そのアイコンをクリックして、“Orient to Normals”を無効にし、コンポーネントタイプを“Points”のみにします。ビューポート内でシーンをズームインさせてから⇥ Tabを押して“Point Light”を選択します。 電球として配置したい場所をクリックします(ワイヤーフレームビューに変更すると配置しやすいと思います)。 新しくポイントライトが作成されました。このライトの“Type”を“Cylinder”に変更し、名前を“tablelamp”に変更します。

  • Multi-Snappingを無効にし、ライトのハンドルを使って、必要に応じてライトのスケールと向きを変更します(“b”ホットキーを使用すれば、サイズ変更のハンドルに切り替わり、“y”ホットキーを使用すれば移動/スケールのハンドルに切り替わります)。

  • 最終的に以下のように設定します(パラメータエディタ、または、ビューポートの上部にあるミニパラメータインターフェースを使って、値を設定することができます):

    Primitive Path

    /lights/$OS

    Type

    Cylinder

    Radius

    .01

    Length

    .08

    Intensity

    5

    Color

    ライトに暖色系のカラーを指定してください。

Note

ビューポートで“ライト”コンテキストからふと抜けてしまった場合は、単にビューポート内でライトを選択してENTERを押せばいいだけです。

テストレンダーを生成する

では、Karmaレンダラーを実行します。 ビューポート内のViewportドロップダウンメニューから“Karma”を選択します。 すぐにレンダリングが開始されるはずです。

では、ライトの強度を調整しましょう。ライトがまだ選択されている状態で(且つ、ビューポート内で“ライト”コンテキストになっている状態で):

  • ⌃ Ctrl + ⇧ Shiftドラッグで、ライトの強度を調整することができます。

  • ⌃ Ctrl + ⇧ Shift + Scroll (マウスホイール)で、ライト強度を調整する増分量を調整することができます。

以下の動画では、上記のキーの組み合わせを使って、ライトの強度とその増分量を調整しています。

Note

Karmaレンダーシーンの強度とGLレンダーシーンの強度が一致していないようであれば、ビューポートの右側にあるツールバーの High Quality Lighting アイコンを有効にしてください。

Edit Properties LOP

Edit Properties LOPを下図のように設定すれば、Karmaは、指定したPrimsが滑らかになるようにサブディビジョンサーフェスとしてレンダリングします。 このLOPは、何も設定しなければ、何もしません。 以下は、既にあなたのために設定した内容です:

  • 作用させるPrimsを選択しました。この場合では、Tableコンポーネント下のすべてのPrims(メッシュ)を指定しました。

    Primitives

    /Table/*

  • 上図のSpareパラメータを追加するために、“Edit Properties”ボタンをクリックします。

    • 1 - 表示されたダイアログの“From USD”タブに進みます。

    • 2 - Filterフィールドに“subdivision”と入力します。

    • 3 - インターフェースから“subdivisionScheme”と“triangleSubdivisionRule”を選択します。

    • 4 - ->矢印ボタンをクリックして、これらのパラメータをノードインターフェースに追加します。

    • 5 - ダイアログの“Accept”をクリックします。

Edit Properties LOPにプロパティが追加されました(結果として、このプロパティはUSDファイルに追加されます)。 値はデフォルトのままにします。

Tip

おそらく、このセットアップをプリセットとして保存すると良いでしょう。

レンダープロパティを定義する

では、いくつかレンダープロパティを設定し、ショット間を切り替えれるように Switch LOP を追加します。

  • Karma Render Properties LOPを接続します。

    Camera

    /cameras/shot_`padzero(4,opdigits(“.”))`

    Output Picture

    $HIP/render/beauty.shot_`padzero(4,opdigits(“.”))`.$F4.exr

Tip

`padzero(4,opdigits(“.”))`のエクスプレッションについて説明します。 このエクスプレッションは、現行ノード名の番号の接尾辞を抽出してから、(先頭のゼロを除外して)、その数値を4桁詰めします。 これによって、このノードを必要な数だけコピーアンドペーストすると、エクスプレッションが更新されて“いい感じに動作”します。

  • バッククォート(`)は、Houdiniがそのバッククォートで閉じた中身を文字通りではなくエクスプレッションとして評価することを意味します(“バッククォート”は、USキーボードだとTABキーの上にあるキーです。“シングルクォート”ではないことに注意してください(シングルクォート: ' バッククォート: ` )。

  • opdigits(".") - 現行ノード名の番号の接尾辞を抽出します(“現行ノード”は、エクスプレッションの.の部分を指します)。

  • padzero(4,value) - 指定した数値を4桁詰めにします。

この Render Properties ノードでは、出力ファイルのパス、レンダリングしたいAOVs、解像度、ピクセルサンプル数などを設定することができます。これは、ショット毎にカスタマイズすることができます。

  • Render Properties LOPConfigure Layer LOPを接続します。

    • 名前を“start_end1”に変更します。

    • Start Time パラメータと End Time パラメータの各チェックボックスにチェックを付けて、各パラメータをクリックして“Delete Channels”を選択して、エクスプレッションを削除します。

    Start Time

    1

    End Time

    70

    • Render Properties LOPKarma Render Properties LOP をコピーアンドペーストします。

    • 2つ目の Karma Render Properties LOP:

    Start

    71

    End

    240

ショット/カメラ間を簡単に切り替えれるようにしたいです。

  • Switch LOPを追加します。これを2つの Configure Layer LOP に接続します。

    • ビューポートの一番右上にあるViewメニューから“Render Settings Camera”を選択します。

  • ビューポートの左側のツールバーの下の方にある“Stage Frame Range Drives Playbar Range”アイコンを有効にします。

これで、 Switch LOP の値を変更すると、カメラ視点のビューが変わり、Houdiniのフレーム範囲が変わったことに気づいてください。

ネットワークが下図のようになっているはずです(ライトの場所は問題ではないのですが、これを後ほどすぐに再編するつもりです):

レンダー設定に関するメモ

Scene Graph Tree を見てみると、“Render”という名前のPrimがあることに気づくと思います。 この中を見ると、 rendersettings Prim (/Render/rendesettings)があります。 Scene Graph Details パネルも見てみると、それらのPrimsの値が表示されています。 これは、レンダリング時にKarmaが使用する値で、この情報は保存したUSDファイルに格納されます。

ライティングを始めましょう

LOPsライティングチュートリアル 2では、シーンにもっとライトを追加していきます。

Solaris

USD

ジオメトリ

  • SOP Geometry I/O

    HoudiniがSOPジオメトリをUSDに変換する方法、その工程を制御する方法の詳細。

  • Component Builder

    Component Builderツールは、マテリアル、バリアント、ペイロード、レイヤーをサポートし、SOPからUSDモデルを作成するためのネットワークスニペットを配置します。

レイアウト

  • Editノード

    ビューア内でインタラクティブにPrimsをトランスフォームさせます。物理衝突を使用して、プロップを現実的に配置することができます。

  • Layoutノード

    インスタンス化されたUSDアセットをシーンに取り込むツールが備わっています。個々にコンポーネントを配置したり、カスタマイズ可能なブラシを使って色々な方法でコンポーネントをペイント/スキャッターしたり、既存のインスタンスを編集することができます。

  • カスタムレイアウトブラシ

    Layout LOPの挙動をカスタマイズして利用可能なレイアウトブラシデジタルアセットの作成方法。

ルック開発

  • MaterialX

    HoudiniにはMaterialXシェーダノードに呼応させたVOPノードが用意されています。これらのノードを使用してシェーダネットワークを構築したり、既存のMaterialXベースのシェーダをインポートすることで、(HoudiniのUSDレンダラーの)KarmaでMaterialXシェーダノードを利用することができます。

  • UDIMパス

    テクスチャ空間の異なるタイルを、それぞれ別の解像度で、異なるテクスチャファイルにエンコードすることができます。その後、kaiju.exrといったテクスチャファイル名を指定すると、Houdiniがロード時にそのトークンを特定のタイルアドレスに置き換えてくれます。

  • シェーダ変換フレームワーク

    シェーダノードのUSDプリミティブへの変換を含む、Solarisシェーディングフレームについて説明しています。

Karmaレンダリング

チュートリアル