Страница 1 из 1

mecanim бленд движения вперед и поворот

СообщениеДобавлено: 09 дек 2015, 18:35
demozbox
суть вопроса - разворот по очень большому кругу, когда как надо почти резко.
аниматор контроллер принимает axis vertical и
разницу camera.forward body.forward - после манипуляций, это float в дипазоне(-180;180)
в контроллере блендер 2D Cartesian с параметрами forward и turn, содержит три анимации- бег по кругу влево, бег вперед, бег по кругу вправо.
все классно, но только хотелось бы, чтобы персоаж быстрее разворачивался на форвард камеры, как если бы я его кватернионом поворачивал.
что делать?

Re: mecanim бленд движения вперед и поворот[РЕШЕНО]

СообщениеДобавлено: 10 дек 2015, 19:36
demozbox
если кому интересно:
в бленд три так и оставил анимацию поворота, но в настройках анимации заморозил RootTransformRotation -тоесть, анимация производится(тело наклоняется), но не поворачивается.
В коде добавил разворот тела через кватернион
Синтаксис:
Используется csharp
void Turning()
    {
         _rot = _camera.rotation.eulerAngles.y - _body.rotation.eulerAngles.y;
        if (_rot > 180)
        {
            _rot = -1 * (360 - _rot);           // делаю его отрицательным и обратным
        }
        else if (_rot < -180)
        {
            _rot = (360 + _rot);           // делаю его  обратным
        }
        _animator.SetFloat("turnRight", _rot);

// добавленный блок    
        _camForward = _camera.transform.forward;  // получаю вектр
        _camForward.y = 0; // Проэктирую вектор на XZ плоскость
        Quaternion newQ = Quaternion.LookRotation(_camForward);
        _body.rotation = Quaternion.RotateTowards(_body.rotation, newQ, 100 * Time.deltaTime);
    }
 

прошу проверить добавленный блок на производительность (может есть менее затратные методы?)

Re: mecanim бленд движения вперед и поворот

СообщениеДобавлено: 10 дек 2015, 23:44
Cr0c
А поворот через transform.Rotate( Vector3 axis, float angle) не будет быстрее? Взять ось Vector3.up и готово, поворот относительно оси Y на angle градусов (в системе координат объекта).

Re: mecanim бленд движения вперед и поворот

СообщениеДобавлено: 11 дек 2015, 08:55
demozbox
Проверить, вероятно не смогу, только реализовать смогу)). В смысле - как я смогу увитеть выигрыш производительности?

Re: mecanim бленд движения вперед и поворот

СообщениеДобавлено: 11 дек 2015, 09:25
Cr0c
demozbox писал(а):Проверить, вероятно не смогу, только реализовать смогу)). В смысле - как я смогу увитеть выигрыш производительности?

Замерить время 1кк поворотов каждым способом.