Почему в CBox не отображаются внутренности домов
Автор статьи: Torionel
Продвинутые моддеры, которые уже экспериментировали со созданием деревни, сталкиваются с необходимостью наполнять поселение содержимым, в том числе домами. В этот момент оказывается, что редактор Chocolate Box не видит внутренние стены, а начинаете двигать мебель на глаз, то и дело запуская игру и проверяя, правильно ли всё стоит. Это полнейший мазохизм, нет необходимости так напрягаться.
Дело в том, что дома, которые, кстати, находятся в файле game.bin не в объектах (раздел "OBJECT"), а в разделе построек (раздел "BUILDING"), также имеют, в отличие от других объектов в игре, три модели на один объект:
- Первая модель — это сам дом, как мы его видим снаружи (фасад).
- Вторая модель — физика (как в других объектах с физикой).
- Третья модель — внутренности дома.
Вы можете убедиться в наличии третьей модели, внимательно изучив файл graphics.big. Модель внутренностей обычно имеет в названии сокращение INT либо, что реже, слова "INTERNAL" ("INTERNALS") или "INSIDE". Модель внутренностей связывается с основной моделью здания через CMultiStaticMeshDef.
Не все постройки имеют тройную модель — лишь только крупные, в которые мы можем зайти. Это объясняет и смысл раздела BUILDING, а сложные (тройные) модели домов можно диагностировать по одному лишь наличию прикреплённого CMultiStaticMeshDef.
По каким-то причинам CBox не спаунит модель внутренностей при спауне самого дома (возможно это связано с тем, что разработчики редактора просто не знали про то, о чем мы здесь говорим). Однако в игре-то внутренности созданного дома отображаются!
Очевидным выходом из данной ситуации является спаун дома и внутренностей с одинаковыми координатами на этапе разработки локации, а затем удаление внутренностей, когда все предметы в доме будут расставлены. Другая проблема в том, что модели внутренностей не имеют объектов для спауна, поэтому сначала придется создавать объект под каждую требуемую модель внутренностей.