[VFX][Goal] Goal + Expression 활용하기


지난 포스팅에서 간단한 Goal에 대해서 알아보았다. 이번 포스팅에서는, Goal을 좀더 심화한 형태로써 간단한 Expression 스크립트를 적용하는 방법을 알아보자.


1 『스피어 폴리곤 생성 & 파티클 생성』

스피어 폴리곤을 생성하고, object from particle (surface type)을 실행한다. 그리고 파티클과 오브젝트를 선택해서, Goal을 실행한다.


파티클 입자가 너무 빨리 스피어 폴리곤 표면에 달라붙는다면, conserve 수치를 낮춰서 억제한다.


또한 Goal탭에서 목표 오브젝트와의 Goal수치를 낮춰서 부드럽게 파티클들이 오브젝트의 표면에 달라붙도록 만든다.


만일 Expression을 사용하지 않는다면, 파티클에서 speed와 speedRandom값을 수정해서 골이 붙는 속도와 시간을 랜덤하게 만들 수도 있다.


하지만 자동기능을 활용하면, 임의수정을 하기가 힘들다는 점을 유의하자. 


2 『Expression설정』

파티클 shape노드에는 GoalPP항목이 있다. GaolPP항목을 찾고, 아래 표시처럼 Create Expression을 실행한다. 


goalPP값에 rand(.3,1.2)값을 설정해보자. 


코딩에서 0.3 은 .3으로 타이핑한다. 만일 rand값을 0.3 ~ 1.2로 설정해주면, 스피어 폴리곤 표면에 붙는 파티클 입자들은 0.3 ~ 1.2 수치값을 갖는다.(달라붙는다) 


General 탭을 클릭하면, 추가할 수 있는 파티클 shape항목이 나타나는데, goalU,goalV를 추가해보자.


모든 폴리곤 오브젝트는 UV값을 가지고 있다. goalU와 goalV항목에 랜덤값을 걸어주면, 스피어 폴리곤 UV좌표에서 지정한 수치의 범위를 넘지 않는 선에서 랜덤으로 파티클들이 달라붙는다.


최종적으로 emitter를 폴리곤 오브젝트 밖으로 꺼내고, goal수치값을 조절해주면 아래처럼 소화기로 이산화탄소를 뿌리는듯한 효과를 연출할 수 있다.