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