myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | mSkin 1.0.1 バグ修正

「DIV」 ボタンにバグがあった為、ツール更新しました。

リンクは同じです。

http://skymill.co.jp/tools/Softimage/mSkin/Manual/index.html

SI | mSkin SIのウェイトツール

ほぼ半年前から現プロジェクトの為に作成したウェイトツールです。

まだ開発中の部分がありますが、大体使えるツールになっているかと思いますので公開します。
バグなどがありましたら連絡ください。

ご使用は自己責任でおねがいします。

動画の説明は字幕に書いてありますが、今のところは英語のみです。


mSkin : Softimage Weights Tool from myara on Vimeo.



詳細:
http://skymill.co.jp/tools/Softimage/mSkin/Manual/index.html

SI | mStraightUV ピックでUV整列

今やっているSoftimageのプロジェクトで真っ直ぐにしないといけないUVが多くて、もっと自動的に出来るじゃないかなと思ってツールを書き始めました。

PythonはXSIのCollectionを使うとかなり遅くなるからJScriptで書きましたが、
あまりCollectionは使わなかったからPythonでも良かったかも。

色々考えてやってみたけど、左右のUVが重なっている場合(左右対称のモデル)や三角形が多い場合はなかなか難しかったので、全自動を辞めて整列したい部分を自分で選べば良いかと思いこのツールを作ってみました。

ツールを実行するとピックカーソルが出てきます。
ピックカーソルで選択します。
選択されているUVの位置の最大値と最小値で向きを判断します(横Uか横V)
UVサンプルを真っ直ぐにして、そのままピックカーソルが残ります。
ボタンを何も押せずに選択していくだけで整列されます。
繰り返し。

SHIFT押しながら選択していくと整列するUVサンプルに加われます。
右クリックで終了。

結構シンプルな仕組みです。
良かったら使ってみてください。


mStraightUV from myara on Vimeo.



DOWNLOAD
mStraightUV Link

INSTALL
Script式です。
ツールバーやメインシェルフにドラッグ&ドロップでボタンを作る。
もしくは、スクリプトエディターで実行する。

Maya | mSetProject 2: シーンを開く前に自動プロジェクト設定

以前作ったmSetProject の進化版です。

mSetProject 1 はシーンを開いた後にプロジェクト設定は自動に行っていました。
このままだとテクスチャのパスはフルパスになってしまうので、フルパスをローカルパスに変更するスクリプトも掛けていました。

しかし、リファレンスや同名ファイルが入っている場合は不便ですね。
欲しいのは、手動でやっていることと同じ、シーンを開く前にプロジェクト設定。

色々調べて、ちょっと諦めていたところに OpenMaya の MSceneMessage というコマンドをみつけました。
この記事(英語)はすごく参考になりました。

ブログにアップするのは忘れていましたので、今更だけど良かったら使ってみてください。

使い方:
適当にどこかに解凍してください
mSetProject.py ファイルは scripts フォルダにコピー (例:C:\Users\myara\Documents\maya\scripts)

scripts フォルダに userSetup.py が存在していない場合は:
同封されている userSetup.py をそのまま scripts フォルダにコピー

scripts フォルダに userSetup.py が存在している場合は:
そのファイルを編集して以下の2行を追加するだけです。

import mSetProject
mSetProject.main()




Download:
https://www.skymill.co.jp:5555/sharing/7jdy7SdNS

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
Next page