Houdini 21.0 SolarisとKarma

Shot Builder Tools

マルチショットパイプライン用便利ツール。

On this page
Since 21.0

概要

この機能はまだ開発中です。現在の機能は未完成で変更される予定であり、 ドキュメントが手薄だったり、なかったりします。 これを使用するときは、そのことに我慢してください。

Shot Builder Toolsは、完全なプロダクションパイプラインなどのサポートなしで、マルチショットワークフローを簡単に行なうのに役立ちます。

Shot Builderは、HPR Asset Resolverを使用して、プロジェクト内のUSDレイヤを整理し、自動的にバージョン管理します。

はじめよう

Shot Builderを始めるために、まず プロジェクト を作成し、いくつかの ショット を作成する必要があります。

To...Do this

新規Shot Builderプロジェクトを作成する

  1. Shot Builder Projectパネル (New Pane Tab Type → Solaris → Shot Builder Project)を開きます。

    • まだシーンファイルが保存されていない場合は、そのシーンファイルを保存するよう促されます。

  2. New Project… をクリックします。

    • Shots with SublayersNo Sublayers のどちらかを選択するプロンプトが表示されます。

      • Shots with Sublayers は、他の人と共同作業をする場合や、ショットの内容を別ファイルに整理する必要がある場合に適しています。

      • No Sublayers は、サブレイヤを分けて管理する必要がないソロアーティスト向けの設定です。

  3. テキストエディタが表示されます。そこには、そのプロジェクトタイプのデフォルトの構成が事前入力されています。

    • その構成を保存します。

    • その構成が保存されたフォルダがこのプロジェクトのルートフォルダになります。

    • すぐに始められるように、いくつかのノードがネットワーク内に配置されます。各ノードの詳細は、以下を参照してください。

ショット/ユニットを作成する

  1. Shot Builder ProjectパネルShots メニューから Add… を選択します。

  2. Add Shot ダイアログを使用して、必要に応じて ショット / ユニット をセットアップします。

  3. ショットを作成しダイアログを開いたままにする Create をクリックすることで、別のショットを次々と作成することができます。 ショットを作成してダイアログを閉じる場合は、 OK をクリックします。

これで、 プロジェクト といくつかの ショット が作成されたので、これらのショットのコンテンツの作成/表示/修正を開始したいことでしょう。

To...Do this

ショットコンテンツを読み込む

  1. Shot Load LOPを追加します。

    • これは、すべての Shot Builder の操作の開始点となります。

    • Shot Context メニューでショットコンテキストを変更すると、そのShot Load LOP現行ショット のコンテンツを読み込みます。

ショットコンテンツを編集する

  1. Shot Layer Edit LOPを追加します。

  2. その入力をShot Load LOPの出力に接続します。

  3. Active Shots Pattern パラメータを使用して、特定のショットまたはショットグループをターゲットにします。

  4. Target Layer パラメータには、編集の対象となる特定のレイヤを設定します。

  5. Shot Layer Edit LOPをダブルクリックしてその中に入って、編集を開始します。

ショットコンテンツを出力する

  1. Shot Output LOPをノードグラフの最後に追加します。

    • 一度に複数のショットを出力したい場合は、 Multi-Shot パラメータに、出力したいショットのパターンを入力します。

    • 現行ショット のみを出力したい場合は、 Multi-Shot トグルをオフにします。

  2. 出力モードを選択します:

    • Publish モードは、プロジェクト内の更新されたUSDデータのみが出力されます。

    • Render モードは、画像のみが書き出されます。

    • Render and Publish モードは、更新されたUSDデータと画像がプロジェクトに書き出されます。

  3. Save to Disk をクリックします。

これで、いくつかの収集されたレイヤがプロジェクト内のディスクに書き込まれたはずです。 Shot Load LOPから確認すると、その新しいデータが読み込まれるているのが確認できるはずです。 複数のショットを出力した場合は、 Shot Context メニューでそれらのショットを切り替えることができます。

HPR Asset Resolver

HPR Asset Resolver(Houdini Path Resolver)は、Shot Builderで使用される独自のUSD Asset Resolverです。これは

  • プロジェクトのUSDレイヤを整理し、

  • USDレイヤのバージョン管理を自動化します。

プロジェクトの整理

プロジェクトのデフォルトの ルート フォルダは通常では$HIPです。 HOUDINI_SHOTBUILDER_PROJECT_PATH 環境変数にプロジェクトの project.json ファイルパスを設定することで、そのパスをルートに設定することができます。

バージョン管理

HPRパス のバージョンは、メインの.usdフォルダの下に個別のファイルとして保存されます。 デフォルトでは、 HPRパス は、自動的に既存の最も高いバージョンをターゲットにして、次に利用可能なバージョンへ書き出しを行ないます。

最初に HPRパス を書き出すと、メインの.usdフォルダが作成され、バージョン1のレイヤがそこに保存されます。 プロジェクトルートフォルダ/myProjectFolder/だとすると、

hpr:folder/layer.USD

は初期段階では以下のパスに保存されます:

/myProjectFolder/folder/layer.usd/layer_v1.usd

それ以降の保存は、以下のように保存されていきます。

/myProjectFolder/folder/layer.usd/layer_v2.USD
/myProjectFolder/folder/layer.usd/layer_v3.usd
など...

HPRパス を読み込むと、デフォルトでは、最も高いバージョンがターゲットになります。つまり

hpr:folder/layer.USD

は以下のパスに解決されます:

/myProjectFolder/folder/layer.usd/layer_v3.usd

特定のバージョンは URL形式の接尾辞を使用してターゲットにすることができます:

hpr:folder/layer.usd?v=2

は以下のパスに解決されます:

/myProjectFolder/folder/layer.usd/layer_v2.usd

HPRパスはプロジェクト内で使用されることがほとんどですが、絶対パスを使用することで、プロジェクト外のレイヤをターゲットにすることもできます。つまり

hpr:/absolute/path.usd?v=3

は以下のパスに解決されます:

/absolute/path.usd/path_v3.usd

バージョンの桁詰め

ファイルパスのバージョン番号の桁詰めは、 project.json コンフィグファイルで設定することができます。

{
"project": {
    "name": "myProject",
    "version_padding": 4
}

HPRの相対パス

HPRパスのレイヤが相対ファイルパスをサブレイヤ(またはリファレンスなど)として使用すると、そのパスは HPRパス として扱われます。 例えば、

hpr:folder/layer.usda

./sublayer.usd

のような相対ファイルパスをサブレイヤにすると、そのパスは実質的に

hpr:folder/layer/sublayer.usda

となります。さらにそれがバージョン管理され、以下のようなパスに解決されます:

/myProjectFolder/folder/layer/sublayer.usda/sublayer_v3.usda

バージョン管理されないパス

HPRパス には、バージョン管理されないUSDファイルを指すこともできます。これには2通りの方法があります。

まず最初に、プロジェクトコンフィグファイルを使用して、バージョン管理されないUSDファイルを格納するディレクトリのリストを設定します。 これは、project.jsonprojectセクション下でnon_versioned_foldersキーを使います。例:

{
"project": {
    "name": "myProject",
    "non_versioned_folders": [
        "relative/non_versioned_folder/",
        "*/non_versioned_folder/*",
        "/absolute/non_versioned_folder/"
    ]
}

HPRパス を使用してバージョン管理されないUSDファイルをターゲットにするもう1つの方法は、それらのファイルが既にバージョン管理されないファイルとして存在している場合です。 例えば、以下のファイルがディスク上に存在する場合:

/myProjectDir/file.usda

が既に存在している場合、

hpr:file.usda

は、以下のパスに解決されます:

/myProjectDir/file.usda

コンフィグファイル内で non_versioned_folders キーを使用することが、ファイルがまだ書き出されていない場合にバージョン管理されないUSDレイヤを書き込む唯一の方法です。

設定

project.json コンフィグファイルを使用することで、Shot Builderプロジェクトをカスタマイズし、プロジェクト内で使用する Unit Types とオプションのサブレイヤを定義することができます。

サンプルの設定

{
  "project": {
    "name": "myProject",              \\ プロジェクト名
    "unit_context_option": "shot",    \\ 現行ショットを駆動させるコンテキストオプション
    "default_fps": "24.0",            \\ プロジェクト内のすべてのユニットのデフォルトのFPS
    "default_start_frame": "1001",    \\ プロジェクト内のすべてのユニットのデフォルトの開始フレーム
    "default_end_frame": "1020",      \\ プロジェクト内のすべてのユニットのデフォルトの終了フレーム
    "sublayer_format": "usda",        \\ プロジェクト内のユニットレイヤのデフォルトのUSDフォーマット
    "version_padding": 4,             \\ バージョン管理されるファイルのバージョンの桁詰め(HPRパスを参照)
    "unit_templates": {               \\ ここでは、様々なユニットタイプを定義します
      "shot": {                       \\ 'shot'ユニットタイプを定義します
        "name": "s%04d",                 \\ ショットユニットのテンプレート名(printf)
        "icon": "shotIcon",              \\ 'shot'ユニットタイプのアイコン
        "fps": "24.0",                   \\ default_fpsの'shot'ユニットオーバーライド
        "start_frame": "1001",           \\ default_start_frameの'shot'ユニットオーバーライド
        "end_frame": "1024",             \\ default_end_frameの'shot'ユニットオーバーライド
        "sublayer_format": "usd",        \\ プロジェクトのsublayer_formatの'shot'ユニットオーバーライド
        "sublayers": {                   \\ 'shot'ユニットに持たせたいサブレイヤのリスト
          "./lighting.usda": {                  \\ lighting.usdaの相対参照
            "name": "Shot Lighting",                \\ 表示名
            "comment": "shot lighting layer",       \\ コメント
            "icon": "lightingIcon"                  \\ アイコン
          },
          "./animation.usda": {                 \\ lighting.usdaの相対参照
            "name": "Shot Animation",               \\ 表示名
            "comment": "shot animation layer",      \\ コメント
            "icon": "animationIcon"                 \\ アイコン
          },
          "./layout.usda": {                    \\ lighting.usdaの相対参照
            "name": "Shot Layout",                  \\ 表示名
            "comment": "shot layout layer",         \\ コメント
            "icon": "layoutIcon"                    \\ アイコン
          },
          "__env__": {}                         \\ 'env'タイプユニットのプレースホルダ
        }
      },
      "env": {                                  \\ 'env'ユニットタイプを定義します
        "name_template": "env",
        "sublayers": {
          "./layout.usda": {
            "name": "Env Assets",
            "comment": "environment assets layer",
            "icon": "envIcon"
          }
        }
      }
    },
    "non_versioned_folders": [                  \\ バージョン管理されないフォルダ(HPRパスを参照)
        "/nonVersioned/"
    ]
  }
}

Shot Builder系ノード

Shot Load LOPShot Builderワークフロー の開始点です。 このノードは、現在選択されているショットコンテキストの Unit Layer (例えば、hpr:shot/s0010/shot.usda)を読み込んで、特定のレイヤとショットコンテキストに特定のバージョンを固定することができます(Shot Loadパネルを参照)。

Shot Layer Edit LOPは、特定のレイヤ、特定のユニット、またはユニットグループの編集をターゲットにすることができます。

Shot Split LOPShot Switch LOPは併せて使用することができ、通常はShot Layer Edit LOPまたはEdit Layer Block LOPの内部で使用して、ノードネットワークをショット別またはショットグループ別に異なるストリームに分割し、それらを元に戻します。

Shot Output LOPは、USDとレンダリング画像をプロジェクトに出力します。

Shot Builder Projectパネル

Shot Builder Projectパネルでは、新しいユニットを作成したり、既存のユニットを修正することができます。

Note

project.json コンフィグファイルをまだ作成していない場合は、この Shot Builder Projectパネル の手順に従って作成することができます。 まず最初にシーンを保存する必要があります。

新規ユニットは、 Shots メニューから Add… を選択して追加することができます。

別の方法だと、ツリービュー内で ユニットタイプクリックして表示されるメニューから Add new unit… を選択します。

(右上コーナーにある)リロードボタンを押すと、 project.json コンフィグファイルがディスクからリロードされ、その変更が反映されて表示が更新されます。

Add Shotダイアログ

Add Shotダイアログ では、個々の(または、一度に複数の)ショットをセットアップします。

Add Shotダイアログ から、定義しているショット/ユニットのユニットタイプを選択して、コンフィグファイルに記述されているパターン(例えば、s%04d)に準拠した名前を付けます。 オプションでユニットのフレームデータも設定できます。

ウィンドウ下部の Unit Sublayers テーブルには、プロジェクト設定で定義されたサブレイヤとプレースホルダのリストが表示されます。 ここで設定できるのはプレースホルダのみで、ドロップダウンには、指定した ユニットタイプ で利用可能なすべての ユニット のリストが表示され、その中から選択することができます。

Tip

プレースホルダを使用することが、複数の ユニット 間でデータを共有する簡単な方法です。 例えば、 Sequence Unit を使用することで、複数の ショットユニットタイプ 間でデータを共有することができます。

See also

SolarisとKarma

SolarisとUSD

  • USDの基本

    いくつかUSDの概念について取り上げ、それらの概念とHoudini USD対応との関係性について説明します。

  • LOPの挙動

    Solaris LOP(Lighting Operator)がUSDを生成/変更する際の挙動について説明します。

  • Solarisユーザインターフェース

    LOPネットワークとUSDデータを操作するためのユーザインターフェースの使い方を案内します。

  • プリミティブマッチングパターン

    USDプリミティブマッチング構文の使い方。

  • LOPとUSDの用語集

    USDわかりますか?

  • Solarisシーンビューア

    Houdiniオブジェクト/SOPビューアと比較したSolarisビューアの違い/拡張について説明します。

  • USDでのVEXの使い方

    スクリプトによってSolaris/USDをカスタマイズする。

  • USDへ書き出す方法

    USDデータをディスクに保存します。

  • SOP Geometry I/O

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

  • Component Builder

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

  • パフォーマンスTips

    Solarisのインタラクティブなワークフローを向上させます。

  • サンプルシーン

    SolarisとUSDを学習するのに役立つシーンとアセットを紹介します。

Karma

  • Karma

    Houdiniの物理ベースのUSDレンダラー。

  • Karma XPU

    Houdiniの高速でモダンなXPUレンダーエンジン。

  • カラーマネージメント

    OCIO、カラー空間、ガンマ、トーンマッピングについて詳しく学習します。

  • レンダリング統計

    進行中のレンダリングやレンダリング画像のレンダリングプロセスに関して、様々な統計情報を表示する方法。

Karmaユーザガイド

ルック開発

  • MaterialX

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

  • UDIMパス

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

  • シェーダ変換

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

  • Shotbuilderツール

    マルチショットパイプライン用便利ツール。

プロシージャル

補足ドキュメント