Animating Characters and Objects
Explore Unreal Engine’s animation and cinematic tools.
Choose your operating system:
Unreal Engine provides a wide variety of powerful tools for managing characters, creating cinematic content, and animating directly in the engine.
With the Skeletal Mesh Animation System, you can manage your imported characters, skeletons, and animations. This content can then be expanding to create interactive gameplay animation using various features such as Blend Spaces, Animation Blueprints, and State Machines. Cinematic sequences can be created using the Sequencer tool, where you can animate Cameras, characters, and effects. Animating characters can be accomplished using Control Rig, which is Unreal Engine’s built-in control rigging tool. Using Control Rig, you can build animator-friendly rigs which can be animated in Sequencer.
Explore the following pages to learn about the various animation tools and features within Unreal Engine.
Unreal Engine’s system for animation and controlling characters.
Sequencer is Unreal Engine’s multi-track editor used for creating and previewing cinematic sequences in real time.
Rig and Animate characters in real-time using Control Rig.
Retarget and procedurally adjust animations using IK Rig and Retargeting tools.
Paper 2D is a sprite-based system for creating 2D and 2D/3D hybrid games entirely within Unreal Engine 4.
Туториал по Unreal Engine. Часть 6: Анимация
Сегодня редко можно встретить игру без анимации, потому что она является важным аспектом передачи движения. Без анимации будет казаться, что персонаж не бежит, а скользит.
К счастью, Unreal позволяет быстро и удобно анимировать персонажей!
В этой части туториала вы научитесь следующему:
- Импортировать меш со скелетом
- Импортировать анимации
- Создавать Animation Blueprint для переходов между разными анимациями
- Выполнять плавные переходы анимаций
Примечание: этот пост является одной из восьми частей туториала, посвящённого Unreal Engine:
Приступаем к работе
Скачайте заготовку проекта и распакуйте её. В корневом каталоге есть папка Animation Assets. В этой папке находятся персонаж и анимации, которые мы будем импортировать.
Откройте проект, перейдя в папку проекта и запустив SkywardMuffin.uproject.
Примечание: если откроется окно, сообщающее, что проект создан в более ранней версии Unreal editor, то всё в порядке (движок часто обновляется). Можно или выбрать опцию создания копии, или опцию преобразования самого проекта.
Нажмите на Play, чтобы запустить игру. Цель игры заключается в том, чтобы коснуться как можно большего числа облаков, не упав. Чтобы прыгнуть на первое облако, нажмите левую клавишу мыши.
Вместо простого красного круга давайте будем управлять этим милым маффином:
Этот маффин имеет скелет, который позволяет нам анимировать его.
Что такое скелет?
В 3D-редакторах скелетом называется множество взаимосвязанных точек, называемых шарнирами. На рисунке ниже каждая сфера является шарниром.
Примечание: в Unreal используются взаимозаменяемые термины joint и bone.
Управляя этими шарнирами, можно создавать различные позы персонажа.
При переходе из одной позы в другую создаётся анимация.
Если создать ещё больше поз между предыдущими, можно получить что-то вроде такого:
В Unreal любой меш со скелетом называется Skeletal Mesh. Давайте начнём с импорта Skeletal Mesh для маффина.
Импорт Skeletal Mesh
Перейдите в Content Browser и зайдите в Characters\Muffin. Нажмите на Import и перейдите в SkywardMuffinStarter\Animation Assets. Выберите SK_Muffin.fbx и нажмите Open.
В окне импорта перейдите в раздел Mesh и снимите флажок с опции Create Physics Asset. Physics Asset помогает создать эффект рэгдолла. В этом туториале мы не будем его использовать, поэтому он нам не понадобится.
В проекте уже содержится материал и текстура маффина, поэтому импортировать их не нужно. Снимите флажки с опций Import Materials и Import Textures.
Все остальные настройки оставьте по умолчанию и намжите на Import. При этом создадутся следующие ассеты:
- SK_Muffin: ассет Skeletal Mesh. Это просто меш со ссылкой на ассет Skeleton.
- SK_Muffin_Skeleton: ассет Skeleton. Он содержит список шарниров и другую информацию, например, об их иерархии.
Использование Skeletal Mesh
Прежде чем использовать новый Skeletal Mesh, нужно дать ему материал, чтобы он не был просто серым пятном. Дважды щёлкните на SK_Muffin, чтобы открыть его.
Перейдите в панель Asset Details и найдите раздел Material Slots. Назначьте материал M_Muffin и закройте SK_Muffin.
Теперь давайте используем SK_Muffin в качестве персонажа игрока. Вернитесь в Content Browser и дважды щёлкните на BP_Muffin, чтобы открыть его.
Перейдите к панели Components и выберите компонент Mesh (Inherited). Переключитесь на панель Details и найдите раздел Mesh. Для свойства Skeletal Mesh выберите значение SK_Muffin.
Нажмите на Compile и вернитесь в основной редактор. Нажмите на Play, и вы сможете управлять в игре маффином!
Игра уже выглядит намного лучше! Следующим шагом будет импорт анимаций, которые вдохнут в маффин жизнь.
Импорт анимаций
Перейдите в Content Browser и нажмите на Import. Перейдите в SkywardMuffinStarter\Animation Assets. Выберите следующие файлы:
- SK_Muffin_Death.fbx
- SK_Muffin_Fall.fbx
- SK_Muffin_Idle.fbx
- SK_Muffin_Jump.fbx
- SK_Muffin_Walk.fbx
В окне импорта перейдите в раздел Mesh и снимите флажок с опции Import Mesh. Благодаря этому Skeletal Mesh не будет импортирован снова.
Теперь проверьте, что свойство Skeleton имеет значение SK_Muffin_Skeleton. Это определяет скелет, который будет использоваться в анимации.
Затем нажмите на Import All. Так вы импортируете все анимации с только что указанными настройками.
Теперь, когда у нас есть все анимации, нам нужен способ их воспроизведения. Можно воспользоваться для этого Animation Blueprint.
Создание Animation Blueprint
Animation Blueprint похож на обычный Blueprint. Однако в нём также есть граф, предназначенный только для задач анимации.
Чтобы создать его, перейдите в Content Browser и нажмите на кнопку Add New. Выберите Animation\Animation Blueprint.
Во всплывающем окне найдите свойство Target Skeleton и выберите SK_Muffin_Skeleton. Затем нажмите на кнопку OK для создания Animation Blueprint.
Переименуйте ассет в ABP_Muffin. После этого дважды щёлкните на нём, чтобы открыть его в Animation Blueprint editor.
Animation Blueprint Editor
The Animation Blueprint editor похож на Blueprint editor, но в нём есть четыре дополнительных панели:
- Anim Graph: это специальный граф для анимаций. Здесь воспроизводятся все анимации.
- Preview Scene Settings: эта панель позволяет настраивать сцену предварительного просмотра во Viewport
- Anim Preview Editor: создаваемые переменные также будут отображаться здесь. Используйте эту панель для предварительного просмотра того, как влияют ваши переменные на конечную анимацию.
- Asset Browser: эта панель содержит список анимаций, которые может использовать текущий скелет.
Что такое конечный автомат?
Конечный автомат — это набор состояний и правил. В нашем туториале можно считать состояние анимацией.
Конечные автоматы одновременно могут находиться только в одном состоянии. Для перехода в следующее состояние должны выполняться определённые условия, задаваемые правилами.
Ниже представлен простой пример конечного автомата. В нём показаны состояния прыжка и правила перехода в каждое состояние.
Состояния могут иметь и двустороннюю взаимосвязь. В представленном ниже примере состояния Jump и Fall могут переходить друг в друга.
Без этой двусторонней связи персонаж не смог бы выполнять двойной прыжок, потому что он мог бы переходить в состояние Jump только из состояния Idle.
Ну, довольно о конечных автоматах, давайте уже займёмся их созданием.
Создание конечного автомата
Перейдите в Anim Graph и нажмите правой клавишей мыши на пустой области. В меню выберите Add New State Machine.
Это добавит в граф нод State Machine. Переименуйте State Machine в Locomotion. Затем соедините конечный автомат Locomotion с нодом Final Animation Pose.
Теперь конечный автомат Locomotion будет определять конечную анимацию маффина.
Дважды щёлкните на конечном автомате Locomotion, чтобы открыть его. Внутри вы увидите нод Entry.
Соединённое с этим нодом состояние является состоянием по умолчанию. В нашем туториале состоянием по умолчанию будет анимация ожидания. Создайте это состояние, нажав правой клавишей мыши на пустой области графа. В меню выберите Add State и переименуйте его в Idle.
Теперь нужно соединить нод Entry с состоянием Idle. Перетащите контакт Entry к серой области состояния Idle. Отпустите левую клавишу мыши, чтобы соединить их.
При создании состояния через контекстное меню с ним не будет связана никакая анимация. Давайте это исправим.
Привязывание анимации к состоянию
Дважды щёлкните на состоянии Idle, чтобы открыть его.
Чтобы привязать анимацию, перейдите в Asset Browser и перетащите анимацию SK_Muffin_Idle. Отпустите левую клавишу мыши на пустой области графа, чтобы добавить её.
Затем присоедините нод Play SK_Muffin_Idle к ноду Final Animation Pose.
Для использования Animation Blueprint нам нужно обновить BP_Muffin.
Использование Animation Blueprint
Нажмите на Compile и переключитесь на BP_Muffin.
Перейдите в панель Components и выберите компонент Mesh (Inherited). Перейдите в панель и найдите раздел Animation.
Выберите для Animation Mode значение Use Animation Blueprint. Для Anim Class выберите значение ABP_Muffin.
Теперь Skeletal Mesh в качестве своего Animation Blueprint будет использовать ABP_Muffin.
Нажмите на Compile и закройте BP_Muffin. Перейдите в основной редактор и нажмите на Play, чтобы проверить Animation Blueprint. Поскольку Idle является состоянием по умолчанию, маффин сразу же использует анимацию ожидания.
В следующем разделе мы создадим состояния для прыжков и падения.
Создание состояний прыжка и падения
Вернитесь к ABP_Muffin и переключитесь к графу конечного автомата Locomotion. Это можно сделать, нажав на слово Locomotion, расположенное в верхней части графа.
Вместо создания состояния и привязки к нему анимации можно создать состояние с уже привязанной анимацией. Давайте сделаем так для состояния прыжка.
Перейдите в Asset Browser и перетащите анимацию SK_Muffin_Jump. Отпустите левую клавишу мыши на пустой области графа. Это создаст состояние с уже привязанной к нему анимацией.
Переименуйте состояние в Jump.
Повторите процесс с анимацией SK_Muffin_Fall и переименуйте состояние в Fall.
Теперь у нас есть три состояния: Idle, Jump и Fall.
Теперь мы свяжем состояния друг с другом. Это можно сделать, перетащив серую область состояния, из которого нужно выполнить переход. Отпустите левую клавишу мыши на серой области целевого состояния для создания перехода.
Создайте следующие переходы:
- Из Idle в Jump
- Из Jump в Fall
- Из Fall в Jump
- Из Fall в Idle
Теперь, когда у нас есть переходы, нужно задать условия, при которых они происходят. Это можно сделать с помощью правил переходов (Transition Rules).
Transition Rules
Этот значок обозначает правило перехода (Transition Rule):
Каждое правило перехода содержит нод Result с единственным булевым входом.
Если этот вход равен true, то происходит переход.
Далее нужно создать переменные, сообщающие нам, прыгает или падает игрок. Мы применим эти переменные в правилах переходов.
Определяем, прыгает персонаж или падает
Создайте две булевы переменные с названиями IsJumping и IsFalling.
Во-первых, мы зададим значение IsJumping. Переключитесь на Event Graph и найдите нод Event Blueprint Update Animation. Этот нод работает подобно ноду Event Tick.
Чтобы проверить, прыгает ли персонаж, создадим следующую схему:
Так мы проверим, больше ли нуля скорость персонажа по оси Z. Если это так, то персонаж прыгает, а IsJumping должна принимать значение true.
Примечание: приведите её к классу, который будет использовать Animation Blueprint. Это очень важно для того, чтобы можно было предварительно просматривать переменные с помощью Anim Preview Editor.
Чтобы проверить, падает ли персонаж, нам достаточно выполнить противоположную проверку. Добавьте выделенные ноды:
Теперь IsFalling будет равна true, когда скорость по Z персонажа меньше нуля.
Настало время использовать эти переменные для задания правил переходов.
Определение правил переходов
Во-первых, нам нужно задать правило перехода Idle to Jump. Переключитесь обратно к конечному автомату Locomotion. Дважды щёлкните на правиле перехода Idle to Jump, чтобы открыть его.
Создайте нод IsJumping и соедините его с нодом Result.
Теперь состояние Idle может переходить в состояние Jump, когда IsJumping равно true.
Повторите процесс для правил переходов Jump to Fall и Fall to Jump. Используйте следующие переменные:
- Из Jump в Fall: IsFalling
- Из Fall в Jump: IsJumping
Теперь состояния Jump и Fall могут переходить друг в друга.
Осталось назначить ещё одно правило перехода. Откройте правило перехода Fall to Idle.
Для перехода в состояние Idle игрок не должен прыгать или падать. Чтобы выполнить эту проверку, можно использовать нод NOR. Этот нод возвращает true только когда оба входа имеют значения false.
Создайте нод NOR и соедините с ним нод IsJumping и IsFalling. После этого соедините нод NOR с нодом Result.
Теперь состояние Fall может переходить в состояние Idle, когда IsJumping и IsFalling равны false.
Нажмите на Compile и вернитесь в основной редактор. Нажмите на Play для проверки переходов.
Примечание: также вы можете проверить переходы, изменяя переменные в Anim Preview Editor.
Пока маффин при движении по земле только скользит, потому что мы ещё не применили анимацию ходьбы!
Вместо создания нового состояния для ходьбы можно смешать его с анимацией ожидания с помощью Blend Space.
Что такое Blend Space?
Blend Space — это тип анимационного ресурса. Он выполняет интерполяцию между разными анимациями на основании входных значений. В этом туториале мы будем использовать в качестве входных данных скорость игрока.
Blend Space также помогают упростить конечные автоматы. Вот как будет выглядеть конечный автомат Locomotion, если не использовать для ходьбы Blend Space:
Благодаря Blend Space достаточно просто заменить анимацию ожидания.
Теперь, когда вы познакомились с магией Blend Space, настало время создать его.
Создание Blend Space
Перейдите в Content Browser и нажмите на Add New. Выберите Animation\Blend Space 1D.
Примечание: разница между Blend Space и Blend Space 1D заключается в том, что у первого есть два входа. Последнее имеет только один вход.
Во всплывающем окне выберите SK_Muffin_Skeleton.
Переименуйте ассет в BS_IdleWalk и дважды щёлкните на нём, чтобы открыть его в Animation editor.
Когда откроется Blend Space, вы увидите панель в нижней части экрана. Это Blend Space editor, в котором мы будем добавлять анимации.
Давайте добавим анимации в Blend Space.
Добавление анимаций в Blend Space
Во-первых, нужно изменить имя значеняи оси (входа). Перейдите в панель Asset Details и найдите раздел Axis Settings. Измените свойство Horizontal Axis\Name на Speed.
Теперь мы добавим анимации. Перейдите в Asset Browser и перетащите анимацию SK_Muffin_Idle. Переместите её влево на сетке Blend Space, чтобы она привязалась к значению 0.0. Отпустите левую клавишу мыши, чтобы добавить анимацию.
Примечание: для отображения названий анимаций нажмите на значок метки в верхнем левом углу сетки Blend Space.
После этого добавьте анимацию SK_Muffin_Walk в значение 100.0.
Теперь Blend Space будет смешивать анимации ожидания и ходьбы в зависимости от входного значения. Если входное значение равно 0, то будет воспроизводиться только анимация ожидания. Если входное значение равно 100, то будет воспроизводиться только анимация ходьбы. Все промежуточные значения будут смешиваться.
Примечание: эти значения выбраны произвольно. Например, можно изменить максимальное значение, сделав его равным 500. В этом случае анимация ходьбы будет воспроизводиться только при более высоких скоростях.
Можно изменять значения раздела Axis Settings в панели Asset Details.
Настало время использовать Blend Space.
Применяем Blend Space
Закройте BS_IdleWalk и откройте ABP_Muffin. Переключитесь на конечный автомат Locomotion и откройте состояние Idle.
Во-первых, удалите нод Play SK_Muffin_Idle.
Затем добавьте Blend Space BS_IdleWalk с помощью перетаскивания. Соедините нод BS_IdleWalk с нодом Final Animation Pose.
Теперь BS_IdleWalk будет воспроизводиться автоматически, потому что является состоянием по умолчанию. Однако оно будет отображать только анимацию ожидания. Так происходит потому, что вход Speed остаётся равным 0.
Чтобы исправить это, нужно передать ему скорость игрока.
Получение скорости игрока
Создайте новую переменную типа float с именем Speed. Затем переключитесь на Event Graph.
Добавьте новый контакт к ноду Sequence, а затем добавьте к нему выделенные ноды:
Эта схема будет постоянно приравнивать переменную Speed к значению скорости игрока.
Переключитесь обратно к графу состояния Idle. Соедините переменную Speed со входом Speed нода BS_IdleWalk.
Теперь сможет BS_IdleWalk выполнять смешивание между анимациями ожидания и ходьбы.
Нажмите на Compile и вернитесь в основной редактор. Нажмите на Play, чтобы протестировать Blend Space.
Есть ещё одна анимация, которую нам нужно использовать: анимация смерти!
Использование анимации смерти
В этой игре можно умереть только в состоянии Idle (на земле). Однако давайте представим, что игрок может умереть в любом состоянии. Первой мыслью будет создать состояние Death и соединить с ним все состояния. Так можно сделать, но это быстро приведёт к запутанному графу.
Решением может стать использование нода Blend Poses by bool. Этот нод может переключаться между двумя анимациями в зависимости от значения входного булева значения.
Прежде чем создать этот нод, нам нужна переменная, содержащая статус смерти игрока.
Проверяем, умер ли игрок
Вернитесь назад к ABP_Muffin и создайте переменную типа boolean под названием IsDead. Затем переключитесь на Event Graph.
Добавьте новый контакт к ноду Sequence, а затем добавьте к нему выделенные ноды:
Так мы зададим переменную IsDead, зависящую от состояния смерти игрока.
Затем мы воспользуемся нодом Blend Poses by bool.
Использование нода Blend Poses by Bool
Переключитесь на Anim Graph и добавьте анимацию SK_Muffin_Death. Выбрав её, перейдите в панель Details и снимите флажок со свойства Loop Animation.
Благодаря этому анимация смерти будет проигрываться только один раз.
Затем создайте нод Blend Poses by bool.
Выберите нод Blend Poses by bool и перейдите в панель Details. В разделе Option поставьте флажок на свойстве Reset Child on Activation.
Поскольку анимация смерти проигрывается всего один раз, эта опция гарантирует, что анимация сбрасывается перед воспроизведением.
Наконец, добавьте переменную IsDead и соедините всё следующим образом:
Теперь если переменная IsDead будет равна true, то начнёт воспроизводиться анимация смерти. Если IsDead равно false, то будет воспроизводиться текущая анимация конечного автомата Locomotion.
Нажмите на Compile и закройте ABP_Muffin. Нажмите на Play и протестируйте новую анимацию смерти!
Куда двигаться дальше?
Скачать готовый проект можно здесь.
Теперь игра выглядит гораздо более качественной, не так ли? На основе уже полученных знаний можно сделать многое, но это ещё не конец! Изучите страницу Skeletal Mesh Animation System документации Unreal Engine. Здесь можно узнать о других типах анимационных ассетов и о способах их использования.
Если вы хотите продолжить обучение, то читайте следующую часть туториала, в которой я покажу вам, как добавлять в игру музыку и звуковые эффекты.
Как я делаю реалистичную короткометражку по Top Gun в Unreal Engine 5 — вторая часть
Я продолжаю работать над препродакшеном своей короткометражки Top Gun: Zero Point (я работаю режиссёром катсцен и такой движ часть моей профессиональной деятельности, а первую часть дневников разработки можно прочитать вот тут). За прошедшие два месяца я успел сделать довольно много важных вещей, но начнём с самого важного и красивого — я подготовил proof of concept пересняв несколько шотов из Top Gun Maverick — не все детали повторяются в точности до идеала, но общее ощущение киношности, движения самолётов и связанных с ними эффектов вполне удалось воссоздать и я доволен результатом. В процессе удалось научиться оч многому, но самое важное — как работать с анимацией самолётов и чувствовать их физику. Совет, который для кого-то будет очевидным, но я всё же им поделюсь — если анимацию людей обычно дорабатывают под камеру, то с анимацией самолетов, машин и тд лучше работать полностью на локации, а потом уже финализировать камеру под анимацию, а не наоборот, это очень важно. Собственно, сами шоты:
Довольно простой шот — лэндскейп собран буквально из пары скал мегасканов, базовая настройка атмосферы и несложные движения самолётов. Было приятно проверить свой глазомер — линзы я подбирал анализирую и сопоставляю картинку с движением внутри кадра и прикрепленная камера вышла по объективу на 12мм. И как же мне было приятно, когда я нашел информацию про использованные на самолётах линзы и там как раз упомяналась 12шка.
Этот кадр я уже показывал в первом дневнике, но теперь я добился в нём максимальной схожести — убрал форсаж с движком оставив исключительно прогрев, проработал движение спойлеров (на эти 5 секунд ушло где-то два часа работы тыкать оси ротейшена туда сюда) и подобрал более подходящую линзу.
И наконец-то самый сложный шот — с ним я провозился 8 часов, потому что у меня вообще не получалось сделать плавный прокрут самолёта по нужным осям. Кейшоты которые я проставил по позам по ходу движения автоматически создавали расколбас самолёта в разные стороны и пришлось долго думать какие оси как должны повернуться. Зато с воздухом на корпусе всё оказалось очень просто — недавно Epic раздали бесплатно Fluid Ninja FX Tools в котором можно генерировать 2D эффекты разного рода симуляций частиц и довольно быстро получил то, что мне нужно и даже без использования объемных эффектов результат выглядит достойно!
Важная вещь, которую я понял по ходу съемок этих шотов — когда снимаешь самолёт издалека, надо заходить на территорию супер-телевиков (100-150мм) потому что только с ними можно получить хороший параллакс движения фона. По сути я выбрал эти линзы просто поразмыслив — самолёт с которого шла съемка этих кадров в реальной жизни не может особо близко подлетать к самолётам в кадре, поэтому для подобной крупности явно использовались очень узкие линзы. И да, на деле всё оказалось именно так 🙂
Пилоты и их эмоции важнейшая часть ощущения динамики воздушного боя и я не имею права обойти стороной этот момент. Как вы помните из первой части дневников я уже разобрался как мне запилить реалистичного Питта Миттчела (Тома Круза) внутрь движка, но теперь я еще и могу делать реалистичные эмоции ему и любому другому персонажу, который будет «сниматься» в моем коротком метре.
Я успел повозиться с LiveLink Face — программа для съемки лицевой анимации через Face ID камеру iPhone которая пишет напрямую в Unreal Engine — она даёт довольно слабый результат передачи деталей движений лица несмотря на любую калибровку и требует безумной доработки анимации руками. Я пробовал инудстриальные стандарты в виде Faceware Studio и Dynamixyz — они довольно неудобные в обращении и с ними сложно работать не специалисту по лицевой анимации, в итоге сырой результат тоже нужно сильно дорабатывать. Но тут я наткнулся на Facegood — решение для переноса лицевой анимации от китайской компании Avatary и оно оказалось БЕЗУМНО удобным. Вкратце — пишешь лицо на камеру как это происходит с Faceware и Dynamixyz, трекаешь движения бровей, глаз, губ и носа в софте с user-friendly интерфейсом имея возможность поправить каждый кадр по трекингу и дальше переносишь всё в Maya с ретаргетом на свою модель — главное иметь хороший лицевой риг (я использую MetaHuman) и надо всего лишь выставить несколько ключевых поз лица под видео и все остальное сделает программа — и вот уже лицевая анимация отрабатывает на твоём персонаже с 90% идентичностью твоей видео-записи. При этом анимация переносится в Unreal Engine прямо на лицевой риг и ты очень быстро можешь подкорректировать все неточности и добиться ААА-качества лицевой анимации! Ниже в видео записал весь процесс работы с Facegood:
Главный затык в этом всём — мокап шлем, потому что студийные шлемы стоят по 2 штуки баксов, а значит надо делать самому, но нормально! Мне нужно было достичь одного — чтобы шлем весил по минимуму, потому что мне с ним записывать довольно много, а грыжу шейных позвонков я заработать не хочу (про такое рассказывал каскадёр снимавшийся в Хардкоре Ильи Найшуллера — у них были тяжелые спортивные шлемы с GoPro на них и дело дошло до операции). И решение оказалось довольно простым — каска сварщика, карбоновые стрелы и 3D детали для соединения всего, которые я могу распечатать на 3D принтере.
IK Rig или любая анимация своему персонажу на Unreal Engine 5
После выпуска предыдущего ролика про пересадку анимации на Unreal Engine с одного персонажа на другого вышла пятая версия движка и полностью поменяла ВСЮ логику ретаргета.
А как же она теперь работает — будем разбирать в новом видеоролике по IK ригу!
Приятного просмотра и хорошего дня!
41 пост 634 подписчика
Правила сообщества
Общие правила:
— Уважайте чужой труд и используйте конструктивную критику
— Не употребляйте мат без необходимости
— Не занимайтесь саморекламой, пишите качественные и интересные посты
Что публиковать:
— Пост о Вашей игре, желательно — с историей разработки и описанием полученного опыта
— Красивые скриншоты или видео, показывающие процесс создания (если проект не ваш, то укажите авторство)
— Ваши инструменты для разработки
— Обучающие посты, уроки
— Интервью с разработчиками
— Анонсы бесплатных мероприятий для разработчиков и истории их посещения
Что не публиковать:
— Посты, единственная цель которых — набор команды для разработки игры по вашей гениальной идее
— Посты, не относящиеся к тематике сообщества
(Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту)
— Публиковать бессодержательный пост с рекламой проекта или любой другой интеграцией (см. следующий пункт)
— Выдавать чужой труд за свой
— Призывать перейти куда-либо или сделать что-либо
(Подобные посты будут удалены, а авторы будут внесены в игнор-лист сообщества)
Ссылка внутри поста может быть размещена 1 раз и только при условии соответствия хотя бы одному из пунктов:
— Пост должен быть содержательным и интересным для пользователей
— Пост имеет скриншот или видеодемонстрацию вашего проекта или этапов разработки проекта
— Пост содержит полезный обучающий контент
имхо не надо постоянно своё лицо показывать, светани в начале, если прям неймется, а потом дай нормально видос посмотреть
Делаешь стартап, разрабатываешь его лет 5 под ios2, а Apple ХУЯКС и выпускает IOS 15 с твоей идеей стартапа из под коробки.
Тебе бы поспать, глаза вон красные какие, не бережешь себя, все о народе думаешь.
[1] RPG 2D multiplayer в Unreal Engine 5. Создание проекта
Всем привет, с данного видео начнет создавать 2D RPG игру с мультиплеером на Unreal Engine 5.
Ещё одно очень полезное видео для блендера в копилочку)
Работал недавно над своим проектом и столкнулся с такой проблемой на этапе моделирования что нужно создать множественные деформации, но делать их в ручную мне не хотелось.
Конечно же полез искать решение проблемы в ютубе, в итоге нашёл вот такое видео которое мне очень помогло, решил поделиться с вами.
Надеюсь вы тоже упростите свои задачи с помощью этого ролика)
Ещё один пост посвящённый туториалу в блендере
На этот раз не глобальный туториал, но полезный.
В видео показан способ быстрого создания low poly камня, этот способ может пригодится для создания камней в стилизованных сценах.
Желаю всем успехов на своём пути, особенно тем кто развивается в компьютерной графике с моей помощью 😉
Тишина
Автор оригинального фото, использованного для сцены — Юлиана Носова (но это не точно)
[9] Самый полный курс по созданию AI в Unreal Engine 5. Behavior Tree. Знакомство
В данном видео познакомимся с Behavior Tree и пропишем базовую логику пассивного поведения NPC.
[6] Самый полный курс по созданию AI в Unreal Engine 5. Отладчик AI, AIPerception, зрение NPC
В данном видео добавим компонент AIPerception, в котором хранятся чувства AI(зрение, слух и т.п.). Добавим зрение для NPC, а также посмотрим что из себя представляет отладчик AI.
[4] Самый полный курс по созданию AI в Unreal Engine 5. Работа с Blackboard и AIController
В данном видео поработаем с blackboard, создадим в нем нужные ключи. Также создадим функции в AIController, которые будут менять состояние(поведение) NPC.
Покемоны нарисованные нейросетью
NO.SIX
Здравствуйте, хочу с вами поделиться еще одной моделью, делал ее тоже уже давненько. Сделана она по концепту Heng Z.
А вот этот концепт от Heng Z, по которому я делал
Heartbeat animation
Недавно я опубликовала работу, которую сделала на 8-ом месяце самостоятельного обучения 3D. Сейчас показываю анимацию, которую удалось сделать на 2-м месяце
Убытие
Видео прогресса. К сожалению автора оригинального снимка, на основе которого создана сцена, я найти не смог.
[1] Perceptive AI в Unreal Engine 5 | Самый полный курс по созданию AI в Unreal Engine 5
Начинаем курс по созданию Perceptive AI в Unreal Engine 5. В ходе этих видео мы создадим AI для шутера, в котором NPC будут полагаться на свое зрение, а также реагировать на шум, что можно использовать для стелс системы. Во второй части мы разработаем AI для PRG, который будет полагаться на зрение, а также на получение урона.
В данном видео произведем базовую настройку. Добавим необходимые ассеты, а также создадим AIController, который необходим для NPC. Также понадобятся BlackBoard и Behavior Tree.
Пистолет дракон
Данная работа была сделана на конкурс. Целью было создать пистолет «золотого века пиратства». Хотелось сделать что-то интересное в стиле фэнтези
Вся модель была создана в Blender. Текстуры нарисованы в Substance painter.
12K полигонов. Ниже ссылка на скачивание
Модель можно использовать в любых целях
В файле Low/Hight poly модели и текстуры 2К
Осваиваю Unreal Engine 5
Мой первый ландшафт.
Бесплатно помогаю пикабушникам учить программирование, часть 31: «Заключительная»
Подведем итоги
— 46 человек обучились до уровня стажера/младшего разработчика.
— 3 человека сейчас на этапе прохождения собеседований в несколько компаний.
— 8 человек прошли какую-то часть плана обучения, но перешли во фронтенд.
— 3 человека обучились до уровня стажера, поработав несколько месяцев и ушли в DevOps.
К сожалению я больше не могу продолжать заниматься этим проектом по некоторым личным причинам. Поэтому, с сегодняшнего дня, я передаю все права на телеграм-канал и чат Вадиму, который является автором канала «Хороший программист». Поскольку хороших отзывов о его курсе было достаточно много, думаю это правильное решение.
Благодарю за помощь всех, кто помогал мне всё это время а новичкам желаю успехов и легких собеседований. Всем пока.
P.S. рекомендую активным ученикам сохранить необходимые ссылки из плана обучения. Его я скоро удалю.
Лето в UE5
Решила научиться двигать пиксели, больно не бейте, пожалуйста. Первый опыт, с часовыми сидениями над 10 минутными туториалами, чтобы понимать как это работает. Что-то удалось победить, что-то никак не хотело получаться. Ещё видеокарта периодически ругалась, что не хватает 2,5 Гб памяти.
Знаю, что есть проблемы с материалами, особенно со стеклом, количество кадров, движения камеры и ракурсы не всегда правильные. Да и после просмотров роликов, сделанных профессионалами, можно сказать, что этот ролик так, на троечку, с минусом. А для меня это был невероятный опыт и очень захотелось поделиться этим опытом.
Архитектура придумана и сделана мной, монтаж мой, модели мебели из интернета.
Тот самый остров
Я тоже сделала тот самый остров, который обычно делают все при изучении Blender. Я решила зайти чуточку дальше, сделав небольшую анимацию)
КАК СОЗДАВАЛСЯ ФИЛЬМ "Я — ЛЕГЕНДА"
ПРЕПРОДАКШЕН
Новелла Ричарда Мэтисона будоражила умы кинематографистов ни одно десятилетие. Впервые ее экранизировали в 1964 году в Италии, а спустя семь лет на экраны вышел и голливудский вариант с Чарльтоном Хестоном в главной роли. В первой половине 90-х проект разрабатывался Ридли Скоттом с прицелом на участие Арнольда Шварценеггера, но из-за разногласий по бюджету фильму так и не был включен зеленый свет. В конечном итоге права перекочевали на студию WarnerBrothers, по заказу которой Акива Голдсман («Игры разума») написал сценарий. На главную роль утвердили Уилла Смита, который к 2006 года закрепился в статусе мировой кинозвезды. В режиссерское кресло усадили Френсиса Лоуренса – постановщика комикса «Константин: Повелитель тьмы». Действие романа перенесли из Лос-Анджелеса в Нью-Йорк, образ которого должен был претерпеть кардинальные изменения при помощи компьютерной графики. Съемки проходили на улицах мегаполиса и в настоящих помещениях, а не студийных павильонах. Предварительно все сцены действия прошли превизуализацию. Превизы также создавались и в ходе самих съемок. Вампиров из романа превратили в мутантов. Первоначально их должны были играть актеры в пластическом гриме, но из-за нехватки времени на утверждение дизайна и неудавшийся тест с беготней статистов для одной из сцен, студия решила создавать этих существ в 3D. Таким образом, число планов с компьютерной графикой увеличилось с 400 до 800.
Открывающая фильм сцена с пустынным Нью-Йорком является не только визитной карточкой проекта, но и квинтэссенцией творческих задач, которые были поставлены перед съемочной группой. Отдельные кадры снимались на перекрытых улицах Нью-Йорка, которые впоследствии вычищались от всего лишнего, в том числе от наличия в кадре людей на заднем плане и любых признаков жизни. Общие планы с проездом автомобиля перестраивались с использованием геометрии зданий, воссозданных по фотографиям Манхэттена и материалов лидарного сканирования. Кадры с проходом через пшеничное поле с видом на Тайм-сквер снимались в павильоне. Задний план тут целиком был воссоздан средствами графики. К слову, основным VFX-вендором была выбрана студия SonyImageworks, удостоенная премии «Оскар» за визуальные эффекты к «Человеку-пауку 2». Сцена с бруклинским мостом снималась на настоящей локации. Известно, что на тот момент этот эпизод был самым дорогим из когда-либо снимавшихся в Нью-Йорке. Съемки обошлись в 5 миллионов долларов из-за привлечения огромного числа статистов. Все разрушения, конечно же, реализовывались средствами компьютерной графики, о которой пришло время поговорить.
Видеоверсия статьи
ПОСТПРОДАКШЕН
«Я-Легенда!» — топовый кинопроект в плане визуальных эффектов, который вместил в себя решение абсолютно всех задач в области компьютерной графики и анимации. Упомянутые превизы использовались для постановки экшена. Трекинг применялся для отслеживания движения камеры с последующим композитингом трехмерных объектов в сцену. Достройка фонов при помощи техник deep compositingи mattepainting также нашли свое применение. Наконец, симуляции динамики твердых тел и персонажная анимация. Например, модель моста для кадров с обрушением воссоздали в Houdini, чтобы затем расшатать его и обрушить. Трехмерщики применили симуляцию динамики твердых тел и процедурные настройки. Помимо этого специалисты симулировали дым, брызги и обломки. Даже спустя 15 лет после выхода на экраны этот эпизод смотрится впечатляюще и зрелищно.
Мутантов на площадке играли актеры в серых костюмах с датчиками для захвата движений. Мокап данные собирались, вычищались и дорабатывались аниматорами, которые работали в AutodeskMaya. Кожа существ имела подробную текстуру, написанные программистами шейдера и всегда визуализировалась с эффектом подповерхностного рассеивания. На тот момент качество графики и анимации было на хорошем уровне, но сейчас в облике и движениях этих персонажей чувствуется вымученность и искусственность. Все—таки антропоморфные существа – ахиллесова пята трехмерной анимации, когда требуется реализм без примеси стилизации.
Дизайн трехмерных мутантов был создан в студии Tatopoulus Design Studios. После согласования предложенного образа мастера студии вылепили скульптуры мужской и женской особи в масштабе 1:4. Что касается физиономий мутантов, то их создали в натуральную величину. Впоследствии скульптуры сканировались и моделлеры уже работали с оцифрованными моделями, которые модифицировались и подготавливались под анимацию. Оживление мутантов производилось и использованием упомянутой чуть ранее техники захвата движений. Лицевая же анимация редактировалась с применением ключевых кадров.
Бешеные крысы также создавались в графике и анимировались в пакете AutodeskMaya. Примечательно, что одним из живых референсов для аниматоров послужил задиристый хомяк их коллеги, а не домашняя крыса, отличавшаяся чересчур спокойным поведением. Специалисты потратили довольно много времени на поиск нужного поведенческого паттерна, который бы показал опасность инфицированной особи крысы без намеков на комичность.
Финальное сражение
Главный герой похищает самку мутантов, после чего его дом атакуют 150 особей. В финальной битве приняло участие максимальное количество анимированных персонажей. В этих кадрах действовали, как модели оживленные при помощи техники захвата движений, так и по ключевым кадрам. В тех случаях, когда в кадре присутствовали одновременно до 40 особей, их оживляли с использованием программного комплекса Massive и агентов искусственного интеллекта, которых визуально подгоняли под утвержденный образ мутантов. Взрывы в момент прорыва через парк – это пиротехнические эффекты, которые дорабатывали средствами композитинга при добавлении в кадры.
Работа над визуальными эффектами была окончена за один месяц до премьеры. Фильм «Я-легенда!» понравился как зрителям, так и кинокритикам. В кинотеатрах лента заработала более 585 миллионов долларов при официальном бюджете в 150 миллионов. С учетом внушительных продаж на вторичных носителях проект принес ощутимую прибыль. Какое-то время курсировали слухи о сиквеле или ремейки, но дальше разговоров дело не пошло. По гамбургскому счету у нас есть оригинальный фантастический фильм, который обречен на хорошую зрительскую аудиторию даже годы спустя.