Windowsで発生するUSDの上書きエラーについて
779
3
1
「USD ROP」で、既存のUSDを上書きする際にアクセス拒否によるエラーが発生することがあります。
このエラーは、
「ネットワークの共有フォルダに保存されているUSDがレンダリング中の状態で、そのUSDを上書きをする」
という状況で起こります。
ローカルで試した場合だと、今のところ上書きは問題ないです。
このエラーは再現性があったので、ネットワークの共有フォルダにあるのが原因と判断しています。
対策レンダリングされているUSDファイルは、移動やリネームなどでアクセス拒否のエラーはでておらず、USDファイルを削除する場合にエラーがでています。
つまり、削除しなければよいということのようです。
自分が対策した方法としては、以下です。
- USDを書き出す際はTempフォルダを作成し、キャッシュはそちらに書き出す。
- 上書きするターゲットのファイルにTempフォルダに作ったファイルの内容をPythonで書き込む。
- TempのキャッシュファイルをPythonで削除。
これらをHDAとして、内部で処理するような形で現在は対応しています。
別のアイデアなどお持ちの方がいらっしゃいましたら、ご教授していただけると幸いです。
テスト環境
Windows 10 Pro
Houdini 20.0.688
-
- Ken Taki
- Staff
- 383 posts
- Joined: April 2015
- Offline
このエラーは、
「ネットワークの共有フォルダに保存されているUSDがレンダリング中の状態で、そのUSDを上書きをする」
という状況で起こります。
これは、Houdini の問題というよりは Windows のファイル操作の挙動ではないでしょうか?
つまり、他のアプリケーション (Adobe Acrobat や Microsoft Excel など) でも、あるファイルを開いている際にそのファイルを別操作で削除したり名前を変えようとすればエラーになります。
Ken Taki
これは、Houdini の問題というよりは Windows のファイル操作の挙動ではないでしょうか?
つまり、他のアプリケーション (Adobe Acrobat や Microsoft Excel など) でも、あるファイルを開いている際にそのファイルを別操作で削除したり名前を変えようとすればエラーになります。
返信ありがとうございます。
おっしゃるとおり、pdfファイルやxlsxファイルを他アプリケーションで開いている場合、ファイル名などの名前を変更しようとするとアクセス拒否になります。
しかし、USDファイルの場合はレンダリング中であってもファイル名の変更や移動などは可能でした。
USDファイルがネットーワークの共有フォルダにある場合は、削除以外のファイル名の変更や移動などは可能です。
Windowsのファイル操作の挙動の問題であるならば、Linux環境だとネットワークの共有フォルダにレンダリングされているUSDの上書きでエラーは起きないということでしょうか?
このエラーがWindows環境でしか起こらないものかどうかが気になります。
-
- Ken Taki
- Staff
- 383 posts
- Joined: April 2015
- Offline
一番確実な回答のためには、再現方法(問題を再現可能なシーンファイルとその手順)をいただくことです。
ですが、はい、Linux の方が自由度は昔から高いです。