Unreal Engine/GCC Class (5.5.4)

Unreal Engine 5 배워보기 - 27일차

보별 2025. 4. 25. 17:55

컴퓨터 및 게임 관련 전공인이 아닌 문외한 일반인이 언리얼 엔진을 배우면서 정리한 내용입니다.
그날그날 배웠던 내용을 제가 나중에 보기 위해 정리한 것으로, 지금 당장 보기에 부족한 점이 아주아주 많고 추후에 수정이 될 수도 있습니다.
오탈자 및 잘못 기재된 내용 지적, 부족한 내용 설명은 언제든지 환영입니다.

본글은 언리얼 엔진 5.5.4 버전 영문판을 기준으로 합니다.


----------------------------------------------------------------------------------------------------------------

 

 

27일차 학습 내용

- Camera Shake Base

- Volume

   Blocking Volume

   Cull Distance Volume

   Pain Causing Volume

   Kill ZVolume

   Trigger Volume

   Physics Volume

   Local Fog Volume

   Camera Shake Source Actor

- Media

   Media Plate

- Sequence

   Media Sequence

   Camera Blend

   Expose to Cinematic

   Sequence 영상 추출

- Sequence에서 사용한 카메라 연출

 

 

Camera Shake Base

BP 생성창의 "All Classes" 에 "Camera Shake Base" 를  검색하여 "Camera Shake Base BP" 를 생성해준다.

Camera Shake Base BP를 실행하면 위와 같은 화면이 뜨는데 우측에서 "Perlin Noise Camera Shake Pattern" 으로 설정해준다.

"Perlin Noise Camera Shake Pattern" 은 핸드 헬드 촬영 기법과 비슷한 효과를 주기위해 사용하는 것이다.

"Perlin Noise Camera Shake Pattern" 의 설정값 중 "Amplitude" 는 화면 흔들림의 강도를 설정하는 것이고, "Frequency" 는 화면 흔들림의 횟수를 설정하는 것이다.

"Timing Duration" 에서 지정된 시간만큼 Camera Shake가 진행되고, "Timing Duration" 을 설정했을 시 시간을 강제로 잡아늘리면 길이는 늘어나지긴 하지만 지정된 시간 뒤로는 효과가 들어가지 않기에 주의한다.

"Blend in Time" 은 Camera Shake의 효과가 최대로 적용되기까지 걸리는 시간이고, "Blend out Time" 은 Camera Shake 효과가 완전히 사라지는 데까지 걸리는 시간이다.

Sequence로 돌아와서 "Cine Camera Actor" 의 '+' 버튼을 눌러 "Camera Shake" 에서 위에서 제작한 Camera Shake Base BP를 지정해주면, Camera Shake 효과가 발현되는 것을 확인할 수 있다.

'Camera Shake' 의 타임라인을 우클릭하고 "Properties" 의 "Shake Class" 에서 Camera Shake Base BP 변경이 가능하다.

Shake Pattern 중 "Wave Oscillator Camera Shake Pattern" 이 있는데, "Perlin Noise Camera Shake Pattern" 과 효과가 거의 비슷하다.

다만 "Perlin Noise Camera Shake Pattern" 은 불규칙적이어서 자연스러운 느낌을 주는데 반해, "Wave Oscillator Camera Shake Pattern" 는 규칙적이기에 약간 기계적인 느낌을 주기에, 의도에 맞게 사용해주면 되겠다.

 

Volume

Blocking Volume

"Blocking Volume" 은 비가시 상태인 Volume을 레벨에 배치하여 플레이어의 이동을 막을 때 사용한다.

Cull Distance Volume

"Cull Distance Volume" 은 해당 Volume 안에 액터를 배치할 경우, "details" 탭에서 입력된 사이즈의 크기의 액터를 입력된 거리보다 멀리서 액터를 볼 경우 카메라에 안 보이게 해주는 설정이다.

위 그림과 같이 설정한 거리보다 멀리 있을 경우, 플레이어의 시야에서 안 보이게 된다.

주로 배경으로 쓰이는 액터들에 효과를 줄 때 사용한다.

언리얼 엔진 공식 API에 가면 추천해주는 "Cull Distance Volume" 값이 있으니 참고하면 좋다.

출처: https://dev.epicgames.com/documentation/ko-kr/unreal-engine/cull-distance-volumes-in-unreal-engine?application_version=5.5

Pain Causing Volume

"Pain Causing Volume" 은 플레이어가 안에 들어가면 지속적인 대미지 부여하는 Volume 이다.

14일차 Widget을 배울 때 사용하기도 했고, 위에서 설명한 대로 그냥 대미지를 주는 Volume이라 자세한 설명은 생략하도록 하겠다.

Kill ZVolume

"Kill ZVolume" 은 해당 Volume 안에 들어온 액터를 무조건 사라지게 한다.

주로 사망 시 발생하는 이벤트를 테스트 할 때 사용한다.

Trigger Volume

"Trigger Volume" 은 해당 Volume 안에 들어왔을 때 특정 이벤트를 실행하게 하는 것이다.

"Trigger Volume" 을 레벨에 배치하면 위 그림과 같이 BP에서 "Trigger Volume" 과 관련된 이벤트를 생성할 수 있다.

"Trigger Volume" 에 들어가거나 충돌했을 때 등의 이벤트 생성이 가능하다.

"Trigger Volume"  또한 "Kill ZVolume" 과 마찬가지로 테스트 용도로 사용된다.

Physics Volume

"Physics Volume" 은 레벨 상에 적용되는 일반적인 물리법칙과 다른 물리법칙이 적용되는 공간을 하나 만드는 것이다.

주로 물 속의 물리효과를 주고 싶을 때 사용한다.

"Fluid Friction" 수치를 높일 수록 캐릭터가 나아갈 때 받는 저항이 증가하고, "Water Volume" 을 체크하게 되면 해당 Volume 안에 들어간 액터에게 물 속에 있는 듯한 물리법칙을 주는 것이다.

캐릭터 BP로 가서 위 그림과 같이 BP를 작성해주면 플레이어의 현재 이동 상태를 표시해주는데, "Water Volume" 을 체크한 "Physics Volume" 안에 들어갈 경우, 위 그림과 같이 플레이어의 현재 이동 상태가 "Swimming" 으로 표시되는 걸 확인할 수 있다.

Local Fog Volume

"Local Fog Volume" 은 가까이 가면 사라지는 소규모 안개 생성하는 것이다.

위 그림과 같이 멀리서 보면 지정한 색의 안개가 보이지만 가까이가면 사라지는 것을 확인할 수 있다.

"Density Distribution" 로 안개 짙기 정도를 조절할 수 있고, 아주 멀리 있는 배경이나 물체에 안개를 줘서 가리고 싶을 때 사용한다.

위 그림과 같이 "Local Fog Volume" 을 2중으로 사용할 수도 있다.

Camera Shake Source Actor

"Camera Shake Source Actor" 는 해당 액터를 둔 지점에 도착할 시 "Camera Shake Source Actor" 에 설정한 Camera Shake Base 효과가 나타나게 하는 것이다.

"Place Actor" 에서 "Camera Shake Source Actor" 를 검색하면 위 그림과 같이 레벨에 배치할 수 있다.

"Camera Shake Source Actor" 도 Attenuation처럼 거리 별 감쇠효과를 줄 수 있다.

"Inner Attenuation Radius" 의 내부에 있을 시 Camera Shake Base의 최대 효과 적용되고, "Outer Attenuation Radius" 의 외부에 있을 시에는  Camera Shake Base의 효과 적용되지 않는다.

 

Media

우선 영상파일을 언리얼 엔진으로 import 한다.

영상 파일 포맷은 되도록이면 용량이 적은 'mp4' 로 하는 것이 좋다.

"Contents Drawer" 에서 우클릭을 하고 "Media Player" 를 검색하면 위 그림과 같이 "Media Player" 가 뜨는데, "Media Player" 를 생성해준다.

생성해주면 위 그림과 같이 2개의 파일이 생성되는데, "Player" 와 "Texture" 는 서로 연결돼있는 상태이다.

"Media Player" 를 실행하고 import 한 영상을 실행시켜주면 영상이 삽입이되는데, 이렇게 하면 "Texture" 에도 똑같이 영상이 삽입되게 된다.

이 "Texture" 를 우클릭하여 마테리얼 생성해주고 레벨에 Plane을 배치한 뒤 마테리얼 적용해주면, Plane에 해당 영상이 실시간으로 재생되는 것을 확인할 수 있다.

그리고 위의 마테리얼들을 관리해줄 새로운 BP 액터를 생성해준다.

'Media source' 와 'media player' 변수 생성 후, 관리할 영상이 2개이므로 우클릭 하여 배열로 변경해주고, 위 그림과 같이 BP를 작성해준다.

'Play On Open' 은 'Disable' 로 해줬는데, Media의 재생을 게임 시작하자마자 바로 실행시키지 않겠다는 것이다.

레벨에 위에서 생성한 액터 BP를 배치한 뒤, "Source" 와 "Player" 를 각각 추가해준다.

마지막으로 Level BP도 열어서 위 그림과 같이 BP를 작성해준다.

1, 2번 키를 누르면 위에서 생성한 액터 BP내 Media 배열의 index 번호 0, 1번에 해당하는 Media를 재생시키겠다는 의미이다.

각 Media 별로 바인딩된 키를 누르면 영상이 재생되는 것을 확인할 수 있다.

마테리얼들을 관리해줄 새로운 BP 액터에 위와 같이 노드를 추가해주면, 같은 키를 누를 경우 영상 재생이 일시정지 된다.

Media Plate

"Media Plate" 는 위에서 만든 Plane에 마테리얼을 씌운 기능을 합쳐놓은 것이라고 생각하면 된다.

"Place Actor" 에서 "Media Plate" 를 검색하면 레벨에 배치할 수 있다.

"Enable Audio" 를 체크하면 소리가 재생되고, "Loop" 를 체크하면 영상이 무한으로 반복 재생된다.

하단쪽의 "Playlist" 에서는 재생할 영상을 추가해줄 수 있다.

Level BP도 열어서 위 그림과 같이 BP를 작성해줄 경우, 키바인딩도 가능하다.

Space Bar를 눌러 영상을 일시정지 시키고, Enter를 눌러 재생시키며, 3번 키를 누르면 "Media Plate" 가 비가시 상태가 되고, 4번 키를 누르면 "Media Plate" 가 가시 상태로 된다. 

 

Sequence

Media Sequence

레벨에 Media를 재생할 Plane을 생성하고, 새 Sequence를 생성하여 타임라인에 넣어준다.

"Add" 를 눌러 "Media Track" 을 추가해준다.

"Media Track" 의 '+' 버튼을 누르면 위 그림과 같이 선택창이 뜨는데, "Media Source" 에서 위에서 Import했던 Media를 삽입해준다.

삽입된 Media의 타임라인의 "Properites" 에서 다양한 설정을 변경해줄 수 있다.

isActive 로 영상을 활성해줄 수 있고, Looping에서 반복여부를 설정해줄 있고, Media Source 에서 다른 Media로 교체 가능하다. 

Camera Blend

플레이어 시점의 카메라에서 Sequence로 지정된 카메라로 시야를 바꿔주는 기능이다.

"Cine Camera Actor" 를 배치한 뒤, "Camera Cuts" 를 우클릭 하여 "Can Blend" 를 체크하여 준다.

그러면 위 그림과 같이 영상 위에 조그만 노란색 삼각형이 생긴다.

노란색 삼각형 바의 위치를 카메라의 시점 변경 시점에 두면, 해당 시점이 되었을 때 플레이어의 카메라 시점에서 Cine Camera Actor 시점으로 부드럽게 전환되는 것을 확인할 수 있다.

Expose to Cinematic

배치된 캐릭터에 변수를 추가하여 시퀸스에서 변수값의 변화를 줄 수 있게 하는 기능이다.

우선 레벨에 배치한 캐릭터 BP에 들어가서 위 그림과 같이 변수를 생성해주고, "Expose to Cinematics" 를 체크해준다.

Sequence에 위에서 변수를 추가해준 캐릭터를 넣어주고 '+' 를 눌러주면 위 그림과 같이 변수가 생긴 것을 확인할 수 있다.  

위 변수들에 키를 줘서 위 그림처럼 원하는 시간 대에 변화값을 줄 수 있다.

 

Sequence 영상 추출

Sequence를 추출하기 전에 설치해줘야할 플러그인이 있다.

"Plugins" 에서 "Movie Render Queue" 를 클릭한 뒤 재실행시켜주면 설치가 완료된다. 

"Movie Render Queue" 가 설치되면 Sequence 편집 화면의 슬레이트 모양 옆을 누를 경우  "Movie Render Queue" 가 뜨는데, "Movie Render Queue" 를 선택하고 슬레이트 버튼을 눌러주면 다음 단계로 넘어가진다.

슬레이트 아이콘을 클릭하면 위 그림과 같은 창이 뜨는데, 우측에서 추출할 Sequence와 배경이 되는 Map을 한 번 더 확인해주는 것이 좋다.

"Settings" 에서 Rendering할 영상의 설정이 가능하고 설정이 끝나면 "Render (Local)" 로 추출해주면 된다.

"Settings" 를 누르면 위 그림과 같은 창이 뜬다.

"Output Resolution" 은 추출할 영상의 화질인데, FHD 이상 (1920 * 1080) 으로 설정할 경우 짧은 시간의 영상 추출에도 시간이 생각보다 오래걸리니 주의하도록 한다.

"UI Renderer" 는 Widget 같은 UI가 들어가있을 경우 선택해주면 된다.

출처: https://dev.epicgames.com/documentation/ko-kr/unreal-engine/rendering-high-quality-frames-with-movie-render-queue-in-unreal-engine?application_version=5.5#7%EB%8B%A8%EA%B3%84:%EC%BD%98%EC%86%94%EB%B3%80%EC%88%98%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

고사양의 영상을 뽑고 싶을 경우, 위 그림과 같이 설정해주면 된다.

Render가 끝나면 위 그림과 같이 이미지가 한장씩 저장되고, 만약 영상으로 제작하고 싶을 시 영상 편집 프로그램으로 편집해주면 된다.

 

 Sequence에서 사용한 카메라 연출

Static Shot 카메라를 움직이지 않음
고정된 시점에서 인물이나 배경을 보여주기에, 긴장감이나 안정된 느낌 전달
Slow Pan 카메라가 좌우로 천천히 회전함
인물의 주변 환경을 보여주거나 시선을 따라가기에, 설명적이거나 감성적인 장면에 적합
Whip Pan 카메라가 아주 빠르게 좌우 회전함
화면이 살짝 흐려지면서 역동적인 느낌을 주기에, 빠른 전환이 필요하거나 긴장감이나 액션을 강조할 때 사용
Tilt 카메라가 위아래로 회전함
위를 올려보거나 아래를 내려보는 느낌을 주기에, 위압감, 열등감, 공간 확장 등을 표현
Push In / Push Out 카메라가 인물이나 사물에 앞뒤로 이동함
Push In: 점점 가까이 가며 집중도 상승
Push Out: 멀어지며 거리감 또는 이탈 느낌
Roll 카메라가 화면 축을 중심으로 회전함
화면이 기울거나 뒤집히기에, 혼란, 어지러움, 현실 왜곡 등 연출할 때 사용
Tracking (Dolly Shot) 카메라가 대상과 함께 일정 방향으로 이동함
인물을 따라가는 씬에 사용하거나, 긴장감 또는 몰입감 강화가 필요할 때 사용
Arc Shot 카메라가 피사체를 중심으로 원을 그리며 이동함
인물 강조, 관계 묘사, 감정 표현에 효과적
Boom (Crane Shot) 카메라가 수직으로 위아래로 움직임
공간의 규모, 인물의 고립감 등을 표현
Random (Handheld-like) 카메라가 불규칙적으로 흔들림; 핸드헬드 카메라
다큐, 공포, 전쟁 씬에서 생동감 / 긴장감 연출