набор вейпойнтов 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 они должны точно стыковаться. После этого можно смело строить кусок готового зен-файла с полным набором виртуальных объектов. Соединить все в один зен-файл, как было показано выше, не составит особого труда.