회원 로그인
|
쉐이더 검색
쉐이더 검색
:씬의 쉐이더를 검색하고 선택한다.
:씬의 쉐이더를 검색하고 선택한다.
#실행 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
- ptSearchShaderTool.py (5KB) (0)
댓글 0개
| 엮인글 0개
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 |