| On this page | |
| Since | 21.0 |
概要 ¶
Shot Builder Toolsは、完全なプロダクションパイプラインなどのサポートなしで、マルチショットワークフローを簡単に行なうのに役立ちます。
Shot Builderは、HPR Asset Resolverを使用して、プロジェクト内のUSDレイヤを整理し、自動的にバージョン管理します。
はじめよう ¶
Shot Builderを始めるために、まず プロジェクト を作成し、いくつかの ショット を作成する必要があります。
| To... | Do this |
|---|---|
|
新規Shot Builderプロジェクトを作成する |
|
|
ショット/ユニットを作成する |
|
これで、 プロジェクト といくつかの ショット が作成されたので、これらのショットのコンテンツの作成/表示/修正を開始したいことでしょう。
| To... | Do this |
|---|---|
|
ショットコンテンツを読み込む |
|
|
ショットコンテンツを編集する |
|
|
ショットコンテンツを出力する |
|
これで、いくつかの収集されたレイヤがプロジェクト内のディスクに書き込まれたはずです。
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.jsonのprojectセクション下で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 LOPは Shot Builderワークフロー の開始点です。
このノードは、現在選択されているショットコンテキストの Unit Layer (例えば、
hpr:shot/s0010/shot.usda)を読み込んで、特定のレイヤとショットコンテキストに特定のバージョンを固定することができます(Shot Loadパネルを参照)。
Shot Layer Edit LOPは、特定のレイヤ、特定のユニット、またはユニットグループの編集をターゲットにすることができます。
Shot Split LOPと
Shot 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 |