UE4 UMG: создание курсора мыши

Простая задача, с которой могут возникнуть трудности.

Я использую Unreal Engine 4.18.1, и создать в нём курсор для мыши не так просто. Это особенно интересно, потому что сама-то задача по своей сути лёгкая. Нет, даже очень лёгкая. И должна выполнятся сегодня в полтора клика. Но нет, увы это не так. Я, если честно, сильно удивлён. Не ожидал такого от UE.

Нормальных обучающих статей или видеороликов по данному вопросу почему-то нет. Поэтому я пишу о том, как решал эту задачу, не претендуя на истину в последней инстанции.

Итак, есть у нас изображение курсора (для примера возьму *.png формат, вы можете брать любой какой вашей душе угодно хоть *.tiff, это лишь пример и демонстрация реализации, а не дискуссия о лучших форматах). Производим импорт в наш проект.

Применяем настройки Paper2D.

Создаём материал.

В настройках материала в параметре Material Domain выставляем тип User Interface, Blend Mode — Translucent.

Цепляемся как на скрине (можно по-своему).

С материалом закончили. Теперь необходимо создать виджет интерфейса UMG и добавить туда элемент Image, далее на него применяем только что созданный материал курсора. Позиция X,Y — 0,0. Размеры по картинке. И самое главное — Anchors от центра.

Режим экрана обязательно должен быть Fill Screen.

Поздравляю, полдела сделано. Далее создадим контроллер для курсора. В нём лишь одну галочку указать.

Открываем Edit > Project Settings и во вкладке User Interface указываем наш виджет, а также указываем тип курсора (для нашего случая Default).

Далее создаём Game Mode и указываем там наш контроллер курсора, заодно убираем ненужный Pawn. Укажем этот Game Mode в World Settings.

Если вы всё делали правильно, то в папке у вас должны быть такие файлы.

Готово! А теперь внимание: смотреть результат нужно только в режиме Standalone Game. Если вы запустите прямо в редакторе, то движение мыши будет диспропорциональным. Это очень важно.

Любуемся.

На этом всё. Надеюсь кому-то помогло. Конец связи.

Материал дополнен редакцией
 
Источник: DTF

Читайте также