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/ |