Всё о Готике
Общее описание zen-файлов.


автор статьи - WSA

Для работы с *.3ds и *.zen файлами в среде движка в комплекте с MDK идет программа Spacer. Отличий для 1й и 2й Готики практически нет.

Материалфильтр (materialfilter) представляет собой текстовый документ формата *.pml, в котором сохранены дополнительные опции материалов. Такие фильтры подключаются автоматически каждый раз при старте программы Spacer. Тем самым при открытии меша каждый его материал автоматически расширяется до материала из фильтра, если имена таковых совпадают. Фильтры требуют ручной установки. Скачать можно здесь

Программа Spacer позволяет ограниченно редактировать меши. Я не буду рассматривать, как это делать, т.к. сам не пользуюсь, да и надобности и удобства в этом нет никакого.

Основное назначение программы – создание и редактирование zen-файлов (файлов мира Готики).
zen-файл состоит из следующих частей:

  1. статический мир, состоящий из объектов zCVobLevelCompo, каждый из которых имеет одну рабочую опцию visual (имя *.3ds файла визуализации). Обратите внимание, внутри откомпилированного зен-файла хранятся все visual-меши объектов данного типа.
  2. набор виртуальных объектов (zCVob и т.д., список большой), как правило иерархически привязанных к объектам zCVobLevelCompo.
  3. набор вейпойнтов zCVobWaypoint, определяющих маршруты (логистику) в мире Готики.

    Создание нового мира зен и уровня zCVobLevelCompo.

    1) открыть меш Open Mesh …, который будет являться визуализацией для уровня zCVobLevelCompo.

    2) выполнить компиляцию мира World->Compile World…-> Engine – Outdoor. Галочка Editormode (for mesh-operations) снята.

    Возможные ошибки при открытии, в процессе и после компиляции меша:
    а) Mesh has polys without material !
    не выполнен п. 4 экспорта меша
    б) после компиляции меша (мира Готики) вода не анимирована и тп.
    не загружены материалфильтры, см. выше
    в) Проблемы с отображением текстур. На рисунке два одинаковых прямоугольника в 3DS Max покрыты текстурами.

    неправильные имена, см. п. 3 экспорта меша
    г) после компиляции меша при определенном положении камеры в мире пропадают некоторые или большое число фрагментов (полигонов).
    не правильно построена геометрия indoor-уровня мира. В частности, есть ошибочные пересечения миров.
    д) некоторые indoor-уровни полностью не отображаются
    необходимо перезагрузить Spacer и выполнить компиляцию меша заново.
    е) …CreateBspSectors) : Illegal Sector Portals: <название>
    неправильно создан портал. Нет ответной части, часть не с той стороны или имеет пересечения с мирами. Проверить состояние полигонов, которым присвоен материал с именем “P:_<название>”, “P:<название>_” и т.п..

    3) выполнить компиляцию света World->Compile Light…->Compile.

    4) сохранить полученный зен-файл Save ZEN …

    Обновление мира зен после редактирования меша визуализации (.3ds-файла) объекта zCVobLevelCompo.*

    1) открыть мир зен Open ZEN … как world uncompiled (неоткомпилированный).

    2) выполнить компиляцию (см. пункты выше)

    Добавление в существующий мир зен нового уровня zCVobLevelCompo.

    1) открыть меш Open Mesh …, который будет являться визуализацией для нового уровня zCVobLevelCompo.

    2) командой Merge ZEN… добавить существующий мир зен

    3) выполнить компиляцию (см. пункты выше)

    Соединение двух миров зен. (примечание ниже)

    1) открыть первый мир зен Open ZEN … как world uncompiled (неоткомпилированный).

    2) на приглашение откомпилировать нажать Cancel.

    3) командой Merge ZEN… добавить второй зен-файл

    4) выполнить компиляцию (см. пункты выше)

    (примечание. При соединении двух миров следует учитывать следующее:
    а) только в одном из миров должны быть виртуальные объекты типа oCZoneMusicDefault, zCZoneReverbDefault, zCZoneVobFarPlaneDefault, zCZoneZFogDefault и разумеется zCVobStartpoint.
    б) два или более вейпойнта с одинаковыми именами будут замены одним и что очень удобно, сетка (вейнет) соединится автоматически. Разработчики пользовались этим на стыке уровней.
    в) совершенно очевидно, имена zCTriggerBase объектов должны быть уникальны).

    Стратегия построения зен-файлов.

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

    • визуализация объекта zCVobLevelCompo должна содержать минимум “грязных” полигонов, т.е. тех, в материалах которых присутствует альфа-канал. Поэтому вся трава, деревья и т.п. сделаны разработчиками и надо делать в виде виртуальных объектов (zCVob). Это связано с особенностями игрового движка.
    • в качестве визуализации объекта zCVobLevelCompo нужно и/или удобно делать весь рельеф (горы, воду и т.п.), дома и др. крупные постройки, все объекты, которые используют порталы, любые крупные объекты с числом полигонов больше 2000 (в этом случае как zCVob объект он не будет работать). Остальное лучше делать в виде виртуальных объектов, из соображений удобства и повышения производительности.
    • поддержка большого числа уровней zCVobLevelCompo очень удобна и этим надо обязательно пользоваться. Большой мир можно разделить на отдельные куски в 3DS Max и рисовать их отдельно. Главное, эти куски должны лежать в общей системе координат, т.е. при операции merge друг с другом в 3DS Max они должны точно стыковаться. После этого можно смело строить кусок готового зен-файла с полным набором виртуальных объектов. Соединить все в один зен-файл, как было показано выше, не составит особого труда.

 
 
Copyright © 2008 GotomanRambler's Top100

 
Hosted by uCoz