회원 로그인
|
스무스 바인드 툴
*_skin와 *_skin_con의 조인트 이름을 가진 것과 선택한 메쉬를 스무스 바인드 옵션에 따라 바인드 해준다.
skinCluster의 maxInfluences는 5로 변경해 준다.
*선택 필터는 미구현
UI
# -*- coding: utf-8 -*- # ptSmoothBindTool.py # 2012.6.11 ~ # scripted by artsOne #기본 라이브러리 from maya import cmds,mel import re #import sys #sys.path.append('Z:\\zCloud\\puppetTools') #from dwRigLibrary import * def ptSBT_UI(UItype): #인하우스툴에 넣을 때 if UItype == 'form': cmds.columnLayout(adj=1) #새 창일 때 elif UItype == 'window': pass cmds.frameLayout('ptSBT_frL1',l=u'스킨 조인트 검색 - 0개',cll=1,cl=0,bs='etchedIn') cmds.textScrollList('ptSBT_tSL1',a=u'새로고침 버튼을 클릭하세요.',ams=1,nr=8,en=0) cmds.columnLayout(adj=1) cmds.button('ptSBT_b1',l=u'새로고침',c='ptSBT_checkSkinJointRefresh()') cmds.frameLayout(l=u'선택 필터',cll=1,cl=1,bs='etchedIn') cmds.columnLayout(adj=1) cmds.checkBoxGrp(l=u'필터',la3=[u'스킨 조인트',u'컨트롤 조인트',u'']) cmds.setParent('..') cmds.setParent('..') cmds.button('ptSBT_b2',l=u'모두 선택',c='ptSBT_selecteAllSkinJoint()',en=0) cmds.frameLayout(l=u'스무스 바인드 옵션',cll=1,cl=1,bs='etchedIn') cmds.columnLayout(adj=1) cmds.button(u'스무스 바인드 옵션 열기',c="mel.eval('SmoothBindSkinOptions;')") cmds.setParent('..') cmds.setParent('..') cmds.button('ptSBT_b3',l=u'스무스 바인드',c='ptSBT_smoothBind()',bgc=[1,1,0],en=0) if UItype == 'form': pass elif UItype == 'window': cmds.button('ptSBT_b4',l=u'창닫기',c="cmds.deleteUI('ptSBT_w1',wnd=1)") cmds.setParent('..') cmds.setParent('..') if UItype == 'form': cmds.setParent('..') elif UItype == 'window': pass #윈도우 UI def ptSBT_winUI(use): #인하우스툴에 넣을 때 if use == 'form': ptSBT_UI(use) #새 창일 때 elif use == 'window': if cmds.window('ptSBT_w1',ex=1): cmds.deleteUI('ptSBT_w1',wnd=1) cmds.window('ptSBT_w1',t=u'스무스 바인드 툴',mnb=0,mxb=0,s=1) #폼UI ptSBT_UI(use) cmds.showWindow('ptSBT_w1') #스킨 조인트 추출 #차후 추가한 조인트 네임 넣는 UI 만들기 = 추출 필터 #모든 조인트 추출/스킨 조인트 추출/조인트 컨트롤 추출 등.. def ptSBT_getSkinJoint(): skinJointNames = cmds.ls('*_skin','*_skin_con') return skinJointNames #새로고침 def ptSBT_checkSkinJointRefresh(): skinJointLen = len(ptSBT_getSkinJoint()) cmds.textScrollList('ptSBT_tSL1',e=1,ra=1) if skinJointLen >= 1: cmds.frameLayout('ptSBT_frL1',e=1,l=u'스킨 조인트 검색 - %d개' %skinJointLen) cmds.textScrollList('ptSBT_tSL1',e=1,a=ptSBT_getSkinJoint(),en=1) cmds.button('ptSBT_b2',e=1,en=1) cmds.button('ptSBT_b3',e=1,en=1) else: cmds.frameLayout('ptSBT_frL1',e=1,l=u'스킨 조인트 검색 - 0개') cmds.textScrollList('ptSBT_tSL1',e=1,a=u'검색된 스킨 조인트가 없습니다.',en=0) cmds.button('ptSBT_b2',e=1,en=0) cmds.button('ptSBT_b3',e=1,en=0) print u'' #cmds.select(cl=1) #모두 선택 def ptSBT_selecteAllSkinJoint(): cmds.textScrollList('ptSBT_tSL1',e=1,si=ptSBT_getSkinJoint()) print ptSBT_getSkinJoint() #스무스 바인드 def ptSBT_smoothBind(): selectJoint = cmds.textScrollList('ptSBT_tSL1',q=1,si=1) selectObject = cmds.ls(sl=1) if selectObject: #cmds.select(ptSBT_getSkinJoint(),selectObject) for sO in selectObject: skinClusterList = cmds.skinCluster(selectJoint,sO,normalizeWeights=1,maximumInfluences=5) for sCL in skinClusterList: cmds.setAttr('%s.maintainMaxInfluences' %sCL, 1) cmds.setAttr('%s.maxInfluences' %sCL, 5) else: ptSBT_smoothBind_cD1 = cmds.confirmDialog(t=u'에러',m=u'바이드할 오브젝트를 선택하지 않았습니다.',b=[u'확인'],db=u'확인') if ptSBT_smoothBind_cD1 == u'확인': pass ptSBT_winUI('window')
- ptsmoothbindtool.py (4KB) (5)
댓글 0개
| 엮인글 0개
466개(12/24페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 44698 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 65518 | 2014.01.08 17:59 | |
244 | [Plugin] AnimSchool Picker v 1.12 | 푸딩뱃살 | 1999 | 2014.03.01 01:41 |
243 | [Script] MEL syntax highlighting for Notepad++ | 푸딩뱃살 | 5980 | 2014.02.06 13:46 |
242 | [Modeling] mesh smooth 관한 이야기 | 푸딩뱃살 | 3143 | 2014.01.09 17:37 |
241 | [Script] 스킨 복사 | 푸딩뱃살 | 3473 | 2013.12.01 00:22 |
240 | [참고] 마야 완벽 지우기 | 푸딩뱃살 | 10343 | 2013.11.13 00:40 |
>> | [Script] 스무스 바인드 툴 | 푸딩뱃살 | 3637 | 2013.11.07 13:58 |
238 | [Script] 퍼 켜고 렌더레이어에 넣기 script | 푸딩뱃살 | 3599 | 2013.08.28 11:43 |
237 | [Script] 선택한 오브젝트 smoothLevel 변경 script | 푸딩뱃살 | 3135 | 2013.08.23 17:59 |
236 | [Script] 사용하지 않는 furDescroption 삭제 script | 푸딩뱃살 | 2530 | 2013.08.23 14:42 |
235 | [Script] 선택한 두 오브젝트 중간에 로케이터 생성 script | 푸딩뱃살 | 2855 | 2013.08.23 14:04 |
234 | [Rigging] 세개의 joint로 구현한 fk, ik 스위치 | 푸딩뱃살 | 3090 | 2013.08.20 18:56 |
233 | [Rigging] joint scale로 stretch 시 하위까지 scale 적용될 때 | 푸딩뱃살 | 2743 | 2013.08.05 16:28 |
232 | [Node] 마야 기본 노드 | 푸딩뱃살 | 4751 | 2013.08.05 15:15 |
231 | [Script] Camera Attr | 푸딩뱃살 | 4304 | 2013.08.05 14:25 |
230 | [참고] SyntaxHighlighter for Mel (Maya) | 푸딩뱃살 | 4449 | 2013.07.30 01:16 |
229 | [Base] 마야 다운으로 임시 저장된 ma, mb로 저장하기 | 푸딩뱃살 | 6348 | 2013.04.19 19:29 |
228 | [Base] Maya 2014 New Features: Node Editor | 푸딩뱃살 | 4729 | 2013.04.17 01:47 |
227 | [Rigging] Maya 2014 New Features: Joint Tool | 푸딩뱃살 | 4602 | 2013.04.17 01:45 |
226 | [Plugin] Advanced Skeleton | 푸딩뱃살 | 6867 | 2013.04.14 13:15 |
225 | [참고] Victor Vinyals Character Character Rig Animation Reel | 푸딩뱃살 | 3494 | 2013.04.14 03:17 |