Радиус объектов
#1

Доброго времени суток. Подскажите, как можно узнать радиус объекта?
Reply
#2

Если необходимо программно узнать радиус модели:
- Разобрать файлы .col, которые можно найти в папках models и SA-MP каталога установки GTA San Andreas, составить массив модель => радиус и брать значения из него
- Инклуд размеров моделей: t570966
- Также можно использовать плагин Colandreas, сделать рейкаст с нужной стороны модели (до которой нужно узнать радиус) и вычесть из вектора удара координаты объекта (а там просто длину вектора узнать, и будет радиус). Это, кстати, самый точный вариант

Сразу замечу, что первых 2 варианта возвращают приблизительные значения, так как модели зачастую не имеют форму идеальной сферы, а с моделями SA-MP так вообще возвращают неправильные значения (много моделей, которые добавлены в SA-MP, имеют неправильные borderBox'ы и радиус в .col-файлах, которые не соответствуют радиусу мешей колизии)

Узнать радиус модели транспортного средства можно с помощью стандартной функции GetVehicleModelInfo

Если вам нужно вручную узнать радиус для нескольких объектов, можете поискать на сайтах с каталогами объектов.

В целом, самый простой способ - инклуд размеров моделей (пункт 2)
Reply
#3

Спасибо
Reply
#4

Quote:
Originally Posted by prineside
Посмотреть сообщение
Если необходимо программно узнать радиус модели:
- Также можно использовать плагин Colandreas, сделать рейкаст с нужной стороны модели (до которой нужно узнать радиус) и вычесть из вектора удара координаты объекта (а там просто длину вектора узнать, и будет радиус). Это, кстати, самый точный вариант
На столько точный, что у некоторых объектов вообще нет коллизии или она очень "примерная", хотя это отчасти нивелируется конкретными требованиями (тс просит только радиус).
Кстати, рейкастить в данном случае не рекомендуется в общем случае: есть модели в которые можно "рейкастнуть" хоть и в ограничивающую сферу, но не обязательно луч при этом попадёт в саму модель (например стрельнуть в дырку пончика xD ).
Reply
#5

Quote:
Originally Posted by Mutha_X
Посмотреть сообщение
На столько точный, что у некоторых объектов вообще нет коллизии или она очень "примерная", хотя это отчасти нивелируется конкретными требованиями (тс просит только радиус).
Кстати, рейкастить в данном случае не рекомендуется в общем случае: есть модели в которые можно "рейкастнуть" хоть и в ограничивающую сферу, но не обязательно луч при этом попадёт в саму модель (например стрельнуть в дырку пончика xD ).
Тем не менее, в общем случае, это все-таки точнее, чем радиус. Что касается моделей без колизии и пончиков - если рейкаст уперся в никуда, как fallback использовать инклуд с радиусом.

Пару месяцев назад я делал скрины всех моделей GTA и SA-MP для сайта. Что касается радиуса стандартных моделей GTA - там проблем нет, у всех моделей радиус ровно от центра до самой дальней вершины, мне даже было приятно смотреть, как скрипт рождает вагоны ровных снимков. Но когда очередь дошла до SA-MP, я вспомнил много плохих слов и людей, которые делали эти модели. Как я писал выше, ни бордер-боксы, ни радиусы по крайней мере на трети моделей явно не совпадают с мешем - значения никуда не годятся. Некоторые модели пришлось снимать вручную.

Так как в SA-MP объекты более интересные, чем в самой GTA, их и используют, по идее, чаще. Учитывая кривизну данных о радиусе моделей, я бы не стал рассчитывать на один только инклуд
Reply
#6

Quote:
Originally Posted by prineside
Посмотреть сообщение
Пару месяцев назад я делал скрины всех моделей GTA и SA-MP для сайта. Что касается радиуса стандартных моделей GTA - там проблем нет, у всех моделей радиус ровно от центра до самой дальней вершины, мне даже было приятно смотреть, как скрипт рождает вагоны ровных снимков.
Если уж корректно, то надо брать не дальнюю вершину от центра, а две самые удалённые друг от друга вершины в модели, а камеру ориентировать относительно середины этих двух точек. Хотя так, как помню, такая корректировка на подавляющем большинстве объектов не критична.
Reply
#7

Вообще требуется программно узнать радиус всех моделей одной из адаптаций.
Reply
#8

Quote:
Originally Posted by MIASO
Посмотреть сообщение
Вообще требуется программно узнать радиус всех моделей одной из адаптаций.
Адаптаций? Это что?
Reply
#9

Quote:
Originally Posted by prineside
Посмотреть сообщение
Адаптаций? Это что?
Он имел ввиду для глобальной модификации: https://sampforum.blast.hk/showthread.php?tid=155070
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)