Transformに複数のシェイプをぶっこむ!!




CVカーブでリッチなコントローラーを作りたいと思った時、どうしても複数のシェイプになってしまう時ってありますよね、、、

でも、コントローラーにするにはトランスフォームがバラバラでは、とっても使いにくいです。たとえばこんな感じ

これを1つにまとめるには、MELかPythonを使えば可能です!おそらくMayaのオペレーションだけではできないと思います、、、(;´∀`)

シェイプをぶちこむPythonコード

僕はほぼ0と言っていいほどMELを使わなくなったので、Pythonでご紹介したいと思います!(`・ω・´)ゞ

from maya import cmds
cmds.parent('移動したいシェイプの名前', '親の名前', add=True, s=True)
cmds.parent('移動したいシェイプのトランスフォームの名前', rm=True)

これを使って、上記の例に当てはめると、、、

from maya import cmds
cmds.parent('nurbsCircleShape2', 'nurbsCircle1', add=True, s=True)
cmds.parent('nurbsCircle2', rm=True)
cmds.parent('nurbsCircleShape3', 'nurbsCircle1', add=True, s=True)
cmds.parent('nurbsCircle3', rm=True)

っとなります!(*´ω`*)b

OutlinerでShapeの表示をONにして見ると、このように、、、

トランスフォーム「nurbsCircle1」の中に、「nurbsCircleShape2」と「nurbsCircleShape3」を入れて1つにまとめることができました!

シェイプを移動しているだけですので、トランスフォームの値が入っていると思ったようにまとめられない場合があります。その場合は「Freeze Transformation」をかけてトランスフォームの値をリセットしてからやりましょう!!







ABOUTこの記事をかいた人

たっくん

フリーランスのCG屋さん 兼 専門学校の非常勤講師。