'공부/Python'에 해당되는 글 2

  1. 2011.06.25 maya python commands hint
  2. 2011.01.22 [python] Python 101 - 파이썬의 자료형 1

maya python commands hint

1. 특정 object 의 절대적 위치 얻기

특정 object 의 공간상에서 절대적 위치를 얻고 싶은데, attribute 에서 얻는 것은 한계가 있습니다.
xform 명령을 사용하면 공간 상에서 절대적 위치 정보를 얻어낼 수 있습니다.

ex) mc.xform('joint18',q=True, translation=True, worldSpace=True)




2. Point 의 절대적 위치 얻기

마야에서 사용되는 포인트들 (Vertex, CV...) 등의 위치 정보는 따로 얻어낼 수 있는 커맨드가 있습니다.
pointPosition 명령을 사용하면 됩니다.

ex) mc.pointPosition('vertexName')




3. 특정 object 의 parents, child 얻기

특정 object 에 hierarchical 하게 연결된 object 의 parents 와 child 를 얻고 싶을 때에는
mc.listRelatives 를 사용하면 된다.

ex) mc.listRelatives('object', c=True)   //  child 를 얻어올 수 있다.




4. Nurbs curve 의 CV 개수 알아내기

nurbs curve 의 cv 개수는 curve 의 degree + spans 와 같다.
즉 ,

num_cv = mc.getAttr('curve1.degree') + mc.getAttr('curve1.spans')

이렇게 구할 수 있다.


5. Blendshape Node 만 있을 때 Target Shape 들의 노드 이름 알아내기
(이 커맨드들은 설영호(seolyeongho@kaist.ac.kr), 서재우(goongsang@kaist.ac.kr) 학생에 의해 작성되었음을 알립니다)

방법 1. 
listAttr -sn blendShape13.weight[0]; 

방법 2. 
string $blendShapes = "blendShape13"; 
string $names[] = `listAttr -m ($blendShapes + ".w")`; 

방법 3. 
string $temp[] = `aliasAttr -q blendShape13`; 
print $temp

방법 4. 
blendShape -q -t



6. 현재 선택한 object 의 list  받아오기

mc.ls(sl=True)


7. Pivot 옮기기

move 명령어로 옮겨줄 수 있다. 그런데 scalePivot 과 rotatePivot 을 옮겨주어야 한다. translatePivot 은 없고, rotatePivot 을 따라가는 것으로 보인다.

mc.move(0, 0, 0, 'object.rotatePivot', 'object.scalePivot')



8. 파일 Import

mc.file("D:/maya/projects/default/scenes/Woman_Rigging_Template_07.mb", i=True)

'공부 > Python' 카테고리의 다른 글

[python] Python 101 - 파이썬의 자료형  (1) 2011.01.22

[python] Python 101 - 파이썬의 자료형

모든 프로그래밍 언어가 그렇듯 파이썬도 주요자료형-정수형(int), 부동소수점형(float), 문자열(str)등등의 개념이 비슷하다.
하지만 파이썬 특유의 자료형이 존재한다 그것들이 바로 리스트, 사전, 튜플이다.

리스트 (List)
리스트는 C의 배열과 그 개념이 비슷한 것 같다. 파이썬의 리스트도 여러 요소를 선언하는 집합적인 자료형이라고 할 수 있다.
리스트는 []를 이용하여 선언한다.

예)
>>> List = [1,2,3]
>>> List
[1, 2, 3]
>>>

또한 리스트는 포함하고 있는 요소값들을 수정 할 수가 있는데,
예)
>>> List[0] = 5
>>> List
[5, 2, 3]
>>>
이러한 식으로 리스트 안에 있는 요소값들을 수정 할 수 있다.
여기서 List라는 리스트의 0번째 요소값 즉, 1이라는 정수를 5라는 정수로 바꾸고 그 결과로 [5, 2, 3]을 출력해준다.

리스트에는 관련 함수들이 있는데,
요소를 추가시켜주는 append
리스트를 정렬시켜주는 sort
리스트를 뒤집는 reverse
위치를 반환시켜주는 index
요소를 제거하는 remove
요소를 끄집어내는 pop
개수를 세어주는 count가 있다.
 예)
>>> List = [1,2,3]
>>> List.append(4)
>>> List
[1, 2, 3, 4]
>>> List.sort()
>>> List
[1, 2, 3, 4]
>>> List = [3,2,1]
>>> List.append(4)
>>> List
[3, 2, 1, 4]
>>> List.sort()
>>> List
[1, 2, 3, 4]
>>> List.reverse()
>>> List
[4, 3, 2, 1]
>>> List.index(1)
3
>>> List.remove(4)
>>> List
[3, 2, 1]
>>> List.pop(1)
2
>>> List.count(3)
1
>>>

튜플(Tuple)
튜플 혹은 터플이라고 불리는 이 자료형은 리스트와 그 특성이 유사하다. 하지만 리스트와는 달리 튜플은 집합안의 요소들을 변경 또는 삭제할 수 없다.
튜플은 ()사이에 요소들을 선언한다.

 예)
>>> Tuple = (1,2,3)
>>> Tuple
(1, 2, 3)
>>> Tuple[0] = 2
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    Tuple[0] = 2
TypeError: 'tuple' object does not support item assignment

이와같이 튜플의 0번째 요소에 2를 대입하려고 하지만 에러메세지가 나온다. 이처럼 튜플은 값의 변경이 안된다.

사전(Dictionary)
파이썬의 특이한 자료형 중 하나인 사전은 키를 사용해서 값을 얻는 자료구조이다.
이는 마치 "두산=베어스", "성남=일화' 와같이 대응관계를 이용하여 자료형을 만들었다고 할 수 있다.

사전은 {}사이에 대응되는 값을 넣게된다.

 예)
>>> Dictionary = {'Doosan':'Bears', 'Suwon':'BlueWings'}
>>> Dictionary
{'Suwon': 'BlueWings', 'Doosan': 'Bears'}
>>> Dictionary['Doosan']
'Bears'
>>> 'Suwon' in Dictionary       # 'Suwon'이라는 키값이 Dictionary에 있는지 여부를 판단 할 수 있다.
True
>>> Dictionary.keys()             #Dictionary라는 사전형에서 키값만 추출할 수 있다.
['Suwon', 'Doosan']
>>> Dictionary.values()          #Dictionary라는 사전형에서 값만 추출할 수 있다.
['BlueWings', 'Bears']


공부하다가 파이썬만의 특이한(?)변수선언을 보았다.

파이썬의 특이한 변수선언법
a = 1 이것은 정말 보편적인, 모든 프로그래밍에서 볼법한 변수선언법이다. 하지만 파이썬에서는 이렇게 할 수도 있다.
 예)
>>> a = 1
>>> a
1
>>> a, b = 'a', 'b'
>>> a
'a'
>>> b
'b'
>>> (a,b) = (1,2)
>>> a
1
>>> b
2
>>> [a,b] = ['apple', 'banana']
>>> a
'apple'
>>> b
'banana'
>>> a = b = 'ab'
>>> a
'ab'
>>> b
'ab'

지금까지 파이썬의 자료형에 대해 정리를 해보았다. 다음번은 리스트에서의 값의 변경과 기본문법에 대해 정리해보겠다.


이 내용은 개인적으로 공부를 하면서 정리한 것이기 때문에 틀린부분도 있을 것입니다. 또한 개인적 편의때문에 포스팅할땐 평어체를 사용합니다.

'공부 > Python' 카테고리의 다른 글

maya python commands hint  (0) 2011.06.25