2014年04月25日

ACSを使ってみた その72 modo701 SP4

ACSリグのコントローラを網羅したラッパークラスがようやく出来た(あっベースコントローラ入れるの忘れた・・・)。

fig01

「ACS_Wrapper.py」ファイルを実行したいプログラムと同じフォルダーに置いて、このクラスをインポートすれば簡単にリグのパラメータがコントロール出来る。「Rig」クラスの初期化にはアクターのグループIDを与える。下の例では現在選択されているアクターのグループIDを渡して「Rig」クラスのインスタンスを生成し、各パラメータを変更している。実行結果が上の画像で、2つの別のリグに対して個別にこのプログラムを実行してみたところだ。

#python
import sys
import math
import lx
import ACS_Wrapper

def main():
 #search cntrol items from select actor
 actor = lx.eval1('group.current ? actr')

 #set ACS Pose
 rig = ACS_Wrapper.Rig(actor)

 rig.Body.Root.pos.Y.value = -0.1
 rig.Body.Root.rot.Y.value = 40
 rig.Body.Root.rot.Z.value = 15

 rig.LArm.Arm_CH.IK_Blending.value =  rig.RArm.Arm_CH.IK_Blending.value = 0
 rig.LArm.Pinky2.rot.X.value = rig.RArm.Pinky2.rot.X.value = 45
 rig.LArm.Hand_FK.rot.X.value = rig.RArm.Hand_FK.rot.X.value = -40
 rig.LArm.Hand_FK.rot.Y.value = -20
 rig.RArm.Hand_FK.rot.Y.value = 20
 rig.LArm.ForeArm_FK.rot.X.value = rig.RArm.ForeArm_FK.rot.X.value = 100
 rig.LArm.Arm_FK.rot.X.value = rig.RArm.Arm_FK.rot.X.value = 14
 rig.LArm.Arm_FK.rot.Y.value = 32
 rig.RArm.Arm_FK.rot.Y.value = -32
 rig.LArm.Arm_FK.rot.Z.value = 15
 rig.RArm.Arm_FK.rot.Z.value = -15

 rig.LLeg.Leg_CH.IK_Blending.value = rig.RLeg.Leg_CH.IK_Blending.value = 1
 rig.LLeg.Leg_IK_Pole.pos.X.value = 0.5
 rig.LLeg.Leg_IK_Pole.pos.Y.value = 0
 rig.LLeg.Leg_IK_Pole.pos.Z.value = -0.7
 rig.LLeg.Heel.pos.X.value = 0.0
 rig.LLeg.Heel.pos.Y.value = 0.2
 rig.LLeg.Heel.pos.Z.value = 0.0
 rig.LLeg.Heel.rot.X.value = 30
 rig.LLeg.Heel.rot.Y.value = 40
 rig.LLeg.Heel.rot.Z.value = 0

if __name__ == "__main__":
 main()

各パラメータは読み書きどちらも可能だ。

リグのコントローラは大きく下のグループに分けてあって、

Head
Body
LArm
RArm
LLeg
RLeg

この下に各コントローラが入っている。グループ分けしたのは左右のコントロールを簡単にしたいとか、各部分に追加の機能を持たせようと思っているからだ。例えば足ならどっかのアイテムにHeelをフィットさせたり、FKをIKにフィットさせたりと言ったところだ。この辺はこれからかな。

ダウンロードはこちら。

それではまた次回。

modo701ブログ目次

ゴールデンウィーク中は定期更新はお休みします。



take_z_ultima at 11:30│Comments(0)TrackBack(0)modo | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives