maya Python 베이크 한 애니메이션을 다시 수정하고 싶습니다.
우선 간단한 IK 애니메이션 만들기
1,5,10 프레임째의 iKHandle1에 키를 설정
이런 느낌을・・・
둥근 애니메이션 베이크
그러면 Joint 등에도 이런 느낌으로 모든 프레임에 키가 쳐진다
여기에서 1 5 10 키프레임만 떠나 삭제하고 싶다.
그렇게 하기 위해 애니메이션 변경하고 싶지만 어디 그대로라면 모두 키를 치고 버리고 있기 때문에 수정이 어렵습니다.
라고 할까.
베이크하기 전에 다른 이름으로 저장하면 좋지만 ....
만들고 싶은 명령
절차
1개 cube등을 작성해, 1,5,10프레임에 키를 설정.
그런 다음 먼저 cube를 선택한 다음 베이크 한 객체를 선택하여 명령 실행!
이상적인 결과
cube로 설정된 키 이외의 애니메이션이 삭제됨
시행착오한 결과
어떻게 든
import maya.cmds;
model = cmds.ls(selection=True)[0];
keyTimes = cmds.keyframe(model,query=True);
timeList = range(1, int(max(keyTimes)));
data = list(set(timeList) - set(keyTimes));
selectObjList = cmds.ls(selection=True);
for frameTime in data:
for obj in selectObjList[1:]:
cmds.cutKey(obj, time=(frameTime,frameTime), cl=1);
파이썬 할 수 없다면 쓰기가 기분 나쁘지만 짧게 걸린다!
간단한 해설
선택한 첫 번째 객체의 이름을 모델로 설정
model = cmds.ls(selection=True)[0];
최초로 선택한 오브젝트의 키 프레임을 취득 (모두 취득하고 있으므로 중복이 있다)
keyTimes = cmds.keyframe(model,query=True)
최대 시간까지 프레임 번호 목록 만들기 (이 경우 1,2,3,4,5,6,7,8,9,10)
timeList = range(1, int(max(keyTimes)));
키 프레임 차이를 얻습니다 (지우는 키 프레임 목록) (2,3,4,7,8,9)
data = list(set(timeList) - set(keyTimes))
그리고는 선택된 객체 (첫 번째를 들여다 봅니다)로 루프를 돌려,
추가로 삭제할 키 프레임 목록에서 루프를 돌려,
cutKey!에서 확인
selectObjList = cmds.ls(selection=True);
for frameTime in data:
for obj in selectObjList[1:]:
cmds.cutKey(obj, time=(frameTime,frameTime), cl=1);
Reference
이 문제에 관하여(maya Python 베이크 한 애니메이션을 다시 수정하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ayumegu/items/3ac3a37c8a61e00ec9de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)