Лайфхак №0
Упрощенный способ вызов анимаций через код
Так вот, т.к.я ленивая жэпа это долго, то есть такой интересный способ:
- Будем использовать USkeletalMeshComponent, в котором уже есть необходимые инструменты для запуска анимаций (Закреп 1)
- Выставляем анимацию и запускаем (Закреп 2)
И результат на закрепе 3
Всем спасибо, хорошего дня!
Но это старый вариант - анимация будет вечно перезапускаться и странно себя вести если не доиграет (А я напомню - мы тут без сверхъестественного Animation Blueprint), так что введем небольшой хотфикс (Закреп 4):
- Перед заменой анимации на новую, с текущей анимации сохраняем позицию (на каком кадре)
- Заменяем анимацию на новую, выставляем ей скорость-направление
- И после (перед запуском) выставляем сохраненную позицию на новой анимации (Т.К. При выставлении новой анимации, позиция сбрасывается в 0, то есть в начало анимации)
- А затем можно и запустить проигрывание анимации
Как видно - новый вариант гораздо приятнее на глаз (Закреп 5), и реализуется без всяких Animation Blueprint и State Machines (Вот бы я знал это год назад, еще в Демо, эх...)
Упрощенный способ вызов анимаций через код
Знаете то осознание, когда нужно написать код для какой-нибудь кнопки, выдвижному ящику, дверной ручке или окну, а голову лезят идеи использовать Animation Blueprint, State Machines и десятки костылей?
Так вот, т.к.
- Будем использовать USkeletalMeshComponent, в котором уже есть необходимые инструменты для запуска анимаций (Закреп 1)
- Выставляем анимацию и запускаем (Закреп 2)
И результат на закрепе 3
Но это старый вариант - анимация будет вечно перезапускаться и странно себя вести если не доиграет (А я напомню - мы тут без сверхъестественного Animation Blueprint), так что введем небольшой хотфикс (Закреп 4):
- Перед заменой анимации на новую, с текущей анимации сохраняем позицию (на каком кадре)
- Заменяем анимацию на новую, выставляем ей скорость-направление
- И после (перед запуском) выставляем сохраненную позицию на новой анимации (Т.К. При выставлении новой анимации, позиция сбрасывается в 0, то есть в начало анимации)
- А затем можно и запустить проигрывание анимации
Как видно - новый вариант гораздо приятнее на глаз (Закреп 5), и реализуется без всяких Animation Blueprint и State Machines (Вот бы я знал это год назад, еще в Демо, эх...)
Я так заюзал почти во всех элементах игры, где нужен вызов простых анимаций (Панели, двери, кнопки и т.д.)
Но а так как я тот еще редкий вид активно-прокрастинирующих, то анимации на Солвер Гане тоже работаю через код - если новый формат постов приживется, то как-нибудь расскажу про это =]
🔥4
Абсолютно неожиданна ночная поездка на велосипеде
А потом спрашивают, почему я такой сонный :D
А потом спрашивают, почему я такой сонный :D
❤🔥8😁2😴1🆒1
Лайфхак №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