2017-05-24 11 views
0

사용자 지정 MPxEmitterNode 특성의 유효성을 검사하려고합니다.Maya Plugin 속성 유효성 검사

나는 마야 말투에 double3으로 입력 된 force_min 및 force_max 속성을 가지고 있습니다. 기본적으로 double [3] 데이터를 포함하는 두 개의 객체가 있습니다.

force_min이 3 가지 구성 요소 각각에 대해 force_max보다 작아야합니다. 누군가가 속성 편집기에서 속성 값을 입력하거나 해당 특성에 대한 mels setAttr을 호출하면 "최소 < 최대"검사를 실패하는 경우 min 및 max를 교체하여이 작업을 수행하고 싶습니다.

force_min, force_max 및 개별 구성 요소 x, y, z 개체 사이의 ATTRIBUTE_AFFECTS 관계 설정을 시도했습니다. Maya 충돌로 이어지는 주기적 문제가 발생하는 것 같습니다. 파생 된 MPxEmitterNode에 대한 커스텀 컴퓨팅 함수 편집을 시도 했으므로 force_min 및 force_max 값을 스왑으로 설정합니다. 이 경우에는 force_ * 속성이 절대 계산되지 않습니다.

도움을 주시면 감사하겠습니다.

답변

1

일반적으로 'Maya'방법은 최소값과 최대 값이 잘못 설정되면 출력이 잘못 보이게하는 것입니다. 이러한 속성을 누가 설정할 것인지 - 연결 또는 스크립트 일 수 있으며 애니메이션 프레임 사이에서 리셋 될 수도 있습니다 - 따라서 DAG 평가를 통과시키는 것이 더 좋습니다 결과는 난센스입니다. 구형 노드에서 반경을 0으로 설정하는 것과 같습니다. 잘못되었다고 생각하는 경우에도 '정확함'입니다.

그러나 compute() 메서드 내부의 값을 바꿔 플러그 값 자체를 재설정하지 않고 값을 바꿀 때와 동일한 효과를 얻을 수 있습니다. 입력 플러그를 계산 내부에서 설정하는 것은 나쁜 생각입니다. 왜냐하면 dag 평가의 흐름에 루프를 도입하기 때문입니다. DAG 노드는 비정규 적이어야합니다 (dag의 "a": 연출 비주기 도표)