FG
База знаний о Fable

Почему в CBox не отображаются внутренности домов
Автор статьи: Torionel

Продвинутые моддеры, которые уже экспериментировали со спауном деревни, сталкиваются с необходимостью наполнять поселение содержимым, в том числе домами. В этот момент оказывается, что редактор Chocolate Box не видит внутренние стены и, само собой, начинает двигать мебель на глаз, то и дело запуская игру и проверяя, правильно ли всё стоит. Это полнейший мазохизм, нет необходимости так напрягаться.

Дело в том, что дома, которые, кстати, находятся в файле game.bin не в объектах (раздел "OBJECT"), а в разделе построек (раздел "BUILDING"), также имеют, в отличие от других объектов в игре, 3 модели на 1 объект:

  1. Первая модель - это сам дом, как мы его видим снаружи (фасад)
  2. Вторая модель - физика (как в других объектах с физикой)
  3. Третья модель - внутренности дома.

Вы можете убедиться в наличии третьей модели, внимательно изучив файл graphics.big. Модель внутренностей обычно имеет в названии сокращение "INT" либо, что реже, слова "INTERNAL" ("INTERNALS") или "INSIDE". Модель внутренностей связывается с основной моделью здания через CMultiStaticMeshDef.

Не все постройки имеют тройную модель - лишь только крупные, в которые мы можем зайти. Это объясняет и смысл раздела "BUILDING", а сложные (тройные) модели домов можно диагностировать по одному лишь наличию прикреплённого CMultiStaticMeshDef.

По каким-то причинам CBox не спаунит модель внутренностей при спауне самого дома (возможно это связано с тем, что разработчики редактора просто не знали про то, о чем мы здесь говорим). Однако в игре-то внутренности заспауненного дома отображаются! Очевидным выходом из данной ситуации является спаун дома и внутренностей с одинаковыми координатами на этапе разработки локации, а затем удаление внутренностей, когда все предметы в доме будут расставлены. Другая проблема в том, что модели внутренностей не имеют объектов для спауна, поэтому сначала придётся создавать объект под каждую требуемую модель внутренностей.