Перейти к публикации
Планета Deus Ex

TUTORIAL Z3: Картостроительство (aka mapping).


Рекомендованные сообщения

Ну что, самая легкая, наиболее продуктивная и долгая по времени часть производства игр. Вот с чего начнем: запустим редактор, для начала. Потом продолжайте читать =]

Да, и "исправтье меня если что-то не так" %)

 

 

 

 

//==========================

// Как это выглядит снаружи.

//==========================

В видовых окнах находится изображение текущей карты. Т.к. при запуске UnrealEd всегда создается новая карта, то в нашем игровом пространстве ничего нету. Посмотрите в 3D вид. Что вы там видите? Ничего не видите? Это плохо. Вы видите пустоту? Уже лучше, но на на самом деле вы видите сплошное (solid) пространство. Т.е. все это пространство занято! Что бы сделать "игровое" пространство нужно из этого solid'а "вырезать" (в оригинале "вычесть": subtract) некое пространство (например комнату), в котором игрок сможет находиться и, собственно, играть (кроме игрока там еще будут другие обьекты: декорации и т.д.). Кроме того в вырезанном пространстве (в пустоте) можно будет и добавлять новое пространство (например, хе-хе, ведро стоящее в комнате :?:). Немного непонятно? Сейчас все исправим 8)

Операции по вырезанию и вставлению производятся с помощью следующих кнопок:

toolbar1.gif

Самая верхнея - add, a под ней - subtract.

А теперь, я вам расскажу над чем мы должны проводить эти операции. Мы должны проводить эти операции над кисточками! Что бы вас вывести из ступора, в оригинале эти самые кисточки звучат как brushes, или brush в единственном числе. Поэтому мы будем называть их брашами (в ед. числе: браш).

Браши естественно бывают разными, самая первая с которой вы должны познакомиться, это строительный браш (build brush, также сокращенно bb). Что бы понять что это такое, сначало посмотрите в toolbar Unreal Ed, а точнее на следующие кнопки:

toolbar_bb.gif

Посмотрели? А теперь понажимайте на них. Видите красный куб/сферу/цилиндр и т.д.? Вот это и есть бб, строительный браш. Как вы уже заметили, он красного цвета. С помощью бб и производятся операции по вырезанию и вставлению пространства. Как вы уже догадались, одновременно в пространстве может находиться только один бб.

Да, и пока не используйте плосский бб, тот что в виде квадратика, самая нижняя в этом ряду. Об этом позже!

 

Ладно, давайте что-нибудь сделаем наконец-то :D. Нажмите на куб, а потом нажмите на кнопку "вычесть" (subtract). Теперь в вашем сплошном пространстве появилось... появилось пустое пространство! В этом пространстве и может существовать игрок. Также это пространство можно назвать комнатой, думаю так будет понятнее.

 

Теперь нажмите правой кнопкой мыши на иконку куба и выберите в меню Cube Properties (да и также можно у других шаблонов бб делать ;)). В новом окошке есть три поля: Height, Width и Breadth - высота, ширина и высота (соответсвенно) вашего бб. Измените все на 32 (эта цифра почти-что с балды, не задавайтесь вопросом почему именно 32 :)). Теперь нажмите в этом же окошке build (после этого можете закрыть окно, благо как его открывать вы теперь знаете :)). Посмотрите на любой из 2D видов: вы должны теперь видеть большой вырезающий браш (в оригинале вычитающий, subtractive brush) коричневого цвета. Раньше он был закрыт бб, поэтому, вероятно, вы его не видели. Да и в центре этой коричневой браши вы видете красный бб.

Самое время нажать на кнопку "добавить" (add, та что самая правая верхняя). Я не шучу, жмите! Нажали? Теперь в любом из 2D видов перетащите бб "в сторону" (удерживая shift). Теперь вы должны видеть синий браш. Это - additive brush, т.е. добавляющий.

Посмотрите в 3D вид, в вашей комнатке теперь "висит" маленький кубик. Хотите что бы он лежал на полу? В окне XZ или YZ выделите синий браш (просто кликните по любой из его линий), он окрасится в ярко синий :D (а subtractive brush при выделении из коричневого превращается в желтый :D). Теперь удерживая shift перетащите его вниз, что бы его нижняя часть была на уровне subtractive браши. На виде Overhead вы сможете передвинуть кубик в угол комнаты ну и т.п.

Теперь переключитесь в 3D вид. "Что за <ваше типичное ругательство>", скажете вы. Все осталось на своих местах? Так и должно быть :D. Теперь нужно "перестроить геометрию" (build geometry) уровня, ну или скомпилировать карту (если вам так проще). Делается это с помощью команды меню Options>Rebuild или же кнопкой F8. В новом окне нажмите кнопку внизу Rebuild Geometry (все остальное рассмотрим позже). "<ваше типичное ругательство>, почему все черное?" Потому что кроме перестройки геометрии выполнился просчет света. А света у нас целых 0 источников. Как исправить? Очень просто: в 3D окне, наведя мышь, например, на центр потолка, нажмите правую>add light here. ваша комнатка должна преобразиться, но это еще не все. Сделайте еще раз ребилд. Теперь освещение более правдоподобное, не так ли?

 

Надеюсь та ахинея, что сначала вам ею показалась вначале, теперь понятна.

 

Теперь о текстурах. Изначально грузятся только те паки, которые прописаны в файле DeusEx.ini в секции Editor.EditorEngine строчками EditPackages=XXX. А изначально там прописаны .u паки. Т.е. те текстуры, что вы видите в браузере текстур после запуска UnrealEd принадлежат всяким предметам: ящики, коробки, оружие, мебель, люди, животные, роботы и т.п. Для мира они мало подходят :). Загрузите новые текстурные паки, нажав на load внизу браузера (в режиме текстур ест-но). Для начала загрузите несколько паков с названиями на CoreTex (CoreTexBrick например, там есть очень симпатичные тексы кирпичных стен). Выберете любую понравившуюся вам тексу, и теперь удерживая alt кликните на любую из стен. Так ваша комната стала красивее? Это еще не все. Выделите три оставшиеся стенки путем удерживания ctrl. Теперь нажмите правую>aply texture XXX. Но и это еще не все: выделите пол и потолок, после этого нажмите на любую тексу в браузере текстур - пол и потолок примут ту тексу, которую вы выбрали.

Теперь сделайте бб со сторонами 256 (опять куб). Подвиньте его так, что бы он стыковался с первым subtractive брашем. Выбрав приглянувшуюся вам тексу, нажмите subtract. Грани нового куба станут с такими гранями, какую тексу вы выбрали.

В первый раз когда вы вычитали, никакая из текстур не была выбрана. Поэтому к тем полигонам куба была прицеплена default текстура (что-то вроде пузырей на сером фоне).

Еще есть такие два трикса: удерживая alt нажмите правой по интересующей вас текстуре в мире, теперь эта текстура активная. И второй трикс: выберите в браузере тексу, которая есть на вашем уровне и нажмите Q на клаве - теперь на карте этой тексы нет, она заменена на дефолтную :).

Ну вот, теперь о приемах текстурирования вы тоже знаете.

У каждого полигона может быть одна текстура, однако к каждому полигону могут применены эффекты (выделите несколько с ctrl'ом, что бы применить эффекты для нескольких): в 3D виде над нужной тексой правая>Surface Properties. Описывать их не буду (сейчас).

 

Пожалуй, последнее что вам нужно знать для basic'а. Переключите браузер в режим Classes. Галочка сверху Show Only Actor Classes позволяет просматривать только классы находящиеся под классом Actor, т.к. только они могут быть помещены на карту (но вы можете и снять галочку, тогда вы увидите все дерево классов игры; однако нам это не надо :)). Так вот, откройте Navigation Point, и там выберите Player Start. Вы выбрали класс. Теперь наведите мышь на пол в 3D окне, и нажмите правую>add XXX (в данном случае XXX - Player Start, а вообще это то, что вы выбрали в браузере классов). Вместо этого можно ставить обьекты удерживая кнопку A. Это полезно, если нужно поставить много обьектов. Например свет (обратите внимание, класс light). Таким образом, на карту мы уже добавляем обьекты, которые строятся по образам классов (надеюсь первый туториал вы читали :)).

Итак, что вам нужно на карте:

Свет - light, или сразу в меню Add light

NavigationPoint>PlayerStart - точка старта

 

Инвентарь:

Invenory>PickUp>DeusExPickUp - инвентар: шоколадки, бутылки, броник, импланты.

Invenory>PickUp>Ammo>DeusExAmmo - патроны!

Invenory>PickUp>Weapon>DeusExWeapon - оружие! Много оружия! (привет Dwarf'у :))

 

Pawn'ы (пешки, также известные как NPC):

Pawn>ScriptedPawn>Animal - живность: кошки, птички, каркиане, пришелцы :))

Pawn>ScriptedPawn>HumanCivilian - цивилы: бомжи, бармены, бизнесмены и т.п.

Pawn>ScriptedPawn>HumanMilitary - вояки: унатковцы, НСФ'овцы, PaulDenton и прочие.

Pawn>ScriptedPawn>HumanThug - что-то среднее между цивилами и вояками: контрабандист, представители японского криминала, Nicolette Du Clare (привет Saint'у 8)).

Pawn>ScriptedPawn>Robot - (ро-) боты: военные боты, медбот, ремонтный бот, уборщик (он ведь тоже бот!), пауки.

 

А также декорации:

Decoration>DeusExDecoration - мебель, статуи, деревья, техника, автопушки, !!!компы!!!, !!!!!!!УНИТАЗЫ!!!!!!! (какой же реализм локаций, когда там нет туалета, ванны, кухни?) и прочее прочее прочее.

 

У всех акторов есть свойства, нажмите на любом из них правой и там Properties (да хоть у света, не говоря уже о стульях и т.п.). При открытом этом окне не вздумайте удалять обьект, это приведет к ошибке (привет Legus'у!). Про свойства я порасказываю вам в следующий раз, а пока вы можете (если очень надо) почитать EditorDocumentation в папке Docs (на инглише ест-но).

 

 

Кстати, есть такой класс brush, так что все brush'и на карте тоже обьекты ;).

 

Для всех обьектов (и для брашей, т.к. они тоже обьекты>см. выше) следуют следующие финты:

передвижение - удерживая shift

вращение - удерживая alt

дублирование - ctrl+W

копирование/вставка - edit>copy/paste либо ctrl+c/v

 

 

Вот, в-общем, все, выбирайте (классы) и создавайте (обьекты) на карте. После небольшой практики, приступайте ко второй части этого туториала (если она будет готова к этому времени 8)).

Сделайте, например, пару комнат (с дверным проемом между ними) с оружием, людьми, животными, роботами и с мебелью. Про туалет-ванную-кухню - как хотите %)

Да, и высота обычного помещения - где-то 160.

 

 

 

//===========================

// А теперь что вы на самом деле делали!

//===========================

Ну, тут опять теория. Зато теперь все будет понятно как никогда.

 

Во-первых CSG - Constructive Solid Geometry. Как это перевести корректно на русский я не знаю, однако смысл следующий: эта аббревиатура означает систему брашей, по вырезанию и добавлению геометрии. Вот и все :)

 

Во-вторых BSP, или BSP Tree - Binary Space Partitioning Tree. По-русски это что-то вроде дерево двоичного разделения пространства (или просто двоичное разделение пространства). Да это дерево! Это дерево данных - просто-напросто структура данных, которая позволяет описать 3D пространство. В этом дереве описываются наши браши, и, соответсвенно, solid или non solid пространство, т.е. пустота это или не пустота. Ну или может ли здесь жить Дентон или он умрет тут (окажись он внезапно в внутри стены, например :)). И это тоже все 8).

 

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

 

Еще одно понятие, которое нужно для полноты воспрития данного материала, это BSP Cuts - BSP сечения. Возьмем, например, два квадратных браша (пусть subtractive, вычитающие), которые касаются друг друга. В месте их касания образуется "дырка", т.е. получается не две комнаты, а одна но образованная с помощью двух брашей. Вот эта дырка и есть BSP сечение. Слишком просто? А кто говорил что это сложно? 8)

Но не стоит думать, что BSP Cuts - это только такие "дырки". Если внутри этой комнаты добавить (ага, добавить с помощью add) два маленьких кубика, которые тоже будут касаться друг друга, то они тоже образуют BSP Cut между собой. Просто этот вырез будет соединять не пустоту, а наоборот solid пространство. С этим тоже все!

 

Возьмем еще раз наш куб-комнату. Каждый из его углов является vertex'ом (вершиной). Но применительно к BSP, каждый вертекс является node'ом. При образовании BSP сечений могут появляться новые node'ы, что неизбежно, но также и не всегда желательно. Каждый node заносится в BSP Tree, так что чем меньше node'ов, тем лучше.

 

Теперь я расскажу вам о типах additive брашей, а вы, в свою очередь, сможете это быстро усвоить, т.к. все вышеизложенное не даст вам не понять это!!!

Когда вы жмете add, по образу строительной браши в мир добавляется solid additive brush. Ну, или просто solid браш - т.е. твердый, литой, сплошной. И он синего цвета. Суть его в том, что внутри него solid пространство, а также он может образовывать BSP Cuts. Через solid браш вы можете прорезать отверстие.

Каждый BSP вырез добавляет информации в BSP дерево, а также добавляет время на его обработку. Т.е. могут появится новые node'ы. Но, например, для наших кубиков никакие сечения не нужны - они ведь должны просто находитсья в мире, и пересекаться ни с чем не должны!

Для этого, можно переделать solid браш в semi-solid (ага, полу-твердый). Вы можете изменить тип браша просто-напросто нажав правой по нему и выбрав в меню Solidity>Semi-Solid. При этом цвет браша сменится на темно-розовый. Semi-solid браш статичный, он не образовывает BSP вырезов и, соответсвенно, разгружает BSP дерево и время для его обработки. Использование semi-solid брашей является основным способом для оптимизации геометрии уровня, ведь лишние node'ы не будут образовываться! Причем semi-solid браши также могут пересекаться с другими брашами, но они не будут образовывать BSP вырезы. Например длинная труба, которая проходит через несколько комнат и не должна иметь каких-либо вырезов - должна быть semi-solid. А иначе в каждой пересекаемой стене появятся новые node'ы.

Т.е. все что не должно образовывать вырезы - смело делайте semi-solid'ными! Благо вернуть обратно в solid браш - двухсекундное дело.

 

Если вы внимательно смотрели в подменю Solidity, то вы наверно замети лат и non-solid. Это "не твердый" браш :). И он зеленого цвета! Кроме того что он не делает BSP вырезов, он не блокирует акторов. Он нематериальный, он не будет блокировать игрока и других акторов. Где это может пригодиться? Трудно сказать, но это может забавно выглядеть, когда кто-нибудь проходит сквозь стенку :). Впрочем таким можно сделать какой-нибудь элемент декорации, который недоступен игроку.

 

Любой из этих брашей можно переключить в любой из них, просто поменяв параметр Solidity.

 

Помните про плоский браш? Самая нижняя правая кнопка? В независимости от его типа, он не будет блокировать игрока. Но, тем не менее, он образует BSP вырезы, поэтому с его помощью делаются зоны (zone, zones) - но это уже на следующий раз =).

И еще про плоский браш: что бы он был покрыт тексой с двух сторон, в эфектах (surface properties) поставьте галку на "2 sided".

 

И еще, solidity можно менять и для subtractive брашей, однако это никоим образом не меняет их поведение. Возможно просто недоработка UnrealEd. Не меняйте solidity для subtractive брашей!

 

 

Ну а теперь о ребилде (F8). Здесь есть три вкладки:

  • - статистика о геометрии карты. Самым интересным пожалуй будет количество полигонов (Total Polys): в Деусе среднее количество полисов на крупный уровень 4000. В UT было что-то вроде 2500. Ест-но чем больше - тем тормазнутее ваша карта :). Другая статистика если вам еще не понятна, то мы исправим это в будущем.

BSP - теперь-то вы знаете что здесь!

  • : видно и кол-во полигонов, и кол-во node'ов, их соотношение, а также другая информация которая "занимателна" если вы знаете о BSP по-больше информации :).

Кроме того здесь есть настройки оптимизатора геометрии: Lame-Good-Optimal - от этого зависит как долго будет оптимизироваться BSP дерево. И ест-но скорость оптимизации от меньшего к большему. Перед финальным ребилдом карты рекомендуется поставить Optimal, хотя тут еще есть один вариант (но об этом будет позже :))

Здесь же ползунок Minimize cuts - Balance tree. Крайнее левое - при просчете BSP будет добавлено минимально необходимое (возможное) количество дополнительных node'ов (и соотвенно кол-во инфы в дереве, и размер файла карты, и скорость загрузки будет низкой). Крайнее правое - будет добавлено максимальное количество вспомогательных нодов (и все вышеперечисленное возрастет!). Если в игре (или еще хуже - даже в редакторе) на вашей карте появляются BSP holes - выпавшие или прозрачные части полигонов - то придется увеличивать этот параметр, двигать ползунок вправо, так сказать.

И еще здесь же две галочки - делать просчет BSP и делать ли оптимизацию. Если у вас слабый комп и большая карта - можете отключить это, сэкономите время на ребилде. Однако перед тестингом в любом случае нужно делать BSP, иначе ваш Дентон тут же здохнитздохнит (привет Dedъ'у!).

Третья вкладка - статистика по освещению. Ну тут, думаю все станет ясно позже. Галка внизу - позволит вам сэкономить время на слабой машине и большой карте, так что пока она вас не должна беспокоить ;).

 

 

И последнее, на сегодня. Unreal units. Именно эта еденица и используется в движке для определения расстояний, координта брашей и т.п. 16 uu образуют клетку, которая является базовой при мэппинге. Такая сетка по-умолчанию в редакторе. Вы можете изменить ее на 1-2-4-8-16-32-64-128-256 в люое время, нажав правую>grid.

Крайне ЖЕЛАТЕЛЬНО чтобы все ваши браши были на расстоянии кратном 16, а также что бы их размеры были также кратны 16, т.к. при других вариантах очень часто наблюдаются "глюки" в виде BSP holes - черных дыр.

Выравнивание и передвижение брашей происходит по теекущей клетке. Это можно отключить (не рекомендуется для больших брашей!) нажав кнопку Vertex Snapping на тулбаре.

Впрочем небольшие браши с кратностью в 8-4-2-1 не вызывают особых проблем, однако не переусердствуйте с ними!!!

 

Ровные браши - залог успешной BSP картины вашей карты. Впрочем для semi-solid brush'ей это вроде бы не относится, но тем не менее.

Если ваши браши стоят криво - то большая вероятность появления BSP holes. Осторожнее с этим!

 

Число 16 связано с футами соотношением:

16 units = 1 foot

Т.е.

1 анреал юнит = ~ 1.9 см

Т.е. высота потолка в 160 uu = ~ 3 метра. Наши потолки - около 2.5 метра, но 160 (это 16x10) вроде бы неплохо смотрится. В любом случае можете уменьшить высоту потолка в некоторых помещениях до 144 (16x9), высота в 128 (16x8) - это уже малова-то, при прыжке будете упираться в потолок %).

 

Да, и неплохо бы иметь калькулятор под рукой (например Пуск>Стандартные>Калькулятор :)). Однако в UnrealEd1 вы можете писать размеры брашей 128*2, 256/2, 64+32+16+8+4+2+3-1, или даже (160+32)*4+128 8). Результат вы не узнаете (к сожалению), поэтому составляйте такие комбинации учитывая кратность на 16. Например конструкции вида 256*10.

Если 256 продолжать удваивать, то получится: 256-512-1024-2048-4096-8192-16384 и т.д. (просто для тренировки глаз).

 

На этом все.

 

//===========================

// Краткое описание остальных кнопок %)

//===========================

Вариант от Steve Tack, на английском

 

Моя картинка, без комментов

 

По 1-2 предложения нужно будет написать еще %)

Ссылка на комментарий

Несмотря на то что я не полутил ответа на свой вопрос по поводу первого вопроса (а вопрос ли это?), я настрочил вторую часть.

 

Может на два разделить? %)

 

Следующий тутор о муверах, зонах, скайбоксах пушки камер и т.п. и т.д.

 

Если что-то непонятно - пишите сюда. Тутор должен быть понятным %)

Ссылка на комментарий
  • 2 года спустя...

Несмотря на то что я не полутил ответа на свой вопрос по поводу первого вопроса (а вопрос ли это?), я настрочил вторую часть.

Может на два разделить? %)

Следующий тутор о муверах, зонах, скайбоксах пушки камер и т.п. и т.д.

Если что-то непонятно — пишите сюда. Тутор должен быть понятным %)

 

када второй напишишь? жду недождусь)

Ссылка на комментарий
када второй напишишь? жду недождусь)

 

Этот пост 2005 года. Думаю Зондер давно бы уже написал что-то. Ты можешь спросить здесь если что-то непонятно.

Ссылка на комментарий

Этот пост 2005 года. Думаю Зондер давно бы уже написал что-то. Ты можешь спросить здесь если что-то непонятно.

 

дверь неполучается сделать. Вроде стоит, но не открывается. Что делать?

Ссылка на комментарий

 

спасибо за помощь! 8)

Ссылка на комментарий
  • 2 месяца спустя...

Попробуй.

 

....................Я как помню начинала с просмотра карт Deus Ex, как только нашла SDK.

 

Потом понаставила в офис JC цветов (plant2), всяких мигалок, положила там еще много канистр с приращениями, их улучшений, в общем было много радости :cry: :D :D

 

Где-то в разделе модификации была моя первая карта :P

Ссылка на комментарий

Вот-вот! Просто когда я раньше сталкивался с редактором Unreal и ему подобными, я всегда пасовал перед тем, что каждую деталь нужно делать «вручную», с помощью кистей. Куда проще Моровинд с его готовыми кирпичиками :P)

Ссылка на комментарий
  • 3 недели спустя...

Карты в DeusEx можно достаточно хорошо детализовать, если есть навык :)

 

Редактор в том что «он такой» обвинять не нужно. Это мощный и удобный инструмент, во всяком случае я так считаю. Было бы желание и стремление. Делай карты в UED2, там возможностей больше чем в оригинальном SDK, он удобнее и значительно стабильнее..

 

Что именно тебе кажеться угловатым? :lol:

 

Если тебе нужны скажем именно круглые трубы (а не восьмиугольные)--то сначала подумай, а надо ли? Ведь и восьмиугольные выглядят отлично, особенно мелкие. И затрат так меньше. А затраты на количество полигонов. Чем их больше, тем больше проблем с картой. Лично я стараюсь не превышать нормы в 10 000 полигонов (на самом деле это не предел и не норма)

Ссылка на комментарий

UnrealEd достаточно прост в освоении :) Читай самый первый пост в этой теме, он очень познавателен. Не знаю как там в 3DS MAX, но в UED все достаточно просто. Хотя я как-то раз пыталась сделать модель сектора в MilkShape 3d, и провозилась с ней больше часа. Это же надо расставить вертексы, соединить их... В общем пока я 3D моделированием не увлекаюсь. Хотя по анимации у меня есть tutorial, мне ~c[A]t~ написал.

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...