#1
17 января 2012 в 01:47
Введение<br /><br />В данной статье будет рассказано, как работать с entity в редакторе уровней типа GtkRadiant на примере версии 1.5.0.<br /><br />Map-файл, который как раз редактируется с помощью Radiant'a, описывает следущие составляющие уровня:<br /><br />
<br /><br />Entity list (список сущностей)<br /><br />Для управления установленными объектами редактор содержит мощные инструменты: entity list и entity inspector.<br /><br />Entity list - удобный список всех entity на уровне, в котором легко находить нужные из них для последующего вызова entity inspector или других целей (например, копирования). Для вызова entity list нужно выбрать соответствующую строчку меню view, либо использовать горячую клавишу L.<br /><br /> Примечание: горячие клавиши (в WinXP для GtkRadiant 1.5.0) можно посмотреть/поменять с помощью файла<br /><br />SYSTEM_SECTION:\Documents and Settings\USER_NAME\Application Data\RadiantSettings\1.5.0\q3.game\shortcuts.ini<br /><br />
<br /><br />В появившемся окне можно искать нужный объект, а затем копировать его (клавиша SPACE), перемещать с помощью мыши, либо вызывать для ее редактирования entity inspector. Единственным недостатком этого инструмента является то, что в нем отображаются абсолютно все источники света, которых может быть не одна тысяча (да, бывают и такие чудовища), что очень мешает навигации в entity list.<br /><br />
<br /><br />Entity inspector<br /><br />Логически следующий за entity list, но хронологически вызываемый раньше инструмент entity inspector вызывается горячей клавишей N при условии выделенного в редакторе объекта. Если объект создан только что и больше действий с выделением произведено не было, то можно вызывать entity inspector сразу, т.к. после создания любого объекта (в том числе браша или патча) выделение автоматически переходит на него. Если же надо выделить объект уже после, нужно выделить его с помощью левой кнопки мыши и клавиши SHIFT.<br /><br />Для этого находим на рабочем пространстве нужный объект (пользуясь, если нужно, правой кнопкой мыши для промотки и колесом мыши для масштабирования), зажимаем SHIFT и кликаем на объект. Если зажать левую кнопку мыши, то можно выделить несколько объектов.<br /><br />Так как описанный способ в точности повторяет алгоритм выделения брашей и патчей, для выделить так же trigger или func не выйдет. Для этого надо вместе с SHIFT зажимать CRTL (entity и модели тоже можно выделять с CTRL).<br /><br />Итак, после выделения нужного объекта нажатие горячей клавиши N приведет к открытию entity inspector.<br /><br />
<br /><br />Две верхних области инструмента представляют собой мощную справочную систему по всем доступным объектам. Выбирая в верхнем окошке нужный (по умолчанию выбран тот, который был выделен при запуске inspector'а, а если не было выделено ничего - то последний использованный) можно найти все (практически) ключи для его настройки. Собственно говоря entity или модель в map-файле представляет собой список параметров, среди которых:<br /><br />
- worldspawn - множество всех брашей и патчей уровня, не задействованных в trigger'ах и func'ах;<br />
- entity - этити (к примеру, target_give, item_haste и др.);<br />
- trigger - триггер, который можно определить как симбиоз множества из брашей и/или патчей с entity;<br />
- func - особая группа брашей или патчей;<br />
- model - модель.<br />
![](http://forums.quakegate.ru/images/radiant_entity_basic/view_menu.png)
![](http://forums.quakegate.ru/images/radiant_entity_basic/entity_list.png)
![](http://forums.quakegate.ru/images/radiant_entity_basic/entity_list2.png)
![](http://forums.quakegate.ru/images/radiant_entity_basic/entuty_inspector.png)
- Главный (свойственен всем entity)<br />
- classname - определяет, чем собственно выделенная entity является;<br /><br /><br />
- Второстепенные (могут быть определены для всех entity)<br />
- origin - местоположение entity в формате «X Y Z»;<br />
- target - метка, указывающая entity, следующую после данной в связи (connection);<br />
- targetname - метка данной entity для ссылания на нее другой;<br /><br /><br />
- Специфические (могут быть определены для некоторых классов entity)<br />
- spawnflags - десятичное число, в котором кодируются булевые (да/нет) параметры entity (флаги);<br />
- wait - время в секундах, через которое entity может быть использована снова («перезарядка»);<br />
- другие…<br /><br />
- entity пересекается с твердым брашем ;<br />
- entity находится в «открытом пространстве»;<br />
- В обоих случаях уровень при компиляции (BSP -meta) выдаст «утечку» (leak).<br />
- При выделении некоторой строчки Key:Value в соответствующих полях появятся соответствующие значения; при этом если выделить другой объект и зайти в entity inspector, то поля будут содержать те же значения, которые там были во время закрытия. Таким образом можно удобно и быстро копировать строчки с параметрами из одного места в другое (к примеру, _remap от модели к модели).<br />
- Если нужно для тестирования уровня передвинуть на некоторое время info_player_start (или аналог), но двигать обратно его потом будет лень, а наличие двух таких entity мешает стабильно спауниться, то можно установить в первом info_player_start параметр classname равным, к примеру, info_player_start2. Тогда он не будет никак отображаться на уровне и даст спокойно спауниться другому info_player_start'у.<br />