myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

Maya | mAlignPivot 1.1

最近Mayaで作業しているから、またmelを書いてみました。

今回は、4,5ヶ月前に書いた 適当な melスクリプト の更新です。

今回は SI 版 と同じ機能にしました。


mAlign Pivot 1.1

DOWNLOAD

新しい機能

・ 複数選択可能 (前回はコードミスでオブジェクト1つしか対応していなかった)
・ オブジェクト座標対応
・ 最後に選択されたオブジェクトのピボットに合わせる(位置のみです。向きは合わせません)

Maya | mAlignPivot from myara on Vimeo.






mel 解説

前回は `exactWorldBoundingBox $obj` でバウンディングボックスを取得していましたが、これは丸いオブジェクトだと上手く行きませんでした。前回はボックスなどの四角いオブジェクトでしか試していなかった為気づきませんでした。

exactWorldBoundingBox って詐欺みたいな名前じゃないですか。exact じゃないじゃん!
バウンディングボックスしか取得出来ないコマンドのくせに。


色々調べてみたら、Mayaではワールド座標のバウンディングボックスの取得には色んな方法があります。
xform , exactWorldBoundingBox , PolyEvaluate など。


その中で、「PolyEvaluate」には 「-accurateEvaluation」 というアーギュメントがあります。


string $sel[] = `ls -sl`;
string $obj = $sel[0];

float $bBox[] = `polyEvaluate -b -ae $obj`;

print $bBox;


これを使ってみると、丸いオブジェクトでも正確にバウンディングボックスは取得が出来ました。
普通より計算は重いらしいですが、やっぱり正確じゃないと意味ないですね。


次は ローカル座標のバウンディングボックス。これはちょっとトリッキでした。
コマンドを探しても何も出てきません。ネットで検索しても何も見つかりませんでした。
色々試してみたら、なんとか「GetAttr」というコマンドでシェープのバウンディングボックスのアトリビュートは取得できました。


string $sel[] = `ls -sl`;
string $obj = $sel[0];
string $shapes[] = `listRelatives -shapes $obj`;

float $bBox[]= `getAttr ($shapes[0] + ".boundingBoxSize")`;

print $bBox;


↑ shapes[0] を使っているので、transform オブジェクトにシェープは1つしかないという前提です。

シェープから取得すれば良いですね。
そして、バウンディングボックスアトリビュートがありますね。知りませんでした。

少しだけは mel とMayaの構造が前より分かってきた気がします。

Topic:CG Design - Genre:Computer/Internet

Maya | 2010体験版 : アンインストールが出来ません

いつだったのか覚えてないけどMaya2010の体験版をこのPCに入れてみました。
なんで入れたのかも覚えていません。

でもいつも2009はメインでやっているから気づかないうちに体験版ライセンスが切れていて、今日はUnityでmaファイルをインポートしよとしたらライセンス問題が発生してしまいました。

もう2010要らないからアンインストールしよと。

念のためにUnityとMaya2009を閉じて、Maya2010をアンインストールしようとしたら:

1: 5 2: Unable to obtain LicenseType value. RegQueryValueEX returned 3: 2


というエラーが出てしまって、アンインストールが出来ませんでした。

アンインストールが出来ない体験版を作りやがって・・・。

色々調べてみたら解決が出来たので一応このブログにメモっておきます。

http://at-hy.com/articles/2010/how-to-uninstall-maya2010_en.html

この記事を書いてくれた人に感謝です。


1. Registry Editor を開きましょう。
Windows ボタン + R で「ファイル名を指定して実行」
regedit を入力して、「OK」

2. HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\Adlm\Autodesk\Maya\2010\AdLM というフォルダを開きましょう

3. ここに「Type」というキーがあるべきなんですが、多分ないですね。なかったら、右クリックして、新しい DWORD 32-bit Value を 選んで、 名前は 「Type」にして、 数値は 「 1 」
「OK」

4. もう一回アンインストーラーを実行してみれば、多分うまくいきます。

Maya 2010 32bit
OS : Windows 7 32bit




101 Autodesk Maya Tips

この問題と関係ないけど、今日はツイッターで手に入れた情報ですが、ArsTechnica にたまに記事を書いている Dave Girard氏が 「101 Autodesk Maya Tips」という電子書籍を出しました。値段はなんと200円ぐらいです。

Amazon.com : 101 Autodesk Maya Tips [Kindle Edition]


内容が短くて、既に知っていたことや俺の作業では使えないことも多かったけど、役に立ちそうな情報もたくさんありました。これは200円ぐらいなら買いでしょう。

英語のみですけど。

これはKindle用になるのですが、PC(Kindle PC か ブラウザーで Kindle Cloud)、スマホン、iPadなどでも読めます。

Maya | 2012 データ を Maya 2009で開く

今日、職場で背景チームが Maya 2012データ を Maya 2009 で開こうとしていたんですけど、何をやっても上手く行きませんでした。Ignore version / バージョンを無視オプションでも、ma でバージョンを置き換えても駄目でした。

ファイルを開くと一応ポリゴンが出ますが、なぜかマテリアルが消えてしまいます。
デフォルトのLambertしか出ませんという問題でした。

Mayaの一番良いところじゃないか!バージョン無視出来ないなら、Mayaに何が残るのか!w


テキストエディターで開いて色々見てたら一応解決が出来ました。
※ 100%上手く行く保証がありません。

2012の構造があんまり変わってないように見えますが、2009データにない「relationship」というコマンドがあったからこれかな~と思いながら // を付けて無効にしてみたら上手くいったっぽいので、そのやり方を公開します:




1.
2012 で 「ma」 で保存する。

2.
テキストエディターでこの ma ファイルを開く
プログラミング用のテキストエディターはベストかもしれません。
例: notepad++ など。
ウィンドウズのノートパッドはあんまりおすすめしません。

3.
最初の12列に、2012 と書いてあるところを 2009 に置き換えます
12列以降はデータ用のの数値だから置き換え機能に全部任せは危険かもしれません。

4.
relationship から始まる例文を消す、あるいは頭に // を付けて無効にする

例:
relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";

// relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
に。

置き換え機能を使って、「relationship "」→ 「// relationship "」にすれば良いと思います。

5.
別名で保存して、2009で開く。

上書きしてデータがダメになっても責任はとりません。





以上。

これで上手く開けました。

相変わらず違うバージョンから開くと、エラーメッセージが出てしまいますが、無視。


では、Happy Valentine

Maya | UI言語をショートカットで変更

MAYAのUI言語を切り替えたい時に、PCプロパティ → システムの詳細設定 → シ環境変数 に「MAYA_UI_LANGUAGE」という変数を作って、ja_JP か en_US にしますよね。

1回だけだから別に良いよね。

でもた、まに英語たまに日本語に起動したい時は面倒くさい!

そんな時にバッチを作ると便利です。

メモ帳を開いて

SET MAYA_UI_LANGUAGE=ja_JP
"C:\Program Files\Autodesk\Maya2009\bin\maya.exe"



を書いて、「bat」という拡張子で保存します。

自分はまだ古い2009を使っているけど、もちろん違うバージョンを使っている場合はそのバージョンのパスにして下さい。

このbatファイルにダブルクリックすると、一時的にシステム環境のMAYA_UI_LANGUAGE変数がja_JPになって、Mayaが起動されます。Mayaを閉じたら環境のMAYA_UI_LANGUAGEが元通りに戻ります。

なので、例えば普段は英語で使ってるけどある事情で日本語にしなきゃいけない時に、このバッチで起動すれば良いです。普通のショートカットで英語で、バッチで日本語ということになります。
Previous page