Разрушение моделей

Главная  / Моделирование / Разрушение моделей

Разрушение моделей

Для достижения определенной степени реализма в игре большинство объектов являются разрушаемыми – от воздействия ударной волны, прямого попадания снарядов, пожара либо столкновения с бронированной техникой. Некоторые из них разрушаются в одну стадию, другие – в две.

При разрушении в одну стадию производится замена исходной модели на ее разрушенную версию, которая именуется так же, как исходная, но с постфиксом «_x» (Х-модель). Обычно так разрушаются здания и т.п. объекты, восстанавливать которые после повреждения не предполагается. В таком случае в составе Х-модели находятся части, которые после подмены модели вступают в физическое взаимодействие с игровым миром и падают на землю (обломки стен и т.п.). См.Разрушение пассивных объектов

Техника, получившая повреждения в бою, может быть отремонтирована. Поэтому ее разрушение происходит в две стадии: при определенном повреждении исходная модель подменяется Х-моделью, которая может продолжать функционировать (все зависит от характера повреждений) до тех пор, пока не получит катастрофические повреждения. После этого Х-модель подменяется на ХХ-модель (постфикс «_xx») и техника считается разрушенной полностью. На стадии Х объект можно починить, на стадии ХХ – уже нет. Х-модель обычно представляет собой слегка деформированную исходную модель и несет на себе текстуру с «повреждениями». ХХ-модель содержит рассыпающиеся по игровой физике куски и остов объекта с полностью «убитой» текстурой (для экономии могут быть использованы фрагменты Х-текстуры). См. Разрушение техники

Разрушение пассивных объектов

Х-модели разрушаемых зданий, сооружений (и т.п. статических объектов) состоят из базовой кости, названной так же, как соответствующая базовая кость в «целой» модели. Если модель – структурная, то к каждой части структуры создается своя Х-модель. Для удобства целая и разрушенная версии модели могут находиться в одной сцене 3dsmax, располагаясь в разных местах сцены, но сохраняя при этом взаимное расположение своих частей. В Х-модели содержится базовая кость, в параметре Model которой указан путь по следующему принципу:

Обратите внимание на имена самих моделей. Все Х-модели экспортируются в отдельную папку с именем «X», расположенную в каталоге, соответствующем категории модели (в данном случае это town_e). Обычно таких каталогов в каждой категории минимальное количество, чтобы не возникало путаницы (отдельно на карту Х-модели таких объектов обычно не выставляются и потому могут быть сброшены в одну общую отдельную папку). Итак, в Х-модели содержится базовая кость с тем же именем, что и базовая кость целой модели. В базовой кости Х-модели может быть прописан параметр Poly, если эта кость отрисовывается и содержит не разрушаемые далее видимые части (например обломки оснований стен). Имеет смысл все такие остатки собрать в одну кость, чтобы не усложнять иерархию. Далее, к базовой кости могут быть прилинкованы:

На последнем случае остановимся более подробно. Каждый обломок (piece#) прилинкован к базовой кости (за исключением sub_piece#, которые могут линковаться как к базовой кости, так и к piece#) и в параметрах содержит только Poly. К каждому piece# и sub_piece# прилинкован объем, в параметрах которого прописан только Volume (но могут быть исключения). Обломки не должны пересекаться в пространстве своими объемами, иначе это приведет к экстренному выталкиванию объемов друг из друга (в физическом движке), в результате чего обломки приобретут непредсказуемое поведение во время полета.

Важно: рекомендуется свести к минимуму физические расчеты при подмене целой модели на Х-модель, для чего на каждом обломке должен быть, по возможности, один объем (редко два), выполненный как примитив Box (если это кусок стены), либо Cylinder или Sphere (в зависимости от обломка и его предполагаемого поведения при столкновении с землей и другими объектами). Сам же обломок должен иметь неправильную форму, но позволяющую с минимальными отклонениями описать его одним-двумя объемами Не следует также делать слишком много обломков (количество piece# и sub_piece# должно быть не более 16!). Кроме этого текстуры, использованные на целой модели, должны быть максимально задействованы в Х-модели, чтобы не загружать много дополнительных текстур в процессе разрушения объекта. Желательно, чтобы происходила подмена только текстуры крыши, а остальные использовались с целой модели.

Поскольку обломки соответствуют определенной части конструкции, они должны нести на себе соответствующую текстуру. Однако, для упрощения моделирования и текстурирования таких кусков рекомендуется создавать их из произвольного сплайна путем применения модификатора Extrude с последующим нанесением раскладки текстурных координат простым UVWMap→Planar с соблюдением масштаба и характерных участков текстуры фрагмента целой модели. На местах разломов, так же как и на самим стенах, наносится текстура разрушенной кирпичной кладки либо другого подходящего материала. К базовой кости Х-модели, если она содержит неразрушенные останки конструкции, должны быть прилинкованы объемы, создающие препятствия вокруг этих останков.

Разрушение техники

Подставляемая при получении повреждений Х-модель, помимо тех же деталей, что и целая модель, обычно содержит анимации перехода в «разбитое» состояние (и обратно – при починке), анимации разрушения гусениц у танков и т.п., а также кости, отвечающие за линковку эффектов дыма и огня. ХХ-модель содержит только остов и обломки (именуемые не piece#, а part#). Все соответствующие кости целой, Х- и ХХ-моделей должны совпадать по именам.