Добавим в игру полноценного 3D персонажа с анимациями. Необходимые материалы (модель, анимации, текстуры) доступны по ссылке в описании. Рекомендуется использовать предоставленную модель для обучения. Позже её можно заменить.
Импорт персонажа и анимации
- Скачайте персонажа.
- В Unreal Engine создайте в папке с объектами папку Player.
- Перетащите файл player.fbx (или аналогичный) в папку Player. В окне импорта оставьте настройки по умолчанию, отключите импорт материалов и нажмите «Импорт».
- После импорта вы увидите модель и текстуры (или модель без текстур, если импорт материалов был отключен). Вы сможете редактировать части тела персонажа.
- Создайте в папке Player папку Animations.
- Перетащите файлы анимации в папку Animations. В окне импорта выберите Skeletal Mesh – PlayerSkeleton (или аналогичный) и нажмите «Импорт». Двойной щелчок по файлу анимации позволит её просмотреть. Набор включает анимации ожидания, поворотов и другие.
Создание и настройка Blueprint персонажа
- В папке Player создайте Blueprint PlayerAnimInstance, выбрав PlayerSkeleton родительским классом.
- Откройте Blueprint. Здесь мы будем управлять анимациями (одновременно воспроизводится только одна анимация).
- Добавьте State Machine, например, WalkingAndRunning.
- Добавьте состояния Idle и Walk_Run и переходы между ними.
- В состоянии Idle добавьте анимацию Idle.
- Для настройки переходов создайте Anim Blueprint и Blend Space.
- Создайте Anim Blueprint (например, Walk), выбрав PlayerSkeleton родительским скелетом.
- Добавьте Blend Space 1D. Переименуйте горизонтальную ось в Direction (-180…180 градусов), вертикальную – в Speed (0…600).
- Добавьте в 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).
- Проверьте плавность переходов между анимациями в Blend Space.
Интеграция и заключение
- В PlayerAnimInstance добавьте переменные Speed (float) и Direction (float).
- В Event Tick (PlayerAnimInstance) получите скорость и вращение персонажа с помощью GetVelocity и GetActorRotation, вычислите Speed и Direction.
- В PlayerAnimInstance, в состоянии Walk_Run, используйте созданный Blend Space (Walk), подключив переменные Speed и Direction к его осям.
- Настройте переходы в State Machine: если Speed > 10, переход в Walk_Run; если Speed ≤ 10, переход в Idle.
- В Level Blueprint замените стандартного игрока на созданного персонажа.
- Настройте положение камеры.
В результате вы получите анимированного 3D персонажа, способного ходить, бегать и останавливаться с плавными переходами между анимациями. Не забудьте настроить камеру.