이 섹션에서는 바크와 같은 오디오 및 카메라 흔들림과 같은 시각 효과를 설정하여 매력적인 게임플레이를 만드는 방법을 살펴봅니다.
오디오 플레이어 장치
오디오 플레이어(Audio Player) 장치를 사용하여 경비의 대화 사용을 설정할 수 있습니다. 게임 개발에서는 바크(bark)라고도 합니다.
임포트된 오디오는 '프로젝트 폴더' > Barks에서 찾을 수 있습니다. 재생(Play) 아이콘을 클릭하여 오디오 파일을 들은 다음 섬으로 끌어다 놓습니다.
오디오 파일을 섬에 끌어다 놓으면 오디오 플레이어 장치가 배치되고, 이 장치가 Verse 장치에 연결되어 일련의 커스텀 경비 콜아웃을 재생합니다. 이 콜아웃은 플레이어를 발견하거나 피해를 입는 등 다양한 이벤트에 반응합니다.
재생할 모든 고유한 오디오 항목에 1개의 오디오 플레이어를 배치합니다. 이 튜토리얼에서는 14개의 서로 다른 바크에 대한 14개의 오디오 플레이어 장치를 배치합니다.
이 장치를 구성하려면 다음과 같이 커스터마이징합니다.
| Option | 값 | 설명 |
|---|---|---|
볼륨(Volume) | 4.0 | 이 세팅은 녹음에 따라 달라질 수 있습니다. |
활성화 시 음향 재시작(Restart Audio when Activated) | True | 이 오디오는 활성화 시 처음부터 재생됩니다. |
타격 시 재생(Play on Hit) | False | 이 장치는 플레이어에 의해 타격이 되면 오디오를 재생하지 않습니다. |
재생 위치(Play Location) | Instigating Player | 오디오는 장치 위치 대신 작동시킨 플레이어의 위치에 따라 재생됩니다. |
볼륨 감쇠 사용(Enable Volume Attenuation) | False | 재생하도록 설정된 장치 또는 경비와의 거리에 따라 볼륨을 변경합니다. 이 튜토리얼에서 플레이어는 얼마나 멀리 떨어져 있는지와 무관하게 오디오를 들을 수 있습니다. |
다음으로 Verse 스크립트를 설정하여 게임 도중 오디오 플레이어 장치 트리거를 위한 로직을 처리하고, Verse 장치를 배치합니다. 이 튜토리얼에서는 장치의 이름을 Stronghold Bark Manager로 지정합니다.
다음 Verse 스크립트를 붙여 넣습니다.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Fortnite.com/Characters }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
# Audio bark that can be played on a NPC
audio_npc_bark := class<concrete>:
# Audio device to play barks
이 스크립트는 각 오디오 플레이어 장치에 대한 레퍼런스를 저장하고 성채 게임 관리(Stronghold Game Manager) Verse 장치를 경비 생성 장치에 대한 레퍼런스용 컨듀잇으로 참조합니다.
커스터마이징 가능한 조명
AI 경비로부터 오디오 피드백을 받는 것 외에도 플레이어에게 환경의 시각적 피드백을 제공할 수 있습니다.
이 튜토리얼에서는 성채 주변에서 커스터마이징 가능한 조명 장치 두 세트를 사용합니다. 빨간색 조명은 감지된 상태, 주황색 조명은 경계 상태를 나타냅니다.
이 장치를 구성하려면 다음과 같이 커스터마이징합니다.
| Option | 값 | 설명 |
|---|---|---|
초기 상태(Initial State) | False | 장치가 활성화되었을 때 조명의 초기 상태를 결정합니다. |
조명 크기(Light Size) | 100.00 | 조명 플레어의 크기, 길이, 넓이를 결정합니다. |
그림자 표시(Cast Shadows) | True | 조명이 그림자를 드리우는 것을 허용합니다. |
사용 단계(Enabled During Phase) | 게임플레이만 | 조명이 게임플레이 중에만 활성화됩니다. |
조명 강도(Light Intensity) | 30.0 | 조명 강도를 결정합니다. |
박자 시간(Rhythm Time) | x8 | 박자 프리셋의 시간 배수를 설정합니다. |
어둡게 하기 양(Dimming Amount) | 100.0 | 채널을 통해 조명을 어둡게 하는 정도를 결정합니다. |
어둡게 하기 시간(Dimming Time) | 0.1 | 조명을 어둡게 하는 데 걸리는 시간을 초 단위로 결정합니다. |
VFX 제작기
또한 이 튜토리얼은 VFX 제작 장치(VFX Creator)를 성채 상단에 사용하며, 이 장치는 플레이어가 처음 탐지되었을 때 지원군을 위한 신호탄 역할을 합니다. 이 플레어는 Verse 장치로 제어되며, 경비가 경계 상태가 되면 모서리 조명과 함께 꺼져 경비의 상태를 시각적으로 명확히 알립니다.
이 장치를 구성하려면 다음과 같이 커스터마이징합니다.
| Option | 값 | 설명 |
|---|---|---|
사용 시 효과 시작(Start Effects When Enabled) | False | 사용 상태로 설정 시 장치가 효과를 수행할지에 대한 여부를 설정합니다. |
스프라이트 크기(Sprite Size) | 2.0 | 효과 스프라이트의 초기 크기를 설정합니다. |
스프라이트 지속 시간(Sprite Duration) | 5.0 | 각 스프라이트가 표시되는 시간을 설정합니다. |
주요 색상(Main Color) | 레드 | 효과의 주요 색상을 설정합니다. |
주요 색상 밝기(Main Color Brightness) | 200.0 | 주요 색상 밝기를 설정합니다. |
스프라이트 속도(Sprite Speed) | 100.0 | 효과 스프라이트가 이동하는 속도를 설정합니다. |
효과 중력(Effect Gravity) | 15.0 | 효과 스프라이트가 낙하하는 속도를 설정합니다. |
랜덤성(Randomness) | 100.0 | 움직임의 랜덤성을 결정하고 크기에 베리에이션을 추가합니다. |
크기 유지(Keep Size) | False | 스프라이트가 크기를 유지할지 시간 경과에 따라 바뀌는 커스텀 크기를 사용할지 여부를 결정합니다. |
효과 발생 양(Effect Generation Amount) | 4.0 | 발생할 효과 스프라이트 개수를 설정합니다. |
생성 구역 모양(Spawn Zone Shape) | 포인트 | 스프라이트가 처음 나타나는 공간의 모양을 결정합니다. |
생성 구역 크기(Spawn Zone Size) | 0.05 | 생성 모양의 크기를 타일 단위로 설정합니다. |
사용 단계(Enabled During Phase) | 게임플레이만 | 장치가 사용 상태로 설정되는 게임 단계를 결정합니다. |
루프(Loop) | Never | 효과를 한 번 재생할지 무한히 또는 일정 시간 동안 반복할지 결정합니다. |
라디오 장치
이 튜토리얼에서는 라디오 장치 2개를 사용합니다. 하나는 경계가 삼엄한 전투 음악용이고 다른 하나는 조심스러운 음악용입니다.
긴장감 있는 음악은 라디오 > 음악 루프 > Music_StW_Low_Combat01_Cue를 사용합니다.
플레이어가 감지되는 전투 음악은 라디오 > 음악 루프 > Music_StW_High_Combat01_Cue를 사용합니다.
경비가 플레이어를 감지했을 때 또는 모든 경비가 플레이어를 놓쳤을 때 호출할 수 있는 Verse 스크립트를 설정하여 성채의 두 상태를 번갈아가며 들을 수 있습니다.
다음 Verse 스크립트를 붙여 넣습니다.
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
using { /Verse.org/Colors }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Devices }
# tags for customizable lights
alerted_lights_tag := class(tag){}
combat_lights_tag := class(tag){}
# Script that handles music and turn on lights when guards are alerted
stronghold_alert_manager := class(creative_device):
이제 성채 게임을 성공적으로 만들었습니다.