2015-06-16 2 views
0

Я только что узнал, как легко просто перетащить сборку символьного контроллера 3-го лица (из пакета стандартных активов Unity) и поместить его в иерархию.Превращение аватара в символ третьего лица

Использование клавиш WSAD и Space кажется довольно естественным, поэтому я подумал, могу ли я применить тот же контроллер символов к настроенному аватару.

Использование бесплатного генератора символов AutoDesk (https://charactergenerator.autodesk.com/) Я создал один файл (fbx) и импортировал его в Unity, так что теперь у меня есть свой собственный символ.

Я тогда искал шаги до анимировать он точно так же, как 3-й персональный контроллер, со следующей первой статьей, но мне интересно, нужно ли мне всегда делать все шаги?

http://blogs.unity3d.com/2014/04/14/turn-your-character-into-a-player/

После того, как Вы имеете настроенный символ в виде единства сборного, следует сделать еще пройти через все эти шаги, или есть более простой способ анимации аватар; например добавив основные необходимые сценарии?

ответ

1

Эта статья дает хороший обзор того, что требуется.

Однако при использовании генератора символов Autodesk вы можете пропустить практически все эти шаги.

Вот быстрый способ:

  1. Установите FBX быть mecanim гуманоид
  2. Перетащите mecanim контроллер аниматор на него
  3. Написать свой код, чтобы установить аниматор состояния (например: скорость, прыжки и т.д.)

Чтобы сделать это:

  • Экспорт из Autodesk, как «Единство» FBX формат, чтобы получить YourCharacter_Unity.fbx
  • Перетащите FBX в файлы проект единства
  • Нажмите на YourCharacter_Unity FBX в проекте (синий куб), выберите «RIG» вкладка в инспекторе, и измените тип анимации на «Гуманоид» (который сопоставляет его с системой Mecanim).
  • Перетащите FBX из проекта в сцену.
  • Перейти к Asset Store, и импорт «Mecanim Передвижение Starter Kit» (который имеет базовый контроллер локомоции и набор анимации)
  • Перетащите «Передвижение Setup/Передвижение/Locomotion.controller» на «контроллер» переменной на компоненте Animator вашего персонажа.
  • Снимите галочку «применять корень движение»

Теперь, если вы нажмете запустить вы увидите ваш персонаж стоял там с холостыми движениями. Если вы дважды щелкните мышью на контроллере аниматора на своем персонаже, он откроет окно Mecanim Animtor, и вы можете вручную установить состояние анимации. Попробуйте изменить скорость до 1.0, и вы увидите, как он идет/бежит.

Примечание: в компоненте Animator вашего персонажа, если вы установите флажок «Применить корень движения», анимация ног заставит ваш аватар автоматически перемещаться, когда его скорость> 0.

Вы говорите, что вы используете CharacterController, поэтому здесь очень простой сценарий, который ссылается на контроллер персонажа, чтобы получить текущую скорость, а затем установите скорость на Аниматор:

using UnityEngine; 
using System.Collections; 

public class CharacterAnimator : MonoBehaviour { 

    public CharacterController controller; 
    public Animator animator; 
    private int speedid; 

    void Start() { 
     animator = GetComponentInChildren<Animator>(); 
     controller = GetComponent<CharacterController>(); 
     speedid = Animator.StringToHash("Speed"); 
    } 

    void Update() { 
     float speed = controller.velocity.magnitude; 
     animator.SetFloat(speedid, speed); 
    } 
} 
+0

Спасибо большое, peterept. Я добился именно того, что хотел, и многому научился в этом процессе. Ура! – Joshua

+0

Привет, peterept, Вы использовали 'Raw Mocap data для Mecanim' раньше ([link] (https://www.assetstore.unity3d.com/ru/#!/content/5330))? Вместо того, чтобы импортировать «Mecanim Locomotion Starter Kit», который вы упомянули в своем ответе, какая разница в использовании Mocap? Спасибо – Joshua

+1

Эй. Данные mocap - это только куча анимаций. Вы можете использовать их, но они не заменяют аниматор локомоции, вместо этого вы редактируете аниматор и перетаскиваете нужные анимации. (Или расширить состояния аниматора, скажем добавить в прыжок, и установить анимацию из пакета mocap). Например, если вы открываете аниматор локомоции и находите состояние ожидания и выбираете его, то свойство motion - это анимация. Измените эту анимацию на одну из mocap. И теперь вы получаете новую бездельную анимацию! – peterept