Анимированный Загрузочный Экран
Contents
Общая информация
Самый простой способ создания экрана загрузки (лоадскрина) заключается в отображении на экране обычной статической картинки при загрузке непосредственно уровня. (Для создания ощущения беспрерывной загрузки даже если движок при этом зависает!).
Мне удалось выяснить способ отображения анимированных изображений на экране загрузки...БЕЗ зависания самого движка!
Как это сделать?
Level Streaming
Некоторые из вас не имеют ни малейшего понятия о том, что же такое “Level Streaming”. И это круто. Давайте сделаем супер-быстрый обзор самого “Level Streaming'a” и того как он может быть использован при создании нашего анимированного лоадскрина.
Level Streaming (в Unreal Engine 4): Level Streaming это особенность Unreal Engine 4 которая позволяет загружать/выгружать уровни на лету и дает разработчику дополнительную возможность переключать их отображение в игровом времени. Проще говоря, вы можете взять огромную карту разбить ее на кусочки, которые будут загружаться/выгружаться не все сразу а по мере надобности, таким образом увеличивая производительность.
Как я смогу использовать эту особенность для создания загрузочного экрана?
В двух словах я расскажу о том, что мне нужно было сделать, чтобы на экране отображался черный экран с вращающейся стрелкой. Сначала я создал “Begin Play” в level blueprint и соединил с событием(event), которое называется “Open Stream Level” (С тем уровнем, который я выбрал для загрузки).
У этого узла(node) есть выход(output) с названием “Completed”, который срабатывает один раз, когда уровень загружен. Так что я по быстрому создал Matinee (Который содержал single Fade in > Fade Out) и выстрелил, когда уровень был загружен.
Отсюда, я просто изменил активную камеру из “Loading level” на одну из main level когда Matinee полностью исчез(faded out). Затем, когда камера изменилась, я отобразил все снова)fade back in) и БАМ! Уровень готов и загружен! (Прошу проверить этот абзац других пользователей в оригинале и внести необходимые правки, если таковые нужны!)
Я знаю что читая это вслух все это звучит сложно, хотя на самом деле это супер-супер просто. Для людей не знакомых с Unreal Engine 4, это прозвучало как два параграфа на инопланетном языке, но я распишу вам весь процесс поэтапно!
11 коротких шагов для создания Анимированного Экрана Загрузки
Step #1 - Переходим в Window > Levels
Step #2 - Создаем новый уровень( New Level ) выбираем в “ Levels ” и нажимаем “ Create new Level ”
Step #3 - В основном уровне(main level) перемещаем все что подсвечено в окно редактора(editor window) и выбираем “ Move Selected Actors to Level ” с помощью вкладки “Уровни( Levels )”.
Step #4 - Убедитесь что созданная вами текстура самого лоадскрина, камера и анимированная иконка находятся в “ Persistent Level ”.
Step #5 - В “ Level Blueprint ” (для “ Persistent Level ”), я создаю событие( event ) “Начать игру ( Begin Play )” и создаем узел( node ) “ Open Stream Level ” и соединяем их.
Step #6 - Ввожу название уровня в “ Open Stream Level ” и проверяю чтобы “' Block on Load' ” не был отмечен галочкой, но включен “ Make visible after load ”.
Step #7 - Создаем Matinee с треком “ Fade ” и треком “ Event ”. Затем необходимо сделать быстрое Fade out / Fade in и расположить событие ( event ) в то время, когда экран будет полностью черный.
Step #8 - Возвращаемся к “ Level Blueprint ” и создаем узел “ Play ” Matinee один раз, когда уровень был загружен.
Step #9 - Затем добавляем узел ( node ) - “ MatineeController ” жмем ПКМ и выбираем “ Refresh nodes ” чтобы наш event созданный в Matinee появился.
Step #10 - Добавляем узел ( node ) - “Remote Event” который ищет все Level Blueprints для события ( event ) in question to fire it.
Step #11 - в “Level Blueprint” на уровне, который был загружен, я создаю событие ( event ) которое называется точно так же - “Remote Event” и соединяю с узлом “ Get Player Controller > Set View Target with Blend ”.
И это все, что нам необходимо сделать!
Видите? 11 простых шагов и у нас анимированный лоадскрин. Впечатляет !
Итог
Теперь я использую этот способ в каждом уровне в SUPER DISTRO. Даже в тех случаях, когда мы переходим между уровнями, я просто затеняю до черноты Мatinee и затем гружу на следующем “Whole” уровне, отображая на следующем уровне на лоадскрине.
Видите? Все просто!
Оригинал статьи - Animated Loading Screen