Как управлять анимацией? Компонент Animator...

Импорт текстур, моделей, звуков и пр.

Как управлять анимацией? Компонент Animator...

Сообщение Unitis 18 янв 2016, 22:07

На данный момент...

1. Создал в блендере модель анимированного персонажа(анимацию ходьбы).
2. Перекинул её в юнити.
3. Разместил модель на сцене.
4. Создал и повесил скрипт(персонаж должен ходить при нажатии определенной клавиши).

Пошли ошибки... что я делаю не так?

Собственно, хотелось так же спросить чем отличается animation от animator? Разные технологии анимации? Это меня ещё немного путает.
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение Djaffar 19 янв 2016, 04:23

Коротенькие ролики с ответами на все вопросы - https://www.youtube.com/playlist?list=P ... ykCiBKLh_X
Аватара пользователя
Djaffar
UNец
 
Сообщения: 9
Зарегистрирован: 28 сен 2012, 01:28

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 19 янв 2016, 23:12

Спасибо за ссылку. Хорошие уроки. Но непонятно как персонаж ходит. В скрипте я не заметил никакого отслеживания нажатия клавиш.
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение seaman 19 янв 2016, 23:42

Как это нет отслеживания клавиш?
Синтаксис:
Используется csharp
    public void Update()
        {
        __vert = Input.GetAxis("Vertical");
        __horiz = Input.GetAxis("Horizontal");
        __run = Input.GetButton("Run") ? 1 : 0;
        __sneak = Input.GetButton("Sneak");
        __cheer = Input.GetButtonDown("Cheer");
        __horiz += __horiz > 0 ? __run : __horiz < 0 ? -__run : 0;
        __vert += __vert > 0 ? __run : __vert < 0 ? -__run : 0;

        }
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 20 янв 2016, 00:29

Откуда берется этот код?

Я привык по старинке всё контролировать из скрипта. В том числе и процесс анимации(старт/стоп, начало/конец). Но во всех уроках которые я смотрел персонаж движется сам и, судя по всему, либо используется встроенное управление либо что-то просто остается за кадром.

Что означает строка Input.GetButton("Run") ? Нет такой кнопки на клавиатуре с именем "Run".

Хотелось бы получить нечто наподобие следующего.

Синтаксис:
Используется csharp
if (Input.GetKey (KeyCode.W))
    PlayAnimation(0,30,"walk");



Второй день никак не вникну что да как. :-?
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение seaman 20 янв 2016, 14:56

Для начала почитайте мануал
http://docs.unity3d.com/ScriptReference ... utton.html
Затем посмотрите уроки по Юнити. По назначению "виртуальных клавиш".
Я привык по старинке всё контролировать из скрипта. В том числе и процесс анимации(старт/стоп, начало/конец). Но во всех уроках которые я смотрел персонаж движется сам и, судя по всему, либо используется встроенное управление либо что-то просто остается за кадром.

В Меканим по сути все контролируется событиями и состояниями. Аниматор переходит из одного состояния в другое по определенным в нем условиям. Условие - либо окончание анимации, либо изменение передаваемых в аниматор параметров. Т.е. если Вы хотите однозначно управлять анимациями (не советую, но вдруг) - нужно в аниматоре завести параметр, по которому будет производится переход в состояние без анимации и назад.
Это извращенная практика, но возможная.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как управлять анимацией? Компонент Animator...

Сообщение waruiyume 20 янв 2016, 15:01

Т.е. если Вы хотите однозначно управлять анимациями (не советую, но вдруг) - нужно в аниматоре завести параметр, по которому будет производится переход в состояние без анимации и назад.

Ничего заводить не нужно, нужные стейты можно активировать напрямую.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 20 янв 2016, 19:32

seaman писал(а):Т.е. если Вы хотите однозначно управлять анимациями (не советую, но вдруг) - нужно в аниматоре завести параметр, по которому будет производится переход в состояние без анимации и назад.Это извращенная практика, но возможная.


У меня просто длинная анимационная дорожка, на которой записаны все анимации сразу. Поэтому выборка в скрипте была бы как весьма кстати. Также хотелось бы научиться управлять скоростью анимации, например, превращая ходьбу в бег по нажатию shift'а. Хотя для бега лучше заготовить отдельную анимацию, но на первых порах сойдет.

Каким образом может быть осуществлен данный контроль?
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 21 янв 2016, 22:35

Ну, частично вопрос решен. Можно перетащить одну и ту же анимацию в clips а затем задать диапазон проигрывающихся кадров. Правда это немного кривенький способ. Обычно анимация разбита на отдельные фрагменты( судя по ассетам что я видел). Насколько мне известно в юнити резать дорожку нельзя, а если так, то нужно заранее разбить анимацию прежде экспорта готовых моделей.

Да, и проигрывать конкретную аниму оказалось возможно с функцией play. Правда хотелось бы чуть больше гибкости.
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение samana 21 янв 2016, 22:42

Unitis писал(а):Насколько мне известно в юнити резать дорожку нельзя, а если так, то нужно заранее разбить анимацию прежде экспорта готовых моделей.

Это не так. При импорте анимации, можно разрезать её на необходимое кол-во клипов. То-есть вы как бы импортируете одну анимацию где персонаж делает все возможные движения, а в Unity уже разбиваете эту анимацию на клипы для своего удобства.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 21 янв 2016, 23:02

samana писал(а):Это не так. При импорте анимации, можно разрезать её на необходимое кол-во клипов. То-есть вы как бы импортируете одну анимацию где персонаж делает все возможные движения, а в Unity уже разбиваете эту анимацию на клипы для своего удобства.


Вероятно это очевидно, но можно узнать "как"? Я загружаю готовую модель fbx с одной анимацией. Как разбивать пока на глаза не попадалось.
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение samana 21 янв 2016, 23:09

Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Как управлять анимацией? Компонент Animator...

Сообщение Unitis 22 янв 2016, 20:32

Спасибо всем за помощь. Потихоньку дела движутся вперед.

Обнаружил функцию CrossFade() для переключения анимации(для аниматора она тоже есть? Интересно выходит... :-? ). Второй параметр - это видимо время перехода из одной анимации в другую. Насколько плавно он работает? Пытаюсь сейчас обойтись без конструкторских схем. Всё из скрипта. :)

Вообще, честно сказать, ещё пока что не оценил преимущество выстраивания визуальных конструкций. Из кода по-моему всё проще и лаже быстрее делается. А контроль над анимацией заметно гибче.
Unitis
UNITрон
 
Сообщения: 151
Зарегистрирован: 20 ноя 2013, 19:30

Re: Как управлять анимацией? Компонент Animator...

Сообщение samana 22 янв 2016, 20:38

Unitis писал(а):Обнаружил функцию CrossFade() для переключения анимации(для аниматора она тоже есть? )

Да, конечно http://docs.unity3d.com/ScriptReference ... sFade.html

Unitis писал(а):Насколько плавно он работает?

Вроде там линейная интерполяция, или как там называется точно не уверен. То-есть одно значение линейно переходит в другое за заданное время.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск


Вернуться в Медиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1