반응감은 플레이어에게 보내는 대답
플레이어가 동전을 먹었는데 아무 소리도 나지 않고, 화면에도 변화가 없다면 실제로 성공했는지 잠깐 의심하게 됩니다. 반대로 짧은 효과음이 들리고, 동전 위치에서 작은 빛이 튀고, 점수가 바로 바뀌면 플레이어는 "내 행동이 제대로 먹혔다"고 느낍니다.
이것이 반응감입니다. 반응감은 거창한 연출이 아닙니다. 작은 소리, 짧은 이펙트, 가벼운 카메라 흔들림만으로도 게임은 훨씬 살아 있는 것처럼 느껴집니다.
이번 장에서는 앞에서 만든 수집 게임에 다음 피드백을 추가합니다.
동전 획득 효과음
점프 효과음
버튼 클릭 효과음
동전 주변 반짝임
동전 획득 순간의 파티클 이펙트
짧은 카메라 흔들림 또는 화면 강조 효과
중요한 기준은 하나입니다. 플레이어가 행동한 바로 그 순간에 짧고 분명하게 반응한다는 것입니다.
AI 생성 이미지
사운드 에셋 준비하기
언리얼 엔진에서 소리를 다룰 때 자주 만나는 에셋은 크게 두 가지입니다.
Sound Wave는 실제 오디오 파일입니다. 예를 들어 coin.wav, jump.wav 같은 파일을 프로젝트로 가져오면 보통 Sound Wave 에셋이 됩니다.
Sound Cue는 Sound Wave를 어떻게 재생할지 정하는 간단한 재생 설계도입니다. 볼륨을 조절하거나, 여러 소리 중 하나를 랜덤으로 고르거나, 피치를 조금 바꾸는 식의 처리를 할 수 있습니다. 처음에는 "소리를 재생하기 쉽게 감싼 에셋" 정도로 이해하면 충분합니다.
먼저 폴더를 정리합니다.
Content Browser에서
Audio폴더를 만듭니다.그 안에
SFX폴더를 만듭니다.효과음 파일을
SFX폴더로 드래그합니다.가져온 오디오 에셋 이름을 알아보기 쉽게 바꿉니다.
예를 들어 다음처럼 정리할 수 있습니다.
SFX_CoinPickupSFX_JumpSFX_ButtonClick
초보자는 가능하면 짧은 WAV 파일로 시작하는 것이 편합니다. 효과음은 길 필요가 없습니다. 동전 획득 소리는 0.2초 안팎, 버튼 클릭 소리는 더 짧아도 충분합니다.
Sound Cue를 만들고 싶다면 가져온 Sound Wave를 우클릭한 뒤 Create Cue 또는 Create Sound Cue처럼 표시되는 메뉴를 선택합니다. 언리얼 엔진 버전에 따라 메뉴 이름이 조금 다를 수 있지만, Sound Wave를 바탕으로 Cue 에셋을 만드는 메뉴를 찾으면 됩니다. 그러면 보통 _Cue가 붙은 에셋이 만들어집니다.
예시는 다음과 같습니다.
SFX_CoinPickup_CueSFX_Jump_CueSFX_ButtonClick_Cue
Sound Cue를 더블 클릭하면 재생 설정을 볼 수 있습니다. 지금은 복잡한 노드를 만들지 않아도 됩니다. 다만 소리가 너무 크면 Details에서 Volume 값을 낮추거나, 재생하는 블루프린트 노드에서 볼륨을 줄이면 됩니다.
아이템 획득에 효과음 연결하기
먼저 동전을 먹는 순간 소리가 나게 해 보겠습니다. 이전에 만든 BP_PickupCoin을 엽니다.
동전의 기본 흐름은 이랬습니다.
플레이어와 동전의 Collision이 Overlap 됩니다.
Other Actor를 플레이어 캐릭터로 Cast합니다.플레이어의
AddScore이벤트를 호출합니다.동전 자신을
Destroy Actor로 제거합니다.
여기에 효과음을 추가합니다.
BP_PickupCoin의 Event Graph에서 AddScore를 호출한 뒤, Destroy Actor 전에 다음 노드를 넣습니다.
Get Actor LocationPlay Sound at Location
Play Sound at Location의 Sound에는 SFX_CoinPickup_Cue 또는 가져온 Sound Wave를 넣습니다. Location에는 Get Actor Location을 연결합니다.
흐름은 다음처럼 됩니다.
Overlap 발생
→ 플레이어 캐릭터인지 확인
→ AddScore 호출
→ Play Sound at Location
→ Destroy Actor여기서 Play Sound at Location을 쓰는 이유는 동전이 레벨 안의 특정 위치에 있기 때문입니다. 소리를 그 위치에서 재생하면 플레이어가 "저기서 동전을 먹었다"는 느낌을 받기 쉽습니다.
주의할 점이 하나 있습니다. 동전을 Destroy Actor로 바로 없애더라도 Play Sound at Location으로 재생한 소리는 보통 독립적으로 재생됩니다. 하지만 Audio Component를 동전에 붙여서 재생하는 방식이라면 동전이 사라질 때 소리도 같이 끊길 수 있습니다. 처음에는 Play Sound at Location을 쓰는 편이 안전합니다.
점프와 버튼 클릭에 소리 넣기
다음은 플레이어 행동에 소리를 붙여 보겠습니다.
BP_ThirdPersonCharacter를 열고 점프 입력이 처리되는 부분을 찾습니다. Enhanced Input을 사용했다면 IA_Jump 관련 이벤트가 있을 것입니다. 보통 버튼을 눌렀을 때 Jump, 버튼에서 손을 뗐을 때 Stop Jumping이 호출됩니다.
점프를 시작하는 실행 흐름에 Play Sound at Location을 추가합니다.
IA_Jump Started
→ Jump
→ Play Sound at LocationLocation에는 캐릭터의 Get Actor Location을 연결합니다. Sound에는 SFX_Jump_Cue를 넣습니다.
점프 효과음은 너무 무겁게 만들지 않는 것이 좋습니다. 캐릭터가 자주 점프하는 게임이라면 같은 소리가 반복해서 들리기 때문입니다. 볼륨은 낮게 시작하세요. 소리가 잘 들리지 않으면 조금씩 올리는 편이 안전합니다.
이번에는 UI 버튼입니다. 이전에 만든 일시정지 메뉴나 클리어 화면의 Widget Blueprint를 엽니다. 예를 들어 WBP_PauseMenu 안에 Resume 버튼이 있다면, 해당 버튼의 OnClicked 이벤트를 사용합니다.
버튼 클릭에는 위치가 필요하지 않습니다. 화면 UI에서 나는 소리이므로 Play Sound 2D를 사용하면 됩니다.
ResumeButton OnClicked
→ Play Sound 2D
→ 메뉴 닫기 또는 게임 재개Play Sound 2D의 Sound에는 SFX_ButtonClick_Cue를 넣습니다.
버튼 클릭 소리는 아주 짧아야 합니다. UI 소리는 플레이어가 자주 듣기 때문에, 크고 긴 소리를 쓰면 금방 피곤해집니다.
Niagara로 반짝임 만들기
소리만으로도 반응감은 좋아지지만, 시각 효과가 함께 있으면 훨씬 분명해집니다. 언리얼 엔진에서 파티클과 시각 효과를 만들 때는 Niagara를 많이 사용합니다. Niagara는 작은 입자, 빛, 연기, 불꽃 같은 효과를 만드는 시스템입니다.
이번에는 두 가지 효과를 생각해 보겠습니다.
동전 주변에서 계속 반짝이는 효과
동전을 먹는 순간 짧게 터지는 효과
먼저 폴더를 만듭니다.
Content Browser에서
FX폴더를 만듭니다.그 안에
Niagara폴더를 만듭니다.우클릭 후 FX > Niagara System을 선택합니다.
템플릿을 고를 수 있다면 간단한 분출형 또는 빈 시스템으로 시작합니다.
이름을
NS_CoinSparkle_Loop로 정합니다.
초보 단계에서는 Niagara 내부 값을 모두 이해할 필요가 없습니다. 먼저 다음 감각만 잡으면 됩니다.
Spawn Rate: 입자가 얼마나 자주 생기는지
Lifetime: 입자가 얼마나 오래 남는지
Color: 입자의 색
Sprite Size: 입자의 크기
Velocity: 입자가 움직이는 방향과 속도
동전 주변 반짝임은 작고 느려야 합니다. Spawn Rate를 너무 높이면 화면이 지저분해집니다. 색은 노란색이나 흰색 계열로 두고, 크기는 작게 시작합니다.
이제 BP_PickupCoin을 다시 엽니다.
Components 패널에서
Niagara Component를 추가합니다.이름을
SparkleEffect로 바꿉니다.Details에서 Niagara System에
NS_CoinSparkle_Loop를 지정합니다.동전 Mesh 주변에 보이도록 위치를 조정합니다.
Auto Activate가 켜져 있는지 확인합니다.
Play를 눌렀을 때 동전 주변에 작은 반짝임이 보이면 성공입니다.
획득 순간의 이펙트 추가하기
이번에는 동전을 먹는 순간 짧게 터지는 효과를 추가합니다. 새 Niagara System을 만들고 이름을 NS_CoinPickup_Burst로 정합니다.
이 효과는 계속 재생되면 안 됩니다. 동전을 먹는 순간 한 번만 보여야 합니다. 따라서 느낌은 다음과 같으면 좋습니다.
아주 짧게 나타난다.
동전 위치에서 바깥으로 퍼진다.
0.3초 안팎으로 사라진다.
색은 동전과 어울리는 노란색, 흰색, 주황색 계열을 쓴다.
Burst 이펙트는 반복 반짝임과 다르게 한 번만 터져야 합니다. Niagara 안에서 Spawn Rate를 계속 유지하기보다는, 짧은 Burst 형태로 입자가 생기고 빠르게 사라지도록 설정하세요. 처음에는 입자 수를 적게 잡고, 보이지 않을 때만 조금씩 늘리는 편이 좋습니다.
이제 BP_PickupCoin의 Overlap 흐름에 Spawn System at Location 노드를 추가합니다.
Overlap 발생
→ 플레이어 캐릭터인지 확인
→ AddScore 호출
→ Play Sound at Location
→ Spawn System at Location
→ Destroy ActorSpawn System at Location의 System에는 NS_CoinPickup_Burst를 넣습니다. Location에는 Get Actor Location을 연결합니다.
여기서도 순서가 중요합니다. 동전을 없애기 전에 동전의 위치를 가져와 이펙트를 생성해야 합니다. 그래서 Destroy Actor는 마지막에 둡니다.
만약 이펙트가 보이지 않는다면 다음을 확인하세요.
Niagara System이 비어 있지 않은가?
입자의 크기가 너무 작지 않은가?
색이 배경과 너무 비슷하지 않은가?
동전 위치가 바닥 아래에 있지 않은가?
Spawn 노드가 실제 Overlap 흐름에 연결되어 있는가?
이펙트가 너무 크면 수집 게임의 집중을 방해합니다. 처음에는 "살짝 반짝였다가 사라지는 정도"로 맞추는 것이 좋습니다.
카메라 흔들림으로 중요한 순간 강조하기
카메라 흔들림은 강한 피드백입니다. 적을 맞혔을 때, 큰 문이 열릴 때, 게임을 클리어했을 때처럼 중요한 순간에 쓰면 효과가 좋습니다. 하지만 동전 하나를 먹을 때마다 크게 흔들리면 금방 피곤해집니다.
이번 수집 게임에서는 아주 약한 흔들림만 넣어 보겠습니다.
Content Browser에서 새 Blueprint Class를 만들고, 부모 클래스로 Camera Shake Base를 선택합니다. 이름은 BP_CoinCameraShake로 정합니다.
Camera Shake 설정은 언리얼 엔진 버전에 따라 화면이 조금 다르게 보일 수 있습니다. 어떤 버전에서는 Duration, 위치 흔들림, 회전 흔들림을 바로 조절하고, 어떤 버전에서는 Shake Pattern을 고른 뒤 그 안에서 값을 조절합니다. 예를 들어 Perlin Noise나 Wave Oscillator 계열 패턴을 사용한다면 흔들림 시간과 강도를 작게 잡으면 됩니다.
값은 작게 시작합니다.
Duration:
0.08~0.15Location 흔들림: 아주 작게
Rotation 흔들림: 아주 작게
항목 이름이 조금 달라도 핵심은 같습니다. 짧게, 약하게, 한 번만입니다.
이제 동전을 먹었을 때 카메라 흔들림을 호출합니다. 가장 단순한 방법은 BP_PickupCoin의 Overlap 성공 흐름에 다음 노드를 추가하는 것입니다.
Get Player Controller
→ Get Player Camera Manager
→ Start Camera ShakeStart Camera Shake의 Shake Class에는 BP_CoinCameraShake를 넣습니다.
전체 흐름은 이렇게 정리됩니다.
Overlap 발생
→ 플레이어 캐릭터인지 확인
→ AddScore 호출
→ Play Sound at Location
→ Spawn System at Location
→ Start Camera Shake
→ Destroy Actor카메라 흔들림은 반드시 Play 모드에서 직접 확인해야 합니다. 에디터 창에서 보기에는 괜찮아 보여도, 실제 플레이에서는 어지럽게 느껴질 수 있습니다. 조금이라도 과하면 먼저 Duration을 줄이고, 그다음 흔들림 강도를 줄이세요.
화면 효과를 쓰고 싶다면 UMG로 짧은 흰색 반짝임을 만들 수도 있습니다. 예를 들어 HUD 위젯에 화면 전체를 덮는 흰색 Image를 하나 두고, 평소에는 투명하게 둡니다. 클리어 순간에만 0.1초 정도 불투명해졌다가 사라지게 만들면 간단한 화면 플래시가 됩니다. 다만 이 효과도 너무 자주 쓰면 눈이 피곤해지므로 클리어 같은 큰 순간에만 쓰는 것을 권합니다.
효과가 과하지 않게 조절하는 기준
초보자가 자주 하는 실수는 좋은 효과를 너무 많이 넣는 것입니다. 효과는 많다고 좋은 것이 아닙니다. 플레이어가 알아차릴 만큼만 있으면 됩니다.
다음 기준으로 점검해 보세요.
동전 획득 효과음은 0.2초 안팎으로 짧은가?
버튼 클릭음은 배경음보다 작고 가벼운가?
점프 소리는 반복해서 들어도 거슬리지 않는가?
Niagara 입자가 화면을 가리지 않는가?
카메라 흔들림 때문에 조작이 불편하지 않은가?
같은 순간에 소리, 이펙트, 흔들림이 모두 너무 강하지 않은가?
효과를 조절할 때는 하나씩 바꾸세요. 소리 크기, 이펙트 크기, 카메라 흔들림을 한꺼번에 수정하면 무엇이 좋아졌는지 알기 어렵습니다.
좋은 기본값은 "조금 약한가?" 싶을 정도입니다. 플레이어는 게임을 몇 분, 몇십 분 동안 플레이합니다. 한 번 들으면 멋진 소리도 계속 반복되면 부담이 될 수 있습니다.
장르에 따라 기준도 달라집니다.
액션 게임: 타격음과 카메라 흔들림을 조금 더 강하게 쓸 수 있습니다.
퍼즐 게임: 소리와 이펙트를 짧고 차분하게 두는 편이 좋습니다.
공포 게임: 작은 소리와 어두운 이펙트가 더 큰 긴장감을 만들 수 있습니다.
수집 게임: 밝고 짧은 효과가 잘 어울립니다.
이번 프로젝트는 작은 3D 수집 게임이므로, 동전 획득은 밝게, 점프와 버튼은 가볍게, 카메라 흔들림은 아주 약하게 두는 것이 적당합니다.
자주 막히는 부분 확인
소리가 나지 않으면 먼저 Sound 에셋이 제대로 지정되었는지 확인하세요. Play Sound at Location이나 Play Sound 2D 노드의 Sound 칸이 비어 있으면 아무 일도 일어나지 않습니다.
Overlap은 되는데 소리만 안 난다면 실행 흐름이 소리 노드까지 이어지는지 확인합니다. 중간에 Cast가 실패하면 그 뒤 노드는 실행되지 않습니다. 잠깐 Print String을 넣어 흐름을 확인해도 좋습니다.
동전 이펙트가 보이지 않으면 Niagara System 자체를 먼저 열어 Preview에서 재생해 보세요. 시스템 안에서도 보이지 않으면 블루프린트 문제가 아니라 Niagara 설정 문제입니다.
동전을 먹자마자 이펙트가 사라진다면 이펙트를 동전 Actor의 컴포넌트로만 재생하고 있지 않은지 확인하세요. 획득 순간 효과는 Spawn System at Location으로 따로 생성하는 편이 안전합니다.
카메라 흔들림이 너무 강하면 Duration부터 줄이세요. 그래도 부담스럽다면 흔들림의 위치나 회전 강도를 낮춥니다. 반응감은 플레이어를 놀라게 하는 것이 아니라, 행동 결과를 편하게 알려 주는 장치입니다.
이번 장에서 만든 것
이제 우리 수집 게임은 플레이어 행동에 더 분명하게 반응합니다.
동전을 먹으면 점수만 오르는 것이 아니라 소리가 나고, 반짝이는 이펙트가 터지며, 아주 짧게 화면이 반응합니다. 점프와 버튼에도 소리를 붙여 조작이 더 또렷해졌습니다.
이번 장의 핵심은 간단합니다.
작은 효과음과 짧은 파티클만으로도 게임의 완성도는 크게 올라갑니다.
다음 장에서는 캐릭터 애니메이션과 에셋을 다루며, 플레이어 캐릭터가 더 자연스럽게 움직이도록 만들어 보겠습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.