Wheelcollider - как его использовать.

Научился сам? Помоги начинающему.

Re: Wheelcollider - как его использовать.

Сообщение Tolking 16 фев 2017, 10:08

Wheelcollider на танке? Здорово! И как он там должен работать? Гусеницы крутить?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 1750
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Wheelcollider - как его использовать.

Сообщение sledo 07 мар 2017, 21:44

End_User писал(а):Некоторые данные по Т-34-85 (1944 года):

Вес 30500кг.
Всё остальное, вроде 150кг дорожного колеса, сантиметры хода подвески, скорость, график и коэффициент трения... Всё это уже не важно и более настроить невозможно.
Wheel Collider начинает и не прекращает глючить.

Очень расплывчатое описание. Зачем вообще использовать Wheel Collider у танка? Катки танка единственно что делают - поддерживают машину на определенном уровне от земли и все. Нужно лишь сымитировать ход подвески относительно трака гусеницы, с чем отлично справится какой нибудь Joint, если лень писать зависимость самостоятельно. Главная проблема в том, как сделать гусеницы так, что бы они были похожи на гусеницы. В идеальном случае лучше вообще реализовать полную зависимость траков и замков на коллайдерах (главное прикинуть скорости движения коллайдеров к промежутку просчета физики, т.е. за 0,02 сек (Edit > Project Settings > Time > fixed timestep) при скорости движения гусеницы в 60 км/ч (16,7 м/с) замок трака пройдет 0,334м, значит надо будет уменьшать промежуток просчета физики) с применением физического материала и расчета сопротивления грунта. Вот тогда у вас будет танк. Но если подумать, то все это хозяйство можно упростить. Колеса и гусеницы по прежнему анимировать, а танк поставить на две гибкие платформы (это крайне важно делать ее из нескольких звеньев, поскольку должна быть зависимость звеньев друг от друга) с применением того же физического материала, которые толкать или тянуть AddForce, а другой стороны эмитировать натяжение. Те же яйца только в профиль, но все это намного быстрее.
Конечно при ближайшем рассмотрении гусеницы и колеса будут вести себя неестественно, но зато физика танка будет практически та же что и у настоящего.

Иначе, придется делать костыли. Например создавать 8 колес, анимировать гусеницу на каждый трак и привязывать их к колесам. Но это будет не танк, а не пойми что, а точнее многоколесный вездеход, который ну прям совсем не танк.
sledo
Старожил
 
Сообщения: 770
Зарегистрирован: 05 янв 2014, 15:44

Re: Wheelcollider - как его использовать.

Сообщение Rachok 20 апр 2017, 12:06

Добрый день! Читаю Ваш мануал по WheelCollider-у.
У меня при работе с ними возникла куча вопросов, при этом они более простые, чем те, что рассмотрены у Вас.
Основное управление WheelCollider-ом выполняется с помощью полей motorTorque (задание крутящего момента), brakeTorque (тормозной момент), steerAngle (угол поворота, обычно используется у ведущих колес).
С помощью motorTorque мы задаем крутящий момент, и вот тут у тех кто подзабыл механику начинаются проблемы.
Задавать крутящий момент для приводных колес можно так:
M=mgra/2, m - масса авто, g - 9.8, r - радиус колес, а - ускорение. Ускорение находим по формуле delta(v)/delta(t), Где и v и t берем из жизни, с реального автомобиля. Или придумываем свои.
Автомобиль начинает двигаться, но движется с ускорением. Дойти до свехзвука - не проблема.
Путь решения кажется очевидным: отключаем крутящий момент. Но он работает не так, как ХОЧЕТСЯ.
Рассмотрим самый простой вариант. Замеряем скорость автомобиля с помощью:
Синтаксис:
Используется csharp
НашаМашина.GetComponent<Rigidbody>().velocity.magnitude;

Это не самый лучший вариант, т.к. не он не учитывает ни направления движения (скорость движения на задней передаче должна быть ниже скорости движения вперед), ни рельефа, ни свободного падения. Но для начального этапа, на ровных поверхностях, этот метод можно использовать.
Если скорость машины больше максимально допустимой, то для каждого колеса устанавливаем
Синтаксис:
Используется csharp
WheelCollider wc = Wheel.GetComponent<WheelCollider>();
wc.motorTorque = 0f;

И что мы наблюдаем? После отключения крутящего момента скорость автомобиля не падает, а продолжает расти.
1. Почему скорость продолжает расти? Это связано с инерцией? Инерцией автомобиля или инерцией колеса? При уменьшении массы колес скорость быстрее прекращает расти (при отключении крутящего момента)... Если крутящий момент - это сила, то почему при его отключении мы наблюдаем такое явление? ПО ИДЕЕ ОН ДОЛЖЕН ПРЕКРАЩАТЬ НАБОР СКОРОСТИ СРАЗУ!
2. Как работать с тормозным моментом? Что это вообще за величина? Как им пользоваться? Есть ли какие-нибудь формулы для того, чтобы находить нужную величину тормозного момента.
Например.
2а. Как сделать движение автомобиля равномерным, если отключение крутящего момента не приводит к прекращению набора скорости?
2б. Как сделать движение автомобиля равнозамедяющимся? Мы знаем все о нашем автомобиле: скорость, массу, скорость вращения колес, крутящий момент, радиус колес. Т.е. формулу для равноускоренного движения я привел (M=mgra/2), а как делать остановку?
2в. Как сбросить скорость до нужной? Например, текущая скорость 60, мне нужна 30 в самые кратчайшие сроки. Как для этих целей использовать тормозной момент?
Или текущая скорость 60, мне нужно сбросить скорость до 30 через 30 секунд. (Или через 100 метров, это уже сложнее)

Было бы здорово, если ответы хотя бы на часть вопросов пополнили этот мануал.
Rachok
UNIт
 
Сообщения: 96
Зарегистрирован: 19 авг 2016, 09:07

Re: Wheelcollider - как его использовать.

Сообщение Rachok 22 апр 2017, 07:30

Так, допущена дикая ошибка.
Крутящий момент рассчитывается по формуле M=amr, a - ускорение, m - масса, r - радиус колеса.
Крутящий момент нужно прикладывать ко всем колесам авто? Если приложить крутящий момент в 20000Нм к задним колесам одного авто и по 1000Нм ко всем колесам другого - ускорение второго будет выше и заднеприводная машина никогда не догонит полноприводную. Получается, что если не прикладывать крутящий момент ко всем колесам, то машина ведет себя непредсказуемо, ее динамические характеристики не поддаются объяснению, она ведет себя не так, как вела бы себя машина с таким крутящим моментом.
Rachok
UNIт
 
Сообщения: 96
Зарегистрирован: 19 авг 2016, 09:07

Пред.

Вернуться в Уроки

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

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