Брашворк: Арки и Торы

Помогаем новичкам в создании своего мира
Сообщение
Автор
Аватара пользователя
Backbreaker
Маппер
Маппер
Сообщения: 1184
Зарегистрирован: 27.12.2007

#1 Сообщение 03.09.2008, 09:06

Изображение

Данный тутор поможет вам разобраться в создании одних из самых сложных элементов из брашей
Начнем с самого простого
1. Поворот дороги.
Изображение
Давайте сразу определимся - ширина дороги будет равна 512-ти юнитам. Имхо самый приемлемый вариант. Для радиуса поворота я выбрал значение 1024. Выбираем инструмент Block Tool - acrh.
ИзображениеИзображение
Переходим на вид сверху Top (x/y) и рисуем квадрат 1024х1024 (по радиусу). Жмем Enter и перед нами появляется окно параметров арки.
Изображение

Давайте разбираться
Wall width - толщина стенки арки.
Number of Sides (max 2048) - кол-во брашей, из которых будет состоять арка, чем выше это число, тем плавнее и реалистичнее будет смотреться арка. Но прежде чем забивать туда астрономические цифры вы должны прочесть Важное примечание: при создании арки программа просчитывает координаты вершин брашей с точностью до одного юнита, поэтому если вы создали маленькую область арки и указали в Number of Sides большое значение, то не удивляйтесь, что ваша арка получится кривой, бесформенной и т.д. А при скейлинге уже готовой арки, вершины могут меняться по координатам с точностью до тысячных долей юнита, но даже это не всегда спасает от кривизны и даже может вызвать ошибку компиляции, поэтому будьте аккуратней.
Arc (0-360)- угол арки
Start Angle - угол, с которого будет начинаться арка (против часовой стрелки). На форму арки не влияет, влияет лишь на расположение по отношению к мировым осям
Изображение

Add Height - добавление высоты, например для создания винтовых лестниц. В этом поле указываем высоту одной ступеньки (обычно 8 ). В Number of Sides будем указывать количество ступенек.

Вернемся к нашей дороге
Нам нужен поворот 90 градусов, поэтому Arс ставим 90.
Wall Width - 256, «почему в 2 раза меньше фактической ширины?» - возможно спросите вы, - а вы посмотрите на превью: программа думает что вся область превью – это созданный нами квадрат 1024х1024, теперь мысленно разделите область Preview на 4 части
Изображение
и увидите, что арка нам нужна шириной не 512, а 256, что мы и забиваем в поле Wall width, НО при нажатии на ОК эта арка растянется и заполнит всю созданную нами область 1024х1024, то есть площадь арки увеличивается в 4 раза и ширина дороги становится 512. За этот небольшой недочет разработчикам "респект".
Number of Sides - 8. Далее - ОК.
Красим арку в текстуру дороги со скейлом 1:1 (если текстура 512х512). Для того чтобы текстура легла как надо открываем Texture Application (Shift+A)Изображение выделям каждый фэйс по отдельности и указываем Rotation, руководствуясь схеме ниже.
Изображение
Для каждого фэйса нужен свой угол. Это не идеальные значения, по идее, если сложить все углы должно получиться 360, а здесь 361,5, но это не портит нам картину. После того как все углы указаны и применены, выделяем все фэйсы и выравниваем по краю (кнопка R или L) или по центру (С).
Изображение

Примечание: смотрите, чтобы при выравнивании текстур галочка treat as one была снята.

Есть еще один вариант создания поворота - дисплейсмент. Его я не буду подробно расписывать ( https://www.snarkpit.net/index.php?s=art ... rticle=146 ), а лишь расскажу принцип. Создается система арок такого вида (1):
Изображение
И по ней рисуется дисплейсмент, то есть соединяются вертексы дисплейсмента с вертексами арок. Затем арки удаляются. Способ геморрный, зато смотрите результат (3) - текстура сама растягивается и ложится практически идеально.
ЗЫ: 2 – случай, который мы только что рассматривали.

2. Коридор с арочным потолком и плавными поворотами.
Изображение
Тут я не буду отвлекаться на текстуры. Ширина коридора пускай будет равна 128, а толщина стен 16. Сделаем сначала прямую часть коридора.
Изображение

Затем выбираем Block Tool - acrh, переходим на вид сверху и рисуем квадрат 160х160 (ширина коридора с учетом толщины стен), Параметры арки можете посмотреть на скрине.
ИзображениеИзображение
Итак, у нас получилась вытянутая арка, сжимаем ее до размеров 160х80, жмем Ctrl+M и крутим ее как надо (действуйте по ситуации), ставим на место потолка и растягиваем по всей длине коридора. Ну вот, самая легкая часть готова.
Изображение

Делаем плавный поворот. Для удобства копируем готовый коридор и ставим оба вот так
Изображение
Чтобы создать наружный поворотный сектор стены надо вспомнить, как создавали дорогу. Выбираем Block Tool - acrh рисуем квадрат со сторонами равными ширине коридора + толщины стен. Создаем арку с параметрами:
ИзображениеИзображение
Я выбрал значение Number of Sides - 8 (запомните этот момент, мы потом его еще вспомним) Обратите внимание, что арка занимает только ¼ часть от всей области превью, поэтому Wall width указываем значение в 2 раза меньше фактической толщины. ОК, сделали.
Делаем противоположную стену: копируем арку (только что созданную) уменьшаем ее до квадратика 16х16 и переносим ее на место. Обратите внимание на то, что при уменьшении арки уменьшается ее толщина. Хотя это и очевидно, я уже сталкивался с работами, в которых люди этого не учитывали и для создания поворота ж\д рельсов также копировали и уменьшали первую созданную рельсу (с внешней стороны поворота) и разумеется вторая получалась тоньше, потом спрашивают "а почему так?". В таких случаях надо отдельно создавать арки для внутренней и внешней частей. В нашем же случае этим можно пренебречь.
ИзображениеИзображение
Так. Дальше самое интересное

Потолок.
Выбираем Block Tool - torus и рисуем квадрат 320х320 (позже поясню откуда эти цифры). Смотрим на параметры торуса.
Изображение
Верхняя превьюха показывает форму поперечного сечение тора (Cross Section Preview), нижняя - вид сверху (Top View Preview). Вот тут я должен кое-что разъяснить, Внимание: если назначить Rotation Arc меньше 270-ти градусов, торус (как и в случае с аркой) будет занимать не всю область Top View Preview, при создании растянется и получит неправильную форму. Нам лишний геморрой с вертексами не нужен, поэтому можно указать угол (Rotation Arc) в диапазоне от 270 до 360 (удобнее выбирать значение, кратное 90), потом всегда можно обрезать. Поэтому мы и рисуем квадрат 320х320, чтобы получить в итоге круг (радиус тора=160).
Cross-Section Radius - радиус Поперечного сечения (не путайте с радиусом тора!) – будет равен 80-ти – это максимально возможное значение для данного случая. Подумайте сами, при радиусе тора 160, радиус сечения никак не может быть больше 80-ти. Если вы нажмете на Compute Max Radius, то он вам выдаст максимальный радиус сечения, рассчитанный из высоты нарисованного вами бокса R=h/2. Ранее я всегда говорил «рисуем квадрат», игнорируя третье измерение; при создании тора тоже не обязательно учитывать высоту, главное надо ввести нужное значение в Cross Section Radius и высота бокса потеряет свой приоритет.
Значение Rotation Sides мы выбираем, опираясь на тот момент, про который я говорил, что вы должны запомнить, указывая Number of Sides 8 в параметрах арки, когда делали поворот стены. Т.к. тогда была арка в 90 градусов, то здесь торус в 360, то есть в 4 раза больше, поэтому в Rotation Sides мы указываем значение тоже в 4 раза больше 8х4=32, если вы хотите указать Rotation Arc 270 (3х90), то в Rotation Sides указываем 8х3=24 (вот почему я говорил что удобнее выбирать значение угла кратное 90)
Должно получиться так (при Rotation Arc = 360):
ИзображениеИзображение

Далее, используя Clipping Tool (Shift+X)Изображение, отсекаем все лишнее…
ИзображениеИзображение

Чтобы сделать поворот коридора больше радиусом, выбираем Block Tool – acrh (начинаем с создания стены) и рисуем большой квадрат со сторонами равными радиусу поворота стены. На этот раз мы создадим каждую стену отдельно (без копирования)
ИзображениеИзображение
Не забываем указать толщину стены в 2 раза меньше чем на самом деле (если вы не понимаете для чего это надо делать, внимательно прочтите первую часть тутора про создание поворота дороги).
У нас получилась внешняя стена поворота; чтобы сделать внутреннюю, переключаем Snap on Grid на 16 (по толщине стены) и рисуем еще один квадрат поменьше, захватывающий внутреннюю стену. Параметры арки такие же.
Изображение

В итоге у вас должно получиться:
Изображение

Рисуем потолок. Выбираем Block Tool - torus и рисуем квадрат с учетом того что он превратится потом в круг (Rotation Arc = 360) то есть в 2 раза больше радиуса поворота 672х2=1344:
Изображение
ИзображениеИзображение

Опять же используем Clipping Tool для отрезания лишних частей и ставим крышу на место
Вспомните как мы делали повороты дорог. Таким же образом можно сделать пол в туннеле. Можно конечно сделать прямоугольный в виде блока - ваше дело.

Изображение
Последний раз редактировалось Backbreaker 25.04.2009, 17:20, всего редактировалось 5 раз.
Изображение

Аватара пользователя
Backbreaker
Маппер
Маппер
Сообщения: 1184
Зарегистрирован: 27.12.2007

#2 Сообщение 03.09.2008, 09:15

3. Трубы с плавными поворотами.
Изображение
Беру данные от балды: диаметр - 96, толщина стенок – 8, кол-во брашей из которых будет состоять секция трубы 16.

Для начала сделаем отверстие в стене, от которой будет идти труба.

Выбираем Block Tool - acrh и рисуем квадрат со сторонами = радиус трубы + толщина стенки трубы =56 (надеюсь формула понятна) смотрим на параметры:
Изображение
Это будет четверть, поэтому не сложно догадаться что Number of Sides = в 4 раза меньше чем у трубы. Толщина стенки будет равна 8 (не забываем что арка расстянется)
Далее берем в ручки VertexTool и смотрим средующий скрин
Изображение
Тут я думаю ничего объяснять не стоит, на скринах все отчетливо ясно.

Чтобы сделать трубу, выбираем Block Tool - acrh и создаем (96х96) арку с параметрами:
Изображение
Поворачиваем ее перпендикулярно к стене и совмещаем трубу с отверстием.
Изображение

Делаем поворот. Выбираем Block Tool – torus, радиус поворота я выбрал 192 (сразу считаем 192х2=384).
Изображение

Обратите внимание на форму сечения – теперь это не арка, а круг. Cross-Section Radius равен радиусу трубы (для тех кто в танке: диаметр – это два радиуса, 96/2=48)
Как вы могли заметить, я специально опускаю все подробности, чтобы, опираясь на всё ранее сказанное, вы сами попробовали сориентироваться в своих действиях. Теперь попробуйте без моих подсказок создать поворот, только уже с другим радиусом. Удачи!


Примечания:
1. Т.к. арки и торы относятся к сложной брашевой геометрии и имеют в основном декоративный характер, любые созданные из них элементы вынуждают компилятор резать карту на множество ненужных листьев самых различных форм, что занимает много времени. Поэтому такие элементы нужно превращать в func_detail.
2. При создании тора не обращайте внимание на то, что на верхнем превью арка может занять не всю область. Размер арки на верхнем превью зависит от высоты созданного вами бокса, а я уже говорил, что значение Cross Section Radius имеет больший приоритет, чем высота бокса.
3. Термин радиус поворота в данном туторе подразумевает радиус поворота по внешнему краю.
Вложения
corridor.7z
Пример из тутора 2 и 3
(102.23 КБ) 296 скачиваний
corridor.7z
Пример из тутора 2 и 3
(102.23 КБ) 296 скачиваний
road.zip
Пример из тутора 1
(8.1 КБ) 295 скачиваний
road.zip
Пример из тутора 1
(8.1 КБ) 295 скачиваний
Последний раз редактировалось Backbreaker 25.04.2009, 17:23, всего редактировалось 2 раза.
Изображение

Аватара пользователя
AJG
Сержант
Сержант
Сообщения: 30
Зарегистрирован: 22.07.2008

#3 Сообщение 03.09.2008, 15:31

Спасибо за информацию :Bravo:

Аватара пользователя
1nquIz
Полковник
Полковник
Сообщения: 5022
Зарегистрирован: 22.05.2008
Откуда: Lemberg, UA
Поблагодарили: 9 раз

#4 Сообщение 03.09.2008, 15:48

только карв тул - зло %)
[txtspoil]:3[/txtspoil]

Аватара пользователя
Backbreaker
Маппер
Маппер
Сообщения: 1184
Зарегистрирован: 27.12.2007

#5 Сообщение 03.09.2008, 16:06

[Информация про карв удалена]
Последний раз редактировалось Backbreaker 25.04.2009, 17:25, всего редактировалось 1 раз.
Изображение

Аватара пользователя
zerg_spb
Маппер
Маппер
Сообщения: 823
Зарегистрирован: 11.06.2006
Благодарил (а): 1 раз
Поблагодарили: 32 раза
Контактная информация:

#6 Сообщение 03.09.2008, 16:15

Ну просто СуперТутор! Это для того, кто хочет научиться делать действительно красивые мапы, а не кубики а-ля DooM93. Узнал много нового! :) Сцылка в туторах!

proplayer666
Маппер
Маппер
Сообщения: 1748
Зарегистрирован: 18.02.2008
Откуда: <удалено>

#7 Сообщение 14.09.2008, 20:51

Тутор СУПЕР! Очень помог в маппинге.
Завязываю с играми
Мну в Xbox LIVE
Изображение
Изображение
Изображение

dejmos32
Нович0к
Нович0к
Сообщения: 25
Зарегистрирован: 22.11.2008

#8 Сообщение 02.03.2009, 18:56

Классный тутор.

Только если особо красивостями заниматься, потом фпс до самой старости оптимизировать придётся. prankster

proplayer666
Маппер
Маппер
Сообщения: 1748
Зарегистрирован: 18.02.2008
Откуда: <удалено>

#9 Сообщение 02.03.2009, 19:59

Если не нуб то проблем не будет......
З.Ы. func_detail для dejmos32'a
Завязываю с играми
Мну в Xbox LIVE
Изображение
Изображение
Изображение

demodad235
Сержант
Сержант
Сообщения: 68
Зарегистрирован: 07.12.2008
Откуда: Dustbowl

#10 Сообщение 06.03.2009, 19:38

Тут хороший, но сколько же карта будет компилироваться??? prankster
А то я попробовал сделать этот тут, и карта у меня компилировалась часа 2, не меньше.
P.S- карта была маленькой/
Изображение

Аватара пользователя
Backbreaker
Маппер
Маппер
Сообщения: 1184
Зарегистрирован: 27.12.2007

#11 Сообщение 06.03.2009, 19:56

demodad235
Читаем первое примечание :) исходник в аттаче компилится за пару секунд (виз)
dejmos32
Открой глаза - это Source Engine)) Если он спокойно переваривает модели под 30 000 поликов..
Изображение

demodad235
Сержант
Сержант
Сообщения: 68
Зарегистрирован: 07.12.2008
Откуда: Dustbowl

#12 Сообщение 06.03.2009, 20:10

Вижу... Ступил :crazy: )))
Изображение

Аватара пользователя
MARK2580
Нович0к
Нович0к
Сообщения: 23
Зарегистрирован: 24.10.2009

#13 Сообщение 21.03.2010, 16:23

:shock: Я в шоке ! Опупительный тутор ! Большое спасибо ! :Bravo: :Bravo: :Bravo: :Bravo:
Изображение

Ответить Вложения 2