Пятница, 19 Апреля 2024, 22:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Raycast Wheel (Как приложить силу трения?)
Raycast Wheel
RenusДата: Пятница, 10 Октября 2014, 17:47 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Добрый день комрады))
Много слышал что так делают колеса для авто симуляторов, но инфы почти не нашел никакой.
Решил сделать сам, сделал модель упругого колеса, расставил лучи в несколько рядов, расчитал силы упругости, приложил, получилось "мягкое колеса" взаимодействующее с остальными объектами довольно реалистично.
Скрины:


Но вот беда, трения то нет, то есть колесо отталкивает все объекты правильно, но не крутиться, и это логично так как нет силы трения только сила упругости...
Вот собственно и вопрос, как и куда правильно приложить силу трения, что бы колесо вело себя как колесо?!!!

P.S. Изначально предпологалось передавать усилие вращения на диск колеса, а скрипт что бы симулировал покрышку, со всеми силами и свойствами, но вот теперь не уверен, как это все в таком виде нормально реализовать и возможно ли... wink
Вот и прошу вашей помощи, наверняка кто то такое делал, а то нормальной инфы по Raycast Wheel я вообще не нашел(((
Буду рад любой помощи...
MANMANAДата: Суббота, 11 Октября 2014, 00:20 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
можно прикладывать силу в определенной точке(ах) в определенном направлении к колесу и соответственно к поверхности дороги.

можно высчитывать вес машины на каждое колесо, деформацию шины, площадь соприкосновения шины с поверхностью дороги для расчета прокручивания колеса.
физика. в сети есть хорошее описание расчета всей физики машины (которое даже советуют моделлерам не совсем уж точных "моторов") - подвеска, двигатель, передаваемый импульс т.д. найду, как называется скину ссылку.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
RenusДата: Суббота, 11 Октября 2014, 01:40 | Сообщение # 3
почетный гость
Сейчас нет на сайте
MANMANA, мотор, коробку, подвеску, деформацию шины, я уже сделал...
Даже понял, как и куда приложить силы трения, и как расчитать их модули, щас бьюсь с векторной алгеброй, и голова уже ватная wacko
MANMANAДата: Суббота, 11 Октября 2014, 08:26 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Физика машины, от и до. http://phors.locost7.info/contents.htm в 144 страницах.

http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
RangerДата: Суббота, 11 Октября 2014, 11:39 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Я вообще не парился.
прикладывал 2 ортогональных вектора силы трения в зависимости от продольной и поперечной скорости. единственное в таком подходе, необходимо проверять машина на земле или в воздухе.
в принципе уже было играбельно.
Для большей детализации можно рассчитать подобным образом действие сил на каждое колесо. и в зависимости от положения колеса относительно центра масс рассчитать суммарный вектор на тело в целом.


RenusДата: Суббота, 11 Октября 2014, 14:32 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Ranger, Ну я решил решил сделать что бы колесо полностью моделировалось и более менее реалистично, охота сделать широкие колеса, всякие болотоходы и внедорожники, и что бы оно не плоское было happy

Устроил кодинговый марафон, уже пишу часов 15 с перерывами, ох, как все не просто то оказалось, проекция векторов на плоскости контакта wacko , но вроде разобрался, уже катается практически)))
MANMANAДата: Воскресенье, 12 Октября 2014, 12:29 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Эй, ты там жив?
Если да, то не томи! выкладывай что получилось.
А лучше темку отдельную создай, типа блога. Народ же, видишь, интересуется твоими сообщениями и демками.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
RenusДата: Понедельник, 13 Октября 2014, 00:46 | Сообщение # 8
почетный гость
Сейчас нет на сайте
MANMANA, жив жив)))
Получилось, почти, все работает приблизительно, щас мелкие деффекты устраняю)
Чуть позже выложу видос или демку.

Вот вам страшный код на ночь happy , кто угадает что это тому печенька)))

Код
//Проецирование вектора движения колеса на плоскость контакта
      float D1 = -(myHit.normal.x * myHit.point.x + myHit.normal.y * myHit.point.y +
                   myHit.normal.z * myHit.point.z);

      float K1 = -(Vector3.Dot(myHit.normal, transform.position) + D1);
      Vector3 P1 = transform.position + (K1 * myHit.normal);

      float K2 = -(Vector3.Dot(myHit.normal, (transform.position + wheelSpdVec)) + D1);
      Vector3 P2 = (transform.position + wheelSpdVec) + (K2 * myHit.normal);
MANMANAДата: Понедельник, 13 Октября 2014, 01:13 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
а в комменте разве уже не указано?:) или здесь имеется ввиду математико-физическая сущность? а-ля пиорема тефагора и т.д.?

Добавлено (13.10.2014, 01:13)
---------------------------------------------
осмелюсь предположить, что здесь расчет отталкивающей/"притягивающей" силы каждого твоего рейкастика колеса от поверхности соприкосновения. отталкиваемся, если рейкастик упирается в уже пройденную площадь от осевой линии и "притягиваем" дорогу (а, может, здесь тормозимся чуток), если рейкастик смотрит в площадь впереди осевой линии колеса. Толкательная сила, как я могу предположить.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
RenusДата: Понедельник, 13 Октября 2014, 05:37 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Даю ссыль на ютуб, посмотреть: https://www.youtube.com/watch?v....eMT8NGg
MANMANAДата: Понедельник, 13 Октября 2014, 11:18 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
была мысль про отталкивание, но отбросил как несостоятельную, ибо думал, здесь реализовано нечто новое, а не то, что мы уже видели в одной из предыдущих тем от тебя:).
фыф, прикрути, пожалуйста, хоть какую-нибудь камеру с лерпом, а то мозг сильно трясется при езде;).


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
RenusДата: Четверг, 16 Октября 2014, 01:15 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Вообщем то почти все реализовал, только есть одна проблема, так называемый jittering.
Когда колесо стоит на земле оно само начинает дергаться и раскручиваться, происходит это потому что сила трения в точке касания колеса(луча рейкаста) всегда прикладывается против движения этой точки, но сила трения действующая на колесо настолько большая что, вместо того что бы его остановить, на следующем кадре физики оно уже крутиться в противоположенную сторону(перескакивая момент покоя) и на следующем кадре опять в обратную и так все время...
Не знаю доступно ли объяснил.
Возможно видели такое в первых физ движках, скользящий ящик останавливаеться и когда почти остановился начинает дергаться вперед-назад, это тоже самое...
Возможно кто-то знает как бороться?
MANMANAДата: Четверг, 16 Октября 2014, 01:40 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
условие состояния покоя авто и/или нажатия кнопки движения? - здесь будут учитываться и внешние силы (тяжести, удара...), и взаимодействие с педалькой газа.
если есть такие факторы, то включать влияние силы трения/рейкастики.
и/или вводить коэффициент неподвижности, равный 0 или 1, на который умножать переменную(ые), которые отвечают за вращение колеса.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Четверг, 16 Октября 2014, 12:04
TinyДата: Четверг, 27 Ноября 2014, 13:59 | Сообщение # 14
уже был
Сейчас нет на сайте
Renus, ты использовал rigidbody?и как расчитываешь столкновение с объектами?
SnakeRДата: Четверг, 27 Ноября 2014, 18:12 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
Такое кол-во рейкастов убьет производительность. Такие колеса делаются 1 лучом исключительно вниз, рассчитываются силы и прикладываются уже к кузову.

Unity3D Developer
Ваш лучший помощник при разработке в Unity3D
TinyДата: Четверг, 27 Ноября 2014, 18:30 | Сообщение # 16
уже был
Сейчас нет на сайте
SnakeR, но 1 лучом не высчитаешь нормально наклон колеса к плоскости при крутых неровностях. Или я ошибаюсь?
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Raycast Wheel (Как приложить силу трения?)
  • Страница 1 из 1
  • 1
Поиск:

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