Unreal Engine 4
http://uengine.ru/forum/

Запись движения для Vehicle
http://uengine.ru/forum/viewtopic.php?f=19&t=4234
Страница 1 из 2

Автор:  Seliverstoff [ 09 дек 2016, 13:33 ]
Заголовок сообщения:  Запись движения для Vehicle

Когда-то я делал это для BGE (Blender Game Engine)

В блендере эта задача решалась через запись ключей анимации. Хочу повторить для UE4.
Но не знаю как правильнее подступиться к этой задаче.
Суть задачи такова:
Катаемся на машинке, данные о перемещении пишутся во внешний файл. Если прокатились хорошо, сохраняем данные, если плохо, перезаписываем.
В общем-о стандартная фишка для многих "гонялок" - повторное воспроизведение движения.
Не ясно что лучше писать. То-ли записывать нажатия кнопок пользователем, а потом это воспроизводить повторно (сомневаюсь, что физика отработает со 100% схожестью), то-ли записывать само перемещение, а потом повторно это воспроизводить. И тогда другой вопрос - а с каким интервалом писать? Привязка к FPS - сомнительно, привязка к реальному времени, что делать с промежутками? Обрабатывать через интерполяцию?
А может есть еще какие-то методы, которые я выпустил из виду?

Автор:  MOZGIII [ 06 янв 2017, 17:11 ]
Заголовок сообщения: 

Очень хороший вопрос. Физика в PhysX сама по себе не детерминирована, и в UE4 часто возникают с этим проблемы.

https://devtalk.nvidia.com/default/topi ... -machine-/ (тут пишут что она детерминирована, но тесты показывают что нет, и тесты правы)

http://www.nvidia.com/object/physx_knowledge_base.html (искать по PhysX SDK is not deterministic)

Автор:  MOZGIII [ 06 янв 2017, 17:13 ]
Заголовок сообщения: 

Я думаю лучше писать координаты позиции/угла и состояния анимаций, правда это придётся делать для всего что есть на сцене и что взаимодействовало с физикой.

Автор:  Andy_rst [ 07 янв 2017, 00:47 ]
Заголовок сообщения: 

С физикой будут погрешности достаточно большие. Возможно стоит копать в сторону ключевых точек и времени. Т.е. типичный checkpoints + время на нём.

Автор:  Vladimir488 [ 07 янв 2017, 12:28 ]
Заголовок сообщения: 

Есть же sequncer.

Автор:  Seliverstoff [ 08 янв 2017, 23:27 ]
Заголовок сообщения: 

Пока попробовал писать в UDataAsset структурированные данные. На простых объектах вроде падающего кубика работает отлично. Копаю дальше.
Забыл пояснить, пишу Location и Rotator + нажатия Fire (от последнего откажусь со временем)
Пока тупо через Tick, завтра добавлю хронометр с интерполяцией, чтобы не зависеть от fps

Автор:  Snake [ 09 янв 2017, 11:28 ]
Заголовок сообщения: 

Seliverstoff, почему сразу не писать трансформ матрицу? экономия на скейле? ротатор в каком виде хранится?

Автор:  Seliverstoff [ 09 янв 2017, 17:19 ]
Заголовок сообщения: 

Snake, ну да, зачем лишние нолики писать.

Автор:  Seliverstoff [ 10 янв 2017, 00:07 ]
Заголовок сообщения: 

Vladimir488 к сожалению sequncer не подходит, матин тоже. Нужно "налетать" 20-30 траекторий с хронометражом около 3 минут на каждую, а потом одновременно воспроизвести. В ручную такое анимировать очень проблематично. Может я чего-то не знаю, если так, поделитесь пожалуйста рецептом. Буду очень рад и признателен.

Пока как и планировал, запилил привязку ко времени, и не боюсь плаванья FPS. Теперь можно ставить FrameRate для записи и воспроизведения. Тестировал на 25 кадров\секунда, количество записей в массиве сократилось примерно в 2 раза, плавность воспроизведения за счет интерполяции не пострадала. Пилю дальше. Завтра буду делать физ. модель для корабля, + джойстики и прочее.
Записанная "анимация" немного странно реагирует на коллизии с другими объектами, естественно, что свою траекторию не меняет, если она уже записана, в данном алгоритме это не возможно, но соседние объекты реагируют более-менее верно. Меня это вполне устраивает.
Чем это чревато...
Ну к примеру я записал траекторию корабля №1. Потом пишу траекторию для №2. Если №2 столкнется с №1, то должным образом отреагирует, а вот №1 как летел, так и будет лететь... Это пока тема для размышлений.

Да, забыл пояснить, пока упростил до "корабля" (самолетик - только тело), но потом тоже самое попробую переложить на машинку (тело + 4 колеса).

Автор:  Deus Ex Machina [ 10 янв 2017, 14:31 ]
Заголовок сообщения: 

Если с записью движения объектов все более менее понятно. То как делать с частицами пока не решил. Например я разбегаюсь и прыгаю в воду, брызги волны и так далее. И вот мне надо сделать реверс

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/