Ru/Hammer Cordon Usage
Обзор инструмента Hammer Cordon
Инструмент "кордон" используется для уменьшения компилируемой зоны карты в целях экономии времени, а также тестирования отдельных частей без вмешательства окружения, или поиска местоположения проблемы.
Будет скомпилирована только область внутри границ кордона (помещенная в закрытую коробку для предотвращения утечек).
Общие принципы
Инструмент "кордон" позволяет разработчику компилировать только одну комнату, или тестировать освещение в отдельной области без необходимости компиляции всей карты. За исключением больших или сложных зон, это позволит весьма сократить время компиляции.
Также кордоны могут использоваться для отсечения от компиляции зон при поиске проблемы. Это делается путем постепенного уменьшения охватываемой кордоном области, пока не будет найден проблемный участок. С той же целью эту область можно двигать по карте.
Также они могут использоваться для исключения лишней или запутанной геометрии комнат в окнах 2D-вида. Отсеченная кордоном область позволит вам сосредоточиться на деталях конкретной комнаты.
Местоположение отправных точек
Область кордона зачастую не включает в себя оригинальные отправные точки карты (энтитю info_player_start или info_player_deathmatch), и запускает карту без скомпилированной точки входа игрока, поместив его по умолчанию в координате (0,0,0). Конечно, этого можно избежать путём перемещения стартовой точки между оригинальной позицией и разными кордонами, но в долгосрочной перспективе отправные энтити лучше ставить сразу в нескольких зонах кордонов.
Когда кордоны выключены, использование нескольких энтить info_player_start обычно вызывает проблемы при запуске игры в одиночном режиме. Игрок будет появляться на карте рядом с первой попавшейся энтитей. Чтобы появляться в нужной позиции, в одном из info_player_start установите флажок Master. Теперь все другие точки возрождения будут игнорироваться.
Edit Cordon Bounds
Эта функция используется, чтобы задать или изменить зону "внутри кордона". Будут скомпилированы все объекты, которые заходят в неё хотя бы частично, и, чтобы избежать утечек, вдоль её границ будет создана коробка с текстурой кордона.
Как создать новую область кордона
- Нажмите кнопку Edit cordon bounds на панели инструментов.
- Перетяните выделенную коробку в окнах 2D-вида в зону, которую требуется скомпилировать.
- Поскольку выделенная зона выглядит в 3D-окне как куб, вы можете изменять его высоту, ширину и/или глубину (в любом окне 2D-вида), охватывая нужную область.
- Чтобы завершить создание области кордона, на панели инструментов выберите любой инструмент редактирования.
- Убедитесь, что зона кордона включает хотя бы одну точку входа игрока (игроков).
Как редактировать существующую область кордона
- На Панели инструментов нажмите кнопку Edit cordon bounds.
- Для изменения зоны кордона, перетаскивайте узлы границы в окнах 2D-вида.
- Чтобы двигать область кордона, щелкните по выделению, и тащите его в нужное место.
- На Панели инструментов выберите любой инструмент (например, Selection tool), чтобы завершить редактирование зоны кордона.
- Убедитесь, что зона кордона включает хотя бы одну точку входа игрока(-ов).
Toggle Cordon State
Эта функция переключает состояние кордона, то есть показывает или скрывает его видимую зону (созданную с помощью инструмента Edit cordon bounds).
Когда кордон активен, будет компилироваться область только внутри него. Объекты, включённые в компиляцию, отражаются в окне 3D-вида, а граница кордона подсвечивается жирной красной линией, как показано на картинках ниже.
Когда кордон неактивен, его зона видна не будет, а карта скомпилируется целиком, как обычно.
Изменение текстуры кордона
Если пределы кордона отображаются в игре неправильно (как черные и розовые квадратики), это означает, что выбрана повреждённая текстура. Она может быть легко заменена любой другой:
- Перейдите на вкладку Tools > Options... > Game Configurations.
- Locate the Cordon texture field, and click the Browse... button next to it, to open the texture browser.
- Дважды щёлкните по нужной текстуре. Текстура
tools/toolsskybox
вполне подойдёт, но убедитесь, что в пределах кордона находится light_environment, чтобы после компиляции мир был правильно освещён.