1

Тема: 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 - бо не вудка була а пропелер :D .

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)