Lesson 3: Wire 시뮬레이션

Wire 시뮬레이션이란 무엇이며 후디니에서 어떻게 구현되는지 알아보자.


Wire 시뮬레이션이란?

와이어처럼 줄 또는 선 형태를 가진 물체의 운동을 나타내는 다이나믹이다.

다음과 같은 상황들이 Wire 시뮬레이션에 포함될 수 있다.


Wire 시뮬레이션 기본구조

후디니 Wire 시뮬레이션의 기본 골격은 다음과 같다.

Wire 오브젝트가 어떤 힘을 받을 경우, Wire 솔버가 그 힘을 계산하여 오브젝트를 움직인다.



Wire 시뮬레이션 구현하기

다이나믹을 하기위해 '/obj' 에 DOP Network 노드를 하나 만든다.

만들어진 'dopnet1' 노드 안쪽 Dynamics 레벨로 들어간다.



TAB메뉴를 이용해 Wire ObjectWire Solver DOP노드를 하나씩 만든다.



만들어진 'wireobject1' 과 'wiresolver1' 노드를 다음과 같이 연결한다.

Output Flag 를 'wiresolver1' 으로 지정해준다.



씬 뷰에 나타난 나뭇가지는 'wireobject1' 노드의 SOP Path 기본값이 나뭇가지이기 때문이다.



SOP Path 속성값에 여러분들이 원하는 어떤 오브젝트도 올 수 있다.



현재 기본골격인 오브젝트와 솔버가 있지만, 플레이를 해도 나뭇가지는 아무 변화가 없다.

그것은 나뭇가지를 움직이게 만드는 외부힘이 존재하지 않기 때문이다.


이번에는 외부힘으로서 중력 대신에 바람을 만들어보자.

다음과 같이 Wind Force DOP을 만들어서 'wireobject1' 과 'wiresolver1' 노드 사이에 연결해 준다.

'windforce1' 노드의 파라미터 창을 다음과 같이 수정한다.



'windforce1' 노드의 Velocity 가 (0, 0, 1) 이기 때문에 플레이 해보면 나뭇가지가 Z 방향으로 날라간다.



후디니 화면 우측 밑 Playbar 에 있는 Real Time Toggle 버튼을 눌러서 리얼타임으로 플레이 한다.

다이나믹을 플레이 할 때는 반드시 프레임 1부터 시작하도록 한다.


이번에는 바람의 방향이 +Z 방향과 -Z 방향으로 왔다갔다하게 만들어 보자.

'windforce1' 노드의 Velocity 속성값을 다음과 같이 수정한다.



Cosine 함수에 의해서 Velocity Z 속성값이 -1부터 1까지 왔다갔다하게 된다.

하지만 플레이 해보면 이전과 동일하게 +Z 방향으로만 날아간다.

그 해답은 많은 DOP 노드들이 공통적으로 가지고 있는 Default Operation 속성에서 찾을 수 있다.



Wire 시뮬레이션 마무리하기

Default Operation 속성값이 'Set Initial' 이면 프레임 1에서의 값이 변하지 않고 계속 지속된다.

즉, 프레임 1에서 cos($F*5) 의 값 0.996195가 마지막 프레임까지 그대로 지속된 것이었다.

위처럼, 익스프레션의 실제값을 숫자로 확인하고자 할 때는 그 파라미터 이름을 클릭해 준다.


'windforce1' 노드의 Default Operation 속성값을 'Set Always' 로 바꾼다.

비로소, 위의 익스프레션 cos($F*5) 가 매 프레임마다 적용되어 나뭇가지가 왔다갔다 하게된다.