회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인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


쉐이더 검색

푸딩뱃살 | 2017.08.23 11:03 | 조회 3483
쉐이더 검색
:씬의 쉐이더를 검색하고 선택한다.


#실행
ptSS_winUI('window')
# -*- coding: utf-8 -*-
# ptSearchShaderTool.py
# 2011.12.22 ~ 2012.5.4
# scripted by artsOne

#기본 라이브러리
from maya import cmds,mel
#import sys
#sys.path.append('Z:\\zCloud\\puppetTools')
#from dwRigLibrary import * 

def ptSS_UI(UItype):
    windowName = 'ptSS_w1'

    cmds.menuBarLayout('ptSS_mBL1')
    cmds.menu(l=u'설정',en=1)
    cmds.menuItem(l=u'옵션',c='',en=0)
    #cmds.menuItem(divider=1)
    cmds.setParent('..')
    #cmds.tabLayout(tabsVisible=0,scrollable=0)
    if UItype == 'form':
        cmds.columnLayout(adj=1)
    elif UItype == 'window':
        pass
    cmds.frameLayout('ptSS_frL1',l='',cll=0,cl=0,bs='etchedIn') #,bgc=[0.5,0.5,0.5])
    cmds.textScrollList('ptSS_tSL1',a=ptSS_selectShader(),ams=1,en=1, #nr=10,
        sc="shaderName = cmds.textScrollList('ptSS_tSL1',q=1,si=1); ptSS_shadedObject(shaderName)",
        dcc='cmds.select(shaderName)')
    cmds.text('ptSS_t1',l=u'클릭:오브젝트 선택, 더블클릭:쉐이더 선택')
    cmds.columnLayout(adj=1)
    cmds.button('ptSS_b1',l=u'새로고침',c='ptSS_checkShaderRefresh()')
    cmds.button('ptSS_b3',l=u'사용 안하는 쉐이더 정리',c='ptSS_cleanUpShader()')
    if UItype == 'form':
        pass
    elif UItype == 'window':
        cmds.button('ptSS_b2',l=u'창닫기',c="cmds.deleteUI('%s',wnd=1)"%windowName)
    cmds.setParent('..')
    shaderLen = len(ptSS_selectShader())
    if shaderLen >= 1:
        cmds.frameLayout('ptSS_frL1',e=1,l=u'쉐이더 검색 - %d개' %shaderLen)
    else:
        cmds.frameLayout('ptSS_frL1',e=1,l=u'검색된 쉐이더가 없습니다.')
    cmds.setParent('..')
    #탭 레이아웃 cmds.setParent('..')
    if UItype == 'form':
        cmds.setParent('..')
    elif UItype == 'window':
        pass

#윈도우 UI
def ptSS_winUI(use):
    windowName = 'ptSS_w1'
    if use == 'window':
        if cmds.window(windowName,ex=1):
            cmds.deleteUI(windowName,wnd=1)
        cmds.window(windowName,t=u'쉐이더 검색',mnb=0,mxb=0,s=1)
        #폼UI
        ptSS_UI(use)
        cmds.showWindow(windowName)
        cmds.window(windowName,e=1,wh=[240,270])
    elif use == 'form':
        if cmds.window(windowName,ex=1):
            cmds.deleteUI(windowName,wnd=1)
        print u'툴을 열 수 없습니다.'

#쉐이더 새로고침
def ptSS_checkShaderRefresh():
    shaderLen = len(ptSS_selectShader())
    cmds.frameLayout('ptSS_frL1',e=1,l=u'쉐이더 검색 - %d개' %shaderLen)
    cmds.textScrollList('ptSS_tSL1',e=1,ra=1)
    cmds.textScrollList('ptSS_tSL1',e=1,a=ptSS_selectShader(),en=1)
    cmds.select(cl=1)
    print u'새로고침 함'

#적용 쉐이더 오브젝트 선택
def ptSS_shadedObject(shaderName):
    if shaderName == None:
        ptSS_shadedObject_cD1 = cmds.confirmDialog(t=u'에러',m=u'리스트에서 선택되지 않았습니다.',b=[u'확인'],db=u'확인',bgc=[0.5,0,0])
        if ptSS_shadedObject_cD1 == u'확인':
            pass    
    else:
        trans = []
        for sN in shaderName:
            selShader = cmds.listConnections(sN)
            for sS in selShader:
                if cmds.objectType(sS) == 'shadingEngine':
                    for tran in cmds.listConnections(sS):
                        if cmds.objectType(tran) == 'transform':
                            trans.append(tran)
        if trans:
            cmds.select(trans)
        else:
            ptSS_shadedObject_cD2 = cmds.confirmDialog(t=u'에러',m=u'쉐이더가 적용된 오브젝트가 없습니다.',b=[u'확인'],db=u'확인',bgc=[0.5,0,0])
            if ptSS_shadedObject_cD2 == u'확인':
                pass

def ptSS_cleanUpShader():
    ptSS_cleanUpShader_cD1 = cmds.confirmDialog(t=u'경고',m=u'정말로 정리합니까?',b=[u'확인',u'취소'],db=u'취소',cb=u'취소',ds=u'취소',bgc=[1,0.5,0])
    if ptSS_cleanUpShader_cD1 == u'확인':
        mel.eval('hyperShadePanelMenuCommand(\"hyperShadePanel1\",\"deleteUnusedNodes\")')
        print u'쉐이더 정리 함'
    elif ptSS_cleanUpShader_cD1 == u'취소':
        print u'쉐이더 정리 취소함'    
    #새로고침
    ptSS_checkShaderRefresh()

#쉐이더 추출
def ptSS_selectShader():
    #설정>옵션에 쉐이더 선택 옵션(다중 체크)을 줄 수 있도록 추가
    shaderNames = cmds.ls(typ=['blinn','lambert','phong','phongE','anisotropic','hairTubeShader','layeredShader','oceanShader','rampShader'])
    return shaderNames

466개(9/24페이지)
마야
번호 제목 글쓴이 조회 날짜
공지 마야 뷰포트 네비게이션 팁 푸딩뱃살 42299 2020.04.06 17:22
공지 Maya 버전 별 Python 버전 푸딩뱃살 63642 2014.01.08 17:59
304 [Script] Expression Editor에서 원하는 구간 프레임 홀드 cgextra 2117 2017.08.24 12:10
303 [오류] Expression Editor Open Error cgextra 2367 2017.08.24 12:06
302 [Modeling] Maya에서 Collision과 함께 익스포트 (for UE4) 첨부파일 푸딩뱃살 4202 2017.08.24 11:58
301 [Base] Grid(Unit) 설정 for UE4 첨부파일 푸딩뱃살 3814 2017.08.24 10:19
>> [Script] 쉐이더 검색 첨부파일 푸딩뱃살 3484 2017.08.23 11:03
299 [Script] scriptNode 첨부파일 푸딩뱃살 3822 2017.08.22 18:08
298 [Rendering] Maya 2017 Render Setup & Legacy Render Layer 사진 첨부파일 cgextra 3434 2017.08.08 12:12
297 [Script] Maya 2017 Switching to PySide2 푸딩뱃살 4108 2017.07.13 17:26
296 [Plugin] convertInstanceUE4 설치 첨부파일 푸딩뱃살 3596 2017.07.12 14:14
295 [Base] LOD (Level of Detail) 첨부파일 푸딩뱃살 3227 2017.07.06 11:53
294 [Dev] PySide2 첨부파일 푸딩뱃살 3316 2017.07.05 17:55
293 [Script] [펌] Maya 2017 PySide2 Docking Qt QMainWindow 첨부파일 푸딩뱃살 4413 2017.07.05 14:54
292 [Script] Maya 버전 구하기 푸딩뱃살 3161 2017.07.05 12:56
291 [Dev] Maya 2017 Qt5 Designer 실행 시 오류 첨부파일 푸딩뱃살 3878 2017.07.02 20:59
290 [Rigging] 스켈레톤(본) 기반 페이셜 리깅 구조 첨부파일 푸딩뱃살 2863 2017.06.29 12:55
289 [Animation] Controller Nodes 첨부파일 푸딩뱃살 3164 2017.06.09 11:12
288 [Dev] sip / PyQt5 빌드 for Maya 2017 첨부파일 푸딩뱃살 5254 2017.05.31 12:46
287 [Dev] Maya Python API 2.0 : 나의 첫 플러그인 Hello World! 첨부파일 푸딩뱃살 4030 2017.05.19 18:48
286 [Dev] Maya 2017은 Python 버젼 2.7.11 (64bit) 첨부파일 푸딩뱃살 3459 2017.05.18 16:29
285 [Dev] Maya devkit 설정 푸딩뱃살 3338 2017.05.18 14:23