myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

Maya | 回転値を方向値に変更

回転値を0にして、方向値(Orient) だけでジョイントの向きを設定しないといけない作業がありました。そして、Y軸は外側に向かせないといけない条件。

Orient Joint は 100% 合わせてくれない(ま、これを100%自動にするのは無理ですね)

?マークでピボットを回転させると Rotate Axis に数値が入ってしまうし、
普通(スクリプトなし)ではどうやって出来るのかは分からないです。

少しずつ、ペアレントを切って、方向を直して、ペアレントしなおして、なんとなーく色々いじてみると出来たりするのですが効率的に最悪です。そして死ぬほどつまらない。

物量も多いから、仕方なくスクリプトを書いてみることにした。

目的は回転を0にして、方向が変わらないようにを方向値を自動に調整。
そうすると、回転で好きな方向に向かせて、自動的に仕様に合わせられます。

で、出来たのはこれです。


Maya | Rotation To Orient (and vice versa) from myara on Vimeo.



やーつまらない動画ですね。説明もないし・・・なんか、すいません。

必要性があるかは分からないですけど、自由に使って下さい。

同じ事をスクリプトなしで出来る方法があれば、是非教えてください。

DOWNLOAD

■使い方
GUIなどないです。作る予定もない。
Script フォルダに入れて、以下のコマンドでボタンを作って:

回転値0方向自動調整:
import mRotOri
mRotOri.main()

方向値0回転値自動調整:
import mRotOri
mRotOri.main(0)

---

これからはちょっとマニアックな話です。

方向が変わらないようにを方向値を自動に調整したいので、
回転値を方向値に足せばいいで。
単純に考えるとそうですが、Euler角はそのまま足すことが出来ないですね。

なので、Matrix に変換して、Matrix で足して、Eulerに戻して、Radiansから角度に戻すという流れかなと思っていましたが、OpenMaya を使えば一発で出来るとこの記事に書いてありました (英語) http://www.akeric.com/blog/?p=1067

オブジェクトの Matrix は getAttr で取得が出来ます。
しかもローカルとグローバルとインバースも。これは便利ですね。
この記事では グローバルマトリックスを使っていますが、今回はローカルの方が必要です。

このMatrix は角度値ではなく、オブジェクトの方向の角度なので、回転値を方向値に足す必要はありません。もう、このMatrix情報をDegreesに変換すれば良いだけです。それだけです。すばらしい。

流れとしては、OMのMMatrixを作って、Matrix情報をMMatrix に入れて、MTransformationMatrixに変換して、euler情報を取得という結構簡単な方法です。
単純だけど、昨日からこのツールを書いているんですね。

このMatrix情報を変換したら後は入れ替えるだけです。
回転を0にして、変換したMatrix情報を方向値として入れなおせばOK。
逆に方向値を0にして、変換した情報を回転値として入れなおすことも可能。

以上 Read more

Maya | ネームスペース削除

2013 から ネームスペースエディターが出来て、簡単に削除が出来るようになりましたが、
それでも1クリックでやりたい時もあり、他のスクリプトと同時に走らせたい場合も多い為のメモです:

ネームスペースを全て取得して、
削除して、ペアレントとマージする。(ネームスペースエディターと同じ効果)

//mel
string $allNS[] = `namespaceInfo -listOnlyNamespaces`;
for ($ns in $allNS){
if ($ns != “UI” && $ns!=”shared”){
namespace -mergeNamespaceWithParent -removeNamespace $ns;
}
}


#Python
from maya import cmds
allNS = cmds.namespaceInfo(listOnlyNamespaces=True)
for ns in allNS:
if ns!="UI" and ns!="shared":
cmds.namespace( mergeNamespaceWithParent=True, removeNamespace=ns)

Maya | mSetProject (自動プロジェクト設定)

シーンを開く度に、プロジェクト設定手動でやり直さないとテクスチャパスが絶対パスになっていしまい、
モデルの表示は真っ白(または真っ黒)になってしまいます。

プロジェクト設定し直し、テクスチャを更新しないといけません。
ま、テクスチャパスを手動で更新すると死にたくなるので、シーンを開きなおす。

という面倒な作業は毎回やらなければなりませぬ。


面倒くさい!!


自動にしてくれよ !


と文句言ってもAutodeskはやってくれないから自分で書いてみました。


mel とかは書いたことがあったんですけど、MayaでPythonを書くのは初めてなので、練習としてPythonでチャレンジしてみました。

そして、おまけに自動インストール/アンインストールも付いています!

インターネットでいくつかプロジェクト設定スクリプトは見つけて試してみましたが、上手くいかない場合も多くて、特徴なフォルダ構造だとエラーが出たりしていた為、自分のバージョンを作ってみました。

このスクリプトは単純に一個上のフォルダーに設定するのではなく、
「workspace.mel」探して設定するという仕組みになっています。
「workspace.mel」がない場合は、開いているファイルの2個上のフォルダをベースでプロジェクト設定画面を出します。


インストール方法:

C:\Users\ユーザー名\Documents\maya\scripts フォルダにコピーして、
Maya内のスクリプトエディター、 またはコマンドラインでは以下のコマンドを実行して下さい。

#Python

import mSetProject; mSetProject.mSetProject_Setup( True )




アンインストール方法:

#Python

import mSetProject; mSetProject.mSetProject_Setup( False )




mSetProject DOWNLOAD LINK



Maya ( 特に 2013以前のバージョン ) はあまりにも不便だから、頑張ってスクリプトを書きまくっています。

Mayaでコードを書くのもなかなか面倒ですけど・・・。
Pythonを使うと少しだけ楽になる。ま、面倒だけど mel ほど悪くはない。

Maya Python API 2.0 を試してみるべきなのかな。 Read more

Topic:CG Design - Genre:Computer/Internet

Maya | mAlignPivot 1.2

mel スクリプト更新です。

あれですねピボットを動かすやつ。


3ヶ月ほど前に書いたけど、公開する暇もなく、そのままハードディスクのどこかに忘れられていたスクリプトです。

今日はたまたまMayaでちょっとだけ作業していたら思い出したので、アップして公開します。

でも最近Mayaはあまり使ってないから、バグが残ってるかどうかは分かりません。
なにかあったら言ってください。

DOWNLOAD

Maya | mAlignPivot 1.2 from myara on Vimeo.

Maya | mNoLights

mNoLights

現在のビューアをテクスチャ表示にして、ノーライトとデフォルトライトの切り替えスクリプトです。

それだけですけど、結構便利だと思います。

DOWNLOAD

Topic:CG Design - Genre:Computer/Internet

Next page