[UE Plugin] - ASync Loading Screen Plugin을 사용한 로딩 스크린
팀프로젝트를 진행하며 레벨간 전환시 월드에 액터들을 로드하는 시간동안 게임이 멈춘것처럼 진행하지 않았습니다.
이를 해결하기위해 로딩 스크린을 만들게되었으며 로딩 스크린이 출력하는 동안 언리얼 엔진 내부에서는 월드에 필요한 액터들을 로드하는 작업을 하기위해 비동기 방식으로 로딩 스크린을 구현하게되었습니다.
기존에는 언리얼 C++ 내부에서 비동기 방식의 로딩 스크린을 구현하고자 하였으나, 이를 위해 학습하던 중
해당 플러그인을 사용하여 간단하게 로딩 스크린을 출력할 수 있게 되어 포스팅하게 되었습니다.
ASync Loading Screen Plugin - 언리얼 마켓플레이스
- 비동기 레벨 로딩 중 커스텀 로딩 화면을 제공하는 플러그인
- 2023 Epic MegaGrants 수상 및 여러 쇼케이스에서 우수 플러그인 선정
- 비동기 로딩 (Load Stream Level())을 활용한 비동기 로딩 중 자동으로 로딩 화면 표시 기능
- 배경이미지, 로딩 애니메이션 등 커스텀 UI 지원
- 게임 시작 시 또는, 레벨 전환시마다 설정에 따른 로딩 화면 출력 가능
- 프로젝트 세팅 내에서 간편하게 로딩 스크린 구현 가능
연동 과정
- 마켓 플레이스 내 해당 플러그인 라이브러리 추가
- 에픽 게임즈 내 사용할 엔진 버전에 플러그인 설치
- Edit - Plugin 내 Async Loading Screen 추가 후 재시작
- 연동 완료
적용 예시
Project Settings 내 Async Loading Screen을 사용한 설정이 가능하다.
- Preload Background Images
- 게임이 시작 시 Background Images로 추가한 이미지들을 미리 불러온다.
- 하지만, 시작 시 로딩 스크린 외 스타트 스크린이 존재하지 않을 경우 처음 로딩스크린이 로드하는 시간동안 해당 미지가 출력되지 않는 현상이 있다.
- StartUp Loading Screen
- 게임 시작 시 한번만 보여줄 화면에 대한 설정
- Default Loading Screen
- 레벨 전환 간 로드시 설정한 값들을 보여주는 설정
- LayOut
- 화면 전환 간 Text, SideBar 등 Tip과같은 설명에 대한 추가 기능
- BeginPlay에 ASync Loading Screen 관련 블루프린트 설정 추가
- 독립형 게임 / 디바이스 내 실행
- 뷰포트 실행의 경우 지원하지 않음
연동결과
- 레벨 전환간 해당 로딩 스크린이 출력된다.
- 설정에 따른 텍스트, 최소 스크린 출력시간, 랜덤 이미지 출력 등 다양한 지원 가능
이렇게 간단하게 해당 플러그인에 대해 작성해보았습니다.
장점은 간편하게 플러그인을 통한 비동기 로딩 스크린을 출력할 수 있었다는 좋은점이 있었지만,
로딩 시 얼마나 진행되었는지를 출력하는 로딩 바 같은 기능은 지원하지 않았습니다.
또한 뷰포트 내 실행시 사용이 불가능 한 점, C++클래스를 사용한 호출이 불가능 한 점 등 아쉬운 부분도 존재하였지만
사용할 로딩 이미지 외 동영상같은 출력 기능등을 지원함 및 블루프린트를 통한 빠른 테스트같은 장점이있었습니다.
이번 포스팅에서는 로딩스크린이 왜 비동기로 출력해야하는지, 그리고 C++를 사용한 유연한 비동기 스크린 제작 같은 과정을 추가하지않았지만, 다음에 로딩 스크린을 구현하게되면 C++내 Load Stream Level()와 같은 기능을 사용하여 상세하게 다뤄보도록 하겠습니다.
출처 및 참고내역