[UE4] RotateVector, 인터페이스 (Interface), Particle, Spawn Emitter at Location / Attached
📒 RotateVector
Enemy의 데미지 이펙트를 구현하던 도중 새로 알게된 함수 RotateVector가 있다.
언리얼 설명에서는 벡터 A를 Rotator B로 회전시킨 결과를 반환한다고 적혀있다.
이해하기 쉽도록 사용했던 블루프린트를 보면 다음과 같다.
Enemy에게 데미지가 가해졌을 때 특정 이펙트를 Enemy의 위치에서 시키고싶지만, 이펙트를 출력할 위치는 Enemy에 상대적이지 않다. 따라서 출력할 이펙트의 위치를 기준으로 현재 Enemy가 바라보고 있는 Rotation값을 Rotate Vector에 전달해주면, 출력되는 이펙트가 Enemy와 같은 방향을 바라보도록 구현된다.
앞으로도 원하는 방향을 출력하고자 할 때 RotateVector를 자주 사용할 것 같아 글을 정리한다.
📘 인터페이스 (Interface)
인터페이스에 선언된 함수는 순수가상함수이다. 따라서 인터페이스의 내부에서는 함수를 사용하거나 노드를 배치할 수 없다. 하지만 인터페이스에서 입력 파라미터와 출력 파라미터는 설정할 수 있다.
인터페이스를 사용하고자 하는 블루프린트의 '클래스 세팅'을 클릭한 뒤, 인터페이스에 구현된 인터페이스를 추가하여 내부 함수를 사용할 수 있다.
인터페이스에 아까 생성했던 인터페이스 IDamage를 추가하고 나면 왼쪽에 그래프, 함수, 인터페이스, 매크로, 변수 목록에서 인터페이스에 선언해두었던 순수가상함수 Damaged가 자동으로 추가되는것을 볼 수 있다.
📗 Particle
언리얼에 저장한 파티클을 실행하면 나오는 파티클 시스템 화면이다. 이런 화면이 열리는 곳을 캐스케이드라고 한다. 이미터(Emitter) 창에 나오는 열(이미터)들이 하나하나의 효과이다. 이펙트는 이펙트 개발자도 따로 있으니 프로그래머가 자주 사용하는 몇개의 속성만 알아보도록 하자.
- Required: 수명에 관한 속성
- 반복횟수나 길이를 설정할 수 있다.
- Emitter Loops: 반복 횟수 (0은 무한)
- Emitter Duration: 총 진행 시간 - Initial Velocity: 속도에 관한 속성
- Distribution 설정 (Uniform): MinMax 범위를 주고 랜덤으로 출력되게 할 수 있다.
- Distribution 설정 (Constant): 특정 값만 제안하고 0부터 해당값까지의 범위에서 랜덤으로 출력되게 한다.
- 활용: Z를 음수로 설정하면 위아래를 바꿔 출력할 수 있다.
이렇게 설정된 파티클을 사용하고자 할 때는 Spawn Emitter 함수를 사용하면 된다.
✔ Spawn Emitter at Location / Attached
- Spawn Emitter at Location
- 주어진 위치와 회전에서 지정된 이펙터를 파이어 앤 포켓 방식으로 재생한다. - Spawn Emitter Attached
- 지정된 컴포넌트에 따라 Attach된 지정 이펙트를 재생한다.
참조
Velocity 모듈
Velocity, 속도 모듈은 다양한 방법으로 파티클의 속도를 조절하는 모듈입니다.
docs.unrealengine.com