Lode's Exploding Wall & Breaking Glass Tutorial v1.1
Для изучения данного материала, Вам понадобятся начальные знания едитора, а также более или менее углубленное представление о муверах. Если же Вы не "дружите" с муверами, то очень полезным будет ознакомление с туториалом Lode's All about Movers Tutorial (на русском языке).
Причиной написания данного туториала является знакомство со многими другими статьями, пытающимися осветить данную часть едитора. Зачастую это были поверхностные и не всегда логичные туториалы. В отличие от остальных "учебников", этот документ имеет описание всех свойств, имеющихся у актеров ExplodingWall и BreakingGlass.
Откройте Браузер актеров (Actor Class Browser) и перейдите к разделу Effects. Здесь Вы найдете вышеупомянутый актер ExplodingWall:
Работа этого актера заключается в создании обломков, щепок и кусков стен, стекла или дерева. Вы можете выбрать необходимый их размер, текстуру, звук, а также материал обломков.
Активация этого актера и, соответственно, эффекта, за который он отвечает, может быть произведена с помощью датчика, мувера или любого другого события (event). В большинстве случаев Вы будете использовать EplodingWall в комбинации c мувером: в данном случае, мувер и будет той стеной, которая должна взрываться. На самом деле, мувер просто перемещается в другой кадр-ключ (key), так что получается, что он просто исчезает.
Не следует заблуждаться, что мувер создает эффект взрыва. Мувер не взрывается. Реально, эффект создает актер ExplodingWall. Например, если Вы установите этот актер в 10 метрах от мувера, то стена, которая должна взорваться, просто исчезнет, а в 10 метрах от нее, откуда ни возьмись, появятся обломки. Если же Вы установите ExplodingWall внутри мувера, то эффект будет таким, как будто действительно взорвался мувер.
Класс ExplodingWall также имеет дочерний класс: актер BreakingGlass. Это расширение актера ExplodingWall предназначено специально для разбивающихся стекол.
Для начала создайте стену. Затем соорудите браш, который выглядит как пролом в стене. Удобнее всего для этой цели использовать 2D Shape Editor вкупе с Extrude. Пролом нужно сделать такой же толщины, как и сама стена. Убедитесь, что строительный браш (красного цвета) имеет необходимую Вам форму. Затем установите его в то место, где Вы хотите, чтобы образовался пролом. Теперь нажмите кнопки в следующей последовательности: Пересечение (Intersect) , Вырезать (Substract) и Добавить Мувер (Add Mover Brush) . Таким образом, Вы создали дыру в стене и в нее добавили мувер такого же размера. Пролом будет виден только если мувер сдвинуть в другое положение. При переключении в режим WireFrame, Вы увидите желтый, фиолетовый и красный браши расположенные в одном и том же месте:
Установите key1 для мувера где-то за пределами карты, затем выберите key0(base) снова для того, чтобы мувер вернулся в исходное положение:
Откройте окно свойств мувера и установите следующие значения:
Затем добавьте актер ExplodingWall внутрь Вашего мувера и в его свойствах (в разделе ExplodingWall) установите:
Еще раз убедитесь, что ExplodingWall установлен внутри мувера для максимальной реалистичности эффекта. Если Вы правильно вписали Event мувера и Tag у ExplodingWall, то Вы увидите красную линию соединяющую их:
Теперь Вы можете запустить уровень и посмотреть как все это выглядит на практике:
Все свойства актера ExplodingWall
В предыдущей главе Вы воспользовались только несколькими свойствами, достаточными для создания простой взрывающейся стены. Ниже приведен полный список всех свойств ExplodingWall, а также их полное описание. Как Вы смогли заметить, существует 3 различных вида (материала) обломков, которые может сгенерировать актер ExplodingWall, а именно: камень, дерево и стекло. Для каждого типа Вы можете выбрать необходимую текстуру и размер. Если у Вас, например, кирпичная стена с окошком в деревянной раме, то Вы можете воспользоваться всеми тремя настройками одновременно.
Effects | |
bOnlyTriggerable | если это свойство установить равным false, то активация ExplodingWall может быть произведена любым доступным способом, т.е. посредством передачи ему события (event), либо стрельбой в него из оружия. Если же указать bOnlyTriggerable равным true, то он может быть активирован только передачей события (датчиком, мувером и т.д.); |
EffectSound1 | для актера ExplodingWall не применяется; |
EffectSound2 | для актера ExplodingWall не применяется; |
ExplodingWall | |
ActivatedBy | см. главу ActivatedBy; |
BreakingSound | Звук, который будет слышен в начале взрыва; |
bTranslucentGlass | если true, то осколки стекол (GlassChunks) будут прозрачными; |
bUnlitGlass | если true, то осколки стекол (GlassChunks) будут иметь свойство Unlit, т.е. они всегда будут отображаться с одинаковой яркостью не зависимо от внешнего освещения; |
ExplosionDimensions | радиус окружности, в пределах которой будут "рождены" куски; |
ExplosionSize | "величина" взрыва, используется при вычислении скорости обломков, т.е. чем больше это значение, тем шире/выше они будут разлетаться; |
GlassParticleSize | размер стеклянных осколков. 1 - нормальный размер, 10 - огромный; |
GlassTexture | текстура стеклянных осколков; |
Health | см. главу ActivatedBy; |
NumGlassChunks | количество стеклянных осколков; |
NumWallChunks | количество каменных обломков; |
NumWoodChunks | количество деревянных фрагментов; |
WallParticleSize | размер каменных обломков; |
WallTexture | текстура каменных обломков; |
WoodParticleSize | размер деревянных фрагментов; |
WoodTexture | текстура деревянных фрагментов; |
Если Вы хотите, чтобы ExplodingWall активировался при стрельбе, то Вам необходимо будет использовать атрибут ActivatedBy. В массив ActivatedBy нужно ввести так называемые типы повреждения (damageTypes) при которых Вы хотите, чтобы была вызвана активация ExplodingWall. Не забудьте при этом установить bOnlyTriggerable равным false. Существуют разные виды damageTypes, которые, в свою очередь, вызываются различными видами оружия. Ниже приведен список оружия, а также типы повреждения, которые они порождают:
Следовательно, если Вы хотите, чтобы ExplodingWall активировался при стрельбе только из ShockRifle, то введите в одном из полей массива ActivatedBy строку "jolted" (без кавычек).
При помощи свойства Health, Вы можете указать количество повреждений, которые необходимо нанести для активации ExplodingWall (сколько урона наносит каждое из оружия Вы можете посмотреть в главе Простая взрывающаяся стена).
BreakingGlass является подклассом ExplodingWall и имеет несколько дополнительных настроек: Numparticles и ParticleSize:
Эти два новых свойства, на самом деле, просто замещают настройки NumGlassChunks и GlassParticleSize в разделе ExplodingWall. Конечно, Вы можете создать эффект бьющегося стекла и с помощью актера ExplodingWall, но у BreakingGlass уже установлены некоторые свойства по умолчанию специально для стекла, например, звук и размер "взрыва".
Для установки звука, текстуры, unlit и прозрачности осколков, Вы можете воспользоваться настройками в разделе ExplodingWall.
Для того, чтобы соорудить бьющееся окно, сперва сделайте проем в стене. Затем добавьте мувер, толщиной в 1 юнит в качестве стекла и установите для его поверхностей свойство Translucent (полупрозрачный). Можно, конечно, воспользоваться и плоскостью (sheet), но т.к. она не блокирует игроков, Вам придется устанавливать невидимое препятствие (invisible collision hull). В таком случае, Вы вместо одного браша используете два, что не есть хорошо. Установите те же свойства у мувера, что и при постройке взрывающейся стены.
После перестройки (rebuild), Вы можете заметить, что свет не проходит через Ваше окно. Это выглядит совсем нереалистично. Чтобы избавиться от этого неприятного эффекта, откройте окно свойств мувера (стекла) и в разделе Mover установите WorldRayTraceKey равным 1. В таком случае, освещение будет просчитываться так, как если бы мувер находился в key1, т.е. за пределами уровня и тогда ничто не будет мешать свету проходить через Ваше окно:
Добавьте актер BreakingGlass, дайте ему правильное имя (tag) для связки с мувером, а также установите все необходимые свойства как и в случае с ExplodingWall. Для красоты эффекта не забудьте "включить" bUnlitGlass и bTranslucentGlass.
Восстанавливающиеся стены и стекла
В многопользовательских картах, возможно, Вы захотите, чтобы взорванные стены или стекла восстанавливались для того, чтобы другие игроки должны были их опять взорвать. Для этого установите следующие атрибуты:
В окне свойств ExplodingWall или BreakingGlass:
В окне свойств мувера:
По словам автора этот туториал будет обновляться.
Если у Вас возникли какие либо идеи, предложения, вопросы или же Вы обнаружили неточности и ошибки, автор будет рад Вашим письмам (на английском ленгве of course).
(c)2000-2001 Lode Vandevenne
Перевод сделан 32_Pistoleta с разрешения автора.