Войти
ПрограммированиеФорумФизика

Простая физика гусеницы танка

Страницы: 1 2 3 4 Следующая »
#0
(Правка: 17:50) 17:48, 18 ноя. 2021

Хочу сделать игру, как танчики на Денди, но с реалистичной физикой.

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

Как запрограммировать такое поведение? При этом хотелось бы, чтобы тип поверхности под танком (земля, трава, песок, грязь, болото, асфальт) влиял на физику перемещения танка (или в реальной жизни танку пофигу на поверхность?).

Какие тут формулы можно использовать, для просчета перемещений и поворотов?


#1
(Правка: 18:01) 17:56, 18 ноя. 2021
а) обе гусеницы вращаются в одну сторону - танк едет прямо

просто прямо
б) одна гусеница вращается, а вторая стоит - танк разворачивается

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

точка будет на середине танка, перед манёвром нужно остановить танк
г) гусеницы вращаются с разными скоростями

точка разворота будет зависеть от разницы скоростей и самих величин скоростей
#2
(Правка: 18:34) 18:28, 18 ноя. 2021

Freakazoitt
> просто прямо
a = F/m?

Freakazoitt
> на скорости точка поворота будет дальше
Какая формула для расчета?

Freakazoitt
> но ещё будет дрифтить
А какая формула дрифта?

Freakazoitt
> перед манёвром нужно остановить танк
А что будет, если не останавливать? Как просчитать этот момент?

Freakazoitt
> точка разворота будет зависеть от разницы скоростей и самих величин скоростей
Какая там зависимость?

#3
18:58, 18 ноя. 2021

Robotex
> a = F/m
Тип того. Но в начале лучше сделать попроще ступенчатое повышение.
>Какая формула для расчета?
>А какая формула дрифта?
Их нету! В реале инженеры делают а потом смотрят что получилось. Рассчитать можно только поворот на месте. На скорости это физика каждой песчинки под траком определенной форму толкаемый массой танка со скорость разной для разных точек этого танка! ПРидётся фантазировать.
>А что будет, если не останавливать?
1) Передача не включится
2) Коробка передач заклинит
3) Танк всё равно остановится
4) Слетит трак с той стороны которая покрутится назад
5) Танк перевернётся
>Какая там зависимость?
Не помню. Учебник физики раздел механика

#4
19:04, 18 ноя. 2021

Freakazoitt
> На скорости это физика каждой песчинки под траком определенной форму толкаемый
> массой танка со скорость разной для разных точек этого танка
Ну это сложно. Хотелось бы простую физику сделать: пробуксовки на старте, длина тормозного пути, динамика разгона. Можно просто какими-то коэффициентами материала задавать, чтобы проще считать было.

Freakazoitt
> 1) Передача не включится
> 2) Коробка передач заклинит
> 3) Танк всё равно остановится
> 4) Слетит трак с той стороны которая покрутится назад
> 5) Танк перевернётся
Ну этого мне тоже не нужно реализовывать. Можно допустить, что танк супернадежный и ничего этого не случиться, а он развернется, просто немного по другому (например, в момент поворота будет еще по инерции лететь вперед)

#5
20:57, 18 ноя. 2021

Robotex
> Можно просто какими-то коэффициентами материала задавать, чтобы проще считать было.
А если под одной гусеницей одно покрытие, под другой другое, нужно учитывать? Или один общий для танка коэффициент?
А неровность поверхности учитывать? Или на плоскости?

#6
21:00, 18 ноя. 2021

Простейшая модель для аркады: гусеницы заменяем двумя точками, у каждой точки своя целевая скорость, к точке прикладываем силу, пропорциональную разнице реальной и целевой скорости.

#7
(Правка: 4:10) 4:10, 19 ноя. 2021

Robotex
> а хочу управлять каждой гусеницей отдельно
Игроки тебя за такое так "полюбят"...
> Как запрограммировать такое поведение?
Сначала создай 3д модель танка, кубик, колёса по бокам.
Потом делай цепь к каждому боку.
Цепь состоит из пластин соединённых между собой.
Потом назначаешь для колёс моторы и вперёд.
В итоге должно получиться примерно так

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#8
4:12, 19 ноя. 2021

И рессоры к колёсам всередине незабудь.

#9
(Правка: 20 ноя. 2021, 0:25) 5:18, 19 ноя. 2021

samrrr
> В итоге должно получиться примерно так
> Houdini

гудини - это не реал тайм :D

вот такой флаг на ветру чтоб реал тайм физику считать 60 FPS - нужно 100 TFlops (и это ещё, без учёта рендера)

+ Показать

отсюда,
https://cgicoffee.com/blog/2016/08/nvidia-flex-cloth-simulation

~2 fps on my GTX 970!

так что борода :D ну либо сильно упрощённо ..

собственно поэтому то и в играх физика такая стрёмная .. 

#10
(Правка: 7:09) 7:03, 19 ноя. 2021

вообще то исходники для танков давно открыты, например у Assault Warfare есть ассет на гитхабе https://habr.com/ru/company/vk/blog/423653/.
И она даже работает на мобильных устройствах..
Если вы хотите формулы, то напишите мне в личку, я отправлю ссылки.

#11
7:07, 19 ноя. 2021

samrrr
Картофельным такое даже не снилось

#12
8:56, 19 ноя. 2021

если нужна простая реализация то можно глянуть тут
теория : Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)
практика : Battle Tank Starter Kit

интегрировали когда то физику из этого ассета - результат:

+ Показать

#13
11:38, 19 ноя. 2021

samrrr
> Игроки тебя за такое так "полюбят"
именно за это и полюбят.

Mikle
> А неровность поверхности учитывать? Или на плоскости?
вообще думал о плоских поверхностях. Однако, если для наклонов не сильно усложняются вычисления, то было бы прикольно их ввести

Mikle
> А если под одной гусеницей одно покрытие, под другой другое, нужно учитывать?
> Или один общий для танка коэффициент?
Можно че-то среднее по идее вывести. На первой надо хоть как-то сделать, а потом уже по ощущениям смотреть, что улучшить

#14
11:39, 19 ноя. 2021

}:+()___ [Smile]
> Простейшая модель для аркады: гусеницы заменяем двумя точками, у каждой точки
> своя целевая скорость, к точке прикладываем силу, пропорциональную разнице
> реальной и целевой скорости.
А вот это интересная мысль

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумФизика