リギングアーティストがよく使うPythonコマンド

今回はリギングアーティストがよく使うPythonコマンドについて解説しました。
リギングアーティストを目指す学生さんや、これからリギングアーティストにジョブチェンジ!
って方向けの内容になっております。

※ この記事は、Maya Advent Calendar 2024 のシリーズ2 4日目の記事です
※ Maya2025 を利用しています。

管理人がYouTubeで解説!

今回使ったコードのサンプル

from maya import cmds

# ローカルアクシスの設定
nodes = cmds.ls(sl=True, type="joint")
value = True
for node in nodes:
    cmds.setAttr("{}.displayLocalAxis".format(node), value)


# 選択した階層以下のジョイントの回転を0にする
nodes = cmds.ls(sl=True, dag=True, type="joint")
for node in nodes:
    cmds.setAttr("{}.rotate".format(node), 0, 0, 0)


# スキンクラスターを取得する
def getSkinCluster(node):
    histories = cmds.listHistory(node, pruneDagObjects=True, interestLevel=2)
    skinCluster = None
    for history in histories:
        if cmds.nodeType(history) == "skinCluster":
            skinCluster = history
            break
    if skinCluster is not None:
        return skinCluster
    return skinCluster


# スキンクラスターのインフルエンスを取得する
def getSkinInfluences(skinCluster):
    influences = cmds.skinCluster(skinCluster, q=True, inf=True)
    return influences
    
## 使用例
nodes = cmds.ls(sl=True, type="transform")
for node in nodes:
    skinCluster = getSkinCluster(node)
    print(getSkinInfluences(skinCluster))
    

# 末端ノードの情報だけ取得してJointOrientの値を確認する
def get_end_nodes(node):
  children = cmds.listRelatives(node, children=True, type="transform")
  if not children:
    return [node]
  end_nodes = []
  for child in children:
    end_nodes.extend(get_end_nodes(child)) # 再帰関数
  return end_nodes

## 使用例
root_node = "Armature"  # ルートノードの名前
end_nodes = get_end_nodes(root_node)
for node in end_nodes:
    print(cmds.getAttr("{}.jointOrient".format(node)))

終わりに

リギングアーティストにとって、Pythonは強力なツールです。
Pythonを習得することで、リギング作業を効率化し、より高度なリグを作成することができます。
今回の記事・動画で紹介した内容を参考に、Pythonを学び、リギングスキルを向上させてくださいね。

おすすめ書籍

Mayaリギング、第3版まで出ていますね。
本書は、Mayaでキャラクターリギングを行うための知識とテクニックを、
豊富な図解と実践的なチュートリアルで学ぶことができるので入門の方にはオススメです!

関連記事

  1. テクニカルにリギングしてみよう!行列、ベクトル全部入りのポーズスペースデフォーメーションのメイキング

    2021-01-10

  2. リガーのお仕事のお話|『階層構造の設計について』語ってみる

    2020-11-19

  3. アーティストのためのMaya Python入門 番外編「可変長引数の基本とMayaでの使い方について」

    2020-11-17

  4. アーティストのためのMaya Python入門 第17回「スキンウェイトのコピーをPythonで自動化してみよう!」

    2020-11-13

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

コメント

ABOUT

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

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

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

限定情報会員

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


免責事項

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

3DCGBOOK出版

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







スポンサー

ページ上部へ戻る