Полезное

Мы Вконтакте

Discord канал

#
Модератор: Di-Crash
Аватара пользователя
Пользователь
Сообщения: 589
Мне нужно что бы в течении какого то промежутка времени персонаж разворачивался на определенный градус. Что бы он поворачивался не мгновенно, а в течении несколько долей секунд пока проигрывается часть анимации.
Я подобрал оптимальные значения, на какой градус должен поворачиваться персонаж каждый тик. И посчитал сколько при этом тиков нужно допустим что бы повернутся на 90 градусов.

Всё прекрасно работает.

Но вот я всё же задумался, а правильно ли я делаю.

Как это может повести себя на другом компьютере?
Аватара пользователя
Пользователь
Сообщения: 4069
тик имеет привязку к фпс, если будет просадка фпс, или наоборот оно будет не лимитированым, скорость поворота будет различна, поэтому это лучше сделать с помощью лерпа и таймлайна, управляя скоростью таймлайна(Set Play Rate) будешь управлять скоростью поворота, также и поворачивать сможешь на любой градус.
В таймлайне, добавь кривую(или прямую), от 0 до 1, это будет альфой для лерпа.

Еще есть вариант добавить кривую прям в анимацию, обычно такие кривые используются для IK, я не знаю как это точно назвать, использую такие кривые для Ikinema, но одну кривую использую для перемещения в данном случае.
https://picua.org/images/2018/11/05/9f1 ... 392bc9.png

p.s. также без проблем ты можешь пользоваться тиком, но что бы это было корректным прийдется считать относительно 60 фпс, то есть использовать формулу процентного соотношения.
Аватара пользователя
Пользователь
Сообщения: 2319
тик даже в рамках одного железа не выдает одинаковый результат, а на другом тем более.
создается обычное уравнение движения S=Vt , где мы узнаем конечный результат при любом времени...
в твоем случае V-градусов(радианы или обороты в минуту как сам выберешь) секунду а S-градусы(аналогично).
подставляешь время в уравнение - получаешь результат, на тике на таймере , глобальное время системы - уже неважно.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 589
Мне главное что бы поворот был синхронно с анимацией, а не с системным временем.
Сделать саму анимацию с поворотом не вариант, потому что по программе поворот может быть, а может его не быть. В зависимости от случая.

Хотя даже если бы мне захотелось анимацию такую сделать, что бы поворачивала персонажа через рутовую кость. То я даже не знаю как это делается. Пробовал в 3D редакторах такое сделать. Не получается. Рутовая кость крутится, а Unreal не воспринимает это. Персонаж не поворачивается.
Аватара пользователя
Пользователь
Сообщения: 2319
вопрос был про тик и вращение, а не про кости.
от этого ответ не меняется ... составь такое уравнение которое тебе нужно... но суть та же S=Vt
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
и таймлайн и тик будут синхронными с твоей анимацией, просто для таймлайна придется настраивать тайминги, ну тоесть он время должен иметь такое как анимация, и если ты анимацию ускоришь в двое, то и таймлайн ускорить нужно также, а вот если кривая прям в анимации, то это все будет происходить автоматически.
С таймлайном возни больше, иногда нужна дополнительная логика что бы его выключить раньше. Дело вкуса, я люблю таймлайны. Но и кривую в анимации на тике я тоже использую, все сильно зависит от ситуаций.

https://picua.org/image/bezymyannyi.aoEjPl
Аватара пользователя
Пользователь
Сообщения: 589
т.е получается тик имеет привязку к фпс и анимация тоже. Вместе они синхронны.
Будет просадка фпс, значит замедлится анимация и таймлайн, и тик будут работать реже.

Теперь понятно...

Спасибо.
Аватара пользователя
Пользователь
Сообщения: 2319
скорость анимации не зависит от времени тика и фпс...
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
насчет анимации не уверен, раньше я всегда тестировал свой код, ограничением фпс до 10, так вот рут мотион анимации у меня стали давать ошибки в таком случае, за один и тот же реальный отрезок времени, дистанция прохода сильно изменялась, и я добавил формулу процентного соотношения, и эту переменную подключил ко всем анимациям, и все было хорошо, потом я сильно обновил версию движка, и у меня появилось много ошибок, выяснилось, что теперь код которым я раньше регулировал скорость воспроизведения анимации, создает ошибки, теперь это не требуется и анимация работает корректно, логику которой я раньше регулировал скорость анимации пришлось отключить.

Таймлайн также не зависит от фпс, и 1 секунда в таймлайне, это реальная 1 секунда.

p.s. это я Agny


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

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница