• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:maxscriptでバッチ保存(3dsmax))

maxscriptでバッチ保存(3dsmax)の方法

このQ&Aのポイント
  • maxファイルを開いてすぐに保存するバッチ保存の方法を説明します。
  • バッチ保存を行うことでファイル容量を圧縮することができます。
  • backburnerを使用してバッチ保存する際に発生するエラーについて解決方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • grazie
  • ベストアンサー率56% (200/355)
回答No.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 ) )

ace9715rr
質問者

お礼

完璧に動作してくれました! ありがとうございます。 このサンプルスクリプトには行き着いていたのですが、いろいろ試行錯誤してみましたが、なかなか上手くいかず。 勉強方法もやはりそんな感じなのですね。 コツコツ地道にやっていこうと思います。 本当に助かりました。ありがとうございましたm(_ _)m

その他の回答 (1)

  • grazie
  • ベストアンサー率56% (200/355)
回答No.1

保存するだけで、ファイル容量の圧縮になるのか不明ですが...、 開いて保存するだけなら、maxscriptでもっとシンプルに書けると思います。 ( local files = getFiles @"z:\test\max\*.max" for f in files do ( loadMAXFile f quiet:true saveMaxFile f quiet:true ) ) 開いた後に何かしたいなら、間にそれを書けばいいです。

ace9715rr
質問者

補足

ありがとうございます ちなみにフォルダ内のmaxファイルが未圧縮なので、設定で圧縮して保存にしておくだけで、圧縮されるので、開いて保存して閉じるだけで大丈夫です。 教えていただいたmaxscriptで、バッチ保存できましたが、これだと指定した(z:\test\max\)内のmaxファイルのみが対象になります。これ以下のサブディレクトリーも対象にする方法はありませんでしょうか? いろいろやってみましたがうまくいきませんでした。 宜しくお願いします。 それと、MaxScriptを学ぶのにいいサイト、書籍などありましたら教えて欲しいです。

関連するQ&A