Официальная модификация GMDK: VOB-объекты в мире
Материал из Gothic Library Wiki
Перейти к навигацииПерейти к поискуОбъекты (Vob)[править | править код]
Что такое VOB
VOB – это виртуальный объект. Он имеет положение и ориентацию в пространстве и визуализируется согласно объекту, указанному в пункте visual. Весь мир состоит из VOB. Каждый VOB принадлежит классу, который устанавливает свойства и способности этого объекта (например: oCNPC или zCTrigger ). Более полный список будет описан ниже.
Примеры некоторых VOB:
Основная работа в Spacer – это вставка и настройка Vob. Модифицирование включает в себя изменение положения объекта и его свойств в зависимости от класса VOB.
Иерархия VOB
Объекты в мире сохраняются в иерархии. Большинство VOB в мире будут лежать, как отдельные объекты. Однако нужно будет также вставлять некоторые VOB, которые станут дочерними по отношению к другим. Хорошим примером послужит камин, который представляет собой окруженную каменными стенами кучку пепла. В этот VOB в качестве дочернего мы вставляем VOB эффекта частиц – Огонь. Огонь, как правило, коптит и излучает свет. Поэтому мы также вставляем в качестве дочерних элементов эффект дыма и VOB освещения. В целом иерархия выглядит так:
zCVob:FeuerstellenVob(Visual:”feuerstelle.3ds”)
zCVob:FeuerVob(Visual:”feuer.pfx”)
zCVobLight:LichtVob(без визуализации)
zCVob:RouchVob(Visual:”rauch.pfx”)
Преимущество таких построений состоит в том, что при перемещении отцовского элемента дочерний двигается вслед за ним. Если перемещается камин, то не нужно следом перемещать его составляющие. В нашем случае это огонь, дым и освещение. Подобным образом моделируют факелы. При перемещении факела за ним перемещается огонь и дым.
VOB в Spacer[править | править код]
Диалоговое окно объекта
Почти все операции с Vob выполняются через диалоговое окно Objects. Диалоговое окно состоит из трех вкладок:
Список объектов
В списке объектов отображаются все VOB-объекты, вставленные в мир. Также показана иерархия объектов.
В списке указываются все элементы, включая модель уровня. Все VOB одинакового класса сортируются и сохраняются в отдельных папках. Папка называется по имени класса. Для отображения дочерних элементов иерархии объектов нажмите значок +.
Для перехода к нужному объекту в сцене достаточно дважды щелкнуть на его названии в списке объектов. Однако эта функция работает должным образом только в Spacer версии 1.5 и выше.
Новые вставленные VOB-объекты в списке объектов отмечены зелеными кружками, все остальные элементы отображаются с красными.
Специальные диалоговые окна объекта
Для некоторых VOB-классов существуют специальные диалоговые окна, которые можно активировать при помощи панели инструментов. За вызов специальных окон диалога отвечают, прежде всего, четыре кнопки с красной стрелкой в верхнем правом углу.
- Звуковые объекты (zCVobSound)
- Источники света (zCVobLight)
- Специальные VOB: WayPoint, FreePoint, эффекты частиц и декали
- Движение камеры
Прочие диалоговые окна предоставляют следующие возможности:
- Не имеет особого значения
- Триггер-события
- Поиск и замена
Видимые и невидимые VOB[править | править код]
Основной параметр VOB-объектов - "Visual". Он отвечает за визуальное представление VOB-объекта. Существует несколько видов визуальных эффектов:
3D поверхность
Если в качестве visual-параметра для VOB-объекта указывается 3D-поверхность (3ds), то VOB объект представляется в виде трехмерного объекта, который описывается 3D-поверхностью. 3D-поверхность состоит из полигонов, форма которых определяется вершинами.
Важно! Для 3D-поверхностей имеется ограничение: нормали поверхности могут иметь не больше 2048 вершин. Исключением является 3D модель уровня (zCVobLevelCompo), для которой таких ограничений нет. Разумеется, модель уровня вставляется в качестве основания, не перемещается и не вращается. Поэтому необходимо, чтобы 3D-поверхность уровня (к примеру, область с башней Ксардаса) имела правильные координаты, настроенные в 3D-редакторе.
Сообщения в zSpy "Degenerated Polygon" (Дегенерируемые полигоны) не страшны, так как такие полигоны автоматически удаляются из VOB-сетки. Но их следует избегать создателям 3D-поверхностей. Дегенерированный полигон представляет собой многоугольник/треугольник с площадью, равной 0 (например, при коллинеарных вершинах).
Эффекты частиц
Эффекты частиц генерируются с помощью сценариев. Соответствующий файл расположен в папке _work\data\scripts\system\pfx. Имя PFX инстанции может быть указано в качестве значения visual, но обязательно с указанием расширения *.pfx.
Декали
Декали - двумерные поверхности, предназначенные для отображения двумерных структур. К таким объектам можно отнести паутину, шторы, картины на стенах и многое другое. Поверхность генерируется автоматически, а в качестве значения visual указывается имя выбранной текстуры.
Невидимые VOB
В дополнение к видимым VOB существует еще ряд невидимых объектов. Эти объекты отвечают за какие-то события, эффекты или явления. Источник света не заметен, его можно разглядеть только в том случае, если есть освещаемые объекты. Аналогичная ситуация с объектами звукового сопровождения. Музыкальные зоны определяют области, где будет проигрываться фоновая музыка, а зона триггера реагирует на соприкосновение с NPC. Самый распространенный невидимый объект - WayPoint, из которых складывается WayNet, по которой движутся персонажи.
Отображение невидимых объектов в Spacer можно включить. Для этого воспользуйтесь кнопкой HelperVobs, расположенной на панели объектов - .
3D-модели вспомогательных объектов: источников света, WayPoint, звуков и др. можно найти в папке _work\data\meshes\_intern. Модель имеет имя соответствующего VOB-класса с приставкой "invisible_".