HLFX.Ru Forum
Показать все 1 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Уроки VolatileRadiant (https://hlfx.ru/forum/forumdisplay.php?forumid=28)
-- Урок 4. CSG-операции (https://hlfx.ru/forum/showthread.php?threadid=2544)


Отправлено XaeroX 13-01-2011 в 00:59:

Урок 4. CSG-операции

Урок 4. CSG-операции

Рассмотрим операции, которые можно осуществлять с брашами в процессе рисования уровня. Это так называемые CSG-операции (constructive solid geometry). С одной из них мы познакомились на втором уроке – это операция Hollow. Есть еще две CSG-операции, с которыми нам нужно познакомиться – Subtract и Merge. Все они доступны в меню Selection > CSG, и, как следует из названия меню, применяются к выделенным объектам.
Добавим вторую комнату к нашему уровню. Можно сделать ее по той же схеме, по которой мы сделали первую, но можно воспользоваться удобным методом «клонирования» - т.е. копирования/вставки выделения. Выделите стены, пол и потолок комнаты и нажмите пробел (Selection > Clone). На карте появится копия выделенных объектов, немного смещенная по отношению к оригиналу (см. рис.).



Переместите выделенные браши (т.е. новую комнату) таким образом, чтобы она находилась справа от основной комнаты на расстоянии 48 юнитов, а положения пола и потолка совпадало по высоте (см. рис.).



Теперь нужно соединить комнаты коридором. Нажмите Esc, чтобы снять выделение с комнаты, и создайте четыре браша – потолок, пол и две стены – там, где будет находиться коридор, между двумя комнатами (см. рис.). При этом удобно пользоваться клонированием. Подгоните браши коридора к стенам так, чтобы не было щелей. Обратите внимание: хотя инструмент Hollow создает комнату таким образом, что браши пересекаются друг с другом «внахлёст», этого лучше избегать и состыковывать их краями.
Остается «прорезать» дверной проём между коридором и каждой комнатой. В этом нам поможет CSG-операция Subtract.



Создайте браш по размерам дверного проёма и расположите его в одной из стен, соединяющих коридор и первую комнату. Ориентируйтесь по размерам точки старта игрока (PlayerStart). Игрок должен беспрепятственно проходить в проём, так что тот должен превышать размеры точки старта как по ширине, так и по высоте. Таким образом, на месте предполагаемого отверстия в стене находится второй браш. Мерцание красного выделения означает, что он совпадает со брашем стены в данной плоскости – это нам и требуется.



Теперь осуществим собственно операцию вырезания – Subtract. Нажмите Shift+U (или выберите пункт меню Selection > CSG > Subtract). Дверной проём создан. Таким же образом создайте проход во вторую комнату, расположив браш в соседней стене. После этих операций браш для прорезания проёмов можно удалить.
Вы заметите, что на «порогах» между коридором и комнатой появилось «мерцание» брашей (см. рис.). Дело в том, что в результате действия операции Subtract произошло разрезание браша стены, и один из итоговых брашей стал полностью совпадать с брашем пола. Оба этих браша можно удалить без риска получить дыру на карте, что и следует сделать, выделив их (см. рис.) и нажав клавишу BackSpace.





Теперь скопируйте и выровняйте текстуры, используя среднюю кнопку мыши (см. материал третьего урока), чтобы не было видно текстурных «швов» на полу в коридоре. Обратите внимание также на верхнюю поверхность дверного проема – здесь имеет смысл повернуть текстуру на 90 градусов, чтобы кирпичная кладка смотрелась более естественной (см. рис.).



Повернутую текстуру скопируйте на верхнюю поверхность соседнего дверного проёма, используя среднюю кнопку мыши. Теперь можно скомпилировать карту и посмотреть результат в игре.



Осталось упомянуть о последней, относительно редко используемой CSG-операции Merge (Ctrl+U). Она соединяет два или более выделенных брашей в один, помогая, таким образом, экономить полигоны. Однако соединить можно лишь такие браши, которые образуют в совокупности выпуклый многоугольник. На нашей карте таких брашей нет, поэтому пока просто запомните про эту операцию – возможно, она пригодится вам в дальнейшем.

Скачать исходник карты (map-файл) этого урока

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 11:37.
Показать все 1 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024