動画のトピックス
アーティスト向けのMayaでのPython入門、第17回目です。
※Mayaはバージョン2020を利用しています。
今回はかなり実践向けな内容です。
スキンクラスターのコピペをPythonで自動化しちゃおう!といった内容です。
Mayaのスキンのコピースキン、結構面倒くさいんだよなーって方は是非~。
サンプルコード
from maya import cmds
# low, highを選択してトランスフォームノードを取得
transforms = cmds.ls(selection=True, type="transform")
# トランスフォームのシェイプノードを取得
shapes = cmds.listRelatives(transforms, shapes=True, noIntermediate=True)
# lowのヒストリーを取得し、スキンクラスターのみ取得
histories = cmds.listHistory(shapes[0], pruneDagObjects=True, interestLevel=2)
low_skincluster = cmds.ls(histories, type="skinCluster")[0]
# lowのスキンクラスターで使っているインフルエンスを取得する
influences = cmds.skinCluster(low_skincluster, q=True, influence=True)
# influencesのリストの最後にhighのトランスフォームを追加する
influences.append(transforms[1])
# highをバインドする
high_skincluster = cmds.skinCluster(influences, toSelectedBones=True)
high_skincluster = high_skincluster[0]
# lowのスキンクラスターをhighのスキンクラスターへコピースキンウェイト
cmds.copySkinWeights(
sourceSkin = low_skincluster,
destinationSkin = high_skincluster,
noMirror=True,
influenceAssociation="oneToOne",
surfaceAssociation="closestPoint"
)
コメント