2012-05-19 4 views
0

안녕하세요, 저는 현재 마야에서 파이썬 스크립팅을 배우고 있습니다. 코드로 모델을 저장하는 방법을 찾고 있으므로 코드로 내 고유 모델에 액세스 할 수 있습니다. (파이썬 아미노산 서열을 쓰는 방법을 이해합니다. 마야 객체를 저장하고 파이썬으로 Maya에 액세스하는 방법이 아닙니다.)파이썬에서 마야 - 코드에서 기존 모양을 다시 작성

나는 스크립트 편집기에 액세스하는 방법과 polySphere) 다른 사람. 내가 원하는 것은 특정 모델을 만든 다음 모델을 선택하고 선택한 모든 항목을 다시 생성하기위한 코드를 얻습니다. 그런 다음 스크립트로 실행하여 다른 장면에서 해당 모양을 다시 만들 수 있습니다.

예를 들면 : 나는 현재 아미노산을 모델링하는 것이 어렵지 않지만 일부 아미노산을 만들고 있는데, 내가 그 사슬을 만들고 싶을 때 그 특정 아미노산을 재현하는 스크립트를 작성하는 것이 매우 유용 할 것이다 산성 (3d 모델).

도움 주셔서 감사합니다.

답변

1

많은 초급 및 중급 Maya 사용자가 가지고있는 문제입니다. Maya가 실제로 어떻게 작동하는지 실제로 파악하지 못한다는 사실을 알 수 있습니다. 여기의 속임수는 잘못된 방향으로 실제로보고있는 것입니다. 우리가 스크립팅을 정의 할 때 그 대답에 대해 더 깊이 이해하기에 앞서, 혼란스러워 할 필요가 없습니다. Maya의 스크립팅은 maya.cmds 모듈입니다.이 모듈은 Maya의 스크립팅 레이어입니다. 파이썬은 또한 Maya 프로그래밍 레이어를 maya.OpenMaya에 공개합니다.

이제 Maya 스크립팅 인터페이스는 작업을 수행하는 도구가 아니기 때문에 처음에는 다소 이상합니다. Maya의 실제 프로그래밍 환경은 노드입니다. 스크립팅 인터페이스는 프로그래밍 방식으로 노드를 레이아웃하기 만하면됩니다. 그래서 마야 스크립트 인터페이스는 metaprogramming 종류의 인터페이스입니다. 당신은 어려운 스크립팅 레퍼런스를 보면서 이것을 이해하지 못할 것이지만 하이퍼 그래프 또는 Node Reference입니다. 즉, 처음에는 원하는대로 할 수없는 비현실적인 의미입니다.

그래서 질문이 달라집니다 (위에서 정의한대로 스크립트를 작성하고 Maya 매뉴얼에서 정의한다고 가정). 이 아미노산 사슬을 만들기 위해 어떤 종류의 노드를 사용할 수 있습니까?

그럼 기본적 두 가지 옵션, 입자와 입자 인스 턴싱을 사용하거나 스냅 샷 노드를 사용하여 왼쪽 (스냅 샷 노드가 실행 시간 동안, 복제을하고 DG의 모양을 변경할 수 있습니다 공장 노드입니다) . 파티클 인스 턴싱은 매우 빠르고 직관적으로 작동합니다.이 방법으로 수십만 개의 분자를 거의 확실하게 처리 할 수 ​​있습니다. 스냅 샷 노드를 사용하는 것은 약간 복잡하기 때문에 실제로 쉽게 애니메이션을 적용 할 수 없습니다. 이 모든 것을 바인드하는데 사용하는 노드는 Mayas 커스텀 데이터 핸들러 인 표현 노드입니다 (MEL이 아닌 표현식은 없습니다).

지금 내가 조언하는 코드를 실제로 만들고 싶다면 스크립트와 결합하여 Mayas API를 사용하여 노드를 만들어야합니다. 스크립트는 노드 연결을 기억하므로 건물 연결 및 사용자 인터페이스가 스크립트이고 API가 노드 내부 만 빌드합니다. 이것은보다 직접적인 코딩이며, 시간을 비효율적으로 사용하기가 어렵습니다.

이벤트를 사용하고 필요에 따라 재건하는 것도 가능합니다. 이것으로 문제는 당신이 당신을 도처에 누설하고 당신의 인생을 비참하게 만드는 모든 방법으로 싸우게 할 것입니다.

+0

죄송합니다. Maya는 나중에 다시 살펴보고 적절한 코드 예제를 시도해보십시오. – joojaa