Эффект получения урона и смерти в unreal engine 4

В данном уроке я сфокусируюсь на эффекте, когда игрок получается повреждения.
Данный эффект состоит из:
PostProcess материала для эффекта крови
Записываемые переменные в материал
Искажение
Эффект камеры при сметри
Тряска камеры

Сперва, вам понадобится текстура крови.Я нашёл её в Unity Store.Небольшие деньги за 2 текстурки с нормал картами.Вы так же можете сами поискать текстуры,но за лучшие текстуры придётся больше заплатить.

Если вы купили данный пак, то нормал карты иду в комплекте серые, как карты высот, и вам нужно их сконвертировать в привычный вид нормалкарт.Я использовал этот замечательный сайт, для конвернтации.Прежде чем загрузить вашу текстурку на сайт, сконвертируйте её в PNG формат.

После конвертации, импортируйте текстуры (диффуз и нормал)в движок.

Создание материала

Создайте Material Parameter Collection и назовите DamageIndicatorPower, откройте его и добавьте 2 скалярные переменные (скалярные- это float).


Power будет использоваться когда уровень здоровья будет низким.
Blood2Power будет использоваться когда игрок получает урон.

Создайте первый материал из Blood текстуры.На скрине ниже представлен сам материал.
(«ПКМ-> открыть изображение», на тот случай, если вам плохо видно)

Второй материал будет точно таким же, но использовать Blood2Power как параметр, и Blood2 диффуз и нормал.Просто продублируйте материал и измените переменные.

Вы можете просмотреть превью в редакоре:
Установите переменную в значение 1
Откройте ваш уровень и найдите post process volume (если такового нет- создайте. прим.-ред.)
Найдите вкладку Misc and Blendables
Добавьте свой материал
Удостоверьтесь что у вас стоит Lit режим.

Создание эффекта урона

Откройте GameplayCharacter blueprint и добавьте Box Component без коллизии. Добавьте PostProcess Component назовите DamageIndicatorPP и прикрепите его к Box Component.

Как вы можете видеть, Box покрывает всего игрока. В основном PostProcess component будет использовать этот Box component как Volume.

DamageIndicatorPP параметры:

Теперь откройте Event Graph и добавьте такие переменные:
CurrentDamageIndicator (float),
MaxDamageIndicator (float, default: 2),
MinDamageIndicator (float),
DeltaTime (float),
DesiredDamageIndicator (float),
DamageIndicatorSpeed (float, default: 5),
LowHealthIndicatorPower (float),

Прежде чем вернутся, создайте новый blueprint исходящий из Camera Shake и назовите его PlayerTakeDamageCameraShake.

Вернитесь к GameplayCharacter и создайте новое событие, и назовите его AddDamageEffect.

Теперь найдите ваше событие PlayerTakeDamage и вызовите AddDamageEffect в конце.

Создайте новое событие и назовите его UpdateDamageIndicator. Это место где происходит магия.

Это обновляет 2 скалярных параметра — один для материала низкого здоровья, и второй для материала получения урона. Надеюсь моих комментариев достаточно для вас ребята.

Создайте Tick event и соедените с UpdateDamageIndicator.

На этом всё.Теперь у вас будут появляться кровавые брызги при получении урона и при низком значении здоровья.

Создание эффекта смерти

Создайте новый Physical Material названный DyingHeadPhysMat. Удостоверьтесь, что Restitution = 0.Теперь создайте новый blueprint на основе Actor, и назовите PlayerDyingEffect.

Компоненты:

Root ComponentSphere из Basic Shapes.

Simulate Physics: True,
Linear Damping: 3,
Angular Damping: 0,5,
Phys Material Override: DyingHeadPhysMat,
Collision Presets: Only block WorldStatic – rest should be set to ignore,

Добавьте новую Radial Force Component и назовите LeftForce:

Location: (X=45.000000,Y=11.005877,Z=5.437829)
Radius: 50,
Impulse Strength: 500,
Impulse Vel Change: True,
Auto Activate: False,

Добавьте новую Radial Force Component и назовите RightForce:

Location: (X=45.000000,Y=-11.000000,Z=5.437829)
Остальные настройки как и в LeftForce.

Добавьте новый Post Process Component и оставьте его как есть.

Теперь откройте Event Graph и добавьте один Post Process Settings variable названную PPSettings — это должно быть редактируемым и спавнящимся (exposed on spawn- ориг.(на случай если я не правильно перевёл)).

Добавьте Begin Play event.

Это быстрый и простейший способ для создания эффекта смерти. Не помешало бы доработать этот эффект, для получения направление из которого враги наносят урон игроку, дабы камера отклонялась в нужные стороны.

Теперь вернитесь в GameplayCharacter и создайте новое событие названное PlayDying.

Вам нужно вызвать PlayDying из TakePlayerDamage когда вы уверены, что игрок погиб.

И вуяла! у вас есть эффект смерти.

На видео представлены финальные результаты. Не забудьте настроить значения под свои нужды.

Ссылка на оригинал.
Эффект получения урона и смерти — перевёл RedComrade. 22.08.2015.


Читайте также: