2014年11月20日木曜日

【MAYA】ファイルパスの絶対パス/相対パス

参考元:
Reincarnation+ - ファイルパスの取り扱い
MAYAれ! - テクスチャファイルのパスを一括で変更する
AnNeee.blg - mayaでの悩ましい「相対パス」「絶対パス」

プロジェクトフォルダを移動してファイルを開くとテクスチャを相対パス指定にしていたと思ったのに絶対パスになって開かれてしまう現象について。
  • MAYAは基本的に絶対パス記述をしているらしい。
  • アトリビュート内で相対パスで書かれていてもmaファイル内の記述は絶対パスで書かれている。
ma内の記述を
setAttr ".ftn" -type "string" "/sourceimages/****.tga";
にすると、フォルダ移動をしたのちファイルを開いて上書き保存をしても相対パスのまま
setAttr ".ftn" -type "string" "sourceimages/****.tga";
と、sourceimages直前のバックスラッシュを抜いた状態で記述すると、移動したのちの最初の一回は相対パスとして開かれるが、開いた直後から現在開いているファイルパス(絶対パス)でテクスチャの場所が上書きされる。
なお、/sourceimagesに不具合が出るのか出ないのかは不明。
今のところうまくいってる。

追記1:
/sourceimagesでも作業を進めるうちに絶対パスで上書きされてしまった。
どのタイミングで上書きされたのかは不明。
(ファイルをさかのぼってみるとfbx書き出し時前後?で書き換わっていた)
相対パスが永続されないのであればフォルダ移動をするタイミングでテキスト書き換えを一括で行うのが賢明?

追記2:
別階層での同じ構造(使用テクスチャ名/ファイル名同一)をリファレンスとして読み込んだら、
相対パス指定があだになり、呼び出した元のsourceimagesを参照せず、呼び出した先の階層内のテクスチャが読み込まれてしまった。
古いファイルとの比較をリファレンスで呼び出して行う場合には相対パス記述はやめておいたほうがいいかも。

おまけ:
指定したフォルダ内のmaの記述を一気に変更するのには、テキスト加工ツール:複数のHTML&テキストファイルを一括置換TextSS.netを使用して一括変更を行った。
設定は以下の通り↓

■置換方法
文字列の置換(ワイルドカード)

■検索する文字列
setAttr ".ftn" -type "string" "*/sourceimages/
■置換する文字列
setAttr ".ftn" -type "string" "/sourceimages/
(検索・置換の文字列はもっと後ろのほうから記述しても多分平気)

0 件のコメント:

コメントを投稿

【surface pro5】画面が暗くなる…続き

前回の方法では完全に症状は改善できなかった。 そのため一度ドライバーを削除した。 改めて検索をかけたら同じような手法だけれども解決したとの記事を見つけた。 引用元: こじかログ SurfaceProの画面の明るさが勝手に変わる現象にトドメをさす けれども前回はイン...