Цитата:10240 тестов "OBB-луч", если все разом пальнут
Да я думаю это не такая уж и большая задача. Ведь тот же физ-движок перебирает столкновения каждого объекта с каждым на каждом кадре.
Цитата:Короче, к чему я это всё? А к тому, что баундсы не задают физицскую форму объекта.
Ну это понятно, обработка физики ведь идет по физ. модели.
В общем, по сути темы: как я понял, для того, чтобы создать коллизии по хитбоксам, нужно:
1) Создать объект-член CBoneFollowerManager
2) Переопределить наследуемую от CBaseEntity функцию CreateVPhysics, которая вызывает InitBoneFollowers (не обязательно, можно хоть инициализировать их в CreateVPhysics, это нужно для доп. пересоздания в OnRestore)
3) Для инициализации в InitBoneFollowers нужен дополнительный строковый массив, который является перечислением тех костей модели, к которым прикреплены хитбоксы. Проинциализировать наш объект CBoneFollowerManager.
4) В Think'е нужно лишь вызывать метод Update для CBoneFollowerManager.
5) В спавне вызвать CreateVPhysics + установить флаги USE_HITBOXES, FSOLID_CUSTOMRAYTEST, FSOLID_CUSTOMBOXTEST там, где нужно.
При этом нам не нужно трогать Хулл-бокс у модели игрока, ведь хитбоксы будут иногда выходить из него, и давать нужные коллизии.
Однако, что-то я сомневаюсь, что эта последовательность действий к чему-то приведет: ведь мы хотя бы даже как-нибудь не регистрируем объект класса CBoneFollowerManager в физ-системе.