Fallout3:Руководство Bethsoft по коллекции статики

Материал из Tiarum
Перейти к: навигация, поиск
Fallout3: Bethsoft Tutorial Static Collections
45px-Scroll.png

автор: Bethesda Softworks & JBurgess
переводчик: Vel (Князев В.К.)
редактор: Garin
ccылка на оригинал: Bethsoft Tutorial Static Collections
дата публикации оригинала: 09.12.2008г
ссылка на сайт: GECK Wiki
ver: 1.0


Обучающее упражнение от Bethsoft: Коллекции статики


  • Официальное руководство Bethesda Softworks: Static Collection 101


Коллекция статики 101

  • Или все, что вам нужно знать или что бы вы хотели узнать о SCOL
Эта статья может основываться на особенностях, не реализованных в общедоступной версии Fallout 3 или в GECK.
Сюда она включена скорее для образования и подготовки модмейкеров к недалекому будущему.

Введение

Поскольку многие из строений в Fallout 3 были основаны на наборах и хранение небольшого количества объектов было основой быстродействия, система, разработанная для редактора, объединяет части набора строений (или других вещей/наборов, в зависимости от возникающих потребностей). Этот способ создания зданий из наборов, оказался более быстрым, чем восстанавливать всю структуру в 3ds max. Вообще-то, SCOL, или коллекция статики, была способом сгруппировать несколько файлов .nif в один объект. Этот процесс создавал новый .nif, который мог бы отображаться как любой другой статичный объект в редакторе. Коллекция статики может быть разбита на части уже после создания, а ее образцы в мире удаляются, но новая SCOL будет оставаться в списке объектов до тех пор, пока ее не удалят.

Вначале, я пройду по шагам создания коллекции статики, после чего поговорим о пользе SCOL.

Создание Коллекции статики

Объединение статичных объектов


Иллюстрация на Рис.1а показывает несколько частей тротуара, которые мы будем объединять в группу. Возможно, такая конфигурация частей тротуара будет использована в сцене еще раз и вместо перестраивания секции мы сможем просто использовать собранную группу.

Рис. 1а: Объекты, которые будут входить в нашу SCOL

Вначале проверьте правильность привязки объектов, после чего определитесь с частью этой группы, в которой будет находиться точка опоры - выберите одну из частей.

Опорная точка первого объекта набора, который вы выберите, будет местом центра коллекции статики.

В нашем примере мы начнем с угловой части, выделенной на Рис. 1б. После выделения этого объекта, удерживая нажатой клавишу Ctrl, щелкните на остальных частях будущей группы. Опорная точка коллекции статики будет соответствовать опорной точке углового объекта.

40px-AttentionPic.png Важное замечание: если вы планируете использовать эту SCOL на сетке (в привязке), что предвидится в нашем примере с тротуаром, убедитесь, что ни один из объектов группы не повернут на случайный угол. Приемлемые вращения - это 0, 90, 180, -90, -180 или 360 градусов.
Рис. 1б: Первым выделите угловой объект, у которого SCOL унаследует точку опоры

С выделенными объектами нажмите комбинацию клавиш Ctrl+g, после чего увидите следующий диалог:

FO3 GECK 03 ConfirmCollect.jpg

Обратите внимание на сообщение этого окна, которое укажет на место опорной точки (первый объект в выделении). Если все выходит хорошо, щелкните Yes и появится диалоговое окно Input Collection Name (Название Вводимой Коллекции). Хорошей практикой является добавление префикса SCOL всем коллекциями статики, чтобы вы могли отличать их от коллекций статики в окне визуализации (Render Window), когда будете выделять объекты. Иначе, во время постройки мира, эти коллекции будут вести себя так же, как другая статика. Поэтому в вышеприведенном примере с тротуаром я назвал коллекцию SCOLSWcorSection01 и нажал ОК:

FO3 GECK 04 InputCollectionName.jpg

Теперь у нас есть своя новая коллекция статики, которая появилась в редакторе как новая ссылка иерархии Object Window в разделе World Objects => Static Collection.

FO3 GECK 05 SCOLObjectWindow.jpg

Эти объекты можно размещать или привязывать к сетке так же, как и другие части наборов, и можно сократить время при создании мира, если эта специальная форма тротуара используется часто.

Разделение Коллекции статики


Теперь возьмем созданную коллекцию и разделим ее на части. Скажем, мы решили сделать участок тротуара, который будет повернут в другую сторону, для чего нужно будет добавить новую часть, как показано на иллюстрации, приведенную ниже:

Рис.2а: Наша SCOL и кусок, который нужно добавить

Чтобы получить такую коллекцию, не нужно удалять созданную ранее SCOL. Вместо этого мы разделим SCOL на начальные ссылки. Сделайте двойной щелчок на тротуаре SCOL и щелкните на кнопке Edit Base.

Ниже показан диалог, который вы увидите - Static Collection Base Object (Базовый объект коллекции статики):

Рис.2б: Свойства ID основы SCOL

Обратите внимание, что при перемещении по списку Object Data вы увидите в нем перечисленными все начальные объекты, из которых состоит коллекция. Это означает, что, хотя SCOL существует как новая ссылка и создается новый объект, этот объект все еще состоит из базовых частей.

Выйдите из этого диалогового окна и с выделенной SCOL нажмите Ctrl+G. Вы увидите следующее сообщение:

FO3 GECK 06 ConfirmFragment.jpg

Щелкните Yes. Обратите внимание на часть тротуара, которая снова стала состоять из отдельных объектов, как показано на Рис.2в.

Рис.2в: Тротуар снова разделен на части

Теперь можно перестроить тротуар, как показано на Рис.2г.

Рис.2г: Перестроенные части тротуара

Вы заметите, что в окне Object ссылка на SCOL в мире удалена, но не удален новый .nif. Если нужно, эта SCOL может быть использована снова. Если же объект не нужен, вы можете удалить его и из списка объектов.

40px-AttentionPic.png В случае, если желаемую часть вы не смогли выделить при создании SCOL (а такое может случиться), способа добавить эту часть после создании коллекции нет. Вам нужно разделить на части SCOL и создать ее снова под новым именем. Не забывайте удалять ненужные SCOL из списка объектов; из сцены такие коллекции будут удаляться, а вот из GECK автоматически этого не будет.

Коллекция статических объектов с LOD


LOD - это сокращение от "level of detail" (уровень детализации), который непосредственно используется при разработке игр для визуализации удаленных на расстоянии объектов с меньшим уровнем детализации, увеличивая производительность систем. В случае с Fallout 3, LOD охватывает ландшафт и большие здания, которые нам не нужно отображать с большой резкостью.

Давайте соберем здание, показано на Рис.3а, из частей набора, которое затем добавим в SCOL. В этом примере используется несколько частей набора BLD07, которые находятся в разделе World Objects => Static => Architecture => Urban => BuildingKits.

Рис.3а: Несколько частей BLD07*, которые создают наше LOD-здание

Так же, как и в случае с тротуаром, проверьте выравнивание всех частей и выделите тот объект, с которым будет ассоциироваться опорная точка SCOL. Выделите остальные объекты и нажмите Ctrl+G. Появится диалоговое окно подтверждения создании коллекции; выберите "Yes" и используйте название "SCOLBLD07a" для новой коллекции.

Части BLD07, используемые в этом примере, содержат LOD информацию, связанную с этими частями, поэтому вы увидите сообщение "Create LOD?" (Создать LOD?). Нажмите Yes, чтобы это здание появилось на расстоянии. В папке \Fallout3\Game\Data\Meshes\SCOL будет создан файл формата .NIF

Базовый объект SCOL, созданной с LOD будет автоматически установлен как "Visible When Distant" (Видимый на расстоянии).

А что произойдет, если одни из объектов SCOL будут иметь информацию о LOD, а другие нет? Скажем, я объединяю здание и участки тротуара в одну SCOL, как показано на Рис.3б.

Рис.3б: Наши объекты BLD07 с присоединенными тротуарами без LOD-информации

Используя Ctrl+G, создайте и назовите новый SCOL. Вы увидите новый диалог "Create LOD?", так как участки тротуара не имеют связанной с ними LOD-информации. Коллекция статики будет создана, так же, как и файл .nif с LOD, но только для тех частей коллекции, у которых была связанная с ними информация о LOD.

FO3 GECK 13 CreateLODpartial.jpg

Использование Коллекций статики

Что я могу группировать в Коллекцию статики?


Как подразумевает название, в коллекции статики могут быть использованы только Static Objects. Давайте посмотрим, что произойдет, если мы "случайно" выберем персонаж, часть мебели и активатор вместе с частями тротуара, которые мы собираем в коллекцию, как показано на Рис.4а.

Рис.4а: Выделение нескольких типов объектов

Выделение объектов и попытка создать новую SCOL с помощью Ctrl+G приведет к диалоговому окну "Invalid References" (Некорректные ссылки), как показано на Рис.4б.

Рис.4б: Диалоговое окно, предупреждающее о некорректных ссылках

Это предохранительный процесс, который сделан для того, чтобы не допустить попадание в коллекцию нестатических объектов. С этого момента вы можете решить продолжить создание коллекции, исключив ссылки, которые не являются статичными или отменить процесс, попытавшись заново.

Так вы не сможете объединить коллекции статики в новую SCOL. Для этого вам нужно будет разделить SCOL(и) и построить новую, желательно, разместив и выровняв новые компоненты перед группировкой в новую SCOL.

Что случится, если я изменю базовую часть набора коллекции статики или добавленную LOD для частей в этой коллекции?


Сценарий следующий: Вы создали коллекцию статики из набора строительства зданий, но после этого поняли, что нужно изменить часть, отвечающую за крышу в этом наборе и добавить LOD для всех частей этого набора. Как это подействует на SCOL, созданную из частей такого набора?

Вкратце; это не получится. Вам нужно обновить SCOL, чтобы отразить все изменения, которые вы сделали с составляющими частями. Вот что вы должны сделать: Как только вы сделали необходимые изменения с частями коллекции и, возможно, смоделировали LOD для каждой части, найдите в списке объектов нужную SCOL и щелкните на ней дважды для начала редактирования базовых свойств объектов.

Здесь вы увидите две кнопки: "Recreate NIF form Data" и "Create LOD NIF form Data". Если вы щелкните на этих двух кнопках, вы обновите вашу SCOL новыми моделями и обновите и/или создадите новый LOD для вашей SCOL.

FO3 GECK 16 SCOLproperties.jpg

Практическое использование Коллекции статики

Создавая SCOL из восьми частей набора, система будет отображать эту коллекцию как один объект, используя одну текстуру, поэтому вы уменьшите количество объектов в сцене на семь.
  • Уменьшение количества объектов
  • Объекты, основанные на наборах, чрезвычайно увеличивают общее количество объектов в сцене. С помощью коллекции статичных частей наборов загрузка становится быстрее. Это также помогает объединить текстуры. Скажем, если здание состоит из одной текстурной карты, но из восьми частей набора, визуализатор будет воспринимать это здание, как состоящее из восьми объектов.
  • Уменьшение затрат времени на построение мира
  • Если для вашего мира построить несколько различных форм зданий из набора и объединить их в коллекции, вы можете использовать такие здания несколько раз и вам не нужно будет пристраивать эти части набора снова и снова. Если SCOL(и) используются в одной и той же сцене, это уменьшит количество ссылок, необходимых для загрузки.
  • Препятствие постепенному исчезновению объектов на удаленном расстоянии/исчезновение нескольких объектов одновременно
  • Хотя система не разрабатывалась специально для таких вещей, но знание об этом может быть полезным. Иногда вы можете натолкнуться на группу объектов, которые исчезают по разному и выглядит это немного странно. Хорошим примером может служить знак, сделанный из набора букв. По отдельности у этих букв очень маленькие границы и эти буквы исчезают прямо перед игроком. Чтобы сохранить им видимость на большем расстоянии, вы можете объединить их в SCOL, таким образом увеличив саму границу и расстояние, на котором эти буквы будут исчезать. Или, если они висят на здании, объедините их с самим зданием в одну коллекцию, чтобы эти надписи появлялись вместе со зданием и были видны на большом расстоянии, что облегчит ориентацию игроку в мире.

Следует избегать


  • Этим инструментом легко злоупотребить.
  • Вероятно, это действительно плохая идея выделять все в сцене и пытаться это объединить в SCOL. Помните, уменьшат общее количество объектов только те их них, которые используют одну и ту же текстуру. Если в коллекцию вы объединяете металлический объект, использующий свою текстуру и объект облицовки (бетона), у которого своя текстура, такая коллекция будет состоять из двух объектов. Поэтому, будьте разумными - наборы часто лучшие кандидаты в SCOL(и).
  • Создание больших по площади коллекций увеличивает границы этих объектов... большие границы могут равняться большему вреду, особенно с размещаемыми источниками света.

Рассмотрение Blender и NifSkope


  • Экспортирование моделей из Blender
  • Опции по умолчанию Blender версии 2.49b и Blender Nif Scripts версии 2.4.12 не устанавливают правильно две ключевые переменные при экспортировании NIF, готового для GECK.
  • После выбора Export -> Netimmerse/Gamebryo (NIF) в Blender обратите внимание на отключенную опцию "Stitch-Strips" (она не будет выделена). Щелкните/установите эту кнопку Stitch-Strips, иначе в вашем файле NIF будет слишком много Strip-ов. Это означает, что объекты в игре будут вести себя нормально, но при попытке добавить такие объекты в коллекцию они будут выглядеть очень плохо - модель будет казаться разрушенной.
  • Установка флага "TSpace" в NifSkope
  • При экспорте из Blender в NIF флаг TSpace устанавливается равным 240. Это значение неправильное для коллекции статики и, скорее всего, GECK вылетит при попытке создать коллекцию со статики, использующей модель, у которой флаг TSpace равен 240.
  • Для устранения этой проблемы просто загрузите модель в NifSkope после экспорта из Blender. В NifSkope выделите BSFadeNode -> NiTriStrips-> NiTriStripsData. Если у вашей модели несколько блоков NiTriStrips, вам нужно повторить процедуру для каждого такого блока. Когда нужная ветвь структуры будет выбрана, найдите флаг "TSpace" и щелкните на нем дважды, чтобы изменить его значение. Установите его значение в 16 и сохраните модель.
  • Эти два изменения позволят вашей, созданной в Blender модели, правильно вести себя в Коллекции статики.