Геометрические формы (Shapes)

Материал из xrWiki
(перенаправлено с «shape»)
Перейти к: навигация, поиск

Геометрические формы, или, для краткости, шейпы, представляют собой простейшие примитивы: куб и сферу. В игре они невидимы, и сами по себе они ничего не делают, лишь ограничивают некую замкнутую область пространства. Однако к ним может быть подключен требуемый спавн-элемент наподобие аномалии, перехода на другой уровень или пространственного ограничителя. В итоге при попадании актора в эту область что-то происходит — срабатывает аномалия, межуровневый переход или сюжетное событие.

Как подключить шейп к спавн-элементу

1. Добавить спавн-элемент, допускающий использование шейпов.

ВАЖНО!

Чтобы не было проблем с выделением шейпа, старайтесь не помещать спавн-элемент внутрь него.

2. Добавить в сцену требуемую форму (сферу для аномалий, куб/сферу для остальных объектов): Shape -> Append -> Sphere/Box -> Add. Масштабировать и подгонять её позицию пока не нужно.

3. Выделить спавн-элемент, нажать кнопку Attach Object в свитке Commands, и в режиме выделения объектов кликнуть по шейпу.

level-editor-shapes-01.png

Результат:

level-editor-shapes-02.png

Отсоединить шейп от спавн-элемента можно, выделив его и нажав кнопку Detach Object.

Составные шейпы

Ради повышения производительности скриптовой системы голые (не в составе спавн-элементов) шейпы можно подцеплять друг к другу. Для этого нужно выделить один шейп, нажать кнопку Attach Shape, и кликнуть по второму шейпу, и так далее. Отсоединить же отдельные шейпы, к сожалению, невозможно — придётся разъединять всю цепочку.

level-editor-shapes-03.png
level-editor-shapes-04.png

Предварительно заданные шейпы для аномалий

Для аномалий (по крайней мере в ЧН/ЗП) существует возможность использовать заранее заданный шейп в виде сферы. Для этого в конфиге аномалии нужно добавить строку $def_sphere

[zone_mine_gravitational]:zone_base
GroupControlSection				= spawn_group_zone
$spawn 							= "Карусель"
$def_sphere						= 4    ; радиус шейпа для редактора
$prefetch 						= 16
class							= ZS_MINCE
...