모든 카메라의 관리는 Player가 한다. Enemy의 카메라나 관전자의 카메라여도 게임 상에 있는 모든 카메라는 Player Controller를 통해 관리/작업한다.
🎥 카메라 시점 전환
Player에 메인으로 사용하던 카메라가 존재할 때, Enemy 객체에도 Spring Arm과, 카메라를 컴포넌트 추가한 뒤, Enemy BP에 위와같은 노드를 배치하면 해당 함수가 호출되는 순간 Enemy 객체에 배치해둔 카메라로 시점이 서서히 이동하며 전환된다. Blend Time을 크게 배치할수록 기존 카메라 위치에서 전환될 카메라 위치로 서서히 이동한다.
또한 카메라를 Enemy 객체안에 배치하지 않고, 맵을 전체적으로 비춰주는 카메라로 시점을 전환하고 싶다면, 단순히 Camera 변수를 만들어 해당 카메라를 할당한 뒤 New View Target에 연결해주면 된다!
🎥 Camera Shake
데미지를 입거나 공격을 했을때 타격감을 주기위해 게임에선 카메라 쉐이크 기능을 자주 사용한다. 언리얼에서 카메라 쉐이크를 구현하기 위해선 Start Camera Shake 함수를 사용하면 된다.
Camera Shake 함수는 Player Camera Manager에 존재하므로 Enemy 블루프린트에서 플레이어의 카메라 매니저를 불러온 뒤 호출하면 된다.
이후 카메라 쉐이크의 형태를 만들기 위해선 Matinee Camera Shake 클래스를 생성한 뒤, Shake Class에 지정해줘야 한다.
Matinee Camera Shake에서는 카메라가 흔들릴 각도나, 위치, 흔들릴 모양(그래프) 등을 설정할 수 있다.
📘 Amplitude, Frequency
진동(Oscillation) 카테고리에서 Amplitude와 Frequency 값은 아래 그림을 보면 이해하기 쉽다.
wavelength라고 나와있는 한칸이 진동의 간격인데 이를 Frequency로 보면 되고, 진동의 높낮이인 강도를 amplitude로 보면 된다.
📗 Initial Offset
- Random: 랜덤 위치에서 설정한 강도로 진행
- Zero: 0에서 설정한 강도로 진행
📕 Waveform
- sine wave
sine wave는 규칙적인 그래프를 그려 카메라의 진동도 규칙적으로 진행된다.
- Periln Noise
Periln Noise는 값이 막 튀어서 지형을 만들거나 구름을 만드는 것처럼 규칙적이지 않고 일정하지 않은 형태에서 사용되는 그래프 모양이다.
나는 캐릭터가 Enemy에게 콤보공격을 가했을 때 마지막 콤보에서 카메라가 위아래, 양옆으로 흔들리는 모션을 구현하였다. (카메라가 앞뒤로 흔들리는 모션은 잘 사용하는지 모르겠다..)
카메라 쉐이크 기능에 살짝 디테일을 더하자면 마지막 콤보 공격이 한바퀴 돌면서 가로로 검을 휘두르는 모션이기 때문에 위아래(Z)보다 왼쪽오른쪽(Y)으로 카메라가 더욱 흔들리도록 구현하였다.
주의: 또한 나는 Matinee 카메라 쉐이크 클래스를 csv파일로 저장하여 객체에 할당한 후 실행하였는데, 이때 Camera Shake클래스의 레퍼런스를 복사해서 엑셀에 붙여놓으면 맨 마지막 따옴표 안에 _c (언더바 소문자 c)를 붙여서 클래스형태를 만들어줘야한다!
참조
Ue4 Camera Shake (언리얼 카메라 쉐이크)
발매되고, 출시하고, 판매하는 모든 게임 중 카메라 쉐이크가 없는 게임보다 있는 게임이 더 많을 것이라고 단언한다. 이번 포스팅은 언리얼에서 카메라 쉐이크가 어떻게 제공되고, 어떻게 사용
cynthis-programming-life.tistory.com
'🎮Unreal4 > Blueprint' 카테고리의 다른 글
[UE4] 콜리전 중복 충돌 문제, 공격 중 전방의 Target에게 카메라 고정/회전, 가장 전방에 있는 액터 찾기 함수 작성 (0) | 2023.02.03 |
---|---|
[UE4] 게임 속도 조절, 경직기능, 모빌리티, 딜레이/타이머 (0) | 2023.02.01 |
[UE4] 사운드 기능(2D Sound/3D Sound), 사운드 감쇠, Draw Debug Sphere (0) | 2023.02.01 |
[UE4] RotateVector, 인터페이스 (Interface), Particle, Spawn Emitter at Location / Attached (0) | 2023.01.31 |
[UE4] 무기 충돌 구조 (USpaceComponent) (0) | 2023.01.30 |