Загальна інформація
Найпростіший спосіб створення екрану завантаження (лоадскріна) полягає у відображенні на екрані звичайної статичної картинки при завантаженні безпосередньо рівня. (Для створення відчуття безперервної завантаження навіть якщо движок при цьому зависає!).
Мені вдалося з'ясувати спосіб відображення анімованих зображень на екрані завантаження. БЕЗ зависання самого движка!
Як це зробити?
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 # 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" рівні, відображаючи на наступному рівні на лоадскріне.
Бачите? Все просто!