스크립트 연구

한 오브젝트를 다른 오브젝트의 포인트에 순차적으로 붙이기(xpresso버젼)

by 존재와당위 posted Apr 08, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
Extra Form
안녕하세요..

존재와당위입니다.

아래에 최걸님이 좋은 파이썬스크립터로 선보여주신  한 오브젝트의 포인트를 순차적으로 따라 다니면서 다른 오브젝트가
붙는 강좌가 있었는데요.

저는 그것을 엑스프레소로 구현을 하였습니다.

저는 아직 커피나 파이썬을 이용하는 방법을 잘 몰라서요. 아마도 다른 유저분들도 그러실 거 같아서
엑스프레소로 한번 해보았는데.

엑스프레소가 상당히 강력하다는 것을 알 수 있었습니다.



Picture 1.png

대략설명을 드리자면...

1. 핵심적인 것은 포인트노드입니다.  포인트노드는 원래 처음부터 오브젝트, 포인트 인텍스 인풋포트와 포인트카운트,포인트포지션 아웃풋 포트를 가지고 있습니다.

따라서  어떤 오브젝트를 인풋하고 그 오브젝트의 포인트들을 인덱싱하고 그 포인트들의 위치를 아웃풋하는 기능이 있다는 뜻입니다.

이 경우 포인트 인덱스는 0,1,....... N-1까지  (N은 오브젝트의 포인트 수; 인덱스는 0부터 시작하므로 N-1이 마지막인덱스가 됨 )가
되겠습니다.  포인트수가 몇개인지는 포인트카운트에 리졸트노드를 붙여보시면 쉽게 알 수 있습니다.  ( 예제에서는 총 56개의 포인트가 있는 걸로 나옵니다 )

이 경우에는 포인트인덱스를 받아드려서 포인트포지션을 차례대로 아웃풋하는 데 이 때 각 포인트들은 각각 (X,Y,Z)위치값을 가지므로
벡터값으로 아웃풋됩니다.

2. 그런데 순차적으로 루핑이 되어야 하므로 타임노드를 사용하고 타임노드에 프레임(예제에서는 1~300프레임)값으로 정의해줍니다.
그러면 프레임이 1,2,3....,300이라는 숫자를 아웃풋합니다. 그러면 57,58,59....300까지는 인덱싱 수에서 벗어나게되므로

중간에 매쓰노드:나머지(모듈로) 를 이용해서 56이라는 숫자로 나누어 주면 나머지값으로 0~56까지를 갖게 됩니다. 따라서 프레임이 플레이되는 동안 0-56까지의 수가 아웃되어 들어가게 됩니다.

이상 간단한 정리였습니다.

예제는 파일첨부합니다.