Туториал по плоским полигонам в Гмаксе

В данном топике будет приведен пример того как сделать плоский полигон для сценария аэропорта в 2004-м

симе. Буду писать простым языком, неофицыальным, за ошибки в речи заранее простите. Сразу скажу урок

подразумевает некоторое наличие знаний работы в Гмаксе. Многоие английские слова буду пистаь русскими

буквами в тексте, не охота заморачиваться с написаниеа на английском.
И так поехали:
Для начала сделаем некоторую подготовку. Первое что нам надос делать, это текстуру. Она должна быть в БМП

формате, не конвертированная в ДХТ1 или ДХТ3, так как Гмакс не распознает их. То есть простая БМП-шка, в

Сим-же вы можете пихать БМП-шу конвертированную в любой БХТ формат. Далее надо произвести некоторые

расчеты. для того чтоб узнать сколько-же текстур поместится на нашу полосу. Я приведу пример со своего

аэропорта Талаги. Полоса в нем имеет размеры 2500х44 метра. Полоса уложена плитами ПАГ-18 имеющими размер

2х6м. Для того чтобы текстура смотрелась нормлаьно я принял решение что по ширине полосы у меня уйдет две

текстуры, то етсь получается что плоса шириной в 44 метра имеет 22 плиты шириной по 2 метра, то есть на

мою текстуру по ширине уйдет 11 плит. Так как текстуры в симе имеют квадратные размеры (256х256,512х512 и

т.д.), то соответственно мне надо подогнать плиты на текстуре так чтобы они занимали форму максимально

приближенныю к квадрату. Мы уже выяснили что по ширине в текстуре у меня идет 11 плит по 2 метра шириной,

то есть в симе текстура по ширине занимает 22 метра. Зная что длина каждой плиты 6 метров, мы берем по

длине 4-ре ряда плит, то есть получается 4плиты х 6метров =24 метра. В итоге получили почти квадрат 22х24

метра. С учетом некоторых погрешностей мы это все пихаем в текстуру, в итоге получается текстура 4х11

плит. Далее нам надо определить сколько текстур ляжет по полосе в длину. зная что наши 4-ре плиты занимают

в длину 24 метра, а длина полосы 2500, получаем 2500/44=56,82, огругляем все это до целого исла и получаем

57 текстур. То есть в итоге полоса у нас получается состоит из 57 текстур в длину и из двух текстур в

ширину. В примере у мня указан произвольный полигон не имеющий отношение к этим цифрам.
Ну и приступаем собственно к работе в Гмаксе.
Все пункты идут по порядку согласно скриншотам.
Создаем плоский полигон, и указывем его длину и ширину (1), в Талагах там были бы цифры 2500 и 44.
Далее указываем количество частей из которых будет состоять наш плоский полигон (2), в примере у меня

стоит 2 и 4, в Талагах бы стояло 2 и 57.

Переводим полигон в Эдитобол Поли (3), и нажимаем на кнопку Гмакс материал Эдитор (4).

Прикрепленные изображения

  • Прикрепленное изображение
  • Прикрепленное изображение

Ответов: 19

Выплвает окошко, в нем жмем на нью (5), и вибыраем стандарт (6).
Далее в строке Дифюс Колор нажимаем на Нон (7) (если будут использоваться ночные текстуры, то нажимаем на
замочек рядом и так-же как и в п.7. нажимаем на Нон в первой строке над дифюс колор (7.1))
Далее после того как нажали на Нон выскачит окошко, где нажмите на Битмап (8).

Прикрепленные изображения

  • Прикрепленное изображение
  • Прикрепленное изображение

Выбираете там свою тестуру в формате БМП (ожно и в других форматах, в том числе и в ЖПГ и в
фотошоповском), нажимаете открыть (9). После этого жмете на синий кубик(10), и нажимаете эпплай (11)
Вуаля на вашем полигоне появилась ваша текстура. Но теперь она растянута по всему полигону вам, надо чтоб
текстура ложилась отдельно в каждой части. Для этого идете в список модификаторов (12)
Выбираете в списке УВВМап (13)

Прикрепленные изображения

  • Прикрепленное изображение

Прикрепленные изображения

  • Прикрепленное изображение
  • Прикрепленное изображение

И в открывшихся настройках выбираете Фэйс (14) если чуть применить интуицию и метод тыка то можно

догадаться для чего идут остальные настройки. Я их сейчас касаться не буду. Вобщем выбрали мы фейс и

текстура у нас легла как надо.
Предположим такая ситуация что текстуру надо развернуть на 90 градусов, то есть чтобы плиты шли

перпендикулярно полигону, для этого опять идем в список модификаторов и выбираем УнрапУВВ (15)

Прикрепленные изображения

  • Прикрепленное изображение

Прикрепленные изображения

  • Прикрепленное изображение

Нажимаем кнопку Эдит (16) выбираем вращение (17), выделяем все 4-ре точки полигона, и начинаем

поворачивать (18)

Прикрепленные изображения

  • Прикрепленное изображение

Вуаля, текстуры идут поперек полигона.
Мы сделали что надо, сохраним терь это, и терь надо снам это добро пихнуть в сим. Для этого понадобится

2002-й геймпак, где и как и что с ним делать читайте в FAQ, сейчас-же мы нажимаем на экспорт(19)

Прикрепленные изображения

  • Прикрепленное изображение

Прикрепленные изображения

  • Прикрепленное изображение

Открывается мэйкБЖЛ, в нем на вкладке сценери выставляем координаты где будет лежать нашь полигон (20),

выбираем градус на который он будет повернут (21) (проблема 2002-го в том что в нем можно выставлять

только целые градусы, то есть на пол градуса повернуть уже неудастся, проблема не решаема. Выход только

один-поворачивать полигон в самом Гмаксе на те доли градуса которые надо, а здесь уде выставлять целые).

Выставляем дистанцию с которой нашь полигон удет отображаться (22), и выставляем детализацию сцены при

которой нашь полигон будет виден (23), жмкм на Старт (24)
Видим как идет процесс компилирования БЖЛ. Вконце окошко просто исчезнет.

Прикрепленные изображения

  • Прикрепленное изображение
  • Прикрепленное изображение

Storm (5.02.2008 00:40):

По второму пункту, согласен есть более оптимальный способ создаия, одним плигоном когда его не надо делить. но на практике его не применял, знаю лишь в теории. Возможно как-нить допишу потом. Если есть еще к чему придраться, пиши нестесняйся, всем поможешь, заодно мот и я чего нового узнаю 🙂 .

Может просто воспользоваться тайлингом!? Зачем так много полигонов 🙂

Далее идем в папку куда вы

жкспортировали свое творение, видим там БЖЛ и два файла с разрешением асм. один ***.asm, второй ***_.asm,

где ***-имя с которым вы экспортировали файл. Если асм файлы не появятся, то поищите на форуме что надо

оьавить в файл настройки МэйкБЖЛ чтобы они появились. Надеюсь пять инут поиска вас не убьют, тут много об

этом писалось.
Ту БЖЛ что у нас получилась можем смело удалять, она нам не нужна. Нам нужны асм файлы. Открываем первый,

тот который ***.asm, и ищем там в тексте строчки
OBJECT_0_START label word
ADDOBJ OBJECT_0_SCALE
SHADOW_CALL OBJECT_0_SCALE
Удаляем строку SHADOW_CALL OBJECT_0_SCALE (как я понимаю она отвечает за тени, который у плоского обьекта

как у нас просто нет :))

А в строке ADDOBJ OBJECT_0_SCALE, меняем ADDOBJ на ADDCAT, и в конце через запятую ставим слой в

котором будет лежать нашь полигон, то есть в итоге должно получится так:

OBJECT_0_START label word
ADDCAT OBJECT_0_SCALE, 30

где 30-слой нашего полигона.

Далее открывем второй асм файл, тот который ***_.asm, находим там строки
TEXTURE_LIST_BEGIN
TEXTURE_DEF TEXTURE_AIRCRAFT , <255,255,255,255>, 21.213203, «Имя текстуры.BMP» ; 0
TEXTURE_LIST_END
Тут мы заменяем TEXTURE_AIRCRAFT на TEXTURE_GROUND, зачем сам не понимаю, так как вроде и со старым

работает, но гуру сказали надо, и я меняю!
Сохраняем все это дело, и теперь, выделяем файлы в начале ***_.asm потом ***.asm. У нас два выделенных

файла, наводим мышку на ***.asm и правой кнопой мышы, открыть с помощью, и выбираем БЖЛкомп. Он

запускается, тарахтит доли секунд и у вас появляется готовая БЖЛ-ка. Вставляем ее в сим и смотрим что у

нас вышло.
Как дополнение могу сказать что асм файлы не перемещайте из той папки в которой они были созданы, и не

растаскивайте их один от другого, так как в них в каждом прописан пути друг к другу, и в итоге компилятор

просто ниче вам не с компилирует.
Вот и все на седня!

По первому пункту, хаотично да, но я в начале написал что тутор для тех кто хоть чуток шарит в Гмаксе. описывать подробно на какую кнопу нажать чтоб получить плоский полигон- нонсенс, тут мона всю программу описать. Тутор лишь длтя тех кто умеет работать но не может понять как вестаки сделать так чтоб в 2004-м симе появилась любимая полоса. То что с ошибками, я извинился уже, писал быстро на скорую руку.
По второму пункту, согласен есть более оптимальный способ создаия, одним плигоном когда его не надо делить. но на практике его не применял, знаю лишь в теории. Возможно как-нить допишу потом. Если есть еще к чему придраться, пиши нестесняйся, всем поможешь, заодно мот и я чего нового узнаю:).

Супер!!! :good:

Добавлю от себя: создание полосы одним полигоном — не просто «более оптимальный» (хотя нет такого выражения, есть выражение — оптимальный, уже само подразумевающее наилучший вариант), но и логически оправданный. Меньше полигонов — меньше глюков с текстурами. Да и ФПС, что бы ни говорили, порезвей при меньшем количестве полигонов. Делается в твоем случае очень просто — после создания плоскости (plane), зайдя во вкладку Modify измени число разбиений с дефолтных 5 до 1 по вертикали и горизонтали. После конвертирования в Editable Poly ты получишь один большой полигон. Далее, применив текстуру, накладываешь модификатор UW Map, в котором задаешь параметры — Plane (или Face, если полигон имеет сложную форму и тебе требуется заполнение в нескольких направлениях) и задав параметры текстуры — в первой секции полей — размеры, во второй ограничение по количеству (тайлинг) в поперечном направлении, получаешь тот же результат. Играясь этими параметрами, подгоняешь вид к требуемому. Все. На выходе имеем оптимизированный кусок сценария, про который в дальнейшем можно забыть и заниматься прочими строениями.

P.S. Полоса из трех продольных полигонов оправдана тогда, когда хочешь сделать отдельной текстурой боковую кромку. Только в этом случае текстура должна быть категории Multi-Sub object, позволяющей хранить под одним идентификатором несколько текстур. Выделяя нужный полигон, в самом низу «свитка» параметров ищи секцию, в которой выбираешь номер вложенной текстуры (из выпадающего списка). Так можно назначить для одного объекта (полоса, РД, здание…) столько текстур, сколько необходимо, храня их в стеке под одним идентификатором. Но это уже из серии — не для начинающих.

Сообщение отредактировано FlyingKot: 05 Февраль 2008 — 04:36

Назрел такой вопрос. Какой слой задать в ADDCAT OBJECT_0_SCALE чтобы гмаксовский полигон ВПП оказался под дефолтной разметкой афкада?

Ниже 26-го слоя. И не забудь, что для того, чтобы самолет не скакал по бетонной полосе, аки по грунтовке (а это будет, если остановиться на описанном выше методе), надо еще под максовую полосу в .асм файле подложить поверхность с заданными характеристиками жесткости. Как — смотри туториалы в данной ветке (особенно пришпиленные вверху).

Сообщение отредактировано FlyingKot: 05 Февраль 2008 — 10:37

Caramelis_Rex (5.02.2008 14:24):

От многополигонных плоскостей уходить, кажется, не стоит, поскольку есть такой пунктик в совместимости плоскостей с FSX — размер полигона не должен быть больше 100м.
Интересно, а как в случае с FSX обстоит дело с номерами слоев!?

причина того, что один полигон не должен быть более 100 метров — введеная в FSX кривизна земной поверхности (не РЕЛЬЕФ!). Номера слоев могут запросто игнорироватся. Без экспериментов — не узнаешь

Замечания приняты к сведению. 😉 Я лишь описал тот метод которым делал я, в то время мне никто не обьяснил как сделать одним плоигоном полосу поэтому изгилялся над полосой так. По поводу назначения жесткости, подразумевал что под созданную ВПП кладется ВПП сделанная в афкаде )! А вообще замечания все правильные и толковые. Это один из первых таких туториалов которые создал, так что сильно не пинайте:).

2Storm: Если будут вопросы по построениям — пиши в личку, отвечу. Что касается подкладывания афкада — это не всегда оправдано. Я использую афкад только для распознавания порта симом и прописывания стоянок с невидимыми линиями РД для траффика. Все остальное делается средствами макса и правки .асм

Сообщение отредактировано FlyingKot: 05 Февраль 2008 — 11:54

Спасибо, теперь будет от чего отталкнуться, давненько хочу попробывать это дело..

От многополигонных плоскостей уходить, кажется, не стоит, поскольку есть такой пунктик в совместимости плоскостей с FSX — размер полигона не должен быть больше 100м.
Интересно, а как в случае с FSX обстоит дело с номерами слоев!?

Я сделал ВПП 2002-м геймпаком, полигон 1600Х26 метров. Слои задавал разные, всеравно афкад ниже лежит, но сама полоса не мерцает Однако если сделать 2004-м геймпаком, то ВПП мерцает. Как быть?