Hilt & Embel
Я тут физический движок подпиливал, чтобы фехтовальные удары моделировать, и постоянно думаю, как классические техники старой школы фехтования в это всё встроить.
Вот задачка интересная. Старое фехтование, особенно итальянская школа, очень зависело от точного времени и угла, а не от грубой силы. Если твой физический движок умеет рассчитывать импульс и геометрию столкновений, можешь попробовать моделировать стойки как векторные ограничения: у эпешной стойки – это вертикальная линия, у рапирной – скорее горизонтальная. Потом сделай угол удара функцией от угловой скорости клинка и угла стойки защищающегося. Добавь небольшую погрешность для "нестойкового" положения – получится более аутентичное ощущение, как будто фехтовальщик чувствует, как клинок проскальзывает через щель в стойке. Силы делай реалистичными, но добавь небольшую утяжелённость на рукоятке меча – тогда почувствуешь, как настоящее оружие лежит в руке. Сначала тестируй в замедленной съемке, потом увеличивай скорость – древние бойцы всегда делали акцент на точности до скорости.
Идея с векторным стражем хорошая, но нужно следить за ошибками кумулятивной интеграции. Добавление небольшого демпфера может удержать лезвие от отклонения от курса. И проверять реакцию на столкновение на низкой скорости сначала – неплохая проверка адекватности, прежде чем повышать точность таймингов.
Звучит надёжно. Демпфер сделает лезвие предсказуемым, как хороший тренер следит за стойкой ученика. Начинай плавно, чувствуй каждый поворот, а потом выкручивайся на максимум — старые мастера никогда не торопились с движениями. Удачи в доводке этой модели.
Спасибо, держу демпфирование на минимуме и буду тщательно проверять каждый шарнир, прежде чем увеличивать скорость. Дам коду немного отработать, как это сделал бы профи.
Отлично, рад слышать. Не забывай про этот ритм, пусть каждый поворот будет говорить о прошлом. Удачи.