【크리칸 2017 소재】리깅 헬프미:리그의 작법②와③의 일부를 자동화

안녕하세요
MayaPython Advent Calender 2017 의 5일째의 기사입니다.

이번 기사에서는 크리에이티브 컨퍼런스 2017의 세션의 하나, 리깅 헬프 미 "리거 모여~!""에셋 공유를 원활하게 하는 리그의 작법" 라고 하는 발표 자료를 바탕으로, 작법의 일부를 자동화해 보았습니다.

작법② 뼈의 라벨링




우선은 29 슬라이드째 「작법② 뼈의 라벨링」입니다
선택한 조인트에 대해 작동합니다.
※이하의 코드에서는 대칭인 조인트명에 Left/Right라는 문자열이 포함되어 있는 경우에만 대응하고 있습니다.
# -*- coding: utf-8 -*-

import maya.cmds as mc

selected = mc.ls(sl=True, type='joint')

for i in selected:
    label_name = None
    side_type = 0

    if 'Left' in i:
        label_name = i.replace('Left', '')
        side_type = 1
    elif 'Right' in i:
        label_name = i.replace('Right', '')
        side_type = 2
    else:
        label_name = i
        side_type = 0

    mc.setAttr(i + '.side', side_type)
    mc.setAttr(i + '.type', 18)
    mc.setAttr(i + '.otherType', label_name, type='string')


작법③ 초기 포즈 등록




다음은 33 슬라이드째 「작법③ 초기 포즈의 등록」입니다.
스크립트를 실행시킨 시점의 값을 init_~~ 에 등록합니다.
# -*- coding: utf-8 -*-

import maya.cmds as mc

selected = mc.ls(sl=True, type='transform')

for i in selected:
    tx = mc.getAttr(i + '.translateX')
    ty = mc.getAttr(i + '.translateY')
    tz = mc.getAttr(i + '.translateZ')
    rx = mc.getAttr(i + '.rotateX')
    ry = mc.getAttr(i + '.rotateY')
    rz = mc.getAttr(i + '.rotateZ')

    mc.addAttr(i, ln='init_translateX', at='float', dv=tx)
    mc.setAttr(i + '.init_translateX', e=True, keyable=False, lock=True)
    mc.addAttr(i, ln='init_translateY', at='float', dv=ty)
    mc.setAttr(i + '.init_translateY', e=True, keyable=False, lock=True)
    mc.addAttr(i, ln='init_translateZ', at='float', dv=tz)
    mc.setAttr(i + '.init_translateZ', e=True, keyable=False, lock=True)
    mc.addAttr(i, ln='init_rotateX', at='float', dv=rx)
    mc.setAttr(i + '.init_rotateX', e=True, keyable=False, lock=True)
    mc.addAttr(i, ln='init_rotateY', at='float', dv=ry)
    mc.setAttr(i + '.init_rotateY', e=True, keyable=False, lock=True)
    mc.addAttr(i, ln='init_rotateZ', at='float', dv=rz)
    mc.setAttr(i + '.init_rotateZ', e=True, keyable=False, lock=True)


요약



저는 처음에 소개한 세션에 참가했고, 거기서 처음으로 뼈의 라벨링이나 초기 포즈라는 작법을 알았습니다. 라벨링도 초기 포즈도 평상시는 전혀 의식하지 않았던 개소이므로 매우 타메가 되었습니다.

또, BACKBONE님 단독으로의 세미나도 개최된다고 하는 것이므로, 그쪽도 꼭 참가하고 싶습니다.

좋은 웹페이지 즐겨찾기