2012-11-30 1 views
0

가져 오기 응용 프로그램에서 C++ Maya API를 사용하여 .mb를 구문 분석 할 때 사용자가 사용자 정의 재료의 필드에 입력 한 데이터를 추출하려면 어떻게합니까?Maya C++ API를 사용하여 .mb의 사용자 정의 자료에서 사용자 데이터를 추출하는 방법은 무엇입니까?

  • 내가 가진 사용자 정의 재질을 정의 : 여기

    이 상세하게 상황이다 (나는 이미 사용자의 입력을 포함하는 MObject에 액세스 할 생각하지만, 그것을 추출하는 방법을 모른다) C++ Maya API (사용자 정의 MPxNode를 정의하는 .mll을 생성하고 사용자의 일부 float 및 enum 필드를 정의 함)
  • Maya 사용자 정의 재료가있는 객체에 "새 재료 할당"을 한 다음 맞춤 소재의 데이터 필드를 수정하고 .mb를 저장합니다.
  • 내 C++ Maya 가져 오기 도구에서 DAG 및 DG를 통과하여 예상대로 MObject :: hasFn (MFn :: kPluginDependNode) 호출이 true를 반환하는 재료 MObject 만 식별하여 나타남)
  • 사용자 정의 쉐이더의 데이터 필드 각각을 추출 할 수 있습니다. 사용 MFnDependencyNode :: 속성 ("datafieldName")를 이름 -

을 예상대로 존재하지 않는 데이터 필드를 추출하는 데 실패 시도 ...하지만이 추출 datafields는 MObject의를하고, 나는 데이터를 추출하는 방법을 모른다 사용자가 Maya에서 커스텀 머티리얼 인스턴스에 입력했습니다.

올바른 접근 방법은 무엇입니까?

MFnDependencyNode :: findPlug ("datafieldName") 다음 사용자가 입력 한 데이터에 대한 액세스를 제공하는 MPlug을 반환

답변

0

여기에 내가 찾던 누락 된 링크입니다.

(I는 "속성"과 "데이터 필드"와 같은 이름을 검색했다 - 그것은 "플러그"라는 것을 찾기 위해 나에게 발생하지 않았다)

+0

플러그가 속성의 절반의 일종이다. 이것은 왜 자신의 용어를 가지고 있습니다. 사용자는 API에 사용할 수있는 사이트에 노출되지 않습니다. – joojaa

+0

@joojaa 플러그를 "속성 반"이라고 부르면 무슨 뜻인지 자세히 설명해 주시겠습니까? 나는 현재 C에서 struct의 멤버처럼 데이터 필드로 애트리뷰트를 생각하고있다. –

+0

속성은 계산을위한 명령이며, 저장은 선택적 기능입니다. 연결을 만들면 플러그는 연결의 다른 끝에서 읽을 때 트리거하도록 특성을 준비합니다. 이제 상대방의 플러그는 값의 정규화 된 저장소 일 수도 있고 아닐 수도 있습니다. Maya는 실제로 소스 플러그에서 연결된 데이터 필드를 한 번만 사용할 수 있습니다. 속성은 캐시하기로 설정하지 않는 한 저장소의 환상 일 수 있습니다. – joojaa

관련 문제