Unreal Engine 4: Добавим 3D персонажа с анимацией

Добавим в игру полноценного 3D персонажа с анимациями. Необходимые материалы (модель, анимации, текстуры) доступны по ссылке в описании. Рекомендуется использовать предоставленную модель для обучения. Позже её можно заменить.

Импорт персонажа и анимации

  1. Скачайте персонажа.
  2. В Unreal Engine создайте в папке с объектами папку Player.
  3. Перетащите файл player.fbx (или аналогичный) в папку Player. В окне импорта оставьте настройки по умолчанию, отключите импорт материалов и нажмите «Импорт».
  4. После импорта вы увидите модель и текстуры (или модель без текстур, если импорт материалов был отключен). Вы сможете редактировать части тела персонажа.
  5. Создайте в папке Player папку Animations.
  6. Перетащите файлы анимации в папку Animations. В окне импорта выберите Skeletal Mesh – PlayerSkeleton (или аналогичный) и нажмите «Импорт». Двойной щелчок по файлу анимации позволит её просмотреть. Набор включает анимации ожидания, поворотов и другие.

Создание и настройка Blueprint персонажа

  1. В папке Player создайте Blueprint PlayerAnimInstance, выбрав PlayerSkeleton родительским классом.
  2. Откройте Blueprint. Здесь мы будем управлять анимациями (одновременно воспроизводится только одна анимация).
  3. Добавьте State Machine, например, WalkingAndRunning.
  4. Добавьте состояния Idle и Walk_Run и переходы между ними.
  5. В состоянии Idle добавьте анимацию Idle.
  6. Для настройки переходов создайте Anim Blueprint и Blend Space.
  7. Создайте Anim Blueprint (например, Walk), выбрав PlayerSkeleton родительским скелетом.
  8. Добавьте Blend Space 1D. Переименуйте горизонтальную ось в Direction (-180…180 градусов), вертикальную – в Speed (0…600).
  9. Добавьте в Blend Space анимации: Walk_Forward_InPlace, Run_Forward_InPlace, Walk_Left_InPlace, Walk_Right_InPlace, Run_Left_InPlace, Run_Right_InPlace, Run_Back_InPlace и разместите их на осях Direction и Speed. Анимация Idle должна быть в точке (0,0).
  10. Проверьте плавность переходов между анимациями в Blend Space.

Интеграция и заключение

  1. В PlayerAnimInstance добавьте переменные Speed (float) и Direction (float).
  2. В Event Tick (PlayerAnimInstance) получите скорость и вращение персонажа с помощью GetVelocity и GetActorRotation, вычислите Speed и Direction.
  3. В PlayerAnimInstance, в состоянии Walk_Run, используйте созданный Blend Space (Walk), подключив переменные Speed и Direction к его осям.
  4. Настройте переходы в State Machine: если Speed > 10, переход в Walk_Run; если Speed ≤ 10, переход в Idle.
  5. В Level Blueprint замените стандартного игрока на созданного персонажа.
  6. Настройте положение камеры.

В результате вы получите анимированного 3D персонажа, способного ходить, бегать и останавливаться с плавными переходами между анимациями. Не забудьте настроить камеру.

Что будем искать? Например,программа