Verse 코드로 선택한 바닥 매쉬를 등록해
순차적으로 사라지게 하는 디바이스를 만들어보자.
동기화된 사라지는 플랫폼
Verse를 사용하여 차례대로 나타나면서 사라지는 징검다리 플랫폼을 하나의 장치로 구현합니다.
dev.epicgames.com
우선 등록할 바닥 매쉬를 생성해주어야 하는데, 위 예제에서는 색상 변경 바닥 디바이스?
미리 구현되어 있는 바닥을 이용해서 사라지는 플랫폼을 구현하는데,
좀 더 커스텀할 수 있게 BP나 디바이스를 만드는 게 더 좋아 보여서 BP로 만들려고 한다.
언리얼 엔진보다 한정적인 모습을 볼 수 있다. 건물 사물, 건물 스테틱 메시가 있는데,
건물 사물을 "독립적인" 사물로 정적 매쉬라는 용어 자체가 고정되어 조작 불가란 의미가 있기 때문에
건물 사물이 좀 더 바닥으로 쓰기 맞아 보인다. 이걸로 생성해 준다.
아무 메쉬나 스태틱 메시 컴포넌트에 등록한다.
전 글에서 Verse 스크립트 생성을 써서 스킵하겠다.
Verse로 디바이스를 선택해 아래와 같이 작성한다.
using { /Fortnite.com/Devices }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
log_platform_series := class(log_channel){}
Test_Verse01 := class<concrete>(creative_device):
Logger : log = log{Channel := log_platform_series}
@editable
HeadStart : float = 2.45
@editable
AppearDelay : float = 0.98
@editable
DisappearDelay : float = 1.11
@editable
Platforms : []creative_prop = array{}
OnBegin<override>()<suspends> : void =
loop:
sync:
ShowAllPlatforms() # 이 동시 실행 루틴은 즉시 시작되며 block 표현식과 동시에 실행됩니다.
block: # block 표현식은 ShowAllPlatforms()와 동시에 바로 시작됩니다. 이 코드 블록 내의 모든 표현식은 순차적으로 실행됩니다.
Sleep(HeadStart) # HeadStart초 동안 기다린 후에 HideAllPlatforms()이 실행됩니다.
HideAllPlatforms() # HeadStart초 후에 이 동시 실행 루틴이 실행됩니다.
ShowAllPlatforms()<suspends> : void =
for (PlatformNumber -> Platform : Platforms):
Logger.Print("Platform{PlatformNumber} is now shown.")
Platform.Show()
Sleep(AppearDelay)
HideAllPlatforms()<suspends> : void =
for (PlatformNumber -> Platform : Platforms):
Logger.Print("Platform{PlatformNumber} is now hidden.")
Platform.Hide()
Sleep(DisappearDelay)
Sync는 Verse 언어에서 사용되는 키워드 중 하나로, 동시 실행 루틴을 시작하는 데 사용된다.
유니티 코루틴 생각하면 될 듯.
Block 키워드는 아래로 무조건 순차적으로 진행되는 코드를 그룹화하여, 순서 보장을 한다.
그래서, 모든 블랙폼을 보여주면서 동시에 숨김을 하는
작업 사이에 Sleep을 주어 순차적으로 사라지는 바닥이 구현된다.
위에서 만든 바닥들이 Creative_prob에 해당된다. @editable으로 디테일 창에 노출시켰으니, 등록해 주자
+ 여담이지만 UPROPERTY(EditAnywhere)와 같은 매크로와 블루프린트에 노드를 사용 못한다는 게 아쉽다.
순차적으로 사라졌다 생기는 플랫폼들을 확인할 수 있다.
'STUDY > UEFN' 카테고리의 다른 글
UEFN - 프로젝트 생성 및 로그 남기기 (0) | 2024.03.04 |
---|