Gamedev Starter Gear
1 786

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. Если вы запустите прямо в редакторе, то движение мыши будет диспропорциональным. Это очень важно.

Любуемся.

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

#опыт

Материал дополнен редакцией

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Starter Gear", "author_type": "self", "tags": ["\u043e\u043f\u044b\u0442"], "comments": 11, "likes": 46, "favorites": 26, "is_advertisement": false, "subsite_label": "gamedev", "id": 13443, "is_wide": false, "is_ugc": true, "date": "Mon, 11 Dec 2017 16:10:00 +0300" }
{ "id": 13443, "author_id": 30965, "diff_limit": 1000, "urls": {"diff":"\/comments\/13443\/get","add":"\/comments\/13443\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/13443"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

11 комментариев 11 комм.

Популярные

По порядку

Написать комментарий...

Комментарий удален

1

У тебя всегда есть шаст сделать болото получше или написать непримитивний тутор) Все верят в тебя)

Ответить

Комментарий удален

0

Значит, нужен туториал по созданию "верблюжьего копытца" : )

Ответить

Комментарий удален

2

Почему моя статья исковеркана?! Как это вообще? 0__о?!

Ответить
0

Мы её в геймдев-раздел перенесли и поправили под стандарт. А что конкретно теперь плохо?)

Ответить
0

Хорошо, спасибо за правки). Взволновало то, что мне об этом не сообщили. Предупредили хотя бы)

Ответить
1

Хорошо, впредь будем) Спасибо вам за текст!

Ответить
1

не зря ушел после 8 класса. чую, буду крутым девелопером

Ответить
1

И кодить даже уметь не нужно - указатели, классы - кому оно нужно? Блюпринты же есть

Ответить
1

Только логику никто не отменял)К примеру если человек не знает что такое векторы, переменные, массивы, тд. и как с ними работать, то ему одинаково будет трудно что на C# что на Blueprint.

Ответить
0

"никто"

Ответить
0

Там все нормально)

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
В лутбоксы начали включать багфиксы
Подписаться на push-уведомления