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


Python for Maya - 9. polysmooth 자동 설정 (format 변환)

artsOne | 2008.03.05 01:18 | 조회 4421

Digital Dream ( http://cafe.naver.com/digitaldream ) 카페의 'Maya Python 시작하기'의
기반으로 복습하는 차원에서 재정리한 것입니다.



Subdiv Proxy로 smooth 적용된 pCube들을 선택하는 code이다.
object을 선택하면서 Exponential Level의 값이 얼마가 적용되었는지도 출력해보자.
import maya.cmds as cmd

sel_ = cmd.ls('pCu*', type='transform')

my_sel = []
for obj_ in sel_:
    his_list = cmd.listHistory(obj_, lv=1)
    for his_ in his_list:
        if cmd.nodeType(his_) == 'polySmoothProxy':
            my_sel.append(obj_)
            print '%s smooth %s' % (obj_, cmd.getAttr('%s.exponentialLevel' % his_))
            break
cmd.select(my_sel)

# pCube13 smooth 1 #
# pCube14 smooth 1 #
# pCube15 smooth 1 #
print '%s smooth %s' % (obj_, cmd.getAttr('%s.exponentialLevel' % his_))
출력할 때 %s는 string 치환을 의미한다.
print 뒤에 두개의 %s에 obj_와 cmd.getAttr('%s.exponentialLevel' % his_)가 문자열로 치환되어 들어간다는 얘기다.
#간단한 예로..
str_ = 'Maya Python'
print 'format : %s' % str_
# format : Maya Python #
#2개 일 때..
str_ = 'Maya'
str2_ = 'Python'
print 'format : %s %s' % (str_, str2_)
# format : Maya Python #
여기서 getAttr는 object의 속성 값을 구할 때 사용되는 mel이다.
이제 smooth 걸린 object의 Exponential Level 값을 설정하는 것을 해보겠다.
import maya.cmds as cmd

sel_ = cmd.ls('pCu*', type='transform')

my_sel = []
for obj_ in sel_:
    his_list = cmd.listHistory(obj_, lv=1)
    for his_ in his_list:
        if cmd.nodeType(his_) == 'polySmoothProxy':
            smooth_fac = cmd.getAttr('%s.exponentialLevel' % his_)
            print '%s smooth %s' % (obj_, smooth_fac)
            if smooth_fac < 2:
                cmd.setAttr('%s.exponentialLevel' % his_, 2)
            break

# pCube13 smooth 1 #
# pCube14 smooth 1 #
# pCube15 smooth 1 #
# pCube16 smooth 1 #
중간에 code가 추가되어
if smooth_fac < 2:
    cmd.setAttr('%s.exponentialLevel' % his_, 2)
object에 설정되어 있는 smooth_fac 값이 2보다 작으면 아래 setAttr로 Exponential Level을 2로 변경하는 것이다.
Exponential Level을 0로 변경해 보자.
import maya.cmds as cmd

sel_ = cmd.ls('pCu*', type='transform')

my_sel = []
for obj_ in sel_:
    his_list = cmd.listHistory(obj_, lv=1)
    for his_ in his_list:
        if cmd.nodeType(his_) == 'polySmoothProxy':
            smooth_fac = cmd.getAttr('%s.exponentialLevel' % his_)
            print '%s smooth %s' % (obj_, smooth_fac)
            if smooth_fac > 0:
                cmd.setAttr('%s.exponentialLevel' % his_, 0)
            break

# pCube13 smooth 2 #
# pCube14 smooth 2 #
# pCube15 smooth 2 #
# pCube16 smooth 2 #
if smooth_fac > 0:
    cmd.setAttr('%s.exponentialLevel' % his_, 0)
당연히 현재 smooth_fac 값이 2이고 0보다 크기 때문에 아래 setAttr 명령어를 실행하여 Exponential Level을 0로 변경한 것이다.
지금까지 polySmoothProxy로 적용된 object를 찾아내어 Exponential Level 값을 변경하는 것이지만, mesh smooth로 적용된 object는 polySmoothFace로 찾아내면 된다.
즉, if cmd.nodeType(his_) == 'polySmoothProxy':를 if cmd.nodeType(his_) == 'polySmoothFace': 로 바꿔서 사용하면 된다.

───────────────────────────────────────────────────
source : http://cafe.naver.com/digitaldream/472 - 'Maya Python 시작하기' 9) polysmooth 자동 설정
466개(18/24페이지)
마야
번호 제목 글쓴이 조회 날짜
공지 마야 뷰포트 네비게이션 팁 푸딩뱃살 42812 2020.04.06 17:22
공지 Maya 버전 별 Python 버전 푸딩뱃살 64128 2014.01.08 17:59
124 [FX] Lesson 1: Creating nCloth collisions Step 2 사진 첨부파일 artsOne 2165 2008.04.13 17:28
123 [FX] Lesson 1: Creating nCloth collisions Step 1 사진 첨부파일 artsOne 2404 2008.04.13 16:23
122 [참고] Expression Manual 첨부파일 artsOne 2243 2008.04.13 02:44
121 [Script] MEL 기초 #01 - 기초 (자료형) artsOne 3959 2008.04.10 00:28
120 [Base] 선택 우선순위 첨부파일 artsone 2170 2008.04.09 02:47
119 [Script] Python for Maya - 10. polygon vertex random move 사진 첨부파일 artsOne 4619 2008.04.06 23:44
118 [Rigging] Deform > Edit Membership Tool 첨부파일 artsone 2636 2008.04.05 02:28
117 [Rigging] Deform > Wire 활용 artsone 2243 2008.04.05 02:01
116 [Animation] Bake Simulation artsone 1880 2008.04.01 23:04
115 [Rigging] 로프 Stretch Rigging 사진 첨부파일 artsone 2381 2008.03.31 21:40
114 [Rigging] Bouncing Ball Rigging 첨부파일 artsone 2368 2008.03.20 23:29
113 [Rigging] bind 후 object가 2배로 움직이는 현상 막기 첨부파일 artsone 2126 2008.03.08 03:28
112 [Rigging] Lattice와 Rigid bind를 이용한 skinning artsone 2641 2008.03.08 03:18
>> [Script] Python for Maya - 9. polysmooth 자동 설정 (format 변환) 사진 첨부파일 artsOne 4422 2008.03.05 01:18
110 [Script] Python for Maya - 8. random 응용 (if문) 사진 첨부파일 artsOne 4733 2008.02.27 02:22
109 [Script] Python for Maya - 7. random (for문) 사진 첨부파일 artsone 4755 2008.02.26 01:37
108 [Script] Python for Maya - 6. 리스트 자료 다루기 2 사진 첨부파일 artsOne 3836 2008.02.23 17:17
107 [Script] Python for Maya - 5. 리스트 자료 다루기 1 사진 첨부파일 artsOne 3926 2008.02.22 20:27
106 [Script] Python for Maya - 4. set (집합) 사진 첨부파일 artsOne 4831 2008.02.22 17:49
105 [Script] Python for Maya - 3. pickle (지속 모듈-파일 관리) 사진 첨부파일 artsOne 4808 2008.02.21 01:57