Posted: April 11, 2018
Version: Houdini 16.5
Trail Surface Operator
Trail SOP 은 움직이는 물체의 위치변화를 이용해서 여러가지 편리한 기능을 제공한다.
Trial SOP 의 주된 기능은 다음과 같이 두가지가 있다.
1. 여행경로에 따른 복사
움직이는 물체에 뒤따르는 흔적들을 복사한다.
이때 복사되는 객체들은 물체의 여행경로를 그대로 따른다.
2. 속도(Velocity) 계산
움직이는 물체의 위치(P) 의 변화를 속도값으로 계산해 준다.
이때 속도값은 'v' 라는 어트리뷰트에 저장된다.
Trail SOP 예제 1
예제 1 에서는 움직이는 물체를 그 여행경로에 따라 복사해 본다.
후디니를 열고 /obj 에 스피어 지오메트리를 하나 만든다.
만들어진 'sphere1' 노드를 더블클릭하여 Geometry 레벨로 들어간다.
안에 있는 'sphere1' 노드의 Uniform Scale 속성값을 0.1 미터로 줄여준다.
이 속성은 스피어의 크기를 전체적으로 늘리거나 줄이는 역할을 한다.
이 스피어에 움직임을 더해보자.
Transform SOP 을 만들어서 'sphere1' 에 연결한다.
'transform1' 노드의 파라미터를 다음과 같이 수정한다.
Translate 속성은 XYZ 각 축별로 물체를 이동시키는 역할을 한다.
이제 Trail SOP 을 하나 만든뒤 다음과 같이 연결해 준다.
플레이를 해보면 원래의 스피어를 뒤따르는 또한개의 스피어를 발견할 수 있다.
'trail1' 노드의 Trail Increment 속성은 몇 프레임 간격으로 복사체를 만들지 결정한다.
기본값이 1이므로 이전 프레임($F-1) 위치에 복사체가 만들어진다.
Trail Increment 속성값을 3 으로 높여보자.
3프레임 이전($F-3) 에 있던 위치에 복사체가 만들어지면서 두 스피어의 간격은 좀더 멀어진다.
반대로 속성값을 1보다 낮추면 두 스피어의 간격은 더 가까워진다.
'trail1' 노드의 Trail Length 속성은 복사체의 개수를 결정한다.
이 속성값을 10 으로 수정한다.
열 개의 스피어들이 줄지어 따라다니는 애니메이션을 얻을 수 있다.
이때 복사체들은 Trail Increment 속성에서 정한 프레임 간격으로 복사된다.
Trail SOP 예제 2
예제 2에서는 Trail 노드를 속도(Velocity) 계산에 이용해 보자.
사실 속도라는 개념은 별거 없다.
현재 프레임에서의 위치에서 이전 프레임에서의 위치를 뺀 값이 속도이다.
속도(v) = 현재위치(@P) - 이전위치(@P)
예제 1에 이어서 계속해서 진행한다.
'trail1' 노드의 Trail Length, Trail Increment 속성을 원래의 기본값으로 돌려 놓는다.
'trail1' 노드의 Result Type 옵션에서 Compute Velocity 를 선택한다.
영어 그대로 속도(Velocity) 를 계산(Compute) 한다는 의미이다.
씬 뷰에는 원래의 스피어 한개만 남고 별다른 차이가 없어 보인다.
'trail1' 노드 위에서 마우스 중간버튼으로 노드 요약정보를 확인한다.
v 라는 어트리뷰트가 생겼음을 알 수 있다.
프레임 번호를 바꿔가며 관찰해보면 v 벡터가 스피어에 붙어다님을 알 수 있다.
이 벡터의 방향은 현재 스피어의 운동방향을 나타낸다.