Лайфхак №1
Выставление материалов прямо в редакторе
Фича проста до безумия (Закреп 1) - объявляем OnContruction (Закреп 2), в котором задаем материал, НО - если материала нет, то задаем какую-нибудь пустышку (WorldGrid или свою)
В целом все, но от себя добавлю: Так как опыт в С++ у меня уже был, то со временем стиль написания условий if-else стал более упрощенно-профессиональным (Финальный вариант в закрепе 3), поэтому не удивляйтесь таким фокусам :]
Такие условия называются if-with-initializer, а завезли нам эту подкормку в С++17 (2017). Поэтому чтобы сделать код немного читабельнее, подгрузку обьекта выношу прямо в условие if и там-же его сравниваю (смог ли я подгрузить объект?) и если да - то работаю с подгруженным объектом внутри.
Выставление материалов прямо в редакторе
Это не прям что-то сверхъестественное, но такая фича очень будет удобной для дизайнеров, а также решает одну особенность Unreal Engine - если на сцене изменить какой-нибудь компонент внутри блюпринта, то этот блюпринт перестает как-либо обновляться (не смотря на изменения основного в Content Browser)
Фича проста до безумия (Закреп 1) - объявляем OnContruction (Закреп 2), в котором задаем материал, НО - если материала нет, то задаем какую-нибудь пустышку (WorldGrid или свою)
В целом все, но от себя добавлю: Так как опыт в С++ у меня уже был, то со временем стиль написания условий if-else стал более упрощенно-профессиональным (Финальный вариант в закрепе 3), поэтому не удивляйтесь таким фокусам :]
Такие условия называются if-with-initializer, а завезли нам эту подкормку в С++17 (2017). Поэтому чтобы сделать код немного читабельнее, подгрузку обьекта выношу прямо в условие if и там-же его сравниваю (смог ли я подгрузить объект?) и если да - то работаю с подгруженным объектом внутри.
❤3🥰1💯1
Нашел небольшую интересную статью, советую почитать:
https://unrealengine.monster/take-your-time-wait-for-the-transition-to-ue-5-6/
https://unrealengine.monster/take-your-time-wait-for-the-transition-to-ue-5-6/
Unreal Monster
Не спеши: подожди с переходом на UE 5.6
Если ты увидел свежий релиз Unreal Engine 5.6 и сразу подумал: "Всё, пора обновляться!", — остановись.Я тоже так думал. Но давай поговорим честно: переход на новую версию движка не всегда даёт больше пользы, чем головной боли.
❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда у тебя нет проблем со здоровьем, у тебя есть 1000 проблем
Но когда у тебя есть проблемы со здоровьем, у тебя есть только 1 проблема
Примерно такие слова стоило мне раньше послушать, а не переводить свой режим сна в такую кашу, что я ложился в 4-5 часа утра, просыпался в 12-13 часов дня. Что хочу сказать... цените здоровье, и свой режим сна. И не доводите его до такого... А то сидеть с заложенным носом с температурой 37.5 как то не очень, знаете ли))
(П,С, Это я под температурой решил заняться кодом хахвхвхвав)
👍2😭1
Portal: Solver Alpha? Portal: Solver Alpha!
Да-да, пару дней не было постов из-за подготовки к анонсу, перенастройка Анрила, построение карт, дак еще болезнь прихватила меня (не нарушайте свой биоритм...) - По ходу дела расскажу, как была пройдена эта неделя хотфиксов, доработок и костылей.
А сейчас держите секрет создания таких прикольных проводов через код (блюпринты точнее-). Самое главное тут - галочка "Expose To Cinematics", которая добавляет настройку переменной через Сиквенсер. А дальше просто делаем плавный подьем от 0.0 до 1.0 (Дело Аниматора)
А также вы могли заметить странный перебор в тике, хоть конечно хотелось делать перебор от 0 до нужного индекса в массиве, но в блюпринтах нельзя напрямую получить объект из массива... (только какую-то копию объекта! Эпики вы что там нюхаете?!Я тоже хочу), поэтому пришлось делать перебор всего массива >:(
Ах да, не заметили эту замечательную "анимацию" проводов? Тогда глянем анонс еще раз! (тык) :)
Да-да, пару дней не было постов из-за подготовки к анонсу, перенастройка Анрила, построение карт, дак еще болезнь прихватила меня (не нарушайте свой биоритм...) - По ходу дела расскажу, как была пройдена эта неделя хотфиксов, доработок и костылей.
А сейчас держите секрет создания таких прикольных проводов через код (блюпринты точнее-). Самое главное тут - галочка "Expose To Cinematics", которая добавляет настройку переменной через Сиквенсер. А дальше просто делаем плавный подьем от 0.0 до 1.0 (Дело Аниматора)
А также вы могли заметить странный перебор в тике, хоть конечно хотелось делать перебор от 0 до нужного индекса в массиве, но в блюпринтах нельзя напрямую получить объект из массива... (только какую-то копию объекта! Эпики вы что там нюхаете?!
Ах да, не заметили эту замечательную "анимацию" проводов? Тогда глянем анонс еще раз! (тык) :)
❤3👍1🔥1
Лайфхак 2: Как сделать плавный переход, пренебрегая таймерам
Но чисто случайно, методом проб и ошибок, разработал решение - отправлять на видеокарту время начала перехода, а дальше переход будет делать видеокарта, разгружая процессор! Как никак видеокарта работает быстрее и четче
Расклад такой - в материале создаем скалярный параметр StartTime и задаем какое-нибудь отрицательное число, чтобы он не активировался по началу игры (Ноль - чтобы он активировался сразу, или просто положительное число, активируется через какое-то время после начала игры)
В этом и заключается особенность моего подхода, ибо теперь можно использовать прошедшее кол-во времени как альфа-значение для интерполяции и тд.
Думаю уже догадались как это использовать - создаете UMaterialInstanceDynamic (MID). Или же задейсвуем Material Parameter Collection Instance - тоже удобная вещь (напишу реализацию сразу двух способов)
Такой способ думаю очевидно выигрышный, ибо:
[+] Автоматическая синхронизация — Не зависит от тика или таймеров.
[+] Плавность — Использует встроенный (глобальный) и независимый Time
[+] Гибкость - Если правильно распределить значения, то можно сделать 2-х и 3-х этапные переходы из 1-го значения от 0 до бесконечности. В любом случае можно не ограничиваться диапазоном значений, а также не забываем про функции внутри самого материала - их гораздо больше и они более универсальные
[+] Автономная работа - Процессор только отправляет информацию о начале перехода, а дальше все делает видеокарта, разгружая процессор
Оптимизируемся :D
Возможно бывали проблемы, когда надо сделать плавный переход, интерполяцию (Как например затемнение). Использовать Tick - неплохое решение, но нагружает CPU. Таймеры? Та же история. Та и у способа с таймером есть проблема с "шагами", которая исправляется или увеличением вызова таймера, или использование тика. Но то и другое - нагрузка на CPU. Ситуация не очень...
Но чисто случайно, методом проб и ошибок, разработал решение - отправлять на видеокарту время начала перехода, а дальше переход будет делать видеокарта, разгружая процессор! Как никак видеокарта работает быстрее и четче
Расклад такой - в материале создаем скалярный параметр StartTime и задаем какое-нибудь отрицательное число, чтобы он не активировался по началу игры (Ноль - чтобы он активировался сразу, или просто положительное число, активируется через какое-то время после начала игры)
Поясню - Активация означает, что StartTime сравнялся с глобальным временем, а так как глобальное время идет дальше, а StartTime остается, то их разность будет давать кол-во секунд после активации.
В этом и заключается особенность моего подхода, ибо теперь можно использовать прошедшее кол-во времени как альфа-значение для интерполяции и тд.
Умножая - Вы ускоряете значение
Деля - Ограничиваете значение от 0 до 1, где 1 будет через столько секунд, сколько в делителе (3 класс не забыли? :D)
Думаю уже догадались как это использовать - создаете UMaterialInstanceDynamic (MID). Или же задейсвуем Material Parameter Collection Instance - тоже удобная вещь (напишу реализацию сразу двух способов)
Такой способ думаю очевидно выигрышный, ибо:
[+] Автоматическая синхронизация — Не зависит от тика или таймеров.
[+] Плавность — Использует встроенный (глобальный) и независимый Time
[+] Гибкость - Если правильно распределить значения, то можно сделать 2-х и 3-х этапные переходы из 1-го значения от 0 до бесконечности. В любом случае можно не ограничиваться диапазоном значений, а также не забываем про функции внутри самого материала - их гораздо больше и они более универсальные
[+] Автономная работа - Процессор только отправляет информацию о начале перехода, а дальше все делает видеокарта, разгружая процессор
Оптимизируемся :D
❤2🔥1
Forwarded from 𝐏𝐨𝐫𝐭𝐚𝐥: 𝐒𝐨𝐥𝐯𝐞𝐫
========
#news #special #offtop
========
========
Встречайте, 𝗘.𝗖.𝗛.𝗢. !
Ваш помощник и ассистент в 𝗔𝗯𝘀𝗼𝗹𝘂𝘁𝗲 𝗟𝗮𝗯𝗼𝗿𝗮𝘁𝗼𝗿𝗶𝗲𝘀
Предназначен для навигации и имеет самый базовый функционал, но тем не менее, окажется довольно полезным !
========
========
• 🧪 Принимает анкеты для вступления в Absolute Science
• 📢 Помогает найти Telegram Канал
• 💬 Помогает найти Discord Сервер
• ⬇️ Помогает найти GameJolt Страницу
========
@PortalSolver_bot
#news #special #offtop
========
========
Встречайте, 𝗘.𝗖.𝗛.𝗢. !
Ваш помощник и ассистент в 𝗔𝗯𝘀𝗼𝗹𝘂𝘁𝗲 𝗟𝗮𝗯𝗼𝗿𝗮𝘁𝗼𝗿𝗶𝗲𝘀
Предназначен для навигации и имеет самый базовый функционал, но тем не менее, окажется довольно полезным !
========
========
• 🧪 Принимает анкеты для вступления в Absolute Science
• 📢 Помогает найти Telegram Канал
• 💬 Помогает найти Discord Сервер
• ⬇️ Помогает найти GameJolt Страницу
========
@PortalSolver_bot
❤2🤩1
Теперь у нас есть тг-бот!
В дискорде у нас есть прием заявок на вступление в команду, но т.к. до дискорд сейчас не достучаться без особых методов, то слышали просьбы людей сделать прием заявок в тг - и этот день настал!
Бот полностьюнавайбкоден написан на Python с использованием библиотеки python-telegram-bot. Абсолютно простая логика работы, тяжелее было только Атому, который делал стилистику сообщений, ибо текст с форматированием Markdown2 выглядит супер-нечитабельно, но зато результат!
Дальше запуск этого шедевра на арендованном серваке за 140 рублей в месяц, там-то и пригодился мой бывший опыт работы с линукс на Raspberry Pi - SSH, apt, генерация ключей и тд.
В целом все, увидимся
(Кто будет спамить - лично приеду с толстым справочником по С++)
В дискорде у нас есть прием заявок на вступление в команду, но т.к. до дискорд сейчас не достучаться без особых методов, то слышали просьбы людей сделать прием заявок в тг - и этот день настал!
Бот полностью
Дальше запуск этого шедевра на арендованном серваке за 140 рублей в месяц, там-то и пригодился мой бывший опыт работы с линукс на Raspberry Pi - SSH, apt, генерация ключей и тд.
В целом все, увидимся
❤1🔥1