Windowsで発生するUSDの上書きエラーについて

   779   3   1
User Avatar
Member
2 posts
Joined: March 2016
Offline
「USD ROP」で、既存のUSDを上書きする際にアクセス拒否によるエラーが発生することがあります。

このエラーは、
「ネットワークの共有フォルダに保存されているUSDがレンダリング中の状態で、そのUSDを上書きをする」
という状況で起こります。
ローカルで試した場合だと、今のところ上書きは問題ないです。
このエラーは再現性があったので、ネットワークの共有フォルダにあるのが原因と判断しています。

対策
レンダリングされているUSDファイルは、移動やリネームなどでアクセス拒否のエラーはでておらず、USDファイルを削除する場合にエラーがでています。
つまり、削除しなければよいということのようです。

自分が対策した方法としては、以下です。
  1. USDを書き出す際はTempフォルダを作成し、キャッシュはそちらに書き出す。
  2. 上書きするターゲットのファイルにTempフォルダに作ったファイルの内容をPythonで書き込む。
  3. TempのキャッシュファイルをPythonで削除。

これらをHDAとして、内部で処理するような形で現在は対応しています。


別のアイデアなどお持ちの方がいらっしゃいましたら、ご教授していただけると幸いです。


テスト環境
Windows 10 Pro
Houdini 20.0.688
User Avatar
Staff
383 posts
Joined: April 2015
Offline
このエラーは、
「ネットワークの共有フォルダに保存されているUSDがレンダリング中の状態で、そのUSDを上書きをする」
という状況で起こります。

これは、Houdini の問題というよりは Windows のファイル操作の挙動ではないでしょうか?
つまり、他のアプリケーション (Adobe Acrobat や Microsoft Excel など) でも、あるファイルを開いている際にそのファイルを別操作で削除したり名前を変えようとすればエラーになります。
User Avatar
Member
2 posts
Joined: March 2016
Offline
Ken Taki
これは、Houdini の問題というよりは Windows のファイル操作の挙動ではないでしょうか?
つまり、他のアプリケーション (Adobe Acrobat や Microsoft Excel など) でも、あるファイルを開いている際にそのファイルを別操作で削除したり名前を変えようとすればエラーになります。

返信ありがとうございます。

おっしゃるとおり、pdfファイルやxlsxファイルを他アプリケーションで開いている場合、ファイル名などの名前を変更しようとするとアクセス拒否になります。
しかし、USDファイルの場合はレンダリング中であってもファイル名の変更や移動などは可能でした。

USDファイルがネットーワークの共有フォルダにある場合は、削除以外のファイル名の変更や移動などは可能です。


Windowsのファイル操作の挙動の問題であるならば、Linux環境だとネットワークの共有フォルダにレンダリングされているUSDの上書きでエラーは起きないということでしょうか?

このエラーがWindows環境でしか起こらないものかどうかが気になります。
User Avatar
Staff
383 posts
Joined: April 2015
Offline
一番確実な回答のためには、再現方法(問題を再現可能なシーンファイルとその手順)をいただくことです。
ですが、はい、Linux の方が自由度は昔から高いです。
  • Quick Links