yurickon Posted May 10 Posted May 10 (edited) Привет всем! Ребята, делаю велисипед, уже закончил, но осталась одна проблемка. Самому не получилось найти решения, прошу совета! Ситуация, собственно на скриншоте: Переднее колесо поворачиваетя по оси Z ВЕРТИКАЛЬНО. К вилке же оно крипится под углом и при повороте руля должно наклоняться по оси Y на небольшой угол. Сколько я не бился, так и не нашёл решения. Строчка в коде отвечающая за поворот колеса выглядит так: joint_wheel_f.Axis10 = MathLib.RotateZ(current_turn_angle).GetColumn3(0); Настройки физического объекта колеса: Подскажите, пожалуйста, как в коде или может быть в редакторе, настроить ось подвески таким образом, что бы она совпала с вилкой и тогда при повороте руля корректно наклонялась и по оси Y и не вылазила за её пределы. Спасибо! Edited May 10 by yurickon
cash-metall Posted May 13 Posted May 13 Здравствуйте, я не уверен что если у джойнта сделать правильный поворот по оси велосипед сам поедет. мне кажется правильный вариант - разделить физику и визуал. физическое колесо поворачивать отдельно (возможно не одно). визуально руль поворачивать отдельно по другой логике чтобы оно смотрелось норм. но если по вашему вопросу то чтото вроде joint_wheel.Axis10 = MathLib.Rotate(bicycle_axis_up, current_turn_angle).GetColumn3(0); надо получить ось руля велосипеда и вращать вокруг нее, а не вокруг "вверх" 1
yurickon Posted May 13 Author Posted May 13 @cash-metall Здравствуйте, респект! Подогнал ось под вилку: joint_wheel_f.Axis10 = MathLib.Rotate(new vec3 (0, -0.6f, 1), current_turn_angle).GetColumn3(0); И вуаля: Первый вариант то же норм, но второй более элегантный) Спасибо!
yurickon Posted May 16 Author Posted May 16 После применения и тестирования всё-таки вернулся к первому варианту) Сильно уж вел заваливался на бок при поворотах. Пришлось синхронизировать вращение псевдо-физического колеса со скоростью, а так же его вращение вперед-назад при холостом ходе (накатом).. И теперь рузультат стал приемлимым. Спасибо ещё раз разработчикам! 1
Recommended Posts