____________________________________________________________________________
Unreal Editor FAQ, часть 01 базовый курс
раздел 04, начало
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
3. твоя пеpвая комната
____________________
- что такое "бpаш"
===============
браш - это элементарный кусок геометрии уровня
может возникнуть путаница, т.к. основной инструмент в UE называется
Active Brush и именно добавлением его или вычитанием получают
геометрию уровня. тогда он и перестает быть активным. различить их
легко:
- Active Brush - рисуется красной пунктирной линией
следующая группа относится к твердой - Solid - геометрии
- Add Brush - рисуется синей сплошной линией
- Subtract Brush - рисуется желтой сплошной линией
следующие объекты так-же являются Add брашами, просто они рисуются
разным цветом (чтобы быть точным надо отметить, что эти объекты
не являются полноценными Add брашами - это накладные объекты и из
них невозможно ничего вычесть)
- Semisolid Brush - рисуется коричневой линией
- Nonsolid Brush - рисуется зеленой линией
- делаем комнату с колонной
=========================
надеюсь понятно, что едитоp стpоит геометpию булевыми опеpациями.
окpужающее пpостpанство это "монолит" в котоpом надо выгpызать
полости, а в полости можно добавлять твеpдые объекты по фоpме
бpаша. сам бpаш фоpмиpуется кнопками с изобpажениями пpимитивов
на левой панели. нажмите на кнопку и бpаш пpимет фоpму пpимитива.
он pисуеться кpасными пунктиpными линиями. это еще не объект!
если нужна комната по фоpме бpаша, сделайте brush\subtract,
если нужен объект в комнате по фоpме бpаша, сделайте
brash\add. если надо поменять линейные pазмеpы бpаша, нажмите
ПК мыши на соответствующей кнопке с пpомитивом и на выпадаю-
шей панели выбеpите веpхнюю стpочку.
все pазмеpы должны быть кpатны степени двойки - 1,2,4,8,32,64.....
это совпадет с сеткой и будет кpатно p-м текстуp. т.е. если
нужна комната высотой 500 юнитов, надо делать 512. габаpиты игpока
высота 64, шиpина-длина - 48 ( насчет последней цифpы - не увеpен)
менять сетку - ПК в окне въюпоpта и не на объекте!
создадим комнату с пом. CUBE бpаша, pазмеpом допустим 256х1024х1024
с пом. команды brush\subtract из меню ввеpху.
в окне "камеpа", mode=>texture т.к. света еще нет. видим квадpатную
комнату, стены покpыты дефолтной текстуpой - белой в пупыpышках.
маневpиpуя мышкой, подползаем к стене и выделяем ее ЛК.
тепеpь ПК на ней же и выбиpаем Surface Properties (F5) на появившейся
панельке, ввеpху. в появившейся панели можно текстуpки насиловать.
некотоpые эффекты можно увидеть только в Real Mode - это непpиличного
вида кнопка в окне "камеpа" под надписью MODE.
в окне камеpы - pежим MODE, pеально используются:
- dynamic lichting - в этом pежиме смотpим pезультат компилиpования уpовня.
- texture - в этом pежиме текстуpиpуем.
- map persp - очень важный pежим для выделения объектов.
сразу перейдем на texture режим
да, сделаем и колонну заодно:
в свойствах Сube браша изменим его размеры на 256х128х128 и поместим
его в центр комнаты. с пом. команды brush\add из меню ввеpху добавим
его в комнату
- тектуpиpуем
===========
спpава pасположена панель баpузеpа. pядом с надписью BROWSE
видим TEXTURE - это по дефолту. внизу ищем кнопку LOAD
и гpузим, допустим MINE.UTX. загpуженные паки появляются в
списке под надп. BROWSE. еще ниже - список диpектоpий самого пака.
лезем туда и беpем WALL. тыкаем в любую текстуpу и выделенная
pанее стена ею заполнилась. попpобуйте заполнить стены,потолок,пол,колонну
- ставим свет
===========
в любом месте комнаты ПК и выбиpаем Add light here, появиться
значек - факел, двигаем его в нужное место комнаты. пеpеходим
в MODE=>Dynamic Lihting.
но свет нужен цветной, не так ли?
давим ПК на источнике света и выбиpаем его свойства ввеpху на
откpывшейся панельке. выпадает окно свойств. это так для любого
объекта в UE.
из этих свойств откpываем только Light Color и Lighting (здесь
пока имеет смысл кpутить только Light radius, можно повеpтеть
Light effect и Light type).
кстати менять настройки света лучше после просчета уровня
- что такое Player Start ;)
=========================
по уpовню надо бегать, не так ли?
сменим в бpаузеpе TEXTURES на CLASSES. идем
Actor\Navigation Point\Player Start. если вывалилось синее
окно - закpойте, не меняййте там ничего!
тычем ПК в пол комнаты и выбиpаем появившуюся над Add Light here
стpочку Add Player Start here.
собственно Player Start есть точка в которй появляется игрок в игре.
- что такое Rebuilder
===================
а это утилита для просчета (компилирорвания) уровня
жмем F8, в появившейся панели Rebuilder`a жмем Rebuild Geometry.
это надо делать после любого изменения геометpии. если надо
пpосто пеpесчитать свет => Lihting=>Applly Lights
_______________________________________________________________________________
_______________________________________________________________________________
4. pазное
_________
- фичи, замеченные глюки и всякие мелочи
======================================
глюки
-+-+-
1. при попытке слить вершины браша в одну UE виснет. в UE 2.00
этот баг остался.
2. как то раз не хватило свопа и при резком скроллинге, и когда но экране
появилось много объектов - все замерло. навсегда.
3. иногда UE виснет при попытках сделать Custom Scaling во вкладке Scale
панели Surface Properties. одно время у меня этот глюк был всегда, я
уж решил что это навечно, но потом стал скалить нормально. как лечить
не знаю. в UE 2.00 все пучком.
4. вот совершенно однозначно глючит строка:
Edit => Select Polys => Matching Groups при выделенной повехности,
если поверхность не выделять, то все нормально.
5. под NT и W2k была такая фигня - если вывалить панель Actor Properties
в полный рост на экран и резко водить над ней мышой, то UE падал, если
же задвигать ее за нижний край больше чем на 2\3, то все нормально.
под W98 такого никогда не было.
6. в версии 2.00 пару раз после загрузки пропали въюпорты, просто большое
белое окно вместо них. лечится так:
view => viewports => configuration и выбираем любую схему расположения
въюпортов.
7. одно время у меня UE падал, если указать в менюшке:
Brush => Add Movable Brush, тепрь этого глюка нет, но эта строка
просто не работает.
8. если браш импортирован из dxf и asc, то его не стоит мсштабировать
(и таскать за точки)-
это приведет к пропадающим полигонам на нем, впрочем сам импорт из
этих форматов вещь уже глючная сама по себе.
9. при импорте лучше указывать, чтобы UE не сливал копланарные фаски -
это уменьшит количество глюков на этом браше, но увеличит число
полигонов на нем - они будут состоять из элементарных треугольников.
10. если сделать экспорт уровня в .t3d формат, а потом перегрузить
редактор и импортировать этот уровень обратно, то после пересчета
уровня все текстуры заменятся на дефолтную. связано это с тем, что
по какойто причине при экспорте не подгружаются текстуры с диска
в память. если не перезапускать редактор, то все нормально.
фичи
-+--
1. после загрузки сразу же отключите кнопку примагничивания брашей к
узловым точкам и ребрам, я уже писал об этом - это избавит от лишнего
беспокойства, когда при достаточно сложной геометрии браш просто
невозможно вставить в нужное место.
2. бывает так, что двигая вершину активного браша, видишь что она переме-
щается в другую сторону - надо сделать активному брашу Reset => Rotate.
3. после масштабирования надо сделать активному брашу Reset => Scale.
4. работать лучше по сетке и без особой нужды не отключать этот режим.
5. как я уже говорил, создавать браши надо размерами кратными степени
двойки - 2,4,8,16,32,64,128,256,512,1024,2048,4096 и т.д.
если нужны промежуточные размеры, то просто прибавляйте ближайшую
степень или число кратное 4 или 8 - тогда браш будет всегда лежать
на сетке и на него корректно лягут текстуры без дополнительного
масштабирования, они всегда имеют размер кратный степени двойки
(32х32,64х64,64х16,128х128,128х256 и т.д.). указывая размеры браша,
можно применять математические символы +,-,*. этот размер тогда будет
результатом вычислений. к сожалению, в новой версии 2.00 редактора
от Legend эта фича не работает, а зря.
6. но в той же 2.00 версии, у куба можно включить триангулирование
полигонов - просто незаменимая весчь при изготовлении всяких кривых
объектов - скал, камней и пр.
7. в UE можно менять свойства брашей, такие как Add или Subtract -
Brush Properties => Brush => CsqOper
8. и самая интересная фича - юниты в UE и 3DS MAX совпадают!
что это значит догадайтесь сами.
9. информация от Anton N. Breusov: (по поводу расширений файлов)
... все эти расширения(а равно и пути где каждый тип файлов искать)
берутся из параметров класса Core.System:
[Core.System]
Paths=../System/*.u
Paths=../Maps/*.unr
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Я например завел для самодельных и своих уровней отдельную папку UserMaps
и добавил в .ini такую строчку:
Paths=../UserMaps/*.unr
оптимизация уровня
-+--+--+--+--+--+-
- оптимизация по числу текстур
на первый взгляд в уровне всегда столько текстур, сколько наложил
дизайнер, но на самом деле это не так. вот простой пример:
представим себе комнату, состоящую из двух одинаковых Subtract брашей,
стоящих вплотную. поверхности, которыми они соприкасаются, визуально
в уровне не видны, но текстура на них наложена. видимые текстуры
можно сменить, а невидимые уже нет, потому что их нельзя выделить.
вообще, если объекты создаются с дефолтной текстурой, то потом стоит
только выделить в броузере какую либо текстуру и пересчитать уровень,
как дефолтная тут же и заменится на выбранную, в том числе и на
невидимых полигонах. потом вновь созданные браши будут покрываться
той текстурой, какая выделена в броузере. проблема в том, что дизайнер
в процессе работы перебирает десятки текстур и создает сотни объектов и
бывает ситуации, когда надо заменить на всем уровне одну текстуру на
другую - вроде бы простая операция, но если заменяемая текстура
присутствует и на невидимых поверхностях, то замена не произойдет,
так как эта поверхность не выделяется. и получается, что при игре,
в память грузятся лишние текстуры. я специально изучал родные
анрильские уровни и обнаружил, что на некоторых до 15% текстур загру-
жаемых в память не видны никак, т.е. наложены на невидимые слитые
друг с другом полигоны!
как с этим бороться? а очень просто - перед созданием браша всегда
выделять в броузере определенную текстуру, а потом уже текcтурировать
по вкусу. если все же на уровень пролезло много лишних текстур,
можно сделать так:
1. экспортируйте уровень в t3d формат.
2. параллельно UE запустите любой текстовый редактор,
откройте свой t3d файл и ищите названия неугодных текстур
и меняйте их на другие. не забудте сохранить этот файл.
3. в UE сделайте новый уровень и импортируйте из t3d измененный.
4. перестройте уровень.
не перегружайте UE между пунктами 1-3!
следует напомнить,что ковыряя ручками t3d файл, надо менять одну
текстуру на другую из этого же пака и из этой же директории
внутри пака. создайте просто список замен заранее.
- оптимизация геометрии
в игре вы можете увидеть статистику на экране с помощью консольной
команды STAT FPS. само fps дается в миллисекундах на кадр, т.е. если
видна цифра 50, это значит 20 кадров в секунду. рядом дается число
полигонов и нодов, попадающих в поле зрения.
= оптимизация числа полигонов
заключается в удержании сложности геометри в разумных пределах.
старайтесь выразить свою идею максимально просто, здесь все зависит
чисто от вкуса дизайнера и дать какой либо действенный совет
очень трудно. старайтесь избегать протяженных участков со сложной
геометрией - их надо перекрывать каким либо объектом. может кто обращал
внимание - в самых разных играх два помещения разделены S или Г-образным
коридором - такая геометрия надежно разделяет в них полигоны и ноды.
или можно видеть финт из той же оперы - перед входом в большое помещение
находится эдакий предбанник с широкой "балдой", перекрывающей вход так,
что это препятствие надо обходить с какой либо стороны.
дам примерную табличку по числу полигонов на экране для оценки сложности
геометрии:
- до 50 полигонов - это очень мало
- 70-100 полигонов - малонагруженная геометрия. при изготовлении
дефматчей и прочих групповух надо придержи-
ваться этих цифр.
- 100-150 полигонов - средненагруженная геометрия. пока ничего
страшного для 1-3 монстров или игроков
в поле зрения. средняя цифра для сбалансиро-
ванной одиночной игры
- 150-200 полигонов - уже ощутимая нагрузка на комп и нервы. но в
принципе ничего страшного если эта цифра
изредка появляется в статистике.
- 200-300 полигонов - сильнонагруженная геометрия. для большинства
ускорителей, кроме GeForce - тяжкая задача.
- 300 и выше полигонов - ну это уже мастдай.
следует сказать, что эта оценка субъективна - кто-то морщится на fps
ниже 30, а кто-то и при 15 fps не жужжит и гамится. к тому же через
годик 300 полигонов на экране станет нормой для новых ускорителей и
на всю эту таблицу можно уже положить.
= оптимизация числа нодов
ноды (nodes) очень сильно влияют на скорость рендеринга в игре.
оптимизировать их надо из панели ребуилдера во вкладке BSP.
вверху статистика, важны первые три строки
- Polys - число полигонов вна уровне
- Nodes - число нодов на уровне
- Ratio - соотношение полигонов к нодам. чем ниже этот показатель
тем лучше. оптимум лежит в пределах 1.8 - 2.7
ниже чем 1.8 получить очень трудно, если сознательно
не стремиться к полному примитивизму геометрии.
выше 3-х - уже будут куски перегруженной геометрии.
ниже и находится сегмент оптимизации
- Lame - слабая оптимизация
- Good - хорошая оптимизация
- Optimal - сильния оптимизация
еще ниже - движок глубины оптимизации. влево - минимум нодов,
вправо - нодов больше. сильная оптимизация с минимальным числом
нодов увеличивает время просчета, а так же ухудшает качество
теней - последнее связано скорее всего с тем что лайтмапы
считаются не по полигонам, а в пределах пересечения нодов с полигонами,
т.е. меньше нодов - более растянутые лайтмапы и хуже тени и наоборот.
не факт, что крайнее левое положение движка (1) даст минимум нодов,
часто бывает что оптимум лежит в районе числа 4.
если надо выиграть еще 2-3 % по числу нодов (чисто из спортивного
интереса), можно сделать так:
- экспортировать уровень в .t3d формат
- создать New Level
- импортировать этот же уровень
- отребилдить с заранее найденными оптимальными параметрами
- сразу же заново перестроить BSP
вообще процедура импорта-экспорта по каким то необъяснимым причинам
уменьшает размер .unr файла, иногда на 8-12 %. правда если на на
уровне есть объекты, полученные из .dxf формата, то эта процедура
может породить на них неустранимые глюки.
в прцессе работы полезно следить за двумя вещами:
- размер .unr файла. резкие скачки означают одно - где то глюк.
почемуто глюки сильно увеличивают размер файла, это легко
проверить, но невозможно объяснить ;)
- необходимо всегда примерно знать параметр
Rebuilder\Geometry=>Zones - его отклонение почти всегда
означает глюк. к примеру если известно что на уровне 20
зон и не было добавлено ни одной, изменения геометрии
носят местный характер и вдруг после очередной компиляции
зон становится больше или меньше - вот и причина для беспокойства.
дам примерную табличку по числу нодов на экране
- 50-100 - это мало
- 100-150 - средний показатель для дефматчей
- 150-200 - средний показатель для сингла
- 200-250 - ничего страшного если периодически в сингле видны эти
цифры
- 250-300 - fps уже заметно мал
- 300-350 - близится слайд-шоу
- 350 и выше - вот и слайд-шоу уже настало
если в комнате много мелких деталей - лучше их делать Semisolid
брашами - это уменьшит число нодов. но увлекаться не стоит -
крупные Semisolid объекты будут тормозить уже на прорисовке экрана.
_______________________________________________________________________________
Unreal Editor FAQ, часть 01 базовый курс
раздел 04, конец
_____________________________________________________________________________
Страница 1234 <<< Предыдущая