Unreal Engine/GCC Class (5.5.4)

Unreal Engine 5 배워보기 - 26일차

보별 2025. 4. 24. 18:16
반응형

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

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


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

 

 

26일차 학습 내용

- Sound

   Play Sound 2D

   Play Sound at Location

   Ambient Sound

   Audio Component

   Adjust Volume

   Audio Volume

- Sequence

   외부 에셋 레벨을 게임 레벨로 불러오기

   Sequence 녹화

   Take Recorder

 

 

Sound

언리얼 엔젠에서는 'wav' , 'ogg' , 'flac' , 'aif' 포맷의 사운드 파일의 사용이 가능하다.

언리얼 엔진 자체에서 wav 포맷 파일을 바탕으로 "Sound Cue" 와 "Meta Sound" 제작이 가능한데, 기존 wav 파일에 BP를 이용하여 변형을 줘서 사용 가능하다.

소리는 레벨 상에 배치될 경우 항상 자동으로 소리가 나는데, "Autoactivate" 체크를 해제하여 소리가 자동 재생되는 것을  방지해줄 수 있다.

Play Sound 2D

항상 써본 노드이기에 자세한 설명은 생략하도록 하겠다.

레벨 어느 곳에서든 동등한 크기의 소리가 재생된다.

Play Sound at Location

지정된 장소에서 소리를 나게할 수 있다.

지정된 장소에서 소리가 나기에, 장소에 따른 입체감을 주기 위해 공간화 설정 (소리가 발생하는 위치와 플레이어의 위치 간 거리에 비례해 소리 크기에 변화를 주는 것) 이 필수로 따라온다.

"Contents Drawer" 에서 우클릭하여 "Audio" 의 "Audio Attenuation" 을 생성해준다.

위에서 생성해준 "Audio Attenuation" 을 위 그림과 같이 "Attenuation Settings" 에 적용시켜주면 공간화를 시켜줄 수 있다.

마무리로 위 그림과 같이 위치를 지정해주면 된다.

위 BP는 플레이어의 머리 위 (z축 2000 만큼의 값) 에서 소리가 나도록 한 것이다.

이렇게 설정해줄 경우 플레이어와 먼 거리에서 소리가 나기에 소리가 작게 나는 것을 확인할 수 있다.

Ambient Sound

"Ambient Sound" 는 단어 그대로 환경음이다.

"Ambient Sound" 변수를 새로 생성 위 그림과 같이 BP를 작성해준다.

"Play" 노드의 'Start Time' 에서 시작 시간 설정이 가능하고, '1' 의 값을 넣어줄 경우 1초 뒤에 소리가 재생된다.

변수를 레벨에 배치하면 "Ambient Sound" 설정이 가능한데, "Ambient Sound" 는 레벨에 배치된 모든 사운드 검색하여 설정해줄 수 있다.

그리고 항상 자동으로 실행 되므로 자동 실행을 막고 싶을 경우 꺼줘야한다.

소리를 꺼주는 것을 Collision Sphere를 벗어날 때 꺼주는 것으로 설정하였다.

"Ambient Sound" 또한 Attenuation 효과를 줄 수 있다.

Attenuation을 설정해줄 경우 위 그림과 큰 구와 작은 구가 레벨 상에 표시된다.

작은 구 내부에 있을 경우 소리를 최대로 재생하고, 큰 구 외부에 있을 경우 소리가 나지 않게 되고, 그 사이 구간은 음원으로부터 거리에 따라 소리 크기가 달라지게 된다.

참고로 소리의 크기 변화는 캐릭터의 위치에 따라 달라지는 것이 아닌 캐릭터에 부착된 카메라의 위치에 따라 달라진다.

"Attenuation Shape" 에서 Attenuation 영역의 모양을 위 그림과 같이  변경해줄 수 있다.

Audio Component

"Audio Component" 는 단어 그대로 'Component' 이기에 BP에서 생성할 수 있다.

그외의 특별히 다른 점은 없다.

"Add" 를 누른 후 "Audio" 를 검색하면 위 그림과 같이 "Audio Component" 가 생성된다.

"Audio Component" 또한 항상 자동 재생되기에, 자동 재생을 비활성화하고 싶을 경우 "Autoactivate" 체크를 해제해주면 된다.

다른 소리와 똑같이 "Play" 노드를 통해 재생할 수 있다.

Adjust Volume

소리의 크기를 BP를 통해 키우는 법은 2가지가 있다.

"Set Volume Multiplier" 를 통해서 할 수 있고, "Adjust Volume" 을 통해서도 할 수도 있다.

"Set Volume Multiplier" 는 위 그림과 같이 소리의 크기 배율을 'Volume Multiplier' 에 적어주면 된다.

위 BP는 3초 뒤에 재생되는 소리의 크기를 5배로 확 키워주는 것이다.

"Adjust Volume" 은 "Set Volume Multiplier" 와는 조금 다른데, 'Adjust Volume Duration' 에 입력한 시간에 걸쳐 서서히 'Adjust Volume Level' 에 입력된 수만큼 배로 키워주는 효과이다.

위 그림처럼 입력했을 경우 소리 재생 후 1.5초 뒤부터, 5초에 걸쳐서 소리가 2배까지 점점 커지게 된다.

위 그림처럼 "Set Pitch Multiplier" 를 통해 소리의 Pitch 값도 올려줄 수 있다.

*레벨에 배치된 소리에 Attenuation을 주면 소리가 나지 않는데, 소리가 들리는 구역에 처음부터 들어가 있어야 소리가 들리고, 소리가 들리는 구역을 벗어나고 다시 들어가면 소리가 들리지 않음; BP로 조정해줘야하기에 BP 작성이 필

Audio Volume

"Place Actor" 에서  "Audio Volume" 을 검색하면 레벨 상에 "Audio Volume" 을 배치할 수 있다.

"Brush" 에서 "Audio Volume" 을 다양한 모양으로 설정이 가능하다.

"Ambient Zone Settings" 에서 여러 설정을 조정할 수 있는데, 2가지 정도만 알아두면 된다.

"Exterior LPF" 는 플레이어가 Volume 내부에 있을 때 외부 소리 차단 정도를 나타내고, "Interior LPF" 는 반대로 플레이어가 외부에 있을 때 내부 소리 차단 정도를 나타낸다.

위에서 언급한 수치들을 높일 경우 "Audio Volume" 내에 배치한 소리를 Volume 내에 들어갔을 때에만 소리가 들리게 할 수도 있다.

"Audio Volume" 내에 소리를 배치하고, 위 그림과 같이 "Attenuation" 과 "Sound Class" 를 설정해줄 수 있다.

"Sound Class" 는 "Contents Drawer" 에서 우클릭을 하고 "Audio" 의 "Classes" 에서 생성할 수 있다.

"Sound Class" 에서는 "Ambient Volume" 및 "Default 2D Reverb Send Amout" 를 설정할 수 있는데, 각각 Ambient 효과를 줄 것인지와 Volume 내부에서 소리의 울림 정도를 설정할 수 있다. 

 

Sequence

"Sequence" 는 주로 인게임에서 컷신을 제작할 때 사용되는 기능이다.

컷신 제작 시에는 카메라 회전 기법이 주로 이루기에, "Sequence" 에서 다룰 수 있는 기능들과 카메라 무브 몇 가지만 소개하도록 하겠다.

외부 에셋 레벨을 게임 레벨로 불러오기

"Windows" 탭의 "Levels" 를 누르면 위 그림과 같이 창이 뜨는데, 여기서 "Add Existing" 을 통해 외부 에셋에서 생성한 레벨을 불러올 수 있고, 레벨을 불러온 뒤 불러온 레벨을 우클릭하여 "Change Streaming Method" 의 "Always Loaded" 를 적용해줘야한다.

Sequence 녹화

우선 Sequence를 제작해야한다.

"Contents Drawer" 에서 우클릭을 하고 "Cinematics" 의 "Level Sequence" 를 통해 Sequence를 생성할 수 있다.

Sequence에서는 움직임을 줄 액터가 필요한데, 액터는 레벨에 배치하고 난 뒤 "Outliner" 에서 해당 액터를 드래그 앤 드롭 방식으로 좌측 패널에 올려둠으로써 지정 가능하다.

Sequence에서 움직임이나 기타 변화를 주는 것은 영상 편집 때 사용하는 키프레임과 똑같다.

원하는 변화값을 준 뒤 원하는 프레임에 위 그림과 같이 키를 생성해주면 된다.

Sequence는 자동으로 재생되지 않는데, 레벨에 Sequence를 배치하거나 BP를 통해 실행시켜줘야한다.

위 그림과 같이 BP에 추가로 "isLoop" 변수를 만들어줘서 특정 Sequence만 반복 재생을 시켜줄 수 있다.

Sequence의 "Cine Camera Actor" 를 클릭하면 "details" 탭에서 여러 정보의 수정 및 조정이 가능하다. 

"Focal Length" 은 카메라의 줌인, 줌아웃을 조절할 때 사용한다.

숫자가 커질 수록 피사체가 가까워지며 확대된다.

"Current Aperture" 는 피사계 심도를 조절할 때 사용한다.

숫자가 커질 수록 화면 전체가 흐려지고지고, 작을 수록 피사체는 선명해지지만 뒷배경을 흐려지게 된다.

"Manual Focus Distance" 는 직접 수치를 조절함으로써 사용자가 직접 초점을 맞출 수 있다.

타임라인에 키를 부여하고 우클릭을 통해 키의 효과를 변경시켜줄 수 있다.

Default 값인 "Cubic (Auto)" 는 두 변화에 범프 구간을 주고 두 변화의 사이를 자연스럽게 이어주는 방식이다.

"Linear" 는 두 변화에 범프 구간 없이 선형으로 자연스럽게 이어주는 방식이다.

"Constant" 는 자연스럽게 이어주는 방식이 아닌, 변화의 이어짐 없이 변화의 결과만을 딱딱 끊어서 보여주는 방식이다.

카메라를 2가지 이상 사용하여 각 카메라로 촬영한 영상을 이어주고 싶을 때에는, '+' 버튼을 눌러서 이어서 재생해주고 싶은 카메라를 선택해주면 된다.

Sequence에서 사용했던 액터를 실수로 지워버렸을 경우는 위 그림같이 빨간색 글씨로 뜨게 된다.

이런 경우에는 지워버린 액터를 레벨에 다시 배치하고 "Assign Actor" 를 통해 다시 지정해줄 수 있다.

Sequence 촬영에 사용한 액터는 "Spawnable Actor" 를 체크하여, 레벨 상에서는 사라지게 하고 Sequence를 실행했을 때에만 등장하게 해줄 수도 있다.

"Film Back" 에서는 녹화 화면 크기 및 카메라 종류 선택이 가능하다.

"Focus Method" 에서 "Tracking" 으로 특정 액터에게만 자동으로 초점을 맞춰주는 것이 가능하다.

카메라를 "Attach" 로 플레이어를 선택할 수 있는데, 추가로 뜨는 창에서 플레이어의 스켈레톤 부위를 선택하여 따라다니게 설정이 가능하다.

Take Recorder

"Windows" 탭에서 "Cinematics" 의 "Take Recorder" 를 통해 인게임 플레이 영상 녹화가 가능하다.

"Take Recorder" 를 실행하면 위 그림과 같은 화면이 뜨는데, "Source" 에서 촬영하고 싶은 액터만 추가하여 특정 액터만 촬영이 가능하다.

"Place Actor" 에서 "Camera Rig Rail" 을 검색하여 레벨에 배치할 수 있다.

"Camera Rig Rail" 은 카메라를 한 방향으로 이동시키며 촬영하고 싶을 때 사용하는 것이다.

"Take Recorder" 녹화하고 확인할 때, 플레이어에 붙어있어야할 스태틱메시 (무기 등) 가 제대로 안 붙어있는 경우가 있다.

이런 경우엔 "Attach" 로 스태틱메시가 붙어있어야하는 시간과 부위에 붙여주는 식으로 작업해주면 된다.

"Place Actor" 에서 "Camera Rig Crane" 을 배치할 수 있다.

"Camera Rig Crane" 은 찍고 싶은 대상을 중심으로 주위를 한 바퀴 돌리는 효과를 주고 싶을 때 사용한다.

"Camera Rig Crane" 을 통해 녹화할 때 "Enable Look at Tracking" 을 체크하여 Tracking 대상을 고정한 채로 촬영이 가능하다.