Главная / Моделирование / Настройка коллизий
Файл set/colliders.set определяет как физически взаимодействуют разные категории объектов друг с другом. Формат файла:
{"<имя группы> " [from <имя другой группы>]
<... параметры группы ...>
}
Необязательный параметр from позволяет унаследовать настройки из другой группы. При этом если в этой группе унаследованные параметры не соответствуют группе, то их можно перекрыть своими. Параметры следующие:
{colliderId "<тип объекта>"}
задает тип объекта для этой группы
{collideWith "<тип объекта 1>" ["<тип объекта 2>" ... "<тип объекта N>"] }
Задаёт с какими типами объектов будет сталкиваться эта группа объектов при передвижении. Например: указано для людей – куст и противопехотная мина. Когда человек проходит сквозь куст, он колышется; противопехотная мина – взрывается.
{noContactsAtAll}
Не включать физику при столкновении. Например: указано для людей, чтобы они при столкновении с танком не падали на пол по физике.
{noContactWith "<тип объекта 1>" ["<тип объекта 2>" ... "<тип объекта N>"]}
Не включать физику при столкновении с указанными типами объектов. Например: танк не должен спотыкаться об выпавшую из рук солдата винтовку, мину или куст, а должен их спокойно проезжать насквозь.
{blocking
{speed <скорость км/ч>} ; kmph
{penetration <глубина контакта>} ; m
}
Задает возможность остановки и пробуксовывания объекта при упирании в другой объект без включения физики. Физика не включается, если скорость объекта меньше указанной и глубина контакта меньше указанной. Пример: Танк упирается в локомотив и буксует, т.к. не может его сдвинуть. Без этого параметра – танк бы бился об поезд и останавливался. И так n раз.
{rejectColliderByVolume}
Для выезда/выхода одного объекта из другого по умолчанию используется специальная упрощенная схема включения физики, которая определяет столкновения в целом по объекту (используются центры объектов и их скорости). Указание этого флага, включает другую схему, в которой каждый объём проверяется на столкновения. Например: граната, упавшая в танк не имеет права вылетать из него, даже если она в этот момент направлена в сторону от центра танка.
{pointCollider}
Используется специальная схема определения контактов, чтобы дать возможность маленькому объекту залететь в окно дома или любой другой объём с признаком “hole”. Пример: граната должна залетать в окна и отскакивать от подоконников, сделанных с помощью объёмов-дыр.
{useRamVolume "<тип объекта 1>" ["<тип объекта 2>" ... "<тип объекта N>"] }
Используется для сложных объектов, чтобы при столкновениях и толкании других объектов использовался упрощенный объём. Для всех остальных типов объектов расчет контактов будет производиться по обычной схеме. Например: танки для толкания других танков определяют контакты по упрощенному объёму с названием “ram”.
{canPush "<тип объекта 1>" ["<тип объекта 2>" ... "<тип объекта N>"] }
Указывает, что объект может толкать перед собой объекты указанного типа при движении. Например: танк толкает перед собой мотоцикл.
{canPushBroken "<тип объекта 1>" ["<тип объекта 2>" ... "<тип объекта N>"] }
Указывает, что объект может толкать перед собой объекты указанного типа, если они сломаны, при движении. Например: танк толкает перед собой другой разбитый танк. Сделано, чтобы убитый в узком проходе танк не запер его собой.