Тема: UE 4.26 Вудка
Доброго дня. Вирішив створити таку тему, бо скільки не шукав на YouTube та у Google, не міг знайти, як створити вудку. Більшість стримерів купували готові у магазині, а потім розповідали усім як ловити рибу. Тому вирішив створити сам.
Використовував Blender для створення мешів.
Спочатку робимо у редакторі 3D моделі поплавка, дрючка та гачка, та зберігаємо їх у форматі .fbx.
В UE створюємо папку для вудки та переносимо туди ці статичні меші. У редакторі мешів поплавку та гачку треба додати колізію Simple And Complex, інакше UE при перевірці буде гиркати за це. А дрючку можна Use Complex Colision As Simple.
Спочатку треба навчити поплавок триматися на воді.
Для цього у папці для вудки або копіюємо та перейменуймо Blueprint "Water Content\Blueprints\BP_BuoyancyExample", або створюємо Blueprint Class -> Actor, додаємо у DefaultSceneRoot - Static Mesh, а у Назва(self) - Buoyancy. Додавати - виділяєте назву, потім натискаєте +Add Component, та вводите назву компоненту. Потім перетаскуємо Static Mesh на DefaultSceneRoot.
Повинно вийти
Назва(self)
------------
Buoyancy
------------
Static Mesh
Перейменуймо Static Mesh у, наприклад поплавок1 та почнемо тероризувати його Details:
Static Mesh - додаємо наш меш поплавка.
Physics
Simulate Physics - галочка
MassInKg - галочка та вага
Collision
Can Character Step Up On - No - щоб камера гравця не смикалася.
Collision Presets - PhysicsActor
Тепер Details Buoyancy:
Buoyancy
Buoyancy Data
Pontons - я зробив 5 - центр та 4 по кутах. Виставляємо координати X та Y, та радіус.
У мене поплавок маленький, тому -8..8, -8..8, та радіус 10.
Buoyancy Coefficient - у мене 0,5
Buoyancy Dumping - у мене 1000 - ці два параметри треба регулювати для вашого проекту, вони відповідають за те, як меш буде триматися на воді і наскільки він буде занурюватися під воду.
компілюємо, зберігаємо.
Тепер робимо вудку.
Blueprint Class -> Actor, додаємо у DefaultSceneRoot - Static Mesh Дрючок. Виставляємо дрючок так, щоб у сфері сцени зосталася частина, яка буде у руці гравця.
Details дрючка:
Фізику не чіпаємо
Collision
Can Character Step Up On - No
Collision Presets - OverlapAll
У дрючок додаємо 2 Sphere Collision, Child Actor Component поплавок, та 2 Physics Constraint Component. Усі сфери та поплавок перетаскуємо на кінець дрючка, до якого кріпиться волосінь
У першій Sphere Collision ставимо тільки
Collision
Can Character Step Up On - No
Collision Presets - PhysicsActor
У другій
Physics
Simulate Physics - галочка
Collision
Can Character Step Up On - No
Collision Presets - PhysicsActor
У першу Sphere Collision та у Поплавок додаємо Cable
Details Cable:
Materials - текстура за бажанням.
Cable
Attach End To
Component Name - поплавок для першої сфери та друга сфера для поплавка
Cable Lenght - довжина кабеля - 0 - він все одно розтягується
Enable Stiffners - галочка
Cable Rendering
Cable Width - товщина - яка вам потрібна.
У другу сферу додаємо Static Mesh гачок.
Details гачка:
Collision
Can Character Step Up On - No
Collision Presets - PhysicsActor
У гачок додаємо Scene - для контакту з рибами.
У Physics Constraint Component виставляємо:
Constraint
Component Name 1
Component Name - для першого - перша сфера, для другого - поплавок
Component Name 2
Component Name - для першого - поплавок, для другого - друга сфера
Linear Limit - відстань, тут можно погратися, у мене всі Limited, та Limit - 0 початково, потім програмно можна буде розтягувати
Contact Distance та Linear Break Treshold - найбільша відстань між об'єктами та відстань, після якої розривається зв'язок, у мене 600 поки що .
Angular Limits - кут повороту. Теж кожен/кожна виставляє як бажає. У мене усі Locked - бо не вудка була а пропелер .
Linear Motor- виставив тільки для з'єднання дрючка з поплавком. Не робив рибу на глибині. Можливо для другого з'єднання теж треба буде.
усі галочки поставлені. на Position targen strength - 0 - за замовчуванням 50 великий опір при штовханні (коли закидаешь, у повітрі висіть), Velosyti targen strength - 5 - за замовчуванням 1 маленький опір при відскоку (плигає по воді).
У Event Graph для коригування довжини волосіння є Set Linear X limit, Set Linear Y limit, Set Linear Z limit, а для визначення області, в якій діє гачок SphereTraceByChannel до пінів Start та End якої приєднується місце знаходження Scene ( Scene-----GetWorldLocation)