アーティストのためのMaya Python入門 第10回「1~9回目までの総まとめ!基本のコントロールリグをPythonで作ってみよう!」

コードのおさらい

from maya import cmds

# joint階層の名前を変更する
joints = cmds.ls(selection=True)
for joint in joints:
    cmds.rename(joint, "{}_baseJoint".format(joint))
    
# ユニークな名前で複製する
cmds.duplicate(rc=True)

# 複製したジョイント階層の名前を変更する
joints = cmds.ls(selection=True)
for joint in joints:
    target_joint = joint.replace("baseJoint1", "targetJoint")
    cmds.rename(joint, target_joint)

# baseJointのshapeにcircleを作る
joints = cmds.ls(selection=True)
for joint in joints:
    circle = cmds.circle(normal=[1,0,0], constructionHistory=False)[0]
    circle_shape = cmds.listRelatives(circle, shapes=True)[0]
    cmds.parent(circle_shape, joint, relative=True, shape=True)
    cmds.delete(circle)
    cmds.rename(circle_shape, "{}Shape".format(joint))

# joint.drawStyle=Noneにする
joints = cmds.ls(selection=True, dagObjects=True, type="joint")
for joint in joints:
    cmds.setAttr("{}.drawStyle".format(joint), 2)

# baseJoint階層でtargetJoint階層を動かす。
joints = cmds.ls(selection=True, dagObjects=True, type="joint")
for joint in joints:
    target_joint = joint.replace("baseJoint", "targetJoint")
    for i in "XYZ":
        cmds.connectAttr(
            "{}.translate{}".format(joint, i),
            "{}.translate{}".format(target_joint, i)
        )
        cmds.connectAttr(
            "{}.rotate{}".format(joint, i),
            "{}.rotate{}".format(target_joint, i)
        )
        cmds.connectAttr(
            "{}.scale{}".format(joint, i),
            "{}.scale{}".format(target_joint, i)
        )

Pythonのおすすめ書籍

関連記事

  1. アーティストのためのMaya Python入門 第5回「listRelativesコマンドを使って、親や子ノードを取得しよう!」

    2020-10-02

  2. 処理の前後に別の処理を挟む?デコレータとWith文

    2021-01-09

  3. アーティストのためのMaya Python入門 第2回「lsコマンドを使って、選択内容を取得しよう!」

    2020-09-29

  4. アーティストのためのMaya Python入門 第7回「connectAttrコマンドを使って、ノード同士を接続しよう!」

    2020-10-03

コメントをお待ちしています。

コメント

ABOUT

テクニカルアーティストの為のまとめサイトです。

本サイトでは、『YouTube ✕ Blog』を中心に
情報発信をしていきます。

また、テクニカルアーティストとしての様々な
ライフハック記事も投稿予定です。

限定情報会員

PATREONでは、限定情報やサンプルファイルの配布も行っています。登録頂けると更新頑張れます。支援の方よろしくお願いします。


免責事項

本ウェブサイト内で公開している全ての情報の有用性や安全性については当方は一切の保証を与えるものではありません。
利用したことによって引き起こる直接および間接的な損害に対して当方は一切責任を負うものではありません。
全て自己責任でご使用ください。

3DCGBOOK出版

BOOTHで技術書を販売利しております。







スポンサー

ページ上部へ戻る