Unreal Engine 5 배워보기 - 27일차
컴퓨터 및 게임 관련 전공인이 아닌 문외한 일반인이 언리얼 엔진을 배우면서 정리한 내용입니다.
그날그날 배웠던 내용을 제가 나중에 보기 위해 정리한 것으로, 지금 당장 보기에 부족한 점이 아주아주 많고 추후에 수정이 될 수도 있습니다.
오탈자 및 잘못 기재된 내용 지적, 부족한 내용 설명은 언제든지 환영입니다.
본글은 언리얼 엔진 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" 값이 있으니 참고하면 좋다.
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가 들어가있을 경우 선택해주면 된다.
고사양의 영상을 뽑고 싶을 경우, 위 그림과 같이 설정해주면 된다.
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) | 카메라가 불규칙적으로 흔들림; 핸드헬드 카메라 다큐, 공포, 전쟁 씬에서 생동감 / 긴장감 연출 |