지원 티켓 만들기
팔로우

Q100136 : OpScript를 사용하여 장면 그래프 위치간에 속성 복사하기

개요

이 기사에서는 OpScript 노드를 사용하여 장면 그래프 위치간에 속성을 복사하는 방법에 대해 설명합니다.

추가 정보

Katana에서 작업 할 때 위치에 대한 속성은 SetAttribute 노드를 사용하여 쉽게 설정할 수 있습니다. 그러나 한 위치에 설정된 속성을 다른 위치로 복사하려면 OpScript 노드와 몇 줄의 코드를 사용하여이를 수행 할 수 있습니다.

유사한 기능을 제안하는 이름에도 불구하고 AttributeCopy 노드는이 용도로 사용할 수 없습니다.

AttributeCopy는 fromRoot 위치의 copyFrom 장면과 toRoot의 입력 장면을 가로 지릅니다. 이 위치에서 동일한 계층 구조 및 위치 이름을 찾습니다.
즉, 속성을 복사하려는 두 위치의 모든 하위 항목은 동일한 계층 구조와 이름을 가져야합니다. 이렇게하면 AttributeCopy 노드가 올바른 속성을 올바른 위치에 복사합니다.
노드는 수정 된 다른 노드 그래프의 장면간에 속성을 복사하지만 동일한 에셋을 사용하므로 장면 그래프 계층 구조와 위치 이름이 동일하기 때문에 노드는 이와 같이 작동합니다.
동일한 장면 그래프의 위치간에 속성을 복사하려면 CopyAttr () 명령을 사용하는 OpScript를 사용할 수 있습니다. 다음과 같이 할 수 있습니다 :
1) OpScript 노드를 만들고 "applyWhere"매개 변수를 "CEL과 일치하는 위치에"설정하십시오.
2) "attrFrom", "attrTo"및 "sourceLocation"이라는 세 개의 사용자 매개 변수를 추가하십시오. 노드에 사용자 매개 변수를 추가하는 방법에 대한 지침은 Katana 온라인 도움말 의 사용자 매개 변수 섹션을 참조하십시오.
3) "sourceLocation"매개 변수의 값은에서 속성을 복사 할 장면 그래프 위치의 경로해야한다
4) CEL 문은 속성 복사하고자하는 장면 그래프 위치의 경로 여야합니다.
5) "attrFrom"텍스트 필드에 복사 하려는 속성의 이름을 입력하십시오.
6) 복사 하려는 속성의 이름을 "attrTo"매개 변수 값으로 추가하십시오.
7) OpScript 노드의 "Script"매개 변수에서이 루아 코드를 추가하십시오 :

 local attrFrom = Interface.GetOpArg("user.  attrFrom"):getValue()
local attrTo = Interface.GetOpArg("user. attrTo"):getValue()
local sourceLocation = Interface.GetOpArg("user. sourceLocation"):getValue()
Interface.CopyAttr(attrTo, attrFrom, true, sourceLocation)

 

이 옵션은 로컬 속성을 소싱 할 때만 작동합니다. 복사하려는 속성이 상위 위치에서 상속 된 경우 마지막 행을 다음으로 변경하십시오.

 Interface.SetAttr(attrTo, Interface.GetGlobalAttr(  attrFrom, sourceLocation)) 
노드 매개 변수가 어떻게 표시되는지 예를 보려면 첨부 된 스크린 샷을 참조하십시오. 이 경우 prmanStatements.attributes. prmanObjectSettings 노드의 boot_left_1Shape에 대해 설정된 visibility.camera 속성이 / root / world / geo / manScene / body_에 복사됩니다. main / geometry 및이 위치 아래의 모든 것이 속성을 상속합니다.

키워드 :

OpScript, AttributeCopy, SetAttribute, 복사 속성, 장면 그래프 위치, 다른 계층 구조, 소스 대상, Katana

도움이 되었습니까?
/

We're sorry to hear that!

Please tell us why.
4명 중 3명이 도움이 되었다고 했습니다.

댓글