他人から受け取ったデータなどで、テクスチャのパスが通らずに
正しく表示出来ない時、BonusToolsの”Change Texture Paths”を
使う事が多いが、カレントプロジェクトをセットしたりといろいろ面倒なので、
もっとシンプルで乱暴なMELを作ってみた。
Maya2011から追加されたfileDialog2コマンドを使用しているので、
2010以前は非対応。そこだけ旧fileDialogコマンドに変えれば動くとは思う・・・。
【使い方】
1.HyperShade等で、テクスチャを変更したいFileノードを選択(複数可)
2.MELを実行(スクリプトエディタで"ReplaceTexPath();")
3.フォルダ選択ダイヤログが表示されるので、テクスチャのあるフォルダを選択し”Accept”
4.選んだフォルダにテクスチャがあれば差し替え、無ければスルーされる
// 【ReplaceTexPath.mel】 global proc ReplaceTexPath() { string $NewPath[] = `fileDialog2 -fileMode 3 -okCaption "Accept" -dialogStyle 2`; string $FileLs[] =`ls -sl -type "file"`; for ($FileNd in $FileLs) { $TexPath =`getAttr ($FileNd+".fileTextureName")`; $Texname =`basename $TexPath ""`; $TexTest =`filetest -f ($NewPath[0]+"/"+$Texname)`; if ($TexTest == 1) { setAttr -type "string" ($FileNd+".fileTextureName") ($NewPath[0]+"/"+$Texname); print ($NewPath[0]+"/"+$Texname+"に差し替えました\n"); } else { print ($NewPath[0]+"/"+$Texname+"が見つかりせんでした\n"); } } } |