Движение персонажа по сплайну в Unreal Engine 4

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
6 957
Розыгрыши
21
Решения
1
Репутация
6 013
Реакции
6 768
Баллы
2 688
Движение персонажа по сплайну в Unreal Engine 4 — небольшой урок о том, как заставить вашего персонажа двигаться по сплайну.
1. Сперва создайте новый проект и используйте Third Person шаблон для вашего проекта.
2. Откройте папку «Blueprints» в вашем ThirdPersonGame и создайте новый Blueprint Class тип Actor.Для данного урока назовите его «SplineBP».
3. Теперь откройте этот Blueprint.Использую вкладку «Add Component» , в верхнем левом углу, найдите и добавьте «Scene component».Перетащите Scene component на Default Scene Component , чтобы заменить стандартный Sphere в вьюпорте вашего блупринта. Ещё раз нажмите «Add Component» найдите «spline» и добавьте его.Скомпилируйте и сохраните блупринт.
4. Откройте ваш level blueprint и перетащите свежесозданный Spline BP на ваш уровень.Теперь выделите сплайн точку и используя «ALT + drag» для добавления точек на ваш сплайн.Теперь вы можете создавать предопределённый путь в вашем уровне используя этот Spline BP.
5. Найдите блупринт ThirdPersonCharacter в папке Blueprint и откройте его.Вы увидите дефолтный функционал данного блупринта связанного с передвижением персонажа.Мы будем работать с «Movement input» секцией в event graph, что бы наш персонаж двигался по сплайну.
Создадим 2 переменные. Первая будет «Spline BP» референсом которой будет наш Spline BP. Вторая переменная будет называться «SplineDistance» тип которой float; она будет хранить расстояние, пройденное по пути сплайна.
6. Откройте Character Blueprint и из ноды Spline BP вытяние/найдите ноду «Get World Location at Distance along Spline» и выберите её. Добавьте в граф свежесозданную переменную «SplineDistance» и соедините с полем Distance.
Точно такие же действия следует провести с нодой «Get World Rotation at distance along Spline».
7.Возьмите «Capsule Component» и найдите «Set World Location» и «Set World Rotation» и соедините как показано на скрине ниже. Эта связка будет изменять положение вашего персонажа.Поскольку мы хотим, чтобы обновление положения происходили постоянно, нужно сделать обновление данных внутри события на каждый тик. Найдите ноду «Input axis move Forward» находящуюся по дефолту в Movement Input разделе вашего Third Person Character Blueprint. Добавьте ноду “Event Tick” и установите Scale value в “Add Movement Input” = 1 (посмотрите скрин готового бп, если не понятно,что и куда соединять).
8.Это позволит постоянно обновлять положение вашего персонажа. Но пока что, персонаж не будет передвигаться, т.к. переменная «Spline Distance» зафиксированная в значении 0.0 и поэтому каждый кадр, ваш персонаж использует координаты начала сплайна.Поэтому нужно назначить дистанцию, на которое будет передвигаться персонаж по сплайну каждый кадр.
9.Скомпилируйте и сохраните.Всё ещё наблюдается ошибка, т.к. Spline BP не имеет значения и вообще пуст. Откройте ваш «Spline BP Blueprint» и перейдите во вкладку event graph. Здесь, в «Event Begin Play» установите значение переменной Spline BP в Third Person Character.
Ну вот и всё. Компилируйте и сохраняйте.
 

Привет, не могу разобраться с данным мануалом, работаю в движке 4.27. Не могу адаптировать данную инструкцию, в частности Get World Location at Distance along Spline. ЕЕ просто нет.
 
Назад
Сверху Снизу