언리얼 엔진의 카메라 셰이크(Camera Shake) 블루프린트를 사용하여 카메라에 카메라 셰이크 이펙트를 추가할 수 있습니다. 이 가이드에서는 CameraShakeBase 블루프린트 생성 방법과 사용할 수 있는 셰이크 타입, 그리고 이러한 셰이크를 시퀀서와 블루프린트, 카메라 셰이크 소스에서 재생하는 방법에 대해 간략하게 설명합니다.
전제조건
-
시퀀서 및 카메라 애니메이션 생성하기 방법에 대해 알고 있어야 합니다.
-
블루프린트 비주얼 스크립팅 에 대해 알고 있어야 합니다.
-
커스텀 시퀀스 기반 셰이크를 사용한다면, 템플릿 시퀀스 에 대해 알고 있어야 합니다.
-
게임플레이에서 카메라 셰이크를 테스트하고 싶다면, 3인칭 템플릿 을 사용하여 프로젝트를 생성할 수 있어야 합니다.
카메라 셰이크 생성
셰이크 에셋을 생성하려면 콘텐츠 브라우저 에서 추가/임포트(Add/Import) 를 클릭하고 블루프린트 클래스(Blueprint Class) 를 선택합니다. 다음으로 표시되는 창에서 CameraShakeBase 클래스를 찾거나 검색한 다음, 선택(Select) 을 클릭합니다.

에셋이 생성되면, 이름을 지정하고 에셋을 열어 카메라 셰이크 디테일을 확인합니다.

디테일
카메라 셰이크 에셋에는 다음과 같은 기본 디테일이 있습니다.
이름 | 설명 |
---|---|
단일 인스턴스(Single Instance) | 활성화하면 한 번에 이 셰이크의 인스턴스 하나만 재생할 수 있습니다. 계속해서 이 셰이크를 재생하려고 시도하면 추가로 레이어링되지 않고 재시작됩니다. |
루트 셰이크 패턴(Root Shake Pattern) | 사용할 셰이크 타입(Shake Type) 입니다. |
루트 셰이크 패턴 타입
셰이크 패턴은 카메라 셰이크의 모양과 동작을 제어합니다. 다음과 같은 패턴을 선택하여 카메라 셰이크를 생성할 수 있습니다.
펄린 노이즈
펄린은 특정 진폭과 주파수를 기반으로 랜덤 포인트를 샘플링하여 시간이 지남에 따라 노이즈를 생성합니다. 샘플링 포인트는 Smootherstep 이징 함수를 사용하여 혼합합니다. 보통, 펄린 노이즈는 심하게 덜컹거리거나 폭발 근처와 같이 매우 강렬한 카메라 셰이크에 유용합니다.


루트 셰이크 패턴 으로 펄린 노이즈 카메라 셰이크 패턴(Perlin Noise Camera Shake Pattern) 을 선택하면 펄린 노이즈 셰이크 동작 제어에 사용할 수 있는 추가 디테일이 표시됩니다. 카메라의 위치와 회전, 필드 오브 뷰(FOV) 프로퍼티에 대한 셰이크 이펙트를 생성할 수 있습니다.

위치(Location) 및 회전(Rotation) 프로퍼티 카테고리에는 모두 개별 축이 표시되며, 이를 펼쳐서 진폭(Amplitude) 및 주파수(Frequency) 프로퍼티를 표시할 수 있습니다.
-
진폭 은 셰이크 패턴의 크기를 제어합니다. 진폭을 높이면 해당 축의 셰이크가 중앙으로부터 더 먼 거리로 움직입니다.
-
주파수 는 셰이크 패턴의 속력을 제어합니다. 주파수를 높이면 셰이크 움직임이 더 빠르게 나타납니다.

또한, 진폭 배수(Amplitude Multiplier) 및 주파수 배수(Frequency Multiplier) 프로퍼티를 사용하여 위치와 회전 축의 결합된 진폭과 주파수 결과를 배가할 수 있습니다. 이러한 프로퍼티는 개별 축을 변경할 필요 없이 셰이크를 전체적으로 변경할 때 유용합니다.

타이밍(Timing) 카테고리를 펼쳐서 셰이크 타이밍을 제어할 수 있습니다.
-
경과시간(Duration) 은 셰이크의 길이를 제어합니다. 값이 0 이하이면 셰이크가 무한히 재생됩니다.
-
블렌드 인/아웃 시간(Blend In/Out Time) 은 셰이크의 시작과 끝에서 선형 블렌드의 길이를 제어합니다. 값이 0이면 블렌딩이 발생하지 않습니다.

사인 파형
사인 파형은 주기적으로 부드럽게 진동하는 연속파를 사용하여 시간이 지남에 따라 노이즈를 생성합니다. 보통, 웨이브 노이즈는 흔들리는 보트나 꿈 같은 부유 효과 등 강도가 낮은 셰이크에 유용합니다.


루트 셰이크 패턴 으로 웨이브 오실레이터 카메라 셰이크 패턴(Wave Oscillator Camera Shake Pattern) 을 선택하면 웨이브 셰이크 동작 제어에 사용할 수 있는 추가 디테일이 표시됩니다. 펄린 노이즈와 비슷하게 카메라의 위치와 회전, 필드 오브 뷰(FOV) 프로퍼티에 대한 웨이브 셰이크 이펙트를 생성할 수 있습니다.

사인 파형 노이즈의 위치, 회전, FOV 및 타이밍 의 프로퍼티는 펄린 노이즈 의 프로퍼티와 동일합니다. 하지만, 축을 펼치면 초기 오프셋 타입(Initial Offset Type) 이라는 추가 프로퍼티가 있는데, 이 프로퍼티로 파형을 0(Zero)에서 시작하거나 커브의 랜덤(Random) 위치에서 시작하도록 지정할 수 있습니다.

시퀀스 셰이크
시퀀스(Sequence) 셰이크는 카메라 애니메이션 시퀀스(Camera Animation Sequences) 내에 포함된 카메라 애니메이션을 사용하여 셰이크를 생성합니다. 시퀀스 노이즈는 카메라 셰이크 스타일과 동작을 완전히 제어하려는 경우에 유용합니다.

루트 셰이크 패턴 으로 시퀀스 카메라 셰이크 패턴(Sequence Camera Shake Pattern) 을 선택하면 카메라 애니메이션 시퀀스 에셋 선택 및 해당 동작 제어에 사용할 수 있는 추가 디테일이 표시됩니다. 셰이크 경과시간은 카메라 애니메이션 시퀀스 길이에 따라 달라집니다.

이름 | 설명 |
---|---|
시퀀스(Sequence) | 카메라 애니메이션 시퀀스 에셋(Camera Animation Sequence Asset)을 지정합니다. |
재생 속도(Play Rate) | 셰이크 이펙트의 속력입니다. 값이 1이면 보통 속도이고 1 미만이면 재생 속도가 느려지며 1 이상이면 재생 속도가 빨라집니다. |
스케일(Scale) | 셰이크 강도에 적용되는 배수입니다. 값이 1이면 일반 강도이고 1 미만이면 강도가 약해지며 1 이상이면 강도가 강해집니다. |
블렌드 인/아웃 시간(Blend In/Out Time) | 블렌드 인/아웃 시간 은 셰이크의 시작과 끝에서 선형 블렌드의 길이를 제어합니다. 값이 0이면 블렌딩이 발생하지 않습니다. |
랜덤 세그먼트 경과시간(Random Segment Duration) | 랜덤 세그먼트(Random Segment) 활성화 시 사용되는 랜덤 세그먼트의 경과시간입니다. |
랜덤 세그먼트 | 활성화하면 카메라 애니메이션 시퀀스의 랜덤 포인트에서 셰이크 재생이 시작됩니다. 랜덤 세그먼트 경과시간 프로퍼티 값을 설정하여 셰이크에 대한 새로운 길이도 정의해야 합니다. 매우 긴 카메라 셰이크 애니메이션에서 랜덤으로 짧은 세그먼트를 재생하려는 경우에 유용합니다. |
일반적인 템플릿 시퀀스(Template Sequence) 워크플로와 달리, 카메라 셰이크 패턴으로 사용할 카메라 애니메이션 시퀀스를 생성할 때는 섹션을 애디티브로 설정하지 않아도 됩니다.
컴포짓
컴포짓 셰이크를 통해 레이어 시스템에서 펄린, 웨이브 및 시퀀스 셰이크를 결합할 수 있습니다. 컴포짓 셰이크를 사용하면 각 셰이크 타입의 엘리먼트가 포함된 더 다채로운 셰이크를 생성할 수 있습니다.

루트 셰이크 패턴 으로 컴포짓 카메라 셰이크 패턴(Composite Camera Shake Pattern) 을 선택하면 자손 패턴을 추가하고 다양한 셰이크 타입을 함께 레이어링하는 데 사용할 수 있는 추가 디테일이 표시됩니다.

자손 패턴(Child Patterns) 옆에 있는 + 버튼을 클릭하면 배열에 새 셰이크 패턴이 추가됩니다. 원하는 만큼 셰이크 패턴을 추가할 수 있습니다. 각 요소에는 해당 패턴에 관련된 디테일이 포함되어 있습니다.

셰이크 재생하기
카메라 셰이크를 생성한 다음에는 몇 가지 방법으로 셰이크를 재생할 수 있습니다.
시퀀서에서 재생
시네 카메라 액터(Cine Camera Actor) 에서 +트랙(Track) 버튼을 클릭하고 Camera Shake 메뉴에서 카메라 셰이크 에셋을 선택하여 시퀀서의 카메라에 셰이크를 추가할 수 있습니다.

또한 CameraComponent 트랙에 셰이크를 추가해도 같은 결과를 얻을 수 있습니다.

셰이크가 추가되면 시퀀스를 재생하여 셰이크 작동 모습을 확인할 수 있습니다.

카메라 셰이크 섹션에는 블루프린트 디테일에 의해 결정된 셰이크 경과시간과 블렌드 인/아웃 시간에 대한 시각화가 포함되어 있습니다. 이러한 프로퍼티를 변경하면 섹션 디스플레이가 업데이트됩니다.

셰이크 섹션을 우클릭하고 프로퍼티(Properties) 메뉴로 이동하면 시퀀서에 셰이크 프로퍼티가 표시됩니다.

이름 | 설명 |
---|---|
셰이크 클래스(Shake Class) | 사용할 셰이크 블루프린트 클래스를 지정합니다. 다른 에셋을 사용할 수 있는 경우, 이 셰이크를 다른 에셋으로 변경할 수 있습니다. |
재생 스케일(Play Scale) | 셰이크 강도에 대한 글로벌 배수입니다. 값이 1이면 일반 강도이고 1 미만이면 강도가 약해지며 1 이상이면 강도가 강해집니다. |
재생 스페이스(Play Space) | 셰이크가 재생되어야 할 좌표 스페이스를 지정합니다.
|
사용자 정의 재생 스페이스(User Defined Play Space) | 재생 스페이스 가 사용자 정의(User Defined) 로 설정된 경우, 월드 회전(World Rotation) 좌표를 기준으로 하지만, 지정된 오프셋이 있는 회전 좌표를 여기에 입력할 수 있습니다. |
블루프린트에서 재생
Start Camera Shake 노드를 사용하여 블루프린트에서 셰이크를 재생할 수도 있습니다. 이 노드에는 셰이크, 스케일 및 재생 스페이스 를 지정하기 위한 파라미터가 포함되어 있습니다.

Start Camera Shake 함수는 타깃으로 플레이어 컨트롤러(Player Controller) 또는 카메라 셰이크 소스 컴포넌트(Camera Shake Source Component) 를 필요로 합니다.
카메라 셰이크 소스
카메라 셰이크 소스(Camera Shake Source) 는 카메라의 위치 근접성을 기반으로 카메라 셰이크를 트리거합니다. 또한 셰이크 인플루언스 반경 및 크기에 대한 컨트롤도 포함하고 있습니다. 카메라 셰이크 소스를 레벨의 액터(Actor) 나 블루프린트의 컴포넌트(Component) 로 추가할 수 있습니다.
레벨에 카메라 셰이크 소스 액터(Camera Shake Source Actor) 를 추가하려면, 액터 배치(Place Actors) 패널에서 이를 레벨로 드래그합니다.

액터나 컴포넌트를 선택하면 다음과 같은 디테일이 표시됩니다.

이름 | 설명 |
---|---|
어테뉴에이션(Attenuation) | 카메라가 소스에 가까워지거나 멀어질 때의 감쇠 커브 타입입니다. 이즈 인과 이즈 아웃 블렌드를 제공하는 2차(Quadratic) 가 될 수도 있고, 선형 블렌드를 제공하는 선형(Linear) 이 될 수도 있습니다. |
내부 어테뉴에이션 반경(Inner Attenuation Radius) | 셰이크가 최대 강도로 재생될, 소스로부터의 반경입니다. |
외부 어테뉴에이션 반경(Outer Attenuation Radius) | 셰이크가 더는 보이지 않게 될, 소스로부터의 반경입니다. 셰이크는 카메라가 내부와 외부 반경 사이를 이동함에 따라 외부 반경과 내부 반경 사이의 강도를 혼합합니다. |
카메라 셰이크(Camera Shake) | 사용할 셰이크 블루프린트 클래스입니다. |
자동 시작(Auto Start) | 활성화하면 게임 플레이 시 셰이크가 자동으로 시작됩니다. |
셰이크 루핑 예시
다음 작업을 수행하여 소스 셰이크 이펙트를 빠르게 생성할 수 있습니다.
- 카메라 셰이크 블루프린트(Camera Shake Blueprint) 에서 모든 타이밍 프로퍼티를 0으로 설정합니다. 이렇게 하면 블렌딩 없이 셰이크가 무한 루프됩니다. 셰이크가 보이도록 축에 적절한 진폭과 주파수를 설정했는지도 확인합니다.
- 이 블루프린트를 카메라 셰이크 소스 카메라 셰이크 프로퍼티에 할당하고 자동 시작 을 활성화합니다.

이제 게임을 플레이하면서 소스 포인트에 다가가면, 카메라가 카메라 셰이크 소스 영향권에 들어감에 따라 셰이크 블렌드가 켜지고 꺼지는 것을 볼 수 있습니다.

카메라 셰이크 미리보기
카메라 셰이크 미리보기를 사용하여 게임이나 시뮬레이션을 시작하지 않고도 에디터에서 카메라 셰이크 소스 를 프리뷰할 수 있습니다.
미리보기를 열려면, 언리얼 에디터 메인 메뉴로 이동하여 창(Window) > 카메라 셰이크 미리보기(Camera Shake Previewer) 를 선택합니다.

에디터에서 카메라 셰이크를 재생하려면, 뷰포트 옵션 메뉴에서 카메라 셰이크 허용(Allow Camera Shakes) 을 활성화해야 합니다.

다음으로, 프리뷰하려는 셰이크 소스 항목을 선택하고 선택된 항목 재생/중지(Play/Stop Selected) 를 클릭하여 셰이크 프리뷰를 활성화합니다. 또한 한 번에 여러 소스를 프리뷰하고 싶다면 모두 재생/중지(Play/Stop All) 를 클릭하면 됩니다. 셰이크가 재생되면 에디터의 카메라를 소스 방향으로 이동하여 셰이크 이펙트를 확인할 수 있습니다.
