- ベストアンサー
maxscriptでバッチ保存(3dsmax)の方法
- maxファイルを開いてすぐに保存するバッチ保存の方法を説明します。
- バッチ保存を行うことでファイル容量を圧縮することができます。
- backburnerを使用してバッチ保存する際に発生するエラーについて解決方法を探しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ひとつ下の階層も検索したいなら、3ds maxのヘルプに、そういう関数がサンプルとして上がっています。 勉強したいなら、まずはヘルプのMAXScriptの項目に一通り目を通しましょう。 MAXScriptの場合、英語でWEB検索すると知りたい情報を見つけやすいです。 テストしていなけど、こんな感じでしょうか。 ( fn getFilesRecursive root pattern =( dir_array = GetDirectories (root+"/*") for d in dir_array do join dir_array (GetDirectories (d+"/*")) my_files = #() for f in dir_array do join my_files (getFiles (f + pattern)) my_files ) local files = getFilesRecursive @"z:\test\max" "*.max" for f in files do ( loadMAXFile f quiet:true saveMaxFile f quiet:true ) )
その他の回答 (1)
- grazie
- ベストアンサー率56% (200/355)
保存するだけで、ファイル容量の圧縮になるのか不明ですが...、 開いて保存するだけなら、maxscriptでもっとシンプルに書けると思います。 ( local files = getFiles @"z:\test\max\*.max" for f in files do ( loadMAXFile f quiet:true saveMaxFile f quiet:true ) ) 開いた後に何かしたいなら、間にそれを書けばいいです。
補足
ありがとうございます ちなみにフォルダ内のmaxファイルが未圧縮なので、設定で圧縮して保存にしておくだけで、圧縮されるので、開いて保存して閉じるだけで大丈夫です。 教えていただいたmaxscriptで、バッチ保存できましたが、これだと指定した(z:\test\max\)内のmaxファイルのみが対象になります。これ以下のサブディレクトリーも対象にする方法はありませんでしょうか? いろいろやってみましたがうまくいきませんでした。 宜しくお願いします。 それと、MaxScriptを学ぶのにいいサイト、書籍などありましたら教えて欲しいです。
お礼
完璧に動作してくれました! ありがとうございます。 このサンプルスクリプトには行き着いていたのですが、いろいろ試行錯誤してみましたが、なかなか上手くいかず。 勉強方法もやはりそんな感じなのですね。 コツコツ地道にやっていこうと思います。 本当に助かりました。ありがとうございましたm(_ _)m