본문 바로가기
이펙트 (FX)/이펙트 팁 : Unreal

[Unreal/Niagara] 나이아가라에서 메시 파티클 충돌 후 회전 멈춤 구현하기 (튜토리얼 소개)

by Minkyu Lee 2025. 8. 11.

 

개요

메시 파티클의 충돌 및 회전을 보다 사실적으로 제어하는 방법을 다루는 튜토리얼을 소개한다.

 

영상

https://youtu.be/ZPRSJJEp9SY

 

내용

 

[00:00:00 - 00:01:26] 문제점 제시 및 목표 설정

영상 시작과 함께 현재 파티클 시스템의 문제점을 보여줍니다. 파티클들이 지면에 충돌한 후, 마치 바닥에 붙어 미끄러지거나 [00:43] 하늘로 높이 솟구치는 등 [00:54] 비현실적인 움직임을 보입니다. 이 영상의 목표는 파티클이 지면에 부딪힌 후 영원히 튀는 현상을 없애고, 보다 자연스러운 물리적 움직임을 구현하는 것입니다 [01:26].

 

[00:01:26 - 00:05:54] 기본적인 파티클 회전 설정

문제 해결을 위해 먼저 파티클에 기본적인 회전 값을 추가합니다. 'Particle Update' 섹션에 'Add Rotational Velocity'를 추가하여 파티클이 회전하도록 설정합니다. 하지만 이 설정만으로는 파티클이 단순히 제자리에서 회전할 뿐, 구르는 듯한 사실적인 움직임을 보여주지는 못합니다.

[00:05:54 - 00:14:52] 충돌 및 방향성 제어 (Collision & Directional Control)

보다 사실적인 움직임을 위해 'Collision' 모듈을 추가하고 설정을 변경합니다. 'Control and Collision' 옵션을 활성화하여 [05:54] 파티클이 충돌 후 어떻게 반응할지 제어합니다. 처음에는 이 설정으로 인해 파티클이 예측할 수 없는 방향으로 튀는 등 [11:51] 더 비정상적인 움직임을 보입니다. 이는 파티클의 방향성과 속도가 제대로 제어되지 않기 때문입니다. 문제 해결을 위해 'Multiplyer Map' 값을 조정하여 [12:31] 파티클의 움직임을 점차 안정시킵니다.

[00:14:52 - 00:17:50] 속도 기반 제어 (Velocity-Based Control)

파티클이 구르기 시작하면, 수직 방향의 움직임이 구르기에 영향을 주지 않도록 조정하는 과정이 이어집니다 [14:52]. 파티클의 속도를 가져와 특정 벡터 방향(이 경우, Y축)의 속도만 남기고 나머지 축의 속도는 제거합니다. 이를 통해 파티클이 지면에 닿았을 때 옆으로 구르는 움직임만 남도록 제어합니다. 또한, 파티클의 속도가 특정 값 이하로 떨어지면 움직임을 멈추도록 설정하여 [15:23] 파티클이 영원히 구르지 않고 자연스럽게 멈추도록 합니다.

[00:17:50 - 00:24:12] 충돌 이벤트 및 정렬 (Collision Event & Alignment)

파티클이 지면에 닿았을 때, 방향이 제멋대로인 문제를 해결하기 위해 'Collision' 이벤트 핸들러를 사용합니다. 'Generate Collision Event'를 활성화하고 [17:50] 새로운 이벤트 핸들러를 만듭니다. 이 핸들러 내에서 'Align to Surface'와 유사한 로직을 구현하여, 파티클이 충돌한 표면의 노멀(법선) 벡터 방향으로 정렬되도록 합니다. 이를 통해 파티클이 지면에 평평하게 붙어서 구르는 듯한 효과를 만듭니다.

[00:24:12 - 00:26:54] 추가적인 개선 (Further Refinements)

마지막으로 몇 가지 추가적인 개선 작업을 통해 완성도를 높입니다. 파티클이 여러 번 충돌한 후에는 사라지도록 설정하여 [24:12] 불필요한 파티클이 계속 남지 않도록 합니다. 또한, 파티클이 처음 충돌할 때 좀 더 현실감 있게 튀어 오르도록 바운스 값을 조정하고 [24:54], 파티클의 회전이 속도에 비례하도록 설정하여 [26:54] 빠르게 움직일 때는 더 빨리 회전하고, 느려지면 회전도 느려지도록 만들어 사실감을 더합니다.

이러한 과정을 통해 영상은 나이아가라 시스템에서 CPU 파티클의 충돌과 회전을 매우 사실적이고 정교하게 제어하는 방법을 상세하게 보여주며, 발생 가능한 문제들과 그에 대한 창의적인 해결책을 제시합니다.

 

댓글