| 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
置換されるパス。
Destination Path
指定した Zone で実行された時に Source Path を置換するパス。
-
クリップボードの内容からテーブルを読み込みます。
-
テーブルの内容をJSONとしてクリップボードにコピーします。