Posted: June 19, 2018
Version: Houdini 16.5
POP Source DOP
POP Source 노드는 파티클을 방출하는 소스 오브젝트에 대한 전반적인 설정을 담당한다.
이번 강좌에서는 POP Source 노드에 있는 [Attributes] 탭 부분을 다룬다.
POP Source 노드
POP Source DOP 은 파티클 시뮬레이션의 전부라 해도 과언이 아니다.
이 노드를 어떻게 사용하는지에 따라 시뮬레이션의 결과물은 천지차이가 될 수 있다.
POP Attributes 예제
소스 지오메트리가 가진 어트리뷰트가 파티클에 어떤 영향을 미치는지 알아보자.
/obj 에 파티클 소스가 될 스피어를 하나 만든다.
만들어진 'sphere1' 노드를 더블클릭하여 Geometry 레벨로 들어간다.
'sphere1' 노드의 Primitive Type 옵션은 "Primitive" 를 유지한다.
이번에는 스피어 3개를 파티클 소스로 만들 것이다.
Color SOP 3개와 Merge SOP 1개를 만든뒤 다음과 같이 연결한다.
연결한 뒤에는 'merge1' 노드의 Display Flag 를 선택한다.
3개의 Color 노드의 각 Color 속성을 차례대로 빨강, 초록, 파랑으로 바꿔준다.
현재 3개의 스피어가 원점(0,0,0) 에서 겹쳐져 있는 상태이다.
씬뷰에서는 파랑색 스피어만 보이지만 실제로 3개의 스피어가 있음을 이해한다.
스피어들의 위치를 분산시키기 위해 Attribute Wrangle SOP 을 만들고 다음과 같이 연결한다.
만들어진 'attribwrangle1' 노드의 VEXpression 에 다음과 같이 입력한다.
각 스피어의 색상값(Cd) 을 그대로 위치값(P) 에 대입한 것이다.
결과적으로 스피어들은 다음과 같이 분산된다.
그 원리는 다음과 같다.
스피어1 위치(P) = 스피어1 색(Cd) = (1, 0, 0) 스피어2 위치(P) = 스피어2 색(Cd) = (0, 1, 0) 스피어3 위치(P) = 스피어3 색(Cd) = (0, 0, 1)
파티클 시뮬레이션을 위해 POP Network 노드를 만든다.
만들어진 'popnet' 노드를 'attribwrangle1' 노드에 연결한다.
연결한 뒤에는 'popnet' 노드의 Display Flag 를 선택한다.
이제 'popnet' 노드를 더블클릭하여 Dynamics 레벨로 들어가자.
이번 시간에는 Gravity Force DOP 없이 진행한다.
플레이를 해보면 3개의 스피어 모두 파티클을 방출한다.
외부힘이 없기 때문에 방출된 파티클은 태어난 자리에서 계속 고정된다.
Inherit Attributes
POP Source 노드의 파라미터에 있는 [Attributes] 탭을 집중해서 보자.
[Attributes] 탭에 있는 속성들 중에서 몇가지 중요한 것들만 설명하도록 한다.
방출되는 파티클은 소스 지오메트리의 어트리뷰트를 물려받을 수 있다.
Inherit Attributes 속성에서 물려받을(Inherit) 어트리뷰트를 정할 수 있다.
기본값인 "*" 표시는 소스가 가진 모든 어트리뷰트를 물려받는다는 말이다.
그러므로 태어나는 파티클은 그것을 방출한 스피어의 색을 갖게 된다.
만약 기본값 "*" 표시를 지우고 공란으로 만들면, 파티클은 더이상 색상정보를 물려받지 않게 된다.
Inherit Velocity
속도(Velocity) 는 방향성을 갖는 벡터(Vector) 데이터이다.
소스로부터 물려받는 어트리뷰트 중, Velocity 는 조금 특별하다.
다른 어트리뷰트와 달리, 속도는 파티클의 운동에 직접적인 영향을 끼치기 때문이다.
현재 3개의 스피어는 Cd 이외에 어떤 어트리뷰트도 없으므로 속도값을 만들어줘야 한다.
상위에 있는 'attribwrangle1' 노드의 VEX 코드를 다음과 같이 수정한다.
소문자 v 는 속도(velocity) 를 나타내는 어트리뷰트 이름이다.
즉, v 는 후디니에서 지정된(Reserved) 어트리뷰트들 중 하나이다.
이제 스피어들은 v 어트리뷰트를 갖게 되었고 그 값에 Cd 어트리뷰트가 할당되었다.
그 원리는 다음과 같다.
스피어1 속도(v) = 스피어1 색(Cd) = (1, 0, 0) 스피어2 속도(v) = 스피어2 색(Cd) = (0, 1, 0) 스피어3 속도(v) = 스피어3 색(Cd) = (0, 0, 1)
다시 'popnet' Dynamics 레벨로 돌아가 플레이를 해보자.
다이나믹 레벨에서는 어떤 속성을 변경할 경우, 타임라인의 캐쉬라인이 주황색으로 바뀐다.
프레임 1로 돌아가 캐쉬라인이 파란색이 되면 변경된 속성이 올바르게 적용된 시뮬레이션이라는 말이다.
v 어트리뷰트를 물려받은 파티클이 각각의 축(X,Y,Z) 방향으로 이동하는 것을 볼 수 있다.
POP Source 노드의 파라미터를 다음과 같이 수정한다.
Inherit Velocity 속성은 물려받는 v 어트리뷰트의 세기를 결정한다.
프레임 1로 돌아가 플레이하면, 파티클의 이동속도가 전보다 3배 빨라진다.