Пятница, 15 Ноября 2024, 05:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Баг с вращением костей
SkorpyXДата: Суббота, 23 Января 2016, 21:30 | Сообщение # 1
участник
Сейчас нет на сайте
Здравствуйте! Во время разработки игры я столкнулся с одним багом. У меня есть персонаж со Skinned Mesh Render и арматурой, к кости головы прикреплена камера. При определённом угле камера начинает сильно дрожать, но это происходит только когда игрок повёрнут на 90, 180 или 270 градусов, что видно на видео, причём дрожание происходит как с костью головы, так и с костью спины, но при виде от третьего лица его нету (или просто не заметно, т.к. активирована другая камера, не зависящая от кости)
Вот скрипт вращения (angle e (-75, 75), coefficient = 0.5, то есть спина и голова вращаются на половину угла) :
Код

function LateUpdate () {
    if (state == PlayerState.Stand || state == PlayerState.Sneak || state == PlayerState.Crawl) {
  spin.Rotate(headRotationVector * angle * (1 - coefficient));
     head.Rotate(headRotationVector * angle * coefficient);
    }
    
    if (state == PlayerState.Driver) {
  head.Rotate(driverRotationVector * driverAngle);
  head.Rotate(-head.transform.right * angle);
    }
}

Ссылка на видео : Youtube

Добавлено (23 января 2016, 21:30)
---------------------------------------------
headRotationVector = (0, 1, 0);

Сообщение отредактировал SkorpyX - Суббота, 23 Января 2016, 21:28
TymonrДата: Суббота, 23 Января 2016, 23:11 | Сообщение # 2
With OpenSource forever
Сейчас нет на сайте
Юзай smooth просто, и пофиг

Если вдруг метода нет в юньке


Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
SkorpyXДата: Пятница, 29 Января 2016, 20:16 | Сообщение # 3
участник
Сейчас нет на сайте
Tymonr, smooth использовать не получится, т.к. перед LateUpdate аниматор сбрасывает вращение. Именно поэтому я и использую transform.Rotate();

Добавлено (24 января 2016, 22:32)
---------------------------------------------
Кажется придётся делать отдельную модель рук для вида от первого лица

Добавлено (29 января 2016, 20:16)
---------------------------------------------
Пришлось переписать почти весь контроллер персонажа. Сделал отдельную модель рук от первого лица. Дрожание отсутствует, т.к. теперь углы поворота камеры задаются через Quaternion.Euler, тогда как углы вращения костей через Rotate()

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг