On this page |
概要
TOPsは、様々な異なるファイルシステムを持つコンピュータファームで動作するように設計されています。
例えば、TOPsユーザがWindowsマシンで作業しているものの、ファームはLinuxベースを使用していることがあります。
その場合、あるファイルシステムのファイルパスをどのようにして別のファイルシステムにマップするかが問題になります。
例えば、\\allfiles\shot1\file1.bgeo.sc
< → /mnt/hq/shot1/file1/bgeo.sc
です。
TOPsには、これを対処するためにPDG Path Mapが用意されています。
Tip
マッピングルールはチェーン化することができます。
例えば、/mnt/hq
をWIN
ゾーンのZ:
にマップし、Z:
を同じWIN
ゾーンの//allfiles
にマップすると、マップされるパスは//allfiles
がベースになります。
マッピングの挙動
Houdiniセッション用のパスマッピングテーブルが1個存在し、これもすべてのPDGグラフで共有されます。
FileアトリビュートとFile Resultsにはオリジナルの
パスが格納され、そのマップされた
パスはPDG Path Mapを使用して必要に応じて生成されます。
Note
指定したゾーンには、最初にマッチしたルールのみが適用されます。
例えば、WIN
ゾーンに対して、指定したソースパスを別のターゲットパスにマップする2個のルールが存在していた場合、最初のルールのみが適用されます。
そのファイルパスが実在するかどうかのチェックはありません。
マッピングテーブルはPDG_PATHMAP
グローバル変数に格納され、この変数はHIPファイルに保存されます。
PDGジョブが実行されると、このPDG_PATHMAP
変数が環境内に設定されるので、この変数を使用することで、指定したファイルパスのローカルバージョンを把握することができます。
これは、ワークアイテムAPIを使用したときに自動的に行なわれます。
Zones
PDGは、ローカルZone
を自動的に判別して、プラットフォームをLINUX
、WIN
、MAC
のどれかに一致させます。
-
スケジューラ系ノード上のパラメータを使用してこの
Zone
をオーバーライドしてから、そのスケジューラによってスケジュールが組まれたすべてのジョブにそのZone
を適用することができます。 -
$PDG_PATHMAP_ZONE
環境変数を使用してグローバルにこのZone
をーバーライドすることができます。 -
カスタムゾーンは、例えば
AWS
とLINUX
が絡んだハイブリッドなクラウドのようにもっと複雑なファームセットアップで役立ちます。 -
特別な
*
ゾーンは、すべてのプラットフォームに適用されます。
18.0からの移植
前のバージョンのHoudiniからのスケジューラ系ノードでは、Path Mappingパラメータには自動的にNone
モードが設定されます。
このモードは、パスマッピングのロジックを無効にし、代わりに__PDG_DIR__
や__PDG_TEMP__
などのトークンによる非ローカル化
されたパスに依存します。
パスマッピングが不要であれば、これを安全にGlobal
に設定することができます。
パスマッピングが必要であれば、このテーブルを使用してパスマッピングを追加してから、モードをGlobal
に設定してください。
API
pdg.Fileを介してPath Map Python APIにアクセスすることができます。
PDG Path Map
Tasksメニューから PDG Path Map を選択するとPDG Path Mapウィンドウが開きます。
Table Controls
-
新しい行をテーブルに追加します。
-
選択した行をテーブルから削除します。
-
PDG_PATHMAP
グローバル変数からテーブルをリロードします。
Path Map Table
Zone
このマッピングのマップ先となるパスマッピングゾーンの名前。
Source Path
T置換されるパス。
Destination Path
指定した Zone で実行された時に Source Path を置換するパス。
-
クリップボードの内容からテーブルを読み込みます。
-
テーブルの内容をJSONとしてクリップボードにコピーします。