В-общем ту "первую игру" про борд - я себе прощаю и считаю завершенной. Вторая, как я решил, будет про машинки.
И понеслась..
Модельку машины сделать - я сделал. Даже несколько.
А потом надо же сделать чтоб машинка "ехала". Скейт мой ехал путём присваивания линейной скорости КВАДРАТНОЙ КОРОБКЕ (rigid body)
Для машинки - так просто не получится. Решил разобраться как люди делают. Разбираться буду в 3х частях, мужики:
Оказалось в юнити есть wheel collider - модель "подпружиненной массы".
Условной "тяжелой" машинки, кузов которой - всё та же прямоугольная коробка (в плане просчёта столкновений) на 4х (юнити вроде разрешает до 20ти) колесах.
Между каждым колесом и кубиком - амортизирующая подвеска, которая "пружинит" колёса.
Начал читать-пробовать: самые смешные фейлы снять - не снимал, но один покажу.
Потом оказалось что сами wheel colliders должны быть отдельными обьектами, не вложенными в геометрию (mesh) колёс.
Ну сейчас я с точки зрения логики понимаю: в юнити у каждого обьекта (ноды условной) - есть проперти transform.
Это и положение, и угол поворота и масштаб её.
"Принято" wheel collider-ы ставить отдельно, а колёса - просто "вращать" в каждом кадре, основываясь на повороте wheel collider-а.
Если попытаться ЛОГИКУ колеса вложить в mesh колеса - они начнут друг друга крутить, и получится лютый треш, летяющие вокруг машины колёса итд.
ну и поехало немножко
Настраивается подвеска и "трение колёс" (на самом деле это сила трения поверхности, по-которой едешь, но пацаны из юнити засунули это в колесо. Заехал на снег - в колесе поменяй!
В четырёх колесах! Не слишком тупо на самом деле, мейкс сенс). Колёса настраиваются всеми вот этими параметрами. Что они делают - так без поллитра сразу неясно.
Torque [tôrk] - это крутящий момент. А крутящий момент - это векторное произведение положения обьекта в пространстве на вектор прикладываемой к нему силы. В юнити это КАК СИЛЬНО КОЛЕСО вертится (ну и ВЗАД или ВПЕРЁД вертится ли, основываясь на знаке "+" или "-").
А ещё фраза "вот это ТОРКнуло" обрела совсем другой смысл. Всем кто захотел вспомнить всю эту физику - на ютубе всё есть.
Damper [dampər] - все мне хотят перевести как "демпфер". Слово "демпфер" я не знал, но знал амортизатор. Ну не совсем тупой, выдыхаю. Амортизатор это короче.
Что такое acceleration мы все знаем, deceleration - внезапно тоже есть, и смысл его более-менее понятен.
Suspension [səˈspɛnʃən] - это подвеска, значит. Зачем в машине есть подвеска и чё там как - тоже можно на ютубе освежить.
Damp [damp] - это то что характеризует демпфер, АМОРТИЗАЦИЯ короче.
Droop [dro͞op] - это "свисать", если глагол. Как ушки и пса Друпи. А как имя существительное - это скорей "увядание" или там "угасание" силы.
Потом я какое-то время пытался понять что же такое Force App Point Distance. А это, господа, точка, в которой условный центр СИЛЫ ТЯГИ (Traction ) прикладывается.
Сила тяги, это "крутящий момент разделить на радиус вращения" в нашем случае, зависимость - понятна, а вот зачем точку эту менять? - Вздыхаю ..
Значит точка эта, она скорей всего находится в самом низу, где колесо с трассой соприкасается (и значение параметра для этого случая в юнити - 0).
Пацаны из документации по-юнити, говорят что вот у КРУТЫХ ТАЧЕК эта точка чуть ниже ЦЕНТРА МАССЫ вашего автомобиля. Потому на картинке - значение 0.16. А 1 - это прям на верхушке колеса приложить эту силу (под крылом).
Взяв это очень условное понимание первых 10 параметров (без трения и угловой функции) надо было к чему-то прийти. Не зря читал же.
Я очень рад, что несколько дней провёл за чтением статеейк с сайтов типа "устройство автомобиля". "Дорога толкает автомобиль", пацаны. Я так и знал что везде - заговор!
Про векторы что-то из школы вспомнил. Что такое линейная интерполяция например, когда в сурцах у кого-то Lerp увидел. Понятия - простые, слова - СТРАШНЫЕ!
А вывод я вот какой делаю:
Если я хочу делать игру про машинку, мне хотелось бы иметь контроль над параметрами "как быстро разгоняется", "как сильно дрифтует на поворотах", иметь возможность включать/выключать этот дрифт программно, настраивать как быстро машинка останавливается/отзывчиво поворвачивает.
А вместо этого я должен настраивать 16 разных компонентов проде МАССЫ НАД КОЛЕСОМ, РАДИУСА колеса, угловых и линейных трений - даже с формулами оно контринтуитивно до жути.
Попытки 2 дня ПОНЯТЬ эти числа привела к таким очень далёким от удовлетворительных результатов. Попытки тупо скопировать чужие "волшебные цифры" - поменяла поведение машинки в лучшую сторону драматически, хотя значения от моих отличались - на десятые и сотые условных единиц. Сам я желаемых результатов, даже после всего этого анализа - скорей всего не добьюсь.
Мне нужна машинка какая будет прыгать с трамплинов, круто поворачивать и никогда не переворачиваться. Машинка какая без проблем заезжает на все опуклости и выпуклости, без подскоков в воздух, короче мне нужна "не реалистичная" машинка. Не реалистичную буду делать и рассказывать во второй части этого ОПУСА ПРО МАШИНКИ.
небольшую затравочку того ЧТО ЖЕ ТАМ БЫЛО - я сейчас затизерю (так как этап - уже почти пройденный):
Ну и приложу МАТЕРИАЛЫ какие читал, пацаны:
"Словарную работу" делать и писать этот пост я начал недели 2 назад, и я очень счастлив что я могу закончить эту грёбаную первую часть. За эти 2 недели у меня икспаерился домен, ложились сервера сёрдж, я делал кучу всяких отличных от этого поста дел и вот - доделал. Всех обнял.