회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


스무스 바인드 툴

푸딩뱃살 | 2013.11.07 13:58 | 조회 3636
*_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')
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