알고있으면 유용하게 사용할 수 있는 노드, 'Polar to Rectangular'를 연구해 보겠습니다. 간단하게 이 노드에 대해 설명하자면 좌표평면의 극좌표계와 같이 각도(Angle)과 거리(Distance)값을 이용해 좌표를 출력하는 노드입니다. 극좌표계에 대한 설명은 아래 글을 참고해주세요.
극좌표계 설명
여기서 각도값에 0부터 360까지 랜덤한 값을 출력하게 하고, 거리값을 0.1부터 1까지 랜덤한 값을 설정하고 점을 찍으면 위 그림과 같은 그림이 그려지겠죠? 실제로 한번 그려보겠습니다.
실제 그린 그림과 비슷한 형태로 가운데 부분만 뻥 뚤리고 도넛모양으로 파티클들이 그려지게 되었습니다. 확률은 랜덤이라도 파티클의 크기가 일정하니 중심에 가까워질수록 더 많은 파티클이 생성되는 것처럼 보이네요. 이러한 현상이 거슬리다면 중심으로부터 떨어진 거리를 계산하여 파티클을 분배시켜주는 작업을 하면 될듯 합니다.
여기서 랜덤 넘버의 'Constant'를 클릭해주면 다음과 같이 빙글빙글하는 모양으로 파티클들이 출력됩니다. 위에 위치하는 랜덤노드에서 '0부터 1000까지의 각도'를 순서대로 출력하고, 아래 위치한 거리에 해당되는 노드에서 '0.1에서 1000까지의 값'을 순서대로 출력해 다음과 같은 결과물이 나오고 있습니다. 한눈으로 보기에 거리는 계산하기 힘들겠지만, 각도는 2바퀴 + 3/4 바퀴 돌아가는것을 확인할 수 있는데, 이를 1바퀴당 360도로 변환하면 1000도가 나오게 됩니다.
이를 보고 가장 먼저 떠오르는것은, 토네이도와 같은 움직임이 생각납니다. 시간이 지남에 따라 파티클의 y방향으로 힘을 주고 난류 효과를 추가해준다면 거대한 토네이도와 같은 표현을 할 수 있을 것입니다. 이 토네이도에 충돌처리를 추가한다면 게임에서 더욱 재미있게 활용할 수도 있겠네요!
'유니티 > 렌더링' 카테고리의 다른 글
[유니티]모델 안에 모델 셰이더 만들기 (0) | 2020.12.27 |
---|---|
[유니티셰이더]유니티 Surface Shader 작성 메뉴얼 (0) | 2020.12.25 |
[유니티셰이더]불 이펙트 업그레이드 (0) | 2020.12.25 |
[유니티셰이더]홀로그램 + VCMask (0) | 2020.12.25 |