데저티드: 도미네이션(Deserted: Domination)은 플레이어가 두 팀으로 나뉘어 목표를 점령하기 위해 전투하는 절대 지배 스타일의 게임입니다. 이 게임플레이는 회수 영역 등의 장치를 사용하며, Verse로 제작한 커스텀 장치도 사용합니다.
이 튜토리얼을 따라하면 포트나이트 언리얼 에디터(Unreal Editor for Fortnite, UEFN)에서 고급 수준의 게임플레이를 구현하는 방법을 학습할 수 있습니다. 또한 레벨 시퀀싱 및 포스트 프로세싱 등의 언리얼 엔진 5(UE5) 기능도 알아볼 수 있습니다.
Verse와 UE5 기능뿐만 아니라 다른 콘텐츠도 활용하도록 도와주는 외부 링크 및 리소스도 포함되어 있습니다.
데저티드는 프로젝트 브라우저(Project Browser)의 샘플 프로젝트(Sample Projects) 섹션에서 찾을 수 있습니다.
다음 내용은 이 섬을 재현하는 데 필요한 단계의 개요입니다.
새 프로젝트를 생성하고 섬 설정 수정을 통해 게임을 구성합니다.
플레이어 부활을 위한 Verse 스크립트를 생성합니다.
핵심 게임플레이 장치를 추가하고 커스터마이징합니다.
커스텀 생성 시스템을 추가합니다.
플레이어의 편성을 추가합니다.
음향 효과를 추가합니다.
시각 효과를 추가합니다.
새 프로젝트를 생성하기
새 프로젝트 생성에 대한 자세한 내용은 프로젝트 정리 페이지를 참고하세요.
섬 설정을 구성하려면 콘텐츠 드로어(Content Drawer)에서 섬 설정(IslandSettings) 장치를 배치해야 합니다.
아래와 같이 세팅을 커스터마이징합니다.
| 옵션 | 값 | 설명 |
|---|---|---|
음성 채팅 범위(Voice Chat Scope) | 전체 | 음성 채팅을 팀원들에게만 허용할지, 모든 플레이어에게 허용할지, 아예 사용하지 않을지 여부를 결정합니다. |
최대 플레이어(Max Players) | 12 | 게임에 참가할 수 있는 최대 플레이어 수를 결정합니다. |
팀(Teams) | 팀 인덱스(Team Index) - 2 | 플레이어를 몇 팀으로 나눌지를 결정합니다. |
팀 크기(Team Size) | 균일 분배(Split Evenly) | 팀 간의 플레이어 분배 방식을 결정합니다. |
기본 클래스 식별자(Default Class Identifier) | 클래스 슬롯(Class Slot) - 1 | 게임 시작 시 또는 클래스 설정 시 플레이어의 기본 클래스를 정의합니다. |
총 라운드(Total Rounds) | 5 | 게임 종료까지 플레이할 라운드 수를 결정합니다. |
팀 로테이션(Team Rotation) | True | 팀 로테이션 빈도를 결정합니다. |
팀 비주얼 확정 시점(Team Visuals Determined At) | 게임 시작 | 라운드마다 팀 이름과 색상을 변경할지, 게임 시작 시 상태를 그대로 유지할지 여부를 결정합니다. |
시간 제한(Time Limit) | 15.0 | 각 라운드의 지속 시간을 지정하거나, 한 라운드만 있는 경우 게임 지속 시간을 지정합니다. |
득점하여 종료(Score to End) | 500 | 플레이어 또는 팀이 지정된 점수를 달성하면 라운드가 종료됩니다. |
생성 패드 발견했을 때만 부활 허용(Only Allow Respawn if Spawn Pads Found) | True | 유효한 생성 패드가 있는 경우에만 플레이어의 부활을 허용합니다. |
자동 시작(Auto Start) | 30.0 | 선택한 시간이 지나면 게임이 자동으로 시작되는지 여부를 지정합니다. |
다른 팀 관전 허용(Allow Spectating Other Teams) | Allowed | 관전 플레이어가 다른 팀을 볼 수 있는지 여부를 결정합니다. |
처치 점수(Elimination Score) | 3.0 | 다른 플레이어를 처치할 때 얻는 점수를 결정합니다. |
도움 점수(Assist Score) | 1.0 | 플레이어가 다른 플레이어를 처치하는 데 도움을 주었을 때 얻는 점수를 결정합니다. |
플레이어 콜리전 사용 안 함(Disable Player Collision) | True | 플레이어가 서로 충돌하거나 통과할지 여부를 결정합니다. |
플레이어 생성을 위한 Verse 스크립트 생성하기
Verse를 사용하여 플레이어 부활 장치를 제어함으로써 플레이어가 항상 자신의 영토(보유한 회수 영역 근처 또는 아군 근처 영역)에서 부활하도록 할 수 있습니다. 이렇게 하려면 표준 포크리 장치와 Verse를 조합하여 사용해야 합니다.
이 페이지에 설명된 대로 새로운 Verse 스크립트를 추가합니다. 그런 다음, 다음을 붙여 넣습니다.
# Copyright Epic Games, Inc. All Rights Reserved.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Teams }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
## This device manages the player spawners
## An intial set of spawners starts enabled
## After a short time, the initial spawners are disabled
Verse에 대한 자세한 내용은 이 가이드를 참고하세요.
이 튜토리얼에서는 다른 포크리 장치에 대한 레퍼런스를 얻기 위해 Verse 태그를 사용합니다.
다음으로는 Verse 스크립트를 컴파일합니다.
콘텐츠 브라우저에서 생성한 DominationSpawnManager 장치를 찾은 후 월드로 드래그하여 세팅을 커스터마이징합니다.
이러한 세팅과 새로운 Verse 장치는 컴파일을 마친 후에만 표시됩니다.
핵심 장치 추가 및 커스터마이징하기
플레이어 생성 패드 장치
플레이어 생성 패드 장치는 유효한 생성 위치를 결정하는 Verse 스크립트에 의해 제어됩니다.
각기 다른 세팅과 기능을 가진 다양한 종류의 장치를 사용하게 됩니다. 이 중 일부는 비활성화하거나 활성화함으로써 Verse를 통해 유효한 부활 위치를 결정하도록 소통할 수 있는 장치도 있습니다.
초기 부활 장치는 팀 1에 8개, 팀 2에 8개로 총 16개가 필요합니다. 이 장치들은 라운드마다 첫 번째 부활 세트에만 사용되니 잘 보이도록 배치하세요.
장치를 커스터마이징하는 방법은 다음과 같습니다.
콘텐츠 드로어에서 플레이어 부활 패드 장치를 선택하고 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 플레이어 팀(Player Team)
팀 인덱스(Team Index)/팀 1 또는 팀 2
이 특정 생성 장치에서 팀 1 또는 팀 2가 생성되는지 여부를 설정합니다.
섬 시작 시 사용(Use as Island Start)
False
이 장치가 섬 시작 순간이동 장치로 사용되지 않습니다.
게임 내 표시(Visible in Game)
False
이 장치가 게임플레이 도중에 표시되지 않습니다.
우선순위 그룹(Priority Group)
10
우선순위 그룹의 박스를 선택합니다. 이는 부활에 사용되는 우선순위로, 작은 숫자일수록 우선순위가 높습니다.
적 범위 표시(Display Enemy Range)
Off
에디터에서 적 범위 확인을 표시하는 시각화 툴입니다. 적 범위 체크를 사용하지 않았더라도 기본적으로 모두 꺼짐으로 설정되어 있습니다.
아래 지침을 따라 Verse 태그를 추가합니다. Verse 게임플레이 태그를 사용하면 게임이 실행되는 동안 특정 태그로 표시된 장치를 찾을 수 있습니다.
이렇게 하려면 아래 단계를 따릅니다.
디테일(Details) 패널에서 VerseTagMarkup을 선택합니다.
게임플레이 태그(Gameplay Tags)에서 편집(Edit)을 클릭하여 true/false 체크 박스 목록을 가져옵니다.
초기 생성 장치의 경우 초기 태그를 선택합니다. 각 생성 장치가 팀 1 또는 팀 2의 TeamOwnership을 가지게 해야 합니다.
이 장치를 15번 복사하고 붙여 넣습니다(장치가 총 16개여야 합니다).
맵 한쪽에 회수 영역 장치와 함께 장치 절반을 배치하고, 반대쪽 절반에 또 다른 회수 영역 장치와 함께 나머지 절반을 배치합니다. 맵 중앙에 세 번째 회수 영역 장치를 추가합니다. 세 개의 회수 영역 장치를 Capture Area_A, Capture Area_B,Capture Area_C로 명명합니다.
이러한 플레이어 부활 장치들은 Verse에 의해 비활성화되기 전 게임플레이 최초 시작 시에만 사용됩니다.
Verse 태그는 어디서든 정의할 수 있습니다. 이 튜토리얼의 태그는 ProjectName.verse에서 정의되며, 이는 여러분이 명명한 프로젝트 이름입니다.
파일을 열고 다음 태그를 붙여 넣어 태그를 구성합니다.
# Copyright Epic Games, Inc. All Rights Reserved.
using { /Verse.org/Simulation/Tags }
DominationSpawnTags<public> := module:
Tag_SpawnGroup<public>:= class(tag){}
Tag_SpawnGroup_Initial<public>:= class(Tag_SpawnGroup){}
Tag_SpawnGroup_GroupA<public>:= class(Tag_SpawnGroup){}
Tag_SpawnGroup_GroupB<public>:= class(Tag_SpawnGroup){}
Tag_SpawnGroup_GroupC<public>:= class(Tag_SpawnGroup){}
부활 장치 클러스터는 위의 사진과 같이 전투에서 벗어난 안전한 영역에 배치하세요. Verse가 스크립트의 유효성 검사 결과에 따라 이 부활 장치들을 끄거나 켤 것입니다.
빨간색 플레이어 부활 패드는 Verse에 의해 제어되는 3개의 부활 장치 그룹 중 하나를 위한 것입니다. 그룹에는 2개의 겹치는 부활 장치가 있습니다. 하나는 팀 1을, 다른 하나는 팀 2를 위한 것으로 맵의 다른 곳에서 반복됩니다.
부활 패드 클러스터의 흰색 부활 장치는 예비 부활 장치입니다. 예비 부활 장치는 Verse가 검사할 때 플레이어가 부활될 다른 유효한 위치가 없는 경우 사용됩니다.
맵 곳곳에서 팀 1과 팀 2로 구성된 부활 장치 그룹들을 추가할 수 있습니다. 부활 그룹을 그룹 A, B 또는 C 중 하나로 태그하여 부활 그룹이 반응해야 하는 회수 영역을 할당합니다.
연결한 회수 영역 장치 근처에 그룹을 구성합니다.
부활 장치 그룹을 구성하는 방법은 다음과 같습니다.
안전한 영역에 2개의 부활 패드를 서로의 상단에 배치합니다. 하나는 팀 1에, 나머지 하나는 팀 2에 할당해야 합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 플레이어 팀(Player Team)
팀 인덱스(Team Index)/1 또는 2
플레이어를 생성할 팀 인덱스를 팀 1 또는 팀 2로 설정합니다.
섬 시작 시 사용(Use as Island Start)
False
이 장치가 섬 시작 순간이동 장치로 사용되지 않습니다.
게임 내 표시(Visible in Game)
False
생성 장치가 게임플레이 도중에 표시되지 않습니다.
사용 단계(Enabled During Phase)
None
Verse에 의해서만 사용되며, 기본적으로 비활성화 상태로 설정됩니다.
우선순위 그룹(Priority Group)
10
우선순위 그룹의 박스를 선택합니다. 부활에 사용되며, 작은 숫자일수록 우선순위가 높습니다.
적 범위 확인(Enemy Range Check)
60
적을 확인하여 유효한 생성 지점인지 결정하는 데 사용되는 거리입니다. 맵 크기에 따라 범위 크기는 조정될 수 있습니다. 맵이 크다면 더 큰 영역을 사용하고, 맵이 별로 크지 않다면 더 작은 영역을 사용합니다.
적 범위 표시(Display Enemy Range)
Off
에디터에서 적 범위 확인을 표시하는 시각화 툴입니다. 적 범위 체크를 사용하지 않았더라도 기본적으로 모두 꺼짐으로 설정되어 있습니다.
마지막 섹션에서 했던 것처럼 Verse 태그를 추가하고 체크 박스를 다음과 같이 체크하세요.
점령 지점 A 주변 생성 패드의 경우 GroupA를 선택합니다.
점령 지점 B 주변 생성 패드의 경우 GroupB를 선택합니다.
점령 지점 C 주변 생성 패드의 경우 GroupC를 선택합니다.
방금 배치한 2개를 제외한 다른 플레이어 부활 패드를 배치합니다. 이것이 예비 부활 장치가 됩니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 플레이어 팀(Player Team)
Any
플레이어를 생성할 팀 인덱스를 팀 1 또는 팀 2로 설정합니다.
섬 시작 시 사용(Use as Island Start)
False
이 장치가 섬 시작 순간이동 장치로 사용되지 않습니다.
게임 내 표시(Visible in Game)
False
생성 장치가 게임플레이 도중에 표시되지 않습니다.
사용 단계(Enabled During Phase)
Always
플레이어가 생성될 때 항상 유효한 생성 장치입니다.
우선순위 그룹(Priority Group)
20
우선순위 그룹의 박스를 선택합니다. 부활에 사용되며, 작은 숫자일수록 우선순위가 높습니다.
적 범위 확인(Enemy Range Check)
60
적을 확인하여 유효한 생성 지점인지 결정하는 데 사용되는 거리입니다. 맵 크기에 따라 범위 크기는 조정될 수 있습니다. 맵이 크다면 더 큰 영역을 사용하고, 맵이 별로 크지 않다면 더 작은 영역을 사용합니다.
적 범위 표시(Display Enemy Range)
Off
에디터에서 적 범위 확인을 표시하는 시각화 툴입니다. 적 범위 체크를 사용하지 않았더라도 기본적으로 모두 꺼짐으로 설정되어 있습니다.
이 장치를 맵 전체에 고르게 복사하고 붙여 넣습니다. 부활 장치가 회수 지점에 연결된 동일한 곳에 배치해도 됩니다.
총 16개를 배치해야 하며, 이 16개의 장치는 팀에 의해 제한되지 않습니다. 이는 3개의 지점을 모두 회수하면 맵의 예측 가능한 영역이 아니라 맵 전체에서 패배한 적이 무작위로 나타난다는 것을 의미합니다.
마지막으로, 플레이어들이 게임을 하기 위해 기다리는 곳인 게임 시작 전 대기실에 수많은 생성이 사용됩니다. 이러한 부활은 총 16개로, 양쪽 팀의 플레이어들이 모두 기다릴 수 있도록 생성된 영역 내에 배치됩니다.
다음과 같이 장치를 설정합니다.
게임 전 대기실을 생성합니다.
대기실에 플레이어 부활 패드 장치를 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 플레이어 팀(Player Team)
None
섬 시작 시에만 사용됩니다.
섬 시작 시 사용(Use as Island Start)
True
게임 전 섬 시작에 사용됩니다.
게임 내 표시(Visible in Game)
False
생성 장치가 게임플레이 도중에 표시되지 않습니다.
사용 단계(Enabled During Phase)
게임 시작 전(Pre-Game Only)
장치가 사용 상태로 설정되는 게임 단계를 결정합니다.
우선순위 그룹(Priority Group)
80
우선순위 그룹의 박스를 선택합니다. 이 패드는 항상 게임 시작 전 단계에 사용됩니다.
적 범위 표시(Display Enemy Range)
Off
에디터에서 적 범위 확인을 표시하는 시각화 툴입니다. 적 범위 체크를 사용하지 않았더라도 기본적으로 모두 꺼짐으로 설정되어 있습니다.
이 장치를 15번 복사하고 붙여 넣습니다.
회수 영역 장치
그런 다음에는 다음 단계를 통해 회수 영역 장치를 커스터마이징합니다.
배치된 회수 영역 장치를 편집합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 영역 반경(Capture Radius)
0.45
타일로 표시된 장치 주변 회수 필드의 반경입니다.
게임 중에 표시(Visible During Game)
False
이 장치의 베이스가 게임플레이 도중에 표시되지 않습니다.
주기적인 득점(Periodic Scoring)
Owning Team
현재 이 지점을 점령 중인 팀에게 매초 점수가 주어집니다.
통제 시 득점(Score On Taking Control)
3
영역 점령 시 부여되는 점수입니다.
강조 색상 유형(Accent Color Type)
팀 관계 색상(Team Relationship Color)
현재 지점을 점령 중인 팀의 색상을 표시합니다.
영역 높이(Capture Height)
0.0625
타일로 표시한 회수 장치의 높이입니다.
적 공격 점수(Enemies Contest Scoring)
True
적이 회수 영역 안에 있을 때 주기적인 득점이 비활성화됩니다.
점령 가능한 팀(Can Be Captured By Team)
전체
어느 팀이든 지점을 점령할 수 있습니다.
통제 시간(Control Time)
10
회수 영역을 통제하기 위해 회수 영역 안에 있어야 하는 시간(단위: 초)입니다.
중립 시간 오버라이드(Neutralize Time Override)
중립화 없음(No Neutralize)
한 팀이 지점을 점령하면 다른 팀이 먼저 이 지점을 중립화할 필요가 없습니다.
추가 플레이어마다 통제 속도 증가(Take Control Faster Per Player)
2.0
각 팀원이 추가로 도울 때마다 점령 및 중립화 속도에 적용되는 배수입니다.
진행 상황 감소 유형(Progress Decay Type)
시간별(Over Time)
부분적인 회수 진행 상황이 처리되는 방식을 결정합니다.
부분 진행도 감소 속도(Partial Progress Decay Speed)
0.5
회수 영역 내에 팀원이 없을 때 부분 진행 상황이 저하되는 속도입니다.
HUD 구성요소(HUD Elements)
배지
회수 영역이 UI에 배지로 표시됩니다.
시야 내 표시(Requires Line Of Sight)
False
시야에 관계없이 회수 영역 배지가 항상 표시됩니다.
적군 아이콘 텍스트(Hostile Icon Text)
회수
적이 점령 지점을 통제할 때 표시되는 UI 텍스트입니다.
HUD 아이콘 숨기기 범위(Hide HUD Icon At)
300
HUD 배지가 더 이상 보이지 않는 거리입니다(미터 단위).
화면에 고정(Clamp To Screen)
True
배지 렌더링 시 화면에 고정합니다.
아군 아이콘 텍스트(Friendly Icon Text)
방어
아군 팀이 회수 영역을 통제할 때의 UI 텍스트입니다.
중립 아이콘 텍스트(Neutral Icon Text)
회수
회수 영역이 통제하에 있지 않을 때의 UI 텍스트입니다.
HUD 텍스트 크기(HUD Text Size)
1.5
배지와 함께 표시되는 텍스트의 크기입니다.
HUD 메시지(HUD Message)
A 점령(Captured A) ~ C 점령(Captured C)
HUD에 점수와 함께 표시할 메시지입니다. 각 장치에 'A 회수'부터 'C 회수'까지 고유 메시지를 설정합니다.
맵 마커 표시(Show Map Marker)
True
미니맵에 목표 아이콘을 표시할지 여부를 결정합니다.
정렬 순서(Sort Order)
1~3
UI의 목표 표시 순서를 결정합니다. 각 장치에 1부터 3까지 고유 순서를 설정합니다.
모든 회수 영역에서 이 단계를 반복합니다.
앞에서 설명한 것처럼 맵의 반대편에 회수 영역 장치 2개를, 중앙에 회수 영역 장치 1개를 배치합니다. 맵 전체에 장치를 분포시키되 각 팀이 1개의 회수 영역 장치에 근접하도록 하고, 3번째 장치는 팀이 서로 차지하기 위해 경쟁하도록 중앙에 배치합니다.
회수 지점을 적절하게 배치하려면 범위, 주변 지형, 고도, 다른 회수 지점과의 거리를 모두 고려해야 합니다.
또한 회수 영역을 어떻게 시각적으로 표현할지에 대해서도 생각해야 합니다. 회수 영역 장치에 몇 가지 좋은 디폴트 옵션이 있지만, 월드 아트, 라이팅, 데칼 등을 어떻게 사용하면 좋을지도 고민해 보세요.
데저티드에서는 시각적인 구분이 가능하도록 베이스를 회전하는 라이트 픽스처로 대체했습니다.
플레이어 카운터
3개의 플레이어 카운터 장치를 배치하되, 각 회수 영역 장치에 1개씩 인접하도록 합니다.
다음으로는 플레이어 카운터 장치를 구성하여 위의 장치와 연결된 볼륨을 생성합니다. 장치는 LargeZone_A, LargeZone_B, LargeZone_C로 명명할 수 있습니다.
위의 사진에서는 점령 지점 C 주변의 빨간색 볼륨을 볼 수 있습니다. 볼륨의 크기는 커버하는 영역의 크기에 따라 다릅니다.
다음 설정 값을 갖도록 플레이어 카운터 장치를 커스터마이징합니다.
| 옵션 | 값 | 설명 |
|---|---|---|
플레이어 카운트 비교(Compare Player Count) | 비교하지 않음 | 상대적 플레이어 카운트가 이 구역에서 평가되지 않습니다. |
정보 패널 표시(Info Panel Visible) | False | 정보 패널이 게임플레이 도중에 표시되지 않습니다. |
구역 사용(Use Zone) | True | 이 박스를 선택하면 계산에 전체 맵 대신 구역을 사용합니다. |
구역 너비(Zone Width) | 변수 | 이 구역이 점령 지점 중 한 곳을 둘러싼 전체 영역을 커버하도록 설정합니다. |
구역 깊이(Zone Depth) | 변수 | 이 구역이 점령 지점 중 한 곳을 둘러싼 전체 영역을 커버하도록 설정합니다. |
구역 높이(Zone Height) | 변수 | 이 구역이 점령 지점 중 한 곳을 둘러싼 전체 영역을 커버하도록 설정합니다. |
LargeZone_B와 LargeZone_C 장치에 대해 3단계와 4단계를 반복합니다.
Verse 장치
Verse 스크립트가 참조할 수 있도록 이 장치를 사용하여 다이렉트 이벤트 바인딩에 필요한 장치를 연결합니다.
Verse 장치를 커스터마이징하는 방법은 다음과 같습니다.
아웃라이너(Outliner) 탭에서 DominationSpawnManager를 찾아 선택합니다.
디테일 패널에서 DominationSpawnManager (Instance)를 선택합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 게임 내 표시(Visible In Game)
False
이 장치가 게임에 표시되지 않습니다.
게임 시작 시 사용(Enabled At Game Start)
True
게임 시작 시 이 장치가 활성화됩니다.
DominationSpawnManager에서 다음과 같은 세팅을 사용합니다.
옵션 값 설명 0
Capture Area_A
어느 팀이 지점을 점령했는지 Verse 스크립트에 알립니다.
1
Capture Area_B
어느 팀이 지점을 점령했는지 Verse 스크립트에 알립니다.
2
Capture Area_C
어느 팀이 지점을 점령했는지 Verse 스크립트에 알립니다.
0
LargeZone_A
TriggersLargeZoneEntered와 함께 작동하며, 플레이어가 영역을 떠나면 Verse 스크립트에 알려 사용 가능한 생성 장치를 추론합니다.
1
LargeZone_B
TriggersLargeZoneEntered와 함께 작동하며, 플레이어가 영역을 떠나면 Verse 스크립트에 알려 사용 가능한 생성 장치를 추론합니다.
2
LargeZone_C
TriggersLargeZoneEntered와 함께 작동하며, 플레이어가 영역을 떠나면 Verse 스크립트에 알려 사용 가능한 생성 장치를 추론합니다.
잠금 장치
잠금 장치는 다수의 플레이어 생성 구역과 페어링됩니다. 각 잠금 장치에는 고유한 이름이 주어져야 합니다.
자물쇠와 문이 달린 생성 옷장을 만들어 플레이어가 다시 들어올 수 없도록 할 수 있습니다.
각 위치를 추적할 수 있도록 연동된 컴포넌트에는 번호를 매기는 것을 권장합니다. 이 튜토리얼에서 닫힌 안전한 부활 구역의 개수는 총 4개입니다.
다음 단계를 따라 1번부터 4번까지의 잠금 장치를 커스터마이징하세요.
닫힌 문 외부에 잠금 장치를 배치합니다.
문을 커버하도록 2개의 트리거 장치를 방 안에 배치합니다.
a. 트리거 장치는 참조하기 쉬운 방식으로 명명하는 것이 좋습니다. 이 튜토리얼에서 트리거는 TriggerDoorOpen1 ~ 4 및 TriggerDoorClose1 ~ 4로 명명했습니다.
아래에 표시된 대로 잠금 장치의 세팅을 커스터마이징합니다.
옵션 값 설명 게임 중에 표시(Visible During Game)
False
이 장치가 게임플레이 도중에 표시되지 않습니다.
잠겼을 때 상호작용 숨기기(Hide Interaction When Locked)
True
게임플레이 도중에 잠겼을 때 플레이어가 상호작용을 볼 수 없습니다.
잠금 장치와 트리거 장치가 페어링되도록 다이렉트 이벤트 바인딩을 구성합니다.
| 장치 A | Function | 장치 B | 이벤트 | 설명 |
|---|---|---|---|---|
잠금(Lock) | 열기 | DoorOpenTrigger1 - DoorOpenTrigger4 | On Triggered | TriggerDoorOpen1 장치가 활성화되면 이 문을 엽니다. |
잠금(Lock) | 닫기 | DoorCloseTrigger1 - DoorOpenTrigger4 | On Triggered | TriggerDoorClose1 장치가 활성화되면 이 문을 닫습니다. |
각 안전 구역에 이러한 단계를 3번 반복하여 다이렉트 이벤트 바인딩이 그 옆의 트리거와 일치하도록 변경합니다.
문에 트리거 장치를 사용하는 경우, 플레이어가 문과 접촉하면 잠금 장치에 문을 열라는 신호가 전송됩니다. 이는 문에 사용되는 왼쪽 트리거 장치에 표시됩니다.
오른쪽에는 보조 트리거 장치가 2초간 대기한 후 뒤에서 문을 닫으라는 신호를 전송합니다. 이렇게 하면 안에 있는 플레이어가 나갈 수는 있지만, 외부의 잠재적 캠퍼들은 들어올 수 없습니다.
장치를 커스터마이징하는 방법은 다음과 같습니다.
다음 표를 따라 TriggerDoorOpen1부터 TriggerDoorOpen4까지 커스터마이징하세요.
옵션 값 설명 게임 내 표시(Visible In Game)
False
트리거가 게임플레이 도중에 표시되지 않습니다.
VFX 트리거(Trigger SFX)
False
이 장치에는 비주얼 이펙트가 없습니다.
SFX 트리거(Trigger SFX)
False
이 장치에는 사운드 이펙트가 없습니다.
다음 표를 따라 TriggerDoorClosed1부터 TriggerDoorClosed4까지 커스터마이징하세요.
옵션 값 설명 게임 내 표시(Visible In Game)
False
이 장치가 게임플레이 도중에 표시되지 않습니다.
플레이어로 트리거(Triggered by Player)
False
플레이어와의 접촉으로 이 트리거가 활성화되지 않습니다.
트리거 지연(Trigger Delay)
2
2초 후 이 장치가 신호를 전송합니다.
VFX 트리거(Trigger SFX)
False
이 장치에는 비주얼 이펙트가 없습니다.
SFX 트리거(Trigger SFX)
False
이 장치에는 사운드 이펙트가 없습니다.
다음으로, 다이렉트 이벤트 바인딩을 구성합니다.
장치 A Function 장치 B 이벤트 설명 트리거(Trigger)
트리거(Trigger)
TriggerDoorOpen1 - TriggerDoorOpen4
On Triggered
문 트리거가 활성화되면 신호를 전송하여 이 장치가 2초 후 활성화되고 잠금이 열리도록 합니다.
자동으로 열려야 하는 닫힌 문이 있는 각 제한된 방에서 숫자가 증가하도록 명명하면서 이 구성을 반복합니다.
게임플레이 시작 시 문이 계속 열려 있거나, 닫혀 있거나, 잠겨 있게 하고 싶을 수도 있습니다. 이것도 잠금 장치로 구현 가능합니다. 이 예시에서는 이동의 흐름을 개선하기 위해 이 문이 열려 있도록 할 것입니다.
이 메커니즘을 구성하는 방법은 다음과 같습니다.
LockDevice5라는 이름의 잠금 장치를 하나 더 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 게임 중에 표시(Visible During Game)
False
이 장치가 게임플레이 도중에 표시되지 않습니다.
잠겼을 때 상호작용 숨기기(Hide Interaction When Locked)
True
게임플레이 도중에 잠겼을 때 플레이어가 상호작용을 볼 수 없습니다.
초기 문 위치(Initial Door Position)
열기
문이 열린 채 게임플레이를 시작합니다.
HUD 컨트롤러
HUD 컨트롤러 장치를 사용하여 섬의 다양한 세팅을 조정할 수 있습니다. 장치를 구성하는 방법은 다음과 같습니다.
섬에 HUD 컨트롤러 장치를 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 HUD 표시(Show HUD)
지원
UI에 HUD를 표시합니다.
미니맵 표시(Show Minimap)
안함
UI에서 미니맵을 숨깁니다.
HUD 정보창 표시(Show HUD Info Box)
지원
UI에 HUD 정보창을 표시합니다.
건설 메뉴 표시(Show Build Menu)
안함
UI에서 건설 메뉴를 숨깁니다.
플레이어 인벤토리 표시(Show Player Inventory)
지원
플레이어의 인벤토리를 표시합니다.
목재 자원 표시(Show Wood Resource)
안함
UI에서 이 구성요소를 숨깁니다.
석재 자원 표시(Show Stone Resource)
안함
UI에서 이 구성요소를 숨깁니다.
금속 자원 표시(Show Metal Resource)
안함
UI에서 이 구성요소를 숨깁니다.
골드 자원 표시(Show Gold Resource)
안함
UI에서 이 구성요소를 숨깁니다.
맵 점수판 창 표시(Show Map Scoreboard Prompt)
지원
맵 점수판 창을 표시합니다.
폭풍 타이머 표시(Show Storm Timer)
안함
UI에서 폭풍 타이머를 숨깁니다.
플레이어 수 표시(Show Player Count)
안함
UI에서 플레이어 수를 숨깁니다.
처치 카운터 표시(Show Elimination Counter)
안함
UI에서 처치 카운터를 숨깁니다.
라운드 타이머 표시(Show Round Timer)
안함
UI에서 라운드 타이머를 숨깁니다.
장벽 장치
주요 전투 아레나 주변에는 보이지 않는 수많은 장벽 장치가 있어 플레이어가 아레나를 떠나지 못하게 합니다. 생성한 맵에 맞추어 이 장벽 장치들의 수와 크기를 조정할 수 있지만, 다음 기본 세팅을 따라야 합니다.
장벽 장치를 커스터마이징하는 방법은 다음과 같습니다.
플레이어가 아레나를 떠날 수 없도록 차단할 위치에 장벽 장치를 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 장벽 재질(Barrier Material)
None
게임 도중에 보이지 않도록 텍스처를 사용하지 않습니다.
장벽 깊이(Barrier Depth)
변수
영역 전체를 포함하도록 필요에 따라 조정합니다.
너비(Width)
변수
영역 전체를 포함하도록 필요에 따라 조정합니다.
장벽 높이(Barrier Height)
3
보이지 않는 장벽의 높이를 타일 개수 단위로 결정합니다.
이 장치를 복사하고 붙여 넣어 아레나 주변에 자연스러운 장벽을 만드세요.
돌연변이 유발 구역 장치
레벨 아래에는 돌연변이 유발 구역 장치가 있습니다. 장치의 너비, 깊이, 높이는 전체 아레나를 포함할 수 있을 만큼 충분해야 합니다.
일부 규칙을 실행하기 위해서는 나의 섬(My Island) 설정을 대신하는 일부 세팅이 필요합니다. 장치를 커스터마이징하는 방법은 다음과 같습니다.
레벨 아래에 돌연변이 유발 구역 장치를 배치합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 구역 너비(Zone Width)
변수
영역 전체를 포함하도록 필요에 따라 조정합니다.
구역 깊이(Zone Depth)
변수
영역 전체를 포함하도록 필요에 따라 조정합니다.
구역 높이(Zone Height)
변수
영역 전체를 포함하도록 필요에 따라 조정합니다.
크리처에 영향(Affects Creatures)
False
크리처가 구역에 영향을 받지 않습니다.
경비에 영향(Affects Guards)
False
경비가 구역에 영향을 받지 않습니다.
편집 허용(Allow Editing)
False
이 구역에서는 플레이어 구조물 편집이 허용되지 않습니다.
VFX 사용(Enable VFX)
False
이 장치에는 비주얼 이펙트가 없습니다.
무기 발사 허용(Allow Weapon Fire)
True
플레이어가 구역 내에서 무기를 발사할 수 있습니다.
건설 허용(Allow Building)
False
플레이어가 구역 내에서 건설할 수 없습니다.
사용 단계(Enabled On Phase)
Always
돌연변이 유발 구역이 모든 게임플레이 도중에 항상 켜지고 활성화 상태를 유지합니다.
수집품 수명(Pickup Life Span)
True: 25
True로 설정하면 드롭한 모든 아이템이 파괴되기 전 정수(단위: 초)로 유지됩니다. 이 경우 25초간 유지됩니다. 이를 통해 플레이어가 처치된 플레이어의 무기를 수집할 수 있습니다.
플레이어 편성 추가하기
플레이어가 회수 지점 전투에서 사용할 편성을 만들 수 있습니다. 클래스 선택 UI 장치와 클래스 설계 장치를 페어링하여 플레이어가 매치 시작 시 선택할 수 있는 클래스를 만들고 표시할 수 있습니다.
각각의 클래스마다 자체 클래스 설계 장치가 필요합니다. 클래스 선택 장치 UI 장치를 1개만 배치할 수도 있습니다.
편성을 구성하는 방법은 다음과 같습니다.
클래스 선택 장치 UI 장치를 배치하고 기본 세팅을 사용합니다.
플레이어가 사용하도록 할 각 클래스 및 편성에 1개의 클래스 설계 장치를 배치합니다.
a. 클래스 설계 장치에 주 무기를 먼저 등록하고 무기와 탄약을 등록합니다.
아래와 같이 세팅을 커스터마이징합니다.
옵션 값 설명 클래스 이름(Class Name)
<변수>
클래스 선택 장치에서 클래스를 지칭하고 싶은 이름을 입력합니다.
클래스 설명(Class Description)
<변수>
클래스 선택 장치에서 사용될 클래스 및 편성에 대한 설명을 입력합니다.
클래스 식별자(Class Identifier)
<변수>
각 클래스에는 1부터 X까지 별도의 식별자가 필요합니다. X는 만든 클래스의 개수를 가리킵니다.
지급된 아이템 장착(Equip Granted Item)
1번째 아이템
생성 시 등록된 편성의 첫 번째 아이템을 장착합니다.
사운드 이펙트 추가하기
오디오 임포트에 대한 자세한 내용을 알아보려면 여기를 클릭하세요.
사운드 이펙트를 가져온 후 콘텐츠 브라우저에서 사운드가 시작되어야 하는 영역으로 드래그하세요.
원하는 영역에 여러 글로벌 사운드 이펙트를 추가할 수도 있습니다.
이렇게 하려면 콘텐츠 브라우저에서 사운드 웨이브를 아레나로 드래그 앤 드롭합니다. 위치는 상관없으니 편리한 방식으로 모아 구성하면 됩니다.
사운드 웨이브 에셋을 열고 디테일 패널에서 루핑(Looping)을 True로 설정합니다. 앞에서 생성한 큐와는 달리, 이 사운드는 맵 전체에서 재생되므로 그 외의 다른 작업은 수행하지 않아도 됩니다.
큐는 오디오를 더 고급 수준에서 제어하고 싶을 때 유용합니다.
사운드 웨이브 에셋 커스텀 .wav에서 큐 생성(Create Cue)을 우클릭하고 선택하여 출력이 연결된 루핑 웨이브 플레이어를 만듭니다. 위의 연결된 블루프린트는 큐가 만들어질 때 자동으로 생성되어야 합니다.
방법은 다음과 같습니다.
웨이브 플레이어(Wave Player)를 클릭하고 루핑을 True로 설정합니다.
그런 다음 루핑 웨이브 플레이어를 클릭하고 어테뉴에이션 오버라이드(Override Attenuation)를 True로 변경하여 내부 반경과 감쇠 거리를 설정합니다.
비주얼 이펙트 추가하기
컬러 그레이딩을 사용하거나 카메라 이펙트를 적용하는 등 포스트 프로세스 이펙트를 사용하여 프로젝트의 룩 앤 필을 바꿀 수 있습니다. 포스트 프로세스 볼륨이 레벨 전체에 영향을 미치게 하려면 다음 단계를 따릅니다.
레벨에 포스트 프로세스 볼륨(Post Process Volume)을 추가합니다. 배치하는 단계별 방법은 포스트 프로세스 볼륨 사용하기를 참고하세요.
포스트 프로세스 볼륨의 디테일 패널에서 포스트 프로세스 볼륨 세팅(Post Process Volume Settings) 아래에 있는 무한 규모(언바운드)(Infinite Extent (Unbound))를 활성화합니다. 이는 포스트 프로세스 볼륨이 레벨 전체에 영향을 미치게 된다는 의미입니다.
이 프로젝트에는 다음 포스트 프로세스 이펙트가 사용됩니다.
블룸: 씬의 밝은 영역에서 연무/글로우를 제어합니다.
색수차: 화면 가장자리에 컬러 채널 분리/디스토션을 약간 추가합니다.
렌즈 플레어: 밝은 빛이 카메라에 렌즈 플레어를 드리우는 방식을 제어합니다.
비네트: 화면 가장자리에 어두운 그레이디언트를 추가합니다.
필름 그레인: 필름 그레인 이펙트를 추가합니다.
컬러 그레이딩: 채도/대비/감마 중 채도만 조정합니다(씬의 채도가 감소하면 색이 약해지고 그레이스케일에 가까워집니다).
이 프로젝트는 다음 포스트 프로세스 머티리얼도 사용합니다.
씬에 아지랑이 효과 적용
머티리얼 기반 컬러 그레이딩
카메라가 보는 방향 기준 씬 색상 구성
데칼을 추가할 수도 있습니다. 데칼은 머티리얼 에디터에서 만들어 씬으로 드래그합니다.
콘텐츠 브라우저에서 데칼을 찾아 표시하고 싶은 영역에 드래그하세요.
스케일(Scale) 옵션 및 근접성(Proximity)을 사용하여 스태틱 메시에 데칼 액터를 표시할 수 있습니다. 이 방법으로 먼지를 덮어쓴 듯한 텍스처를 추가로 만들거나, 엎질러진 페인트와 같은 요소를 표현할 수 있는 커스텀 텍스처를 만들거나, 스태틱 메시에 신호와 전투 피해를 생성하도록 브로드캐스트할 수 있습니다.
게임플레이에 Klaxon 라이트를 추가할 수도 있습니다.
Klaxon 라이트는 회전하는 머티리얼 컴포넌트가 있는 스태틱 메시로, 라이트 머티리얼 함수를 사용하여 포인트 라이트와 결합됩니다.
Klaxon은 처음에 FBX 파일로 생성한 후 UEFN에 임포트됩니다.
UEFN에는 3D 오브젝트, 오디오 파일, 텍스처를 비롯하여 다양한 포맷의 콘텐츠를 임포트할 수 있습니다. 임포트하고 싶은 폴더를 우클릭하면 임포트 옵션이 보입니다.
임포트한 오브젝트에는 씬 파일에서 추가된 머티리얼이 필요합니다. 이렇게 하려면 오브젝트를 더블클릭하여 임포트한 오브젝트의 머티리얼 슬롯에 머티리얼을 적용하기만 하면 됩니다.
UEFN에 3D 오브젝트를 임포트하여 사용하는 방법에 대한 자세한 내용은 이 문서에서 다루지 않으며, 다른 튜토리얼에서 확인할 수 있습니다.
나이아가라를 사용하여 동적 비주얼 이펙트를 연출할 수 있습니다.
콘텐츠 브라우저에서 완성된 에셋을 찾아 드래그 앤 드롭합니다. 에셋의 수치는 조정할 수 있습니다.
레벨 시퀀서를 사용하여 애트머스페릭 갈매기가 영역을 선회하도록 게임플레이를 디자인할 수도 있습니다.
이는 핵심 UEFN 콘텐츠 브라우저에서 모든 크리에이터가 사용할 수 있는 글로벌 에셋입니다. 애트머스페릭 갈매기를 추가하려면 콘텐츠 브라우저의 Fortnite 폴더에서 검색하여 Atmospheric Seagulls Orbit을 드래그 앤 드롭합니다.
게임플레이 위로 비행하는 제트기를 추가할 수도 있습니다.
제트기는 시네마틱 시퀀스 장치를 사용합니다. 제트기의 물리적 모델은 비행 레벨 아래에서 숨겨진 상태로 사용됩니다.
제트기에 필요한 레벨 시퀀스를 생성하려면 여기를 클릭하여 자세히 알아보고 직접 만들어 보세요. 여기에는 제트기 트랜스폼 키프레임, 오디오 SFX, 카메라 셰이크, VFX 이미터 등이 포함됩니다.
Verse를 사용하여 시퀀스가 재생되는 시점을 제어할 수 있습니다. 이렇게 하려면 아래의 스크립트를 사용하여 새로운 Verse 장치를 만들어야 합니다.
아래의 Verse 스크립트를 컴파일합니다. 새 장치는 콘텐츠 브라우저에 생성되며, 레벨 내에서 일반적으로 드래그하고 편집할 수 있습니다.
# Copyright Epic Games, Inc. All Rights Reserved.
using { /Fortnite.com/Devices }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
################################################################################
## This device references an array of Cinematic Sequence Devices, and plays them randomly with a variable cooldown in between.
################################################################################
sequencer_randomization_device := class<concrete>(creative_device):
비행 방향마다 시네마틱 시퀀스 장치를 추가한 후 다음과 같이 세팅을 변경합니다.
| 옵션 | 값 | 설명 |
|---|---|---|
시퀀스(Sequence) | 생성된 시퀀스 | 이 필드에 시네마틱 레벨 시퀀스를 배치합니다. 이 튜토리얼은 Verse 스크립트가 비행 시간을 무작위로 결정하는 3개의 시네마틱 시퀀스에서 레벨 인스턴스 3개를 사용합니다. |
콘텐츠 브라우저에서 Verse 장치를 추가하고 다음과 같이 세팅을 변경합니다.
| 옵션 | 값 | 설명 |
|---|---|---|
CooldownMin | 180 | 제트기 비행이 다시 발생하기 전의 최소 쿨다운 시간(단위: 초)입니다. |
CooldownMax | 500 | 다음 제트기 비행 전 Verse 스크립트가 기다릴 최대 쿨다운 시간(단위: 초)입니다. |
PreventBackToBackRepeats | True | 연결된 시퀀서가 2개 이상이면 제트기가 같은 방향으로 2번 비행하지 않습니다. |
시네마틱 시퀀스 장치가 트리거하려면 각 장치에 대한 레퍼런스도 필요합니다.
| 장치 A | Function | 장치 B | 이벤트 | 설명 |
|---|---|---|---|---|
시퀀서 목록(Sequencer List) | 제트기 비행 | 시네마틱 시퀀스 장치(CinematicSequenceDevice) | 1~3 | 각 시네마틱 시퀀스 장치에 레퍼런스를 추가합니다. |
레벨 시퀀스와 시네마틱 시퀀스 장치를 사용하여 이동 파이프를 만들 수도 있습니다.