2011年9月25日日曜日

mayaでの悩ましい「相対パス」「絶対パス」

こんにちは、AnNeeeのサンダルは年中履いていたい方、itです。

mayaでCG制作しておられる方も多いと思います。
非常に多岐にわたる機能を備えていて事実上なんでもできるわけですが、
多岐にわたりすぎて作る側もよほど大変なのでしょう
仕様上というかなんというか、挙動がおかしいことが多々見られます。

先日悩まされたのが、「相対パス」「絶対パス」についてです。


ファイルノードのfilenameアトリビュートには、
ファイル名だけでなくファイルパスも含めて書くと思います。
 その基点は多くの場合、プロジェクトセッティングしたフォルダになっているでしょう。
そこから、ファイルのあるフォルダへ向かって降りて降りて、、、、最後にファイルの名前、拡張子。
ここまで一括りに入力して、ファイルネームとなります。
もちろんたいていは、入力欄横のボタンからファイルブラウザを開いてファイル指定、という手順を踏むと思います。


プロジェクトフォルダを基点に、それ以下の階層だけを記述した
いわゆる相対パスを入力しておけば、
プロジェクトフォルダ内での位置さえ変えなければ
プロジェクトファイルの置き場所をどこに変えても
(たとえばレンダリングのために他社に持ち込んでも)
シーンはこれまでどおり開けるはず
という素敵な仕組みです。

…そのはず
なのですが。






どうもこのファイルネーム入力欄、
データとしては「絶対パス」を文字列として保持しているようで、
その内容がプロジェクトセットしたフォルダと一致していれば
表示だけ相対パス様にして、
われわれ人間にプレゼンスしているようなのです。
なんだか気を使ってくれているようでいてひどく欺かれたような気分になります。
だって、
見えてる(見せてくれてる)内容と、データとが実際には完全に一緒なわけではないのですから。
なんだか落ち着きません。
もちろん、なんらかの複雑な要素がからまって、こういう仕組みになっているのだな
と理解は出来るのですが。


なので、
相対パス表示になっているファイルネーム欄も、
途中でプロジェクトセットをあえて変えてみたりすると
ごそっと絶対パス表記になったりします。
最初に入力したときの、そのファイルを依然として見続けようとします。

あまりに変わる量が多すぎるとスクリプトに頼らざるを得ませんが、
その場合も、
スクリプトで変えた先にファイルが存在していないと
無視されたりします。
いやそんなのいいからとりあえず書き換わっておいてよ、
と思ってもダメです。

どうも、なにかしら解釈判断が入ってから、
最終的にアトリビュートの形で定着するようです。


この「相対パス絶対パスゆうづうきかなすぎ問題」については
大きい会社のテクニカルな人にも聴いてみましたが
いまいちよく分からない部分が大、
ということでした。
maファイルにしてパスを直接書き換える
でも大丈夫な場合が多く、それで切り抜けているケースが多いようです。

それに収まらない辞令がときどきあらわれるから怖いですが。

ちなみにこれはファイルノードに限らず
リファレンスやレンダープロキシなどにもおきるようです。


パスがからむ部分にはなにやら子鬼が住んでいるようです…!

0 件のコメント:

コメントを投稿