Найти тему

КАК НАСТРАИВАТЬ ЗДАНИЯ В ИГРЕ CITY LIFE

Оглавление

Строителям виртуальных городов.

Здравствуйте, дорогие коллеги по виртуальному градостроительству!

В моей предыдущей статье «МОИ ГОРОДА В CITY LIFE», посвящённой этой замечательной компьютерной игре, я затронул тему работы с программой Редактор Строений ‒ BuildingCustomizationEditor.exe и со свойствами зданий, описанных в соответствующих им xml-файлах, каждый из которых обязательно имеет то же имя, что и само здание.

Всем, кто любит строить города в CITY LIFE и получать максимум удовольствия от этого по истине творческого процесса, я рекомендую перед его началом поработать с программой BildingCustomizationEditor.exe. Далее я приведу список наиболее важных и интересных xml-свойств зданий City Life, отображаемых в окне свойств Редактора строений.

Рисунок 1: Рабочее окно программы «Редактор Строений» ‒ BuildingCustomizationEditor.
Рисунок 1: Рабочее окно программы «Редактор Строений» ‒ BuildingCustomizationEditor.

ИТАК:

PROPERTIES ‒ City Life Building

PrototypeNameKey ‒ идентификатор, уникальное имя здания, которое будет отображаться в меню программы.

ENTITY:

ConstructionKit ‒ путь к xml-файлу, описывающему строительный набор. MeshState0 ‒ путь к файлу трёхмерной сцены в формате *.sg (Scene Graph file), определяющему внешний вид здания.

EditableMeshState0 ‒ если задано это свойство, то строение доступно для редактирования и добавления к нему деталей, в том числе и из других строительных наборов (для этого нужно переопределить свойство <ConstructionKit> в Notepad++).

Примечание:
Перечисленные мной свойства можно изменять только в текстовом редакторе. Однако файлы-модели, указанные в свойствах MeshState0 и EditableMeshState0, должны быть сгенерированы (то есть, созданы) именно в BildingCustomizationEditor.exe.

IDENTITY:

Свойства, содержащиеся в этом разделе, идентифицируют здание и определяют его поведение в соответствии с его категорией.

В целом, с этими свойствами и так всё понятно. Но есть два весьма интересных свойства этого раздела, на которых мне всё же хотелось бы остановить внимание. Это свойства IsMetaSnap и IsMetaSnapable, которые определяют, может ли данное здание располагаться позади другого и можно ли строить здание за ним, на втором ряду от дороги. Свойство IsMetaSnap означает, что за данным зданием можно на втором ряду от дороги построить другое, свойство IsMetaSnapable которого определено в 1/True (в таблице свойств отмечено галочкой). Соответственно, свойство IsMetaSnapable означает, что здание можно построить за другим, которое ближе к дороге, расположив первое на втором ряду от дороги. Обычно эти свойства отмечены оба первоначально у всех без исключения домов, а также парков, площадей и садов ‒ объектов экологического окружения Environment.

Таблица 1: Оба свойства отмечены галочкой. Значит здание можно построить позади другого, а если оно ‒ первое от дороги, то за ним.
Таблица 1: Оба свойства отмечены галочкой. Значит здание можно построить позади другого, а если оно ‒ первое от дороги, то за ним.
Примечание:
При этом важно помнить, что вы можете построить здания с этими свойствами, установленными в True / 1, не более, чем в два ряда от дороги. За домом вы можете построить только один дом, парк, сад или площадь. То же самое касается и остальных "изметаснэпэйблов".

Ещё один важный момент, который хотелось бы отметить, состоит в том, что эти свойства можно определять, как хотите, и для других типов зданий. Вы можете определять их и для предприятий, и для различных учреждений, для которых первоначально эти свойства не отмечены. Всё в вашей власти. Если вы хотите, чтобы в процессе строительства города то или иное здание можно было располагать как MetaSnap или MetaSnapable, просто отметьте эти свойства в Редакторе зданий или, открыв соответствующий xml-файл в текстовом редакторе: Блокноте или Notepad++. Эти свойства очень полезны, если вы хотите создавать сложные, большие предприятия и организации с обширными территориями в вашем будущем городе.

POSING:

Таблица 2: Свойства раздела POSING.
Таблица 2: Свойства раздела POSING.

Раздел содержит свойства, определяющие расположение объекта и определение типа и сферы его влияния в ходе игры.

PosingBorderWater ‒ значение 1/True означает, что здание может частично располагаться на воде (выходить на воду); значения 0/False ‒ здание должно быть только на суше. Схожий эффект создаёт и свойство AboveWater, отличие состоит в том, что здание обязательно должно выходить на воду. Не менее важным является значение свойства SlopeTolerance. Значение 0 означает, что здание не может располагаться целиком на суше и должно выходить на воду. В противном случае задайте значение 90.

Рассмотрим конкретный пример:

Запустите программу Редактора Строений для City Life ‒ BuildingCustomizationEditor.exe и откройте окно разделов меню игры сочетанием клавиш Ctrl+O, после чего выберите раздел TRANSPORT -> PORTS -> seaport1 ‒ это будет здание «Пристань», где работают «синие воротнички».

Рисунок 2: Открытие здания "Пристань".
Рисунок 2: Открытие здания "Пристань".

Рисунок 3: Объект «Пристань», раздел свойств POSING.
Рисунок 3: Объект «Пристань», раздел свойств POSING.

Открыв файл «Пристани», выделите в окне xml-свойств раздел POSING и раскройте его, то есть, разверните, просто нажав Enter. Логика значений свойств для данного объекта понятна и проста и полностью соответствует назначению данного предприятия. Свойство PosingBorderWater отмечено флажком, что означает True, или имеет xml-значение 1. Данный объект может и, собственно говоря, должен выходить на воду, то есть, частично и большей своей частью располагаться на ней. И это понятно, ведь ‒ пристань же! Также из рисунка видно, что значение свойства SlopeTolerance определено как 0, что, как я уже говорил, обязывает объект располагаться большей своей частью на воде. Если Вы выберете файл seaport2 ‒ «Промышленный порт» в том же разделе меню, что и «Пристань», и откроете его для просмотра свойств, то увидите для него точно такие же настройки и те же значения свойств в разделе POSING, что и у «Пристани». Разумеется, я говорю о рассматриваемых нами свойствах этого раздела.

Таблица 3: Условия расположения и строительства пристаней и промышленных портов в городе.
Таблица 3: Условия расположения и строительства пристаней и промышленных портов в городе.
Примечание:
Это важно знать, если Вы располагаете объект в игре! Если Вы задаёте значение свойства PosingBorderWater как True ‒ ставите флажок, а свойство SlopeTolerance определяете как 90, то Вы можете в ходе строительства города располагать данный объект полностью на суше. Но помните, что, поскольку город, который Вы строите, располагается выше уровня моря, а в некоторых местах, где рельеф особенно высоко поднят, ‒ намного выше, то при создании Вашего предприятия или учреждения, которое может располагаться на воде, оно будет «проваливаться» глубоко в землю по сравнению с дорогой, у которой Вы будете его строить. Иными словами, оно будет находиться гораздо ниже дороги. А теперь подумайте, как сотрудники Вашего «провалившегося» предприятия будут к нему спускаться? Конечно, это ‒ не дело, дорогие товарищи! Поэтому такие значения свойств PosingBorderWater и SlopeTolerance, как у «Пристани» и «Промышленного порта», уместно задавать только тем предприятиям, которые Вы уверенно будете строить именно у воды, а не где-нибудь в центре города или на холмах высоко над уровнем моря.

GRAPHIC:

Таблица 4: Свойства раздела GRAPHIC.
Таблица 4: Свойства раздела GRAPHIC.

В этом разделе нам особенно интересны свойства GabaritWidth и GabaritHeight, которые в действительности определяют габариты основания строящегося здания. Другими словами, умножая GabaritWidth на GabaritHeight, мы получаем площадь платформы, на которой располагается здание, в некоторых единицах, "которые известны только игре". Но это определённо не метры! Оба свойства задаются в Редакторе строений на этапе первичного создания нового файла здания в соответствующем окне, но об этом я буду рассказывать в следующей статье. Здесь лишь скажу, что через таблицу свойств в рабочем окне редактора редактирование данных свойств недоступно, только через Блокнот. Для тех зданий, для которых определено свойство EditableMeshState0 и доступно редактирование (изменение, добавление и удаление деталей, частей здания), также доступно изменение и этих свойств: GabaritWidth и GabaritHeight через диалоговое окно для редактирования основания (платформы), которую вы сразу видите под любым зданием, открываемым в Редакторе строений. Но, если свойство EditableMeshState0 не задано, то редактирование свойств GabaritWidth и GabaritHeight и через диалоговое окно не будет возможно, потому что значок вызова этого окна на панели управления не будет доступен для таких зданий.

ShowInfos ‒ ещё одно очень важное свойство, которое лучше всегда оставлять отмеченным галочкой. Оно определяет, будет ли показываться в игре информация о здании при его выделении. Если вы уже строили город, то вам скорее всего приходилось выделять разные здания, чтобы посмотреть сведения о них в правом верхнем углу. Так вот, если снять галочку с этого свойства, информация о данном редактируемом здании показываться при выделении в игре не будет. А это может вызвать неудобства для пользователя.

SIM:

Большой составной раздел данных, определяющих поведение зданий в ходе игры.

SimTansmitter ‒ подраздел свойств, определяющих сумму расходов в месяц, эффект от деятельности в своей области и прочее.

SimTransmitterJob ‒ количество вакансий и зарплата:

TotalJob ‒ максимальное количество сотрудников предприятия. IncomeByCitoyen ‒ зарплата сотрудников (в игровом мире она общая для всех).

JobCulture(Group) ‒ означает максимальное количество представителей данной группы на предприятии.

JobSatisfaction(Group) ‒ максимальный процент (80 или 100) означает, что основные вакансии ‒ для данной группы.

Рассмотрим действие этих свойств на примере.

Откройте какое-нибудь учреждение в разделе меню LAYER, где работают представители двух и более групп. Например LAYER -> EDUCATION -> education2_1 ‒ это здание «Государственного университета», где работают бюджетники (Fringe) и представители прогрессивной интеллигенции (Bobos).

Рисунок 4: Открытие здания «Государственного университета».
Рисунок 4: Открытие здания «Государственного университета».

Рисунок 5: Разбор свойств в разделе SimTransmitterJob для Государственного Университета (education2_1).
Рисунок 5: Разбор свойств в разделе SimTransmitterJob для Государственного Университета (education2_1).

Из рисунка видно, что в учреждении имеется 10 вакансий, 6 из которых предназначены для бюджетников, а ещё 4 ‒ для прогрессивной интеллигенции, представители которой и учатся в данном образовательном учреждении. Свойство JobSatisfaction_Fringe здесь равно 100. Это значит, что основные вакансии в данной организации предназначены для бюджетников, и только после их найма появляется возможность найма представителей других социо-культурных групп. А JobSatisfaction_Bobos равно 95, это означает, что представители прогрессивной интеллигенции могут появиться только после того, как бюджетники займут свои вакантные места.

Примечание:
Это важно при определении поведения объекта в ходе строительства!
При определении количества вакансий (свойство TotalJob) следует помнить, что это количество далеко не беспредельно. В случае, если на предприятии работают представители только одной группы, например, бюджетники, то максимальное количество работающих не должно превышать 18-ти для промзоны и 15-ти ‒ для муниципальной.

Определите свою пользовательскую шкалу доходов (зарплат сотрудников) для всех социо-культурных групп. Например, такую:

Lowlife, Allam, Fringe ‒ 1200-1800;

Bobos, Suits, Preppy ‒ 1800-2400

И в дальнейшем строго следуйте ей при определении зарплат.

Примечание:
Игра City Life очень чувствительна к ошибкам, содержащимся в XML-файлах зданий для города, описывающих свойства этих зданий и определяющих их поведение в ходе игры.
Если Вы допустите какое-либо несоответствие данных, значений свойств, например, зададите TotalJob значение 18, а JobCulture_Allam значение, скажем, 15, а всем остальным JobCulture нулевые значения, это непременно вызовет ошибку уже при наведении курсора мыши на иконку здания с ошибкой в меню игры, и в течении нескольких секунд произойдёт прекращение работы программы City Life ‒ CLD.exe против Вашей воли. И если Вы перед этим ничего не сохранили, Вам придётся заново всё строить.

Вобщем, будьте внимательны, когда задаёте значения свойствам, следите за соответствием данных и в ходе строительства города старайтесь почаще сохранять изменения.

IncomeByCitoyen (вне раздела SimTransmitterJob) ‒ премия в процентах. ConstructionCost / DestructionCost- стоимость строительства/удаления.

FireRisk ‒ значение 50 означает, что риск возникновения пожара на данном объекте очень велик. Чем меньше это значение, тем меньше фактор риска. Чтобы сделать здание невозгораемым и защитить его от пожаров, задайте следующие значения свойств:

Таблица 5: Свойства, определяющие степень возгораемости здания.
Таблица 5: Свойства, определяющие степень возгораемости здания.

Свойства для пожарной (без)опасности

fFireTimeResistance ‒ длительность возгорания.

PropagationFireTreshold ‒ задайте значение, равное 10000000.

ConstructionCondition ‒ Условия строительства:

NbCitizen ‒ значение «-1» означает, что здание сразу доступно для строительства.

Percent(Group) ‒ для строительства данного объекта необходимо указанное количество процентов представителей данной группы от всего населения города.