의자 장치 는 플레이어를 앉은 자세로 유지하며 카메라를 움직일 수 있는 기능을 제한해서 플레이어의 시야가 특정 사물에 집중할 수 있게 하는 방법을 제공합니다.
섬에서는 다음과 같은 용도로 활용할 수 있습니다.
-
극장
-
콘서트 또는 기타 가상 이벤트
-
단말기/PC 상호작용
-
식당
-
롤러코스터 또는 기타 놀이기구
이 장치에서는 다수의 의자 유형을 이용할 수 있으며, 의자는 투명하게 설정할 수도 있습니다.
UEFN 프로젝트에서 의자 장치를 사용하는 경우, 의자 모델 옵션을 커스텀 으로 설정하면 의자에 커스텀 메시와 머티리얼을 사용할 수 있습니다.
의자 장치를 찾으려면 장치 찾기와 설치하기를 참조하세요.
상황별 필터링
일부 장치는 상황별 필터링 이라는 기능의 영향을 받습니다. 이는 특정 관련 옵션의 설정값에 따라 옵션을 숨기거나 표시하는 기능입니다. 커스터마이징 패널이 깔끔해지고, 옵션을 관리하거나 찾기가 쉬워졌습니다. 하지만 어떤 옵션이나 값이 상황별 필터링을 트리거하는지 파악하는 것은 어려울 수 있습니다. 이런 부분을 알아보기 쉽도록, 장치 문서에서 상황별 필터링을 트리거하는 값은 이탤릭체 로 표시되어 있습니다. 상황별 필터링이 적용되는 옵션을 포함하여, 모든 옵션이 표기되어 있습니다. 특정 옵션의 값에 따라 숨겨지거나 표시되는 경우 해당 옵션에 대한 설명에 언급되어 있습니다.
장치 옵션
다음 옵션으로 이 장치를 구성할 수 있습니다.
기본값은 굵게 표시됩니다. 상황별 필터링을 트리거하는 값은 이탤릭체 로 표시되어 있습니다.
옵션 | 값 | 설명 |
---|---|---|
의자 모델 | 투명, 편안한 의자, 바 스툴, 통, 석재, 기본, 커스텀 | 의자 외형을 설정합니다. 참고: 커스텀 은 UEFN을 사용할 경우에만 이용할 수 있으며, 포크리에서는 이용할 수 없습니다. |
상호작용 시간 | 상호작용하지 않음, 즉시, 시간 선택 또는 입력 | 플레이어가 의자에 앉기 위해 상호작용 버튼을 눌러야 하는 시간을 설정합니다. 기본으로 설정하거나 상호작용 시간을 설정하면 두 가지 추가 옵션이 표시됩니다. 상호작용하지 않음 으로 설정하면 옵션을 숨깁니다. |
상호작용 반경 | 오버라이드하지 않음, 반경 선택 | 플레이어가 장치와 상호작용할 수 있는 최대 거리를 미터로 설정합니다. |
상호작용 각도 | 45, 각도 선택 | 장치를 기준으로 공간의 각도를 설정합니다. 플레이어는 해당 각도에서만 장치와 상호작용할 수 있습니다. 최대값인 180도로 설정하면 어떤 각도에서든 의자와 상호작용할 수 있습니다. |
활성화 팀 | 모두, 팀 선택 | 이 장치를 활성화할 수 있는 팀을 설정합니다. |
팀 선택 반전 | 켜기, 끄기 | 켜기 로 설정하면 활성화 팀 옵션에서 선택한 팀만 제외하고 모든 팀이 장치를 활성화할 수 있습니다. 기본적으로 끄기 로 설정되어 있습니다. |
허용할 클래스 | 클래스 없음, 모든 클래스, 클래스 선택 | 장치를 활성화할 수 있는 클래스를 설정합니다. |
클래스 선택 반전 | 켜기, 끄기 | 켜기 로 설정하면 활성화 클래스 옵션에서 선택한 클래스만 제외하고 모든 클래스가 장치를 활성화할 수 있습니다. 기본적으로 끄기 로 설정되어 있습니다. |
게임 중 사용 | 켜기, 끄기 | 게임 시작 시 장치를 사용 상태로 설정할지 여부를 설정합니다. 장치가 사용 안 함 상태가 되면, 사용 상태로 설정 을 제외한 모든 이벤트를 무시합니다. |
플레이어 나가기 사용 | 켜기, 끄기 | 플레이어가 스스로 의자에서 나갈 수 있는지에 대한 여부를 설정합니다. |
카메라 콜리전 | 켜기, 끄기 | 의자에 앉아 있는 플레이어의 카메라가 의자에 가려지는지 설정합니다. 투명 의자의 경우 앉은 위치에서 40cm 반경 내 모든 물체의 카메라 콜리전이 사용 안 함 상태로 설정됩니다. |
앉아 있을 때 오디오 재생 | 켜기, 끄기 | 의자에 앉고 일어설 때 오디오 효과를 재생할지 설정합니다. |
상호작용 텍스트 | 앉기, 텍스트 입력 | 의자의 상호작용 메시지에 표시할 텍스트를 설정합니다. 텍스트 필드에 최대 150자까지 입력할 수 있습니다. |
다이렉트 이벤트 바인딩
이 장치의 다이렉트 이벤트 바인딩 옵션은 다음과 같습니다.
기능
기능 은 장치에서 이벤트를 수신한 후 작업을 수행합니다.
-
기능 옵션은 옵션 을 클릭하고 장치 선택 에서 장치 드롭다운 메뉴를 선택해 확인합니다.
-
장치를 선택한 후 이벤트 선택 을 클릭하여 장치의 기능을 트리거할 이벤트에 장치를 바인딩합니다.
-
기능을 적용할 장치가 두 개 이상이거나 이벤트가 기능을 트리거하는 경우, 추가 버튼을 눌러 줄을 추가하고 이 단계를 반복합니다.
옵션 | 설명 |
---|---|
수신 시 사용 | 이벤트 발생 시 장치를 사용 상태로 설정합니다. |
수신 시 사용 안 함 | 이벤트 발생 시 장치를 사용 안 함 상태로 설정합니다. 사용 안 함 상태로 설정하면 의자에 플레이어가 앉을 수 없고, 사용 안 함 상태로 설정될 때 의자에 앉아 있던 플레이어는 일어섭니다. |
수신 시 플레이어 나가기 사용 | 이벤트 발생 시 플레이어가 원한다면 언제든 의자에서 빠져나갈 수 있습니다. |
수신 시 플레이어 나가기 사용 안 함 | 이벤트 발생 시 플레이어가 스스로 의자에서 빠져나갈 수 없습니다. |
수신 시 플레이어 앉히기 | 이벤트 발생 시 플레이어를 의자에 앉힙니다. |
수신 시 플레이어 내보내기 | 이벤트 발생 시 플레이어를 의자에서 내보냅니다. |
이벤트
다이렉트 이벤트 바인딩은 이벤트를 송신기로 사용합니다. 이벤트는 다른 장치에게 기능을 수행하도록 지시합니다.
-
이벤트 옵션은 옵션 을 클릭하고 장치 선택 에서 장치 드롭다운 메뉴 를 선택해 확인합니다.
-
장치를 선택한 후 기능 선택 을 클릭하여 선택한 장치의 기능에 의자를 바인딩합니다.
-
이벤트로 트리거되는 기능이 하나 이상일 경우 추가 버튼을 눌러 반복합니다.
옵션 | 설명 |
---|---|
플레이어 앉힐 시 이벤트 송신 | 플레이어가 의자에 앉으면 선택한 장치에 이벤트를 송신하여 선택한 기능을 트리거합니다. |
플레이어 나갈 시 이벤트 송신 | 플레이어가 의자에서 일어나면 선택한 장치에 이벤트를 송신하여 선택한 기능을 트리거합니다. |
Verse에서 의자 장치 사용하기
아래 코드를 이용하면 Verse로 의자 장치를 제어할 수 있습니다. 이 코드는 의자 장치 API 에서 이벤트와 기능을 사용하는 방법을 보여줍니다. 나의 경험에 맞추어 수정하세요.
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation }
using { /Verse.org/Random }
# Verse로 작성해 레벨에 배치할 수 있는 포크리 장치
chair_device_verse_example := class(creative_device):
# 레벨의 의자 장치에 대한 레퍼런스.
# 이 Verse 장치의 디테일 패널에서
# 이 속성을 의자 장치로 설정하세요.
@editable
MyChairDevice:chair_device = chair_device{}
# 실행 중인 게임에서 장치가 시작되면 실행
OnBegin<override>()<suspends>:void=
# 포크리 장치에서 이벤트를 구독하는 예시입니다.
# 에이전트가 의자에 앉으면 신호를 송신합니다.
MyChairDevice.SeatedEvent.Subscribe(OnAgentSeated)
# 의자에 누군가 앉아 있으면 의자에서 일어나게 합니다.
if:
MyChairDevice.IsOccupied[]
then:
MaybeAgent := MyChairDevice.GetSeatedAgent()
if (Agent := MaybeAgent?):
MyChairDevice.Eject(Agent)
# 게임에서 랜덤 플레이어를 선택해서 이제 비어 있는 의자에 앉힙니다.
Players := GetPlayspace().GetPlayers()
RandomIndex := GetRandomInt(0, Players.Length)
if (RandomPlayer := Players[RandomIndex]):
MyChairDevice.Seat(RandomPlayer)
# SeatedEvent의 이벤트 핸들러이기 때문에 에이전트가 의자에 앉으면 이 기능이 실행됩니다.
OnAgentSeated(Agent:agent):void=
Print("에이전트가 의자에 앉음")
이 코드를 UEFN 경험에서 사용하려면 다음 과정을 따릅니다.
-
섬에 의자 장치를 끌어 놓습니다.
-
chair_device_verse_example 이라는 이름의 새 Verse 장치를 생성합니다. 과정은 Verse를 사용하여 나만의 장치 만들기를 참조하세요.
-
Visual Studio Code(VSC)에서 chair_device_verse_example.verse 를 열고 코드를 이 파일에 붙여 넣습니다.
-
코드를 컴파일한 뒤 Verse로 작성한 장치를 섬에 끌어 놓습니다. 과정은 레벨에 Verse 장치 추가하기를 참조하세요.
-
Verse 장치에 섬의 의자 장치에 대한 레퍼런스를 추가합니다. 과정은 레벨의 포크리 장치에 Verse 레퍼런스 추가하기를 참조하세요.
-
프로젝트를 저장하고 세션 시작 을 눌러 플레이테스트를 시작합니다.
의자 장치 Verse API
Verse에서 의자 장치를 사용하는 방법은 chair_device
API 레퍼런스 를 참조하세요.