Как сделать анимацию и механику атаки персонажа на Unity 3D (экспорт из Blender)?

Ссылка скопирована
1 ответ

Всем привет. Я создаю персонажа в Blender для экспорта в Unity. Я уже сделала для него анимации хотьбы, бега, падения и тд. Во время создания атаки у меня появилось несколько проблем:
1. Если я не приединяю оружие (мечи) к ригу персонажа, то и в Блендере, и в Юнити мечи "опаздывают" во время анимации атаки. А иногда в Юнити мечи вообще меняют траекторию и улетают куда подальше...
2. Если я присоединяю оружие к ригу, и создаю анимацию атаки, то всё в порядке. Но в этом случае появляется другая проблема: когда я хочу, чтобы, персонаж, например, подкинул оружие, то при экспорте в Юнити, оружие всё равно остается привязанным к руке персонажа и никуда не улетает. При этом, как я понимаю, если я привязываю оружие к ригу персонажа, то в Юнити програмно нужно будет скрывать это оружие в обычном состоянии (хотьба, бег и тд), а при атаке делать его видимым

Я перебробовала уже кучу способов: 
1. присоединяла мечи к самому ригу в Блендере - так у меня не получалось "отсоединить" меч от руки, например, для того чтобы персонаж подкинул меч
2. в режиме редактирования в Блендере редактировала риг персонажа, "вытягивала" кость (через экструдирование клавиша"Е") и присоединяла к этой созданной кости меч (CTRL+P - Bone) - так у меня была та же проблема: не получалось "отсоединить" меч от руки
3. создавала для мечей отдельные кости и потом присоенияла их к ригу (CTRL+P - Bone) - так я могла в Блендере "отсоединять" мечи, но при экспорте в юнити мечи были присоединены к руке и никуда не отсоединялись
4. делала отдельную анимацию мечам для атаки в Блендере(не присоединяла ни к чему) - в Блендере мечи "отстают" во время анимации, в Юнити мечи вообще меняли тракеторию
5. присоединяла мечи с их собственной анимацией к рукам персонажа в Юнити - та же самая проблема
6. присоединяла мечи к рукам персонажа в Юнити без анимаций - мечи иногда все равно меняли траекторию...

Помогите, пожалуйстаааа.....))

Дополнительно:

Как именно и к чему ты присоединяешь модель меча? Не к мешу персонажа самом?

  • Kentavr16, К мешу я ни разу не пробовала присоединить, я пыталась присоединить именно к ригу разными способами, как и писала выше:
    - сами мечи к ригу
    - кости, которые создала и привязала к мечам, к ригу персонажа
    - вытягивала кости из рига персонажа и присоединяла к ним мечи
  • "опаздывают" во время анимации атаки

    Что ты имеешь в виду?
    Вообще странно. Возможно нужно посмотреть правильно ли ты экспортируешь/импортируешь объекты.
    Логичным вариантом выглядит создание двух отдельных моделей, у меча также создать свою кость. В юнити сделать обьект меча дочерним к кости ладони и прописать анимацию. Поведение при смене / убирании оружия прописывать по усмотрению.

  • Kentavr16, спасибо, я нашла решение програмно менять положение мечей(например если хочу подкинуть)
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Для создания анимации и механики атаки персонажа в Unity 3D с экспортом из Blender, вам необходимо следовать нескольким шагам.

    1. Создайте модель персонажа в Blender. Убедитесь, что каждая анимация атаки имеет свой отдельный кадр. Например, удар руки, удар ногой и т.д.

    2. Для экспорта модели из Blender в Unity 3D, используйте формат файла .fbx. Выберите нужные опции экспорта, такие как масштаб модели и анимации.

    3. В Unity 3D импортируйте модель и анимации. Создайте анимационный контроллер для персонажа, который будет управлять анимацией атаки.

    4. Настройте механику атаки персонажа в скрипте C# или другом языке программирования Unity. Например, создайте методы для запуска анимации атаки в зависимости от действий игрока.

    Пример кода на C# для запуска анимации атаки персонажа:

    using UnityEngine;
     
    public class AttackController : MonoBehaviour
    {
        private Animator animator;
     
        void Start()
        {
            animator = GetComponent();
        }
     
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Attack();
            }
        }
     
        void Attack()
        {
            animator.SetTrigger("Attack");
        }
    }

    using UnityEngine; public class AttackController : MonoBehaviour { private Animator animator; void Start() { animator = GetComponent(); } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Attack(); } } void Attack() { animator.SetTrigger("Attack"); } }

    5. Присвойте созданный скрипт к персонажу в Unity 3D. Убедитесь, что анимация атаки правильно запускается при нажатии определенной клавиши или при выполнении определенных действий.

    Следуя этим шагам, вы сможете создать анимацию и механику атаки персонажа в Unity 3D с экспортом из Blender. Не забывайте тестировать и настраивать свой проект для достижения желаемого результата.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно