どうも篠島です。今回はHQueueでIFDをレンダリングする際の注意点を説明しようと思います。
HQueueはUNCパスしか認識しない
Windows だとドライブ文字を使ったパスの表現をしていますが、HQueue はUNCパスしか認識しないため、IFDファイルにドライブ文字が含まれているとエラーがでてしまいます。
ドライブレターを含むパスの例
H:\projects\test
UNCパスの例
//192.168.200.60/hq/projects/test/
「え、でも今普通にドライブレター使ってHQueue でレンダリングできているけど・・・」と思う人もいるかも知れませんが、HQueue の Output Driver に Mantra ROP を指定して IFD作成とレンダリングを一つのジョブで行う場合は問題は発生しません。
なぜならば下の様に、hqserver.ini ファイル内のパスの設定でドライブレターとUNCパスの変換を自動的に行なっているためです。
hqserver.sharedNetwork.path.windows = \\192.168.200.60\hq
hqserver.sharedNetwork.mount.windows = H:
問題のあるケース
例えば、作業マシンで予め IFDファイルを作成し、その既存のIFDを使ってHQueueでレンダリングする場合はエラーが発生します。 ローカルで作成したIFDファイルの中身を見てみると、下図のようにレンダリング画像の出力先のパスにドライブレターが含まれてしまっています。
ちなみに、HQueue で Mantra ROP を指定してIFDを作成する場合は、IFDを作成した際に下のようにUNCパスに自動的に変換されます。
IFD ファイル作成時に $HIP や $JOB などの変数名は展開される
ローカルでIFDを作成すると hqserver.ini の設定を使ったパスの置き換えはされることなく、$HIP や $JOB が展開され、IFDファイルの中にドライブレターが残ります。そしてこの IFDファイルを HQueue でレンダリングすると下のようなエラーがでます。
このエラーを見てみると 「 Failed to create file … No such file or directory」 とあり、ファイルの作成に失敗、そのようなファイルやディレクトリが無いことを表すエラーが出ます。このエラーだけでドライブレターが原因だというのを突き止めるのはほぼ無理だと思いますが、ドライブレターがパスに含まれると認識できず、結果としてファイルの作成が出来ないという事なのでしょう。
解決策
「作業マシンでIFDを作成したい、そしてHQueueでレンダリングを回したい」 という場合は、解決策は単純で、Hipファイルを開く際にドライブレターを使ったパスで開くのではなく、UNCパスからHipファイルを開けば良いわけです。そうすれば、$HIP が展開された時に自動的にUNCパスになります。
ドライブレター有りのパスでも問題なくIFDの作成、HQueueでレンダリングをするにはパスマッピングをする必要があり、それは次の記事で説明します。