CGらぼ

広く浅くCGを勉強していきます。

maya Expressionについて調べてみた!! -制御関数-

f:id:foreverLab:20151202133606j:plain

abs・・・絶対値を返す

//tx//

pSphere1.translateX = time*5;

//ty//

$valY = sin(time)*10;

$posY = abs($valY);

pSphere1.translateY = $posY + 2;

 

f:id:foreverLab:20151202140646j:plain

ceil・・・最小の整数を返す

                ex)1.1→1 , -1.9→-1

floor・・・最大の整数とを返す(※ceilの逆)

                ex)1.1→2 , -1.9→-2

//tx//

pSphere1.translateX = time*10;

//ty//

$valY = time/1.1*3;

$posY = ceil($valY);

pSphere1.translateY = $posY;

f:id:foreverLab:20151202142133j:plain

 sing・・・-1,0,1のいづれかを返す

                  ex) -0.1→-1 , 0→0 , 0.1→1

//tx//

pSphere1.translateX = time*10;

//ty//

$valY = sin(time*3);

$posY = sign($valY);

pSphere1.translateY = $posY;

 

f:id:foreverLab:20151202163205j:plain

trunc・・・小数点を切り捨てて整数値を返す

                   ex) -2.5→-2 , 0.5→0 , 2.5→2

 //tx//

pSphere1.translateX = time*10;

//ty//

$valY = sin(time)*5;

$posY = trunc($valY);

pSphere1.translateY = $posY;

maya Expression cos,sinで遊んでみた!!

f:id:foreverLab:20151202113729j:plain

pSphere1.translateY = cos(time)*10;

f:id:foreverLab:20151202114251j:plain

pSphere1.translateX = time*5;

pSphere1.translateY = cos(time)*10;

f:id:foreverLab:20151202115603j:plain

pSphere1.translateX = time*5;

pSphere1.translateY = cos(time)*10;

pSphere1.translateZ = sin(time)*10;

f:id:foreverLab:20151202112354j:plain

pSphere1.translateX = cos(time)*10;

pSphere1.translateY = sin(time)*10;

f:id:foreverLab:20151202112416j:plain

pSphere1.translateX = cos(time)*10;

pSphere1.translateY = sin(time*3)*10;

pSphere1.translateZ = sin(time*-3)*10;

f:id:foreverLab:20151202112437j:plain

pSphere1.translateX = cos(time)*10;

pSphere1.translateY = sin(time*3)*10;

pSphere1.translateZ = sin(time*5)*10;

maya Pythonでエクスプレッションを追加・編集する

expression

エクスプレッションを追加する

s・・・エクスプレッションを記述

n・・・エクスプレッション名

o・・・エクスプレッションのdefaultオブジェクトを設定

 

試しに"translateX"と"rotationZ"をつなげてみた

mc.expression(s="ball.rotateZ = ball.translateX*-50;",n="test"); 

 

エクスプレッションを書き換える場合

mc.expression("test",e=True,s="ball.rotateZ = ball.translateX*-10;"); 

エクスプレッション名を指定し"e=True"と記述し編集可能にする

maya Pyhonでアトリビュートを追加する

addAttr

アトリビュートを追加する

ln・・・アトリビュート

at・・・アトリビュートタイプを指定

dt・・・データ型を指定

boolean

mc.addAttr(ln='test',at='bool',k=True);

float

 mc.addAttr(ln='test',at='double',min=0.1,max=10,dv=1,k=True);

min・・・最小値

max・・・最大値

dv・・・初期値

string

 mc.addAttr(ln='test',dt='string',k=True);

選択セットを作って効率を上げよう!!

作業のたびに選択するのは、一つ二つくらいなら手間ではないが、10,20と増えてくるとそれだけで手間になる、しかも選択を間違える可能性もある。

 

そんな時、使えるのが選択セット

 

一度設定すれば、次回からの設定が劇的に早くなる!!しかもミスを減らせる。

 設定は簡単で

Create > Sets > Quick Select Set

f:id:foreverLab:20151124140040j:plain

 編集は

Windows > Relationship Editors > Sets

f:id:foreverLab:20151124140056j:plain

f:id:foreverLab:20151124140244j:plain

 

Pythonでこの作業をもっと簡単にできるようにしたいんだけど、

Setsを作ることは出来るんだけど、編集をどうやった出来るかが分からない。。。

Windowを作ってアクセスするだけでいいんだけどな~

 

プログラミングを教わったことがないから、自主勉強がうまく捗らないorz

もっと効率よく勉強して、もっと成長したいよ~~~