Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 5
Всем доброго времени суток.
Столкнулся с задачей, а "курить мануалы" слишком долго и лень, может здесь найду помощь.
Микропредыстория: есть лаунчер сторонней игры (League of Legends). При помощи захвата изображения и NDI, картинка в реалтайме попадает в UE4 (медиатекстура).
В лаунчере игры на определенной стадии идёт выбор чемпиона (отображается аватар чемпиона). Есть блупринт в UE4, где вручную занесен список чемпионов.
Сейчас на этапе прототипирования я могу "вручную" выбрать необходимого мне чемпиона и он заспавнится на моей карте. Это очень долго и неудобно.

Суть: Я хочу, чтобы UE4 брал эту медиатекстуру, затем сравнивал изображение на ней (или ещё лучше определенную часть изображения) с аватарками чемпионов (их я могу в виде картинок подгрузить в движок), а затем, если есть совпадение - UE4 выдавал результат.

Таким образом я смог бы автоматизировать процесс выбора чемпионов. Но вот с чего начать не знаю. Хочется верить что есть готовые решения проблемы, но то ли я неправильно гуглю, то ли простых и элегантных решений нет - не знаю.
Прошу помощи, может у кого-нибудь есть мысли, как решить проблему на блупринтах. (понимаю, что на плюсах это решаемо, но плюсы я попросту не знаю).
Аватара пользователя
Пользователь
Сообщения: 4069
в блюпринтах врядли такое есть, задача кажется такая же сложная как и не нужная, вообще не понятно как сравнение изображений относится к выбору чемпионов, как теплое и мягкое, пробой по другому, вариантов масса.
Аватара пользователя
Пользователь
Сообщения: 5
Распишу более подробнее.
Есть проект (сцена в UE4), которая будет использоваться для стрима. Соответственно, когда я буду играть в League of Legends хочется слега разнообразить трансляцию. Для этого я использую UE4. Во время выбора чемпиона в клиенте игры, те же чемпионы должны автоматически выбираться в сцене в UE4. Всё соответственно с красивой анимацией и необычным для игры ракурсом (анимации и композиция почти готовы на данный момент).

Всё, что имеет компьютер (отдельно стрим ПК, чтобы не нагружать вычислениями игровой ПК), на котором будет запускаться сцена - это видеопоток через NDI. Именно поэтому я озадачился реализацией распознавания картинок по заранее загруженным шаблонам. В худшем случае придётся научиться писать скрипт, который будет попиксельно оценивать цвет пикселей в регионе и сравнение этого цвета с шаблонами (чувствую что куда-то в эту сторону надо "копать").

Можно и оставить так как есть, но очень неудобно выбирать вручную большой список. Да и вся "фишка" с реалтаймом пропадает.
Аватара пользователя
Пользователь
Сообщения: 589
Распознавание образцов - это сложная и объемная задача.

Я помню ещё в Журналах "Техника Молодежи" 80-х годов была статья про что то подобное для роботов.
Там писали про систему распознавания путем информативных фрагментов.
Если навести камеру на объект и слегка его расфокусировать. Как бы сымитировать эффект близорукости.
Тогда информативные фрагменты будут в виде размытых точек. На эти точки система ориентируется и сравнивает с образцами.
Таким способом робота научили распознавать буквы и читать.

А так как ты хочешь. Сравнивать две текстуры попиксельно. Я думаю тебя ждут много открытий. Это может быть для твоих глаз картинки одинаковые. Для компьютера они могут отличатся.

Даже просто нюансы работы движка если учитывать. Например, возьми переменную Float. Установи значение 1,0. И отнимай по 0,2. И сделай проверку. Если значение будет <= 0,0 тогда Print String "Hello". Ты увидишь что когда значение должно быть 0,0 ничего не произойдет. Всё потому что для вычислений типа Float используются не точные значения. И там в действительности не 0,0.

Так что если у тебя в пикселе градация красного ,например, будет равна 0,5 на обоих картинках. Не факт что движок определит что они равны.

Плюс ко всему нужно понимать как движок вообще работает с изображением, как сжимает. Это всё тоже имеет значение.
Даже если вспомнить , к примеру, систему цветности SECAM, которая использовалась для телевидения в нашей стране.
Качество цветного изображения было хуже черно-белого.
Сперва рисовалась красная строка. И запоминалась. Затем рисовалась синяя строка и тоже запоминалась. А предыдущая красная тупо накладывалась на синюю. Затем опять красная, а предыдущая синяя накладывалась. И т.д. и т.п. А недостающий зеленый получался от смешения синего с красным. Вот так получалось цветное изображение.


Сейчас этот форум просматривают: Google [Bot] и гости: 7

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница