unreal engine 4 одежда персонажа
С развитием новых технологий и увеличением вычислительной мощности мы начинаем видеть некоторые действительно классные модели одежды в реал-тайм играх. Большинство художников, работающих с одеждой для своих 3D персонажей, используют Marvelous Designer для симуляции одежды. С новейшей версией Unreal Engine 4.16 разработчики наконец-то получили очень простой и удобный инструмент, который может помочь с симуляцией элементов ткани в играх.
Благодаря инструментам NvCloth, которые теперь доступны в редакторе, рабочий процесс был полностью переработан, чтобы разработчик мог работать непосредственно в Unreal Engine для публикации своего контента без необходимости использования внешних программ.
При использовании «старого» APEX Cloth вам необходимо было разработать все ваши ассеты за пределами Unreal с помощью другой программы или плагинов DCC, для которой требуется специальное программное обеспечение (3DS Max / Maya т.д.) для создания такого контента. Только в течение последней стадии разработки художник переносит контент в Unreal и присваивает одежду к мешу. Это означало, что если вам нужно было что-то исправить, вам пришлось бы вернуться к вашей программе и повторно создать контент вне редактора.
«Новый» воркфлоу позволяет вам создать свой контент один раз, затем выполнить всё редактирование одежды в UE4. Это значительно ускоряет создание и итерацию тестирования контента, а также позволяет избежать любых проблем при переносе контента.
Создание Cloth Section ассета
Чтобы создать новый Cloth ассет, придерживайтесь следующих шагов.
1. Нажмите кнопку Section Selection на главной панели инструментов. Это позволит вам выбрать различные Material Elements вашего Skeletal Mesh.
2. Находясь в Section Selection, щелкните правой кнопкой мыши в любое место выделенного элемента, чтобы открыть меню опций Cloth Asset.
3. Наведите указатель мыши на Create Cloth Asset из Selection и заполните следующие области.
После того, как вы выполнили предыдущие шаги, нажмите кнопку «Создать».
Присваивание Cloth Section ассета.
Чтобы присвоить Cloth ассет к разделу, выполните следующие действия.
Выбрав элемент из раздела, щелкните правой кнопкой мыши в любом месте выделенного элемента, чтобы открыть меню опций «Cloth Asset». Затем наведите указатель мыши на «Apply Clothing Asset» и выберите доступный ассет с одеждой. Это приведёт к объединению ассета одежды и Material Element Geometry.
Распределение веса одежды
Для создания веса у одежды, выполните следующее.
Перейдите в главное меню и выберите Window, затем найдите и нажмите Cloth Paint. Вы откроете панель Cloth Paint, в которой вы можете щелкнуть по кнопке Enable Paint Tools, чтобы получить доступ к различным параметрам распределения веса вершин меша.
Чтобы начать «рисовать», выберите Cloth Asset из окна Assets.
В разделе Cloth Painting, установите значение Paint Value, а затем щелкните левой кнопкой мыши и перетащите кисть по выбранному вами мешу одежды.
Присваивание материалов к Cloth Assets
Перейдите на панель Asset Details и найдите раздел Clothing. Здесь вы найдете все Cloth ассеты, которые вы можете присвоить. Вы можете настроить различные свойства ткани, расширив Clothing Properties.
В разделе LOD, найдите Material Element, который вы использовали для распределения веса вершин сетки. Используйте раскрывающийся список «Clothing», чтобы выбрать Cloth ассет.
Вы можете прочитать полное руководство UE4 Clothing Tool на официальном сайте Epic: источник.
Редакция Devgam
Благодарим наших читателей и подписчиков за проявленный интерес. Поделитесь постом в социальных сетях.
Создание настоящего вида от первого лица в Unreal Engine 4 Статьи редакции
С анимированным телом персонажа.
Технический художник Фабрик Пике (Fabrice Piquet) из компании Allegorithmic в блоге на сайте Gamasutra рассказал, как в Unreal Engine 4 создать «настоящий» вид от первого лица, при котором камера двигается в соответствии с движением головы персонажа. Мы выбрали главное из материала.
«Настоящий вид от первого лица» предполагает, что камера «закреплена» на анимированном теле персонажа, в отличие от простой «летающей» камеры. Такой подход использовался, например, в The Chronicles of Riddick, Syndicate и Mirror’s Edge.
В «раздельной» системе две руки персонажа независимы от тела и присоединены непосредственно к камере. Это позволяет напрямую анимировать руки для любой ситуации и не беспокоиться о том, что камера не следует за руками. Остальное тело персонажа, как правило, это независимый меш, имеющий собственный набор анимаций. Минус такого подхода в том, что разработчикам приходится анимировать два набора моделей.
Порой, меши тела видны только игрокам, а полная версия туловища используется для того, чтобы отрисовывать тени (она видна также другим игрокам в мультиплеере, как в последних Call of Duty). Это помогает оптимизации, однако вредит погружению.
Меш полного тела (Full-body Mesh) предполагает, что весь персонаж будет состоять всего из одного меша. При этом камера присоединена к его голове. Её позиция или вращение диктуется движениями тела, их не нужно настраивать вручную. Иерархия класса выглядит так.
PlayerContorller всегда находится выше Character (или Pawn) в Unreal, поэтому тут ничего нового. У персонажа есть меш тела, у которого имеется AnimBlueprint для управления анимациями. Наконец, камера, которая присоединена к мешу в конструкторе. Однако это не всё.
Так как камера управляется мешем, нам нужно модифицировать или анимировать меш, чтобы имитировать обычные движения камеры, такие как взгляд вверх, вниз, влево и вправо. Эти движения создаются с помощью дополнительной анимации на один кадр.
Я использовал 10 анимаций, но вы можете сделать и больше, если вам, например, хочется, чтобы персонаж смотрел назад. В моём случае вместе с поворотом головы, поворачивается и тело (как в Mirror’s Edge). Это потребовало создание дополнительных анимаций.
Как только анимации импортированы в Unreal, нужно настроить несколько вещей. Убедитесь, что базовая поза для анимаций названа правильно, чтобы быстро найти её, когда потребуется. Я назвал её «anim_idle_additive_base».
Затем, я открыл другие позы и изменил несколько свойств во вкладке «Additive Settings». Параметр «Additive Anim Type» я установил на «Mesh space», а «Base Pose Type» — на «Selected Animation». Наконец, я загрузил мою анимацию базовой позы в слот ассетов. Все эти действия надо повторить для каждой позы.
Теперь, когда анимации готовы, нужно создать Aim Offset — ассет, который хранит связи между несколькими анимациями и позволяет переключаться между ними в зависимости от введенных параметров. Полученное добавляется поверх существующей анимации (вроде бега, ходьбы и так далее).
Мой Aim Offset учитывает два параметра ввода: Pitch и Yaw. Эти значения управляются обновлениями игрового кода.
Простой шутер от третьего лица на Unreal Engine. Часть 1
Дисклеймер
Эта статья писалась для новичков Unreal Engine, если вы профи, то вам будет скучно. Для нормального прочтения, осмысления и понимания происходящего ниже, необходимо знать, что такое переменная и их основные типы, что такое метод, булеву логику и самые базовые принципы программирования. Спасибо. Приступим.
Вступление
Всем привет, я Артем Тарасов и я в геймдеве уже более 5 лет. Занимался разработкой игр самых разных масштабов под мобилки, пк, консоли и VR/AR. Сейчас работаю в компании JoyWay над VR проектом Stride и также являюсь преподавателем курса Технический Game Designer Unreal Engine в Otus.
Сегодня (и в следующих частях) я расскажу и покажу, как вы можете сделать свой собственный простенький, но вполне себе рабочий шутер от третьего лица.
Для написания этой статьи я использовал версию движка 4.27. В следующих версиях могут быть отличия, но они вряд-ли будут очень значительны, поэтому не закрывайте статью в случае другого вида окошка (изучите немного вопрос).
Создаем проект
При открытии движка, он предложит несколько видов преднастроек проектов. Мы с вами делаем игру, поэтому выбираем Games и жмем кнопку Next.
В следующем окне движок предложит выбрать шаблон, на основе которого мы будем делать игру. Выбираем ThirdPerson. Он уже содержит персонажа и базовую логику для перемещения. Снова жмем Next.
В следующем окне мы настраиваем сам шаблон. Немного пояснений. Мы выбираем Blueprint проект, потому что мы будем создавать проект используя только язык визуального программирования Blueprints. Платформу выбираем Desktop/Console, потому что игру мы будем делать на ПК. Остальные настройки ставьте либо как на скриншоте, либо по своему усмотрению. Снизу задаем директорию проекта, а также имя самого проекта. Я назвал его HabrTPS. Жмем Create Project.
Разбираемся с интерфейсом движка
Когда откроется проект, вы увидите что-то похожее на скриншот ниже.
Далее Content Browser. В нем вы видите все ассеты, файлы с блупринтами, карты и все, что относится к вашему проекту. Любые взаимодействия с файлами проекта нужно делать строго с помощью Content Browser внутри Unreal Engine, иначе возникнут проблемы.
Запускаем шаблон в движке
Запустим шаблон в игровом режиме, нажав кнопку Play
Мы уже можем бегать, прыгать и осматриваться
Скачиваем в проект пушки и анимации
Если в списке проекта вдруг не будет нашего проекта, то не пугайтесь, а просто жмите на галочку Show All Projects, выбирайте последнюю версию и добавляйте набор к проекту, несмотря на предупреждение о несовместимости версий.
Теперь наборы отображаются в Content Browser и мы можем использовать их для нашего проекта.
Заменяем стандартного персонажа на боевого
В наборе который мы добавили уже есть персонаж с настроенными анимациями, поэтому мы воспользуемся именно им в целях упрощения процесса.
Нам нужно выделить нашего игрового персонажа и нажать Backspace или Delete, чтобы удалить его.
После этого ищем в папке AnimStarterPack персонажа, который называется Ue4ASP_Character и перетаскиваем его в Viewport.
Затем, когда мы нажмем Play, мы начнем играть за нового персонажа.
Вы увидите что-то похожее на скриншот ниже
Нас сейчас интересуют вкладки Construct script и Viewport. Во viewport мы можем увидеть как будет выглядеть то, что мы насоздавали в нашем блупринте в игровом мире. А в Construction script находится логика, которая выполняется каждый раз, когда мы меняем положение нашего персонажа в редакторе в сцене и/или когда персонаж появляется в игровом мире. В дальнейшем воспринимайте Construction script как кусок кода, который выполняется всякий раз, когда персонаж проходит инициализацию (в т.ч. и после изменения свойств). Открываем вкладку Construction script. Видим следующее.
Перемещаться по рабочей области мы можем, зажав ПКМ.
Мы видим, что на нашем персонаже уже есть компоненты. Теперь кратко по каждому.
Arrow (визуальная стрелочка, которая не отображается в игре, полезна исклютельно для редактирования и удобства работы дизайнеров)
Mesh (тело нашего персонажа, именно этот компонент отвечает за то, что тело отображается, а также именно на нем проигрываются все анимации)
CameraBoom (умный компонент, который следит за положением камеры и приближает ее к персонажу, если она упирается в стену. таким образом мы не проходим сквозь стену нашей камерой)
PlayerCamera (камера от лица которой мы видим все происходящее в игре)
Character Movement (наделяет нашего персонажа возможностью передвигаться, прыгать, плавать, летать и делать очень много всего. у меня есть информация еще не для одной статьи именно про него)
Теперь нам нужно с помощью простого зажатия обведенного Пина (соединения) соединить эти две ноды как показано на скриншоте ниже. Таким образом после команды Construction Script (а точнее не команды, а начала функции) выполнится команда AttachComponentToComponent.
Как понятно по названию, нода прикрепляет один компонент к другому. У нас уже указан Target (т.е. то, что мы прикрепляем), но не указан Parent (к чему мы будем крепить Target). Просто перетягиваем Drag&Drop операцией компонент Mesh на граф и подсоединяем его в Parent.
Должно получиться вот так.
Стрельба методом HitScan
В игровой индустрии распространены два основных метода стрельбы. Физическими пульками, которые действительно летят по баллистике и врезаются в объекты. И так называемая лучевая стрельба (или же HitScan). HitScan выстреливает лучем (без баллистики) и поражает цель мгновенно. Такой подход используется в огромном количестве современных соревновательных и не только игр.
Вопреки многим убеждениям, в играх от третьего лица стрельба HitScan происходит не из дула пушки, а из центра нашего экрана по направлению, куда мы смотрим. Сейчас мы с вами сделаем стрельбу и отрисовку луча по нажатию ЛКМ. Стрельба пока что будет не функциональной, но сейчас нам нужно подготовить механику к дополнительной «докрутке», а нанесение урона, эффекты выстрела и прочие радости жизни будем делать в следующих частях.
Нас интересует нажатие на кнопку, поэтому мы будем работать с выходным пином Pressed. По знакомой схеме ищем ноду LineTraceByChannel, именно она будет запускать луч. Соединяем эту ноду с пином Pressed.
Помочь получить проекцию двумерного экрана на трехмерный мир нам поможет нода Deproject Screen To World.
Из нод, что вы видите на скриншоте, соберите вот такую конструкцию.
Теперь необходимо указать точку куда мы будем пускать луч. У нас также есть пин WorldDirection (который является направляющим вектором, который указывает в мировых координатах куда направлен перпендикуляр к плоскости экрана). Если вы не знакомы с основами векторной алгебры, то очень советую ознакомиться с этой статьей.
Не забываем нажать кнопку Compile и идем тестировать в игре.
Лучи отрисовываются, как мы и ожидали. Вот именно таким образом происходит стрельба в подавляющем количестве игр от третьего лица с HitScan методом стрельбы.
Что дальше?
Лучшей благодарностью за статью будет активность и плюсик к статье. Всем спасибо за ваше время, увидимся еще в Нереальном Движке.
А всех, кто хочет подробнее узнать о нашем урсе, приглашаю на бесплатный вебинар, в рамках которого вы сможете познакомиться с программой курса и подробно узнать о процессе обучения.
Зарегистрироваться на вебинар по ссылке
Простой шутер от третьего лица на Unreal Engine. Часть 1
Дисклеймер
Эта статья писалась для новичков Unreal Engine, если вы профи, то вам будет скучно. Для нормального прочтения, осмысления и понимания происходящего ниже, необходимо знать, что такое переменная и их основные типы, что такое метод, булеву логику и самые базовые принципы программирования. Спасибо. Приступим.
Вступление
Всем привет, я Артем Тарасов и я в геймдеве уже более 5 лет. Занимался разработкой игр самых разных масштабов под мобилки, пк, консоли и VR/AR. Сейчас работаю в компании JoyWay над VR проектом Stride и также являюсь преподавателем курса Технический Game Designer Unreal Engine в Otus.
Сегодня (и в следующих частях) я расскажу и покажу, как вы можете сделать свой собственный простенький, но вполне себе рабочий шутер от третьего лица.
Для написания этой статьи я использовал версию движка 4.27. В следующих версиях могут быть отличия, но они вряд-ли будут очень значительны, поэтому не закрывайте статью в случае другого вида окошка (изучите немного вопрос).
Создаем проект
При открытии движка, он предложит несколько видов преднастроек проектов. Мы с вами делаем игру, поэтому выбираем Games и жмем кнопку Next.
В следующем окне движок предложит выбрать шаблон, на основе которого мы будем делать игру. Выбираем ThirdPerson. Он уже содержит персонажа и базовую логику для перемещения. Снова жмем Next.
В следующем окне мы настраиваем сам шаблон. Немного пояснений. Мы выбираем Blueprint проект, потому что мы будем создавать проект используя только язык визуального программирования Blueprints. Платформу выбираем Desktop/Console, потому что игру мы будем делать на ПК. Остальные настройки ставьте либо как на скриншоте, либо по своему усмотрению. Снизу задаем директорию проекта, а также имя самого проекта. Я назвал его HabrTPS. Жмем Create Project.
Разбираемся с интерфейсом движка
Когда откроется проект, вы увидите что-то похожее на скриншот ниже.
Далее Content Browser. В нем вы видите все ассеты, файлы с блупринтами, карты и все, что относится к вашему проекту. Любые взаимодействия с файлами проекта нужно делать строго с помощью Content Browser внутри Unreal Engine, иначе возникнут проблемы.
Запускаем шаблон в движке
Запустим шаблон в игровом режиме, нажав кнопку Play
Мы уже можем бегать, прыгать и осматриваться
Скачиваем в проект пушки и анимации
Если в списке проекта вдруг не будет нашего проекта, то не пугайтесь, а просто жмите на галочку Show All Projects, выбирайте последнюю версию и добавляйте набор к проекту, несмотря на предупреждение о несовместимости версий.
Теперь наборы отображаются в Content Browser и мы можем использовать их для нашего проекта.
Заменяем стандартного персонажа на боевого
В наборе который мы добавили уже есть персонаж с настроенными анимациями, поэтому мы воспользуемся именно им в целях упрощения процесса.
Нам нужно выделить нашего игрового персонажа и нажать Backspace или Delete, чтобы удалить его.
После этого ищем в папке AnimStarterPack персонажа, который называется Ue4ASP_Character и перетаскиваем его в Viewport.
Затем, когда мы нажмем Play, мы начнем играть за нового персонажа.
Вы увидите что-то похожее на скриншот ниже
Нас сейчас интересуют вкладки Construct script и Viewport. Во viewport мы можем увидеть как будет выглядеть то, что мы насоздавали в нашем блупринте в игровом мире. А в Construction script находится логика, которая выполняется каждый раз, когда мы меняем положение нашего персонажа в редакторе в сцене и/или когда персонаж появляется в игровом мире. В дальнейшем воспринимайте Construction script как кусок кода, который выполняется всякий раз, когда персонаж проходит инициализацию (в т.ч. и после изменения свойств). Открываем вкладку Construction script. Видим следующее.
Перемещаться по рабочей области мы можем, зажав ПКМ.
Мы видим, что на нашем персонаже уже есть компоненты. Теперь кратко по каждому.
Arrow (визуальная стрелочка, которая не отображается в игре, полезна исклютельно для редактирования и удобства работы дизайнеров)
Mesh (тело нашего персонажа, именно этот компонент отвечает за то, что тело отображается, а также именно на нем проигрываются все анимации)
CameraBoom (умный компонент, который следит за положением камеры и приближает ее к персонажу, если она упирается в стену. таким образом мы не проходим сквозь стену нашей камерой)
PlayerCamera (камера от лица которой мы видим все происходящее в игре)
Character Movement (наделяет нашего персонажа возможностью передвигаться, прыгать, плавать, летать и делать очень много всего. у меня есть информация еще не для одной статьи именно про него)
Теперь нам нужно с помощью простого зажатия обведенного Пина (соединения) соединить эти две ноды как показано на скриншоте ниже. Таким образом после команды Construction Script (а точнее не команды, а начала функции) выполнится команда AttachComponentToComponent.
Как понятно по названию, нода прикрепляет один компонент к другому. У нас уже указан Target (т.е. то, что мы прикрепляем), но не указан Parent (к чему мы будем крепить Target). Просто перетягиваем Drag&Drop операцией компонент Mesh на граф и подсоединяем его в Parent.
Должно получиться вот так.
Стрельба методом HitScan
В игровой индустрии распространены два основных метода стрельбы. Физическими пульками, которые действительно летят по баллистике и врезаются в объекты. И так называемая лучевая стрельба (или же HitScan). HitScan выстреливает лучем (без баллистики) и поражает цель мгновенно. Такой подход используется в огромном количестве современных соревновательных и не только игр.
Вопреки многим убеждениям, в играх от третьего лица стрельба HitScan происходит не из дула пушки, а из центра нашего экрана по направлению, куда мы смотрим. Сейчас мы с вами сделаем стрельбу и отрисовку луча по нажатию ЛКМ. Стрельба пока что будет не функциональной, но сейчас нам нужно подготовить механику к дополнительной «докрутке», а нанесение урона, эффекты выстрела и прочие радости жизни будем делать в следующих частях.
Нас интересует нажатие на кнопку, поэтому мы будем работать с выходным пином Pressed. По знакомой схеме ищем ноду LineTraceByChannel, именно она будет запускать луч. Соединяем эту ноду с пином Pressed.
Помочь получить проекцию двумерного экрана на трехмерный мир нам поможет нода Deproject Screen To World.
Из нод, что вы видите на скриншоте, соберите вот такую конструкцию.
Теперь необходимо указать точку куда мы будем пускать луч. У нас также есть пин WorldDirection (который является направляющим вектором, который указывает в мировых координатах куда направлен перпендикуляр к плоскости экрана). Если вы не знакомы с основами векторной алгебры, то очень советую ознакомиться с этой статьей.
Не забываем нажать кнопку Compile и идем тестировать в игре.
Лучи отрисовываются, как мы и ожидали. Вот именно таким образом происходит стрельба в подавляющем количестве игр от третьего лица с HitScan методом стрельбы.
Что дальше?
Лучшей благодарностью за статью будет активность и плюсик к статье. Всем спасибо за ваше время, увидимся еще в Нереальном Движке.
А всех, кто хочет подробнее узнать о нашем урсе, приглашаю на бесплатный вебинар, в рамках которого вы сможете познакомиться с программой курса и подробно узнать о процессе обучения.
Зарегистрироваться на вебинар по ссылке






