Предрекая злостных диванных аналитиков в комментариях: Для тех, кто задаётся вопросом, что вообще здесь происходит - это обзор на дополнительные файлы, улучшающие качество создаваемых изображений в Automatic 1111, это оболочка для нейронной сети, генерирующей изображения - Stable Diffusion, а теперь к обзору модели, дорогие мои друзья!
Знакомьтесь, концептуальная SDXL Lora, обученная более чем на 1800 изображениях!
На данный момент это отличный инструмент для облегчения и ускорения работы гейм-дизайнеров, художников и всех, кто работает с картинками и иконками в играх. Пока что это бета-версия, поэтому она ещё не идеальна, но уже даёт отличные результаты!
Вам не требуется триггер-ворд для создания изображений.
Устали от бесконечного ожидания при загрузке огромных файлов? Игра «Copy Dialog Lunar Lander (https://github.com/Sanakan8472/copy-dialog-lunar-lander)» – веселый и увлекательный способ скоротать время в эти томительные минуты. Играйте на лунном корабле на этих привлекательных холмах, созданных в диалоговом окне прогресса.
Во время работы приложение обнаруживает все диалоговые окна копирования Windows и добавляет поверх них игровой оверлей, когда они находятся в фокусе. Чтобы начать игру, щелкните на графике прогресса. Клавиши со стрелками используются для управления, пробел – для перезапуска игры.
Доступно несколько настроек сложности:
1. Легкий – копирование файлов между локальными SSD-накопителями.
2. Средний – проверьте свои навыки, копируя файлы на более медленный накопитель USB 2.0.
3. Трудный – испытайте себя на прочность, выполнив передачу файлов по рабочей VPN-сети. У вас будет больше времени на прохождение уровня, но это будет нелегко!
Еще больше интересных и полезных советов вы найдете в моем телеграмм канале : https://t.me/TechLiveHack
Решил написать псевдо-скриптовый язык для игры Arena Unlimited. Скриптовый язык я решил использовать для разных мелочей чтобы не лезть в код лишний раз а все делать или прямо во время игры или же использовать их на картах разных. В первую очень нужно было сделать обработчик скриптов, я не стал заморачиваться и написал это за один вечер
Вот и весь код, в нем используются разные микро функции которые делать операции и ищут переменные в игре по их названию, можно складывать переменные, проверять их, циклы есть, есть условия и запуск других скриптов по условию, есть поиск сущностей на карте, операции с игроками, с игровыми настройками и параметрами и всяким таким, начну скоро документацию на этот ArenaScript писать. Есть и ограничения в этом языке но самое хорошее что он работает и мне его пока что хватает и его можно расширять при помощи аддонов для игры. Чем больше дополнений к этому языку тем больше он умеет, для Arena Unlimited это прям прекрасно.
Кстати у него есть особенность операция 5 = 9 работает и 5 потом по всему коду воспринимается как 9 и решается это одной функцией которая удаляет указатель на девятку из адреса по которому находится пятерка. А еще он может сам сгенерировать строку кода и выполнить её. Тоесть через код можно генерировать код и выполнять его. И да язык безопасный, дальше игры не выходит!
Как думаете, что попробовать написать на нем?) Для чего использовать?)
Upscayl (https://www.upscayl.org/) - это бесплатный инструмент искусственного интеллекта с открытым исходным кодом, используемый для масштабирования изображений. Совместим с различными операционными системами, включая МасОS, Linux и Windows.
Предоставляет простой в использовании интерфейс, который позволяет пользователям загружать изображения, выбирать желаемый коэффициент масштабирования (2х, 4х или 8х), а затем масштабировать изображение.
Инструмент использует алгоритмы глубокого обучения для создания новых пикселей на основе существующих, а затем улучшает их для получения изображений с более
высоким разрешением.
Upscayl дает высококачественные результаты с использованием передовых алгоритмов ИИ. Делает фотографии больше и четче без потери важных деталей. Отличный инструмент для тех, кто не любит терять важные детали.
Еще больше интересных и полезных советов вы найдете в моем телеграмм канале : https://t.me/TechLiveHack
В этом гайде рассказываем, как быстро и легко сделать процедурную текстуру в Unreal Engine 5 на примере асфальта — чтобы дороги в вашей игре выглядели интересней и разнообразней.
Далее выбираем следующее: Target Platform — Desktop, Quality Preset — Maximum. Галочки на Starter Content и Raytracing не ставим.
Запустите проект. У вас откроется уровень из шаблона: чтобы убедиться, что всё работает, можете поездить на машине, нажав на зелёную кнопку Play сверху.
Так должен выглядеть проект
Загружаем карты в Unreal и добавляем в материал
Внизу Content Drawer (контент-бразуер)
Скачайте или сделайте материал. Для гайда мы возьмём его здесь.
Из всего материала нам нужны две карты: Road003_8K_Color и Road003_8K_Roughness.
Далее в Content Drawer откройте папку Track. Перетащите в Unreal обе карты из папки, куда их сохраняли.
Всё что нужно оставить от нод
Откройте материал M_Track и удалите всё, кроме основной ноды M_Track.
Перенос текстур из Content Drawer
Content Drawer — папка Track. Перетащите оттуда текстуры в окно с нодами. Пока ничего с ними не делайте.
Создание и поиск нужной ноды
Чтобы создать ноду, нажмите ПКМ на любом свободном месте, впишите её название и нажмите Enter.
Нода TextureCoordinate даёт базовые UV-координаты, с которыми вы дальше сможете работать. Нода CustomRotator позволяет поворачивать текстуры в UV-пространстве.
После подключите ноду TextureCoordinate в CustomRotator во вход UVs (V2), в Constant впишите значение 0,25 и подсоедините ко входам Rotation Center и Rotation Angle.
Выход ноды CustomRotator подключите во вход UVs к обеим нашим текстурам. Текстуру Road003_8K_Color подключите к Base Color материала M_Track.
Должно получиться так
Создаём шум для текстуры
Должно быть так — это результат всех действий в разделе
Теперь создадим и настроим шум, который сделает асфальт процедурным и добавит на него лужи.
Для этого создайте ноды World Position, Constant, Multiply и Noise. Подключите выход XYZ ноды World Position и выход Constant ко входам ноды Multiply. В дальнейшем этой константой вы сможете регулировать размер луж на текстуре.
Выход ноды Multiply подключите ко входу Position ноды Noise. На время подключите выход ноды Noise ко входу Base Color материала M_Track, чтобы видеть все изменения и настройки.
В ноде Constant установите значение 0,01.
Нода World Position даёт вектор с координатами, который в ноде Multiply умножается на значение константы — у нас оно 0,01. Это позволяет регулировать размер шума, который создаёт нода Noise.
В ноде Noise измените параметр Function на Gradient - Computational — он отвечает за тип генерации. Ещё вы можете поиграться с настройками Output Min и Output Max — они позволяют детальнее настроить внешний вид шума. Мы установили для Output Min значение -0,384, Max не изменяли.
Также в ноде Noise уберите галочку с Turbulence и поставьте галочку на Tiling.
Создайте ноду Saturate и подключите в неё ноду Noise. Нода Saturate обрезает значения, оставляя диапазон от 0 до 1.
Далее создайте ноду Power и подключите в неё Saturate. Ноду Power подключите к Base Color материала.
В параметре ноды Power установите значение 0,5 — так вы сделаете шум контрастнее. Если напишите число больше 1, шум станет более мягким и размытым и белых областей будет меньше.
Верните текстуру Color обратно во вход Base Color.
Создаём Roughness
После создания Roughness должно быть так
Карта Roughness отвечает за гладкость или шероховатость текстуры. Нам она нужна для усиления эффекта пористости асфальта.
Создайте ноду LinearInterpolate и две Constant. Нода LinearInterpolate, или же Lerp, смешивает два входа, используя вход Alpha как маску. Выход ноды LinearInterpolate подключите во вход Roughness материала.
Во вход Alpha ноды Lerp подключите ноду Power, а во входы A и B две новые Constant. В Constant A ставим значение 0, в Constant B — значение 0,06.
Создайте ещё одну ноду Lerp. В её вход Alpha подключите ноду Power, во вход А подключите ноду Lerp, которая сейчас подключена во вход Roughness материала M_Track. После этого создайте новую Constant, поставьте ей значение 1 и подключите во вход В ноды Lerp, которая подключена к Roughness.
Создайте узел на линии связи ноды Power с нодами Lerp. Узлы используют для удобства и оформления — из них можно вытаскивать неограниченное количество линий. Чтобы создать узел, два раза нажмите ЛКМ на линии связи нод в том месте, где хотите создать узел.
Создаём Normal
После создания Normal должно быть так
Карта Normal используют для создания неровностей текстуры. В нашей случае она будет дополнять Roughness.
Чтобы её сделать, создайте ещё одну ноду Lerp. В её вход Alpha подключите ноду Power, а во вход B подключите текстуру Road003_8K_Roughness.
Создайте ноду Luminosity_And_Color — она объединяет вектор и скалярное значение. На её вход Color (V3) подключите RGB-выход текстуры Road003_8K_Roughness, а на Luminosity — выход ноды Power.
Во вход A новой ноды Lerp подключите выход ноды Luminosity_And_Color. Выход последней подключите на выход Normal материала M_Track.
Создаём Metallic и Specular
После создания Metallic и Specular должно быть так
В белых областях карты Metallic будут проявляться световые свойства металла, то есть блеск и отражение, а карта Specular отвечает за «загрязнённость» текстуры: в белых областях свет будет отражаться лучше, в более тёмных — хуже из-за грязи или других визуальных недостатков. Эти карты мы используем для реалистичного отражения света на асфальте.
Для входов Metallic и Specular материала M_Track создайте две Constant со значениями 0 и 1, а также две ноды Lerp.
В первую Lerp во вход А подключите значение 1, во вход В — значение 0, в Alpha подключите выход Power.
Выход из ноды Lerp подключите ко входу A следующей ноды Lerp и ко входу Specular материала M_Track.
Во входе В поставьте значение 0,5, в альфа 0,7. Выход подключите к Metallic материала.
Сглаживаем текстуру с помощью SmoothThresold
Ноды после подключения SmoothThresold. А ещё это финальный вид карты нод — после ничего не меняем
Сглаживание избавит текстуру от лишних зернистости и стыков, а ещё сделает внешний вид более гладким и монолитным.
Создайте ноду SmoothThreshold. Её нужно подключить между нодами Saturate и Power.
Ноду Saturate подключите во вход Lerp Value ноды SmoothThreshold. Для входа Cutoff Value создайте новую Constant со значением 1, для входа Gradient создайте новую Constant со значением 0,01.
Все Constant можно перевести в Parameter. Для этого кликните по ним ПКМ и нажмите Convert to Parameter — это позволит создать Material Instance, чтобы в нём мы могли интерактивно контролировать наш материал.
Одна из ключевых фишек Stable Diffusion - умение преобразовывать различные изображения в соответствии с подсказкой. Нейросеть не может читать наши мысли и даже по подробному текстовому запросу не всегда выдает желаемое.
Например, я решил сделать персонажей для будущего проекта схожими с механикой Madness Combat - когда тело персонажа в основном находится под углом, а вместо рук и ног только кисти и ступни. Но саму стилистику более близкую к Battle Brothers.
● Первые проблемы
Помимо бокового ракурса я хотел добавить вид со спины и тем самым вставил себе в колеса еще больше палок. Дело в том, что нейросеть не понимает каким образом рисованы персонажи в Madness Combat и когда ты даешь ей схожие промты - получается сущий кошмар.
● Как подсказать задумку для нейронки
Именно тут на помощь приходит базовое умение рисовать. Используя любой графический редактор можно нарисовать корявую подсказку для нейросети. Я сделал набросок одежды с переднего и заднего ракурса, а дальше Stable Diffusion сделала мне готовые спрайты.
Взял голову с одного из старых промтов, сам нарисовал корявую версию затылка - нейросеть сделала адекватный вариант
Пробный вариант собранный из разных сгенерированных частей
Конечно - результат не идеален, но это куда лучше изначальных вариантов, который я рисовал самостоятельно. Остается собрать побольше частей и отредактировать их под общую стилистику, а дальше - анимация! К слову, именно для облегчения работы с анимацией я выбрал механику отдельных друг от друга частей тела.
Подписывайся на мой гоблинский блог, впереди еще больше интересного!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Всем привет! Сегодня разберем как сделать магазин скинов для игры на Unity. Это полный пошаговый гайд (туториал), где мы с вами с 0 создадим магазин скинов с разными категориями. Посмотрим на использование паттернов в коде, перенесем выбранного персонажа в игру, разберем оптимизации, адаптирование интерфейса и еще много всего. Будем использовать такие паттерны, как стратегия, фабрика и визитер, которые тут будут очень кстати. Также рассмотрим как вывести модельку персонажа на UI! Я долго работал над этим роликом, поэтому надеюсь он вам поможет для создания своей игры! Всем приятного просмотра)