Главная > Игры > 3D Action >
Unreal Editor FAQ [4/4]
____________________________________________________________________________
 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, конец
_____________________________________________________________________________


Страница 1 2 3 4 <<< Предыдущая


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2003 Olexandr Slobodyan.
Сайт создан в системе uCoz