SteamVR Phisics настольный теннис

Раздел, посвящённый Дополненной Реальности и Виртуальной Реальности

SteamVR Phisics настольный теннис

Сообщение xumuk39rus 17 май 2019, 20:08

Добрый день. При создании настольного тенниса столкнулись с проблемой физики. При использовании стандартных компонентов физики unity3d, на больших скоростях мяч проскальзывает через коллайдер не замечая коллизию сквозь ракетку на скоростях, пробовали использовать разные вариации Collision Detection(Discrete, Continuous, Continuous Dynamic. Continues Speculative), но ничего не помогло. После недели мучений решили переписать всю физику с нуля не используя базовые методы unity3d. У нас получилось реализовать столкновение и правильный вектор дальнейшего движения с помощью SphereCast и AddForce, построив весь проект на триггерах, но столкнулись с другими проблемами, это повторное отбитие ракеткой мяча после момента расчета новой траектории с другой стороны(только на больших скоростях) и при резком изменении направлении движения ракетки перед столкновением с мячом. Обе эти проблемы решаем, но они крайне "костыльно" и появляются более не желательные баги. Может быть кто-то сталкивался с подобной проблемой физики в unity3d и смог бы нас проконсультировать каким нибудь ассетом или советом, если нужно можем загрузить проект с исходниками.
Спасибо.
xumuk39rus
UNец
 
Сообщения: 7
Зарегистрирован: 17 май 2019, 20:05

Re: SteamVR Phisics настольный теннис

Сообщение Jarico 17 май 2019, 21:00

Нужно увеличить количество тиков физики движка и перенести все физические расчёты из Update в FixedUpdate

Player Settings -> Time -> Fixed time step

0.03 = 30 тиков в секунду (1/0.03)
0.016 = 60 тиков в секунду (1/0.016)
0.008 = 120 тиков в секунду (1/0.008)

Если увеличивать количество тиков процессор будет сильнее нагружаться, рекомендуется держать Fixed time step приближённо к количеству кадров в секунду....
Последний раз редактировалось Jarico 17 май 2019, 21:04, всего редактировалось 1 раз.
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: SteamVR Phisics настольный теннис

Сообщение xumuk39rus 17 май 2019, 21:03

Jarico писал(а):Нужно увеличить количество тиков физики движка

Player Settings -> Time -> Fixed time step

0.03 = 30 тиков в секунду (1/0.03)
0.016 = 60 тиков в секунду (1/0.016)
0.008 = 120 тиков в секунду (1/0.008)

Если увеличивать количество тиков процессор будет сильнее нагружаться


спасибо за ответ. Пробовали ставить на максимум по итогу немного улучшалось но на более высоких скоростях всё равно проскальзывает(это на стандартной физике unity3d), на наших скриптах всё классно отрабатывает, но появляются баги.
xumuk39rus
UNец
 
Сообщения: 7
Зарегистрирован: 17 май 2019, 20:05

Re: SteamVR Phisics настольный теннис

Сообщение Jarico 17 май 2019, 21:04

xumuk39rus писал(а):
Jarico писал(а):Нужно увеличить количество тиков физики движка

Player Settings -> Time -> Fixed time step

0.03 = 30 тиков в секунду (1/0.03)
0.016 = 60 тиков в секунду (1/0.016)
0.008 = 120 тиков в секунду (1/0.008)

Если увеличивать количество тиков процессор будет сильнее нагружаться


спасибо за ответ. Пробовали ставить на максимум по итогу немного улучшалось но на более высоких скоростях всё равно проскальзывает(это на стандартной физике unity3d), на наших скриптах всё классно отрабатывает, но появляются баги.


Я отредачил сообщение... Прочтите еще раз
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: SteamVR Phisics настольный теннис

Сообщение xumuk39rus 04 авг 2019, 08:58

Jarico писал(а):
xumuk39rus писал(а):
Jarico писал(а):Нужно увеличить количество тиков физики движка

Player Settings -> Time -> Fixed time step

0.03 = 30 тиков в секунду (1/0.03)
0.016 = 60 тиков в секунду (1/0.016)
0.008 = 120 тиков в секунду (1/0.008)

Если увеличивать количество тиков процессор будет сильнее нагружаться


спасибо за ответ. Пробовали ставить на максимум по итогу немного улучшалось но на более высоких скоростях всё равно проскальзывает(это на стандартной физике unity3d), на наших скриптах всё классно отрабатывает, но появляются баги.


Я отредачил сообщение... Прочтите еще раз


Долго не отвечал сорям, в общем проблема была в том что ракетка была привязана к контроллеру, который в свою очередь двигался за счёт Transform, то есть телепортировался, в нашем случае нужно было сделать ракетку независимой от префаба игрока и двигать её через Rigidbody, через функцию создания движения в определённом отрезки пути от А и Б которая создаёт вектор движения и ракетка успешно двигается по физике прекрасно отрабатывая все возможные столкновения с объектами.
xumuk39rus
UNец
 
Сообщения: 7
Зарегистрирован: 17 май 2019, 20:05


Вернуться в AR / VR

Кто сейчас на конференции

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