Из данного материала вы узнаете как создавать двери со стеклом:
сдвигающиеся и крутящиеся. Мы надеемся, что вы неплохо освоили создание
простых дверей данных двух типов.
1. Сдвигающиеся двери со стеклом
Опять же, как и в случае с простыми дверями, сдвигающуюся дверь со
стеклом сделать проще, чем крутящуюся, а посему начнём с данного вида.
Вы спросите: почему нельзя создать просто дверь со вставкой из стекла?
Дело в том, что дверь должна быть непрозрачной, а стеклянная вставка —
наоборот прозрачной. А 1 и тот же объект не может быть прозрачным в
одной части и непрозрачным в другой. Придется несколько схитрить.
В действительности мы сделаем 2 двери: одну в виде двери со сквозным
отверстием, другую как стеклянную вставку. Чтобы была иллюзия 1-ой
двери, мы дадим дверям одинаковые названия и будем активировать их
одновременно одним триггером, так что 2 двери будут сдвигаться
одновременно. Что же, приступим к обману игроков, думающих, что дверь
одна! :-)
Построим дверь с размерами 96 х 64 х 8 юнитов с отверстием 48 х 36 юнитов. Для закрашивания мы использовали текстуру FIFTIES_DR9.
Чтобы текстура хорошо подходила, толщину (высоту) верхней балки двери
мы сделали шесть юнитов, а двух боковых — по восемь. В итоге наша дверь
будет состоять из четырёх отдельных брашей (смотрите картинку ниже).
Выставим следующие параметры:
Name — sliding_door1 (это название мы будем использовать для открытия двери, а точнее 2-ух дверей одновременно одним триггером); Move sound — pneumatic (звук движения двери, можно не указывать); Delay before close — 4 (через 4 секунды дверь закроется автоматом); Lip — «2» (дверь будет «торчать» из стены на 2 юнита в открытом положении); Speed — 100 (скорость движения двери, по умолчанию);
Также не забудьте определить в «Angle» правильный угол, который
указывает направление движения двери. У нас получился угол 0°, так как
дверь сдвигается вправо на виде сверху.
Первая дверь готова. Теперь сделаем вторую (полупрозрачную в игре)
дверь (смотрите картинку ниже). Будем использовать текстуру GLASSGREEN
(на рисунке практически черная). Размеры второй стеклянной двери
конечно же равны размерам отверстия в первой двери. В нашем случае 48 х
36 х 8 юнитов.
Выставим точно такие же параметры как и для 1-ой двери (то есть тот же
угол, то же имя sliding_door1, delay before close: 4, speed: 100).
Остальные параметры следует изменить.
Move sound — No sound (второй звук открывающейся двери нам не нужен — он уже задан для первой двери); Render Mode — Texture (данный режим нужен, чтобы стекло было полупрозрачным); FX Amount — 80 (чем ближе значение к нулю, тем стекло прозрачнее и, наооборот, чем ближе к 255, тем — непрозрачней); Lip «-14» (минус 14);
Почему именно такой Lip? Так как ширина у дверей разная, то и
Lip должен быть разным. У стеклянной двери он должен быть больше (то
есть отрицательным). Если Lip у стеклянной двери будет отрицательным, то
она продвинется дальше, чем на расстояние своей ширины.
Нам нужно установить такой Lip для стеклянной двери, чтобы она,
заехала в стенку и при этом не изменила бы своего положения по отношению
к основной (брашевой) двери. Посмотрите на рисунок ниже.
Это вид сверху. Черное — основная дверь («рамка»), розовое —
внутренняя стеклянная дверь, серое — стенка. Что же, отыскиваемый Lip
будет равен расстоянию со знаком вопроса минус Lip основной двери
(«рамки»).
Теперь нужно сделать триггер, который будет открывать 2 двери
одновременно (смотрите картинку ниже). Используем для этих целей trigger_multiple, как и в случае с обыкновенными дверями.
В свойствах триггера в «Target» запишем название дверей (оно одинаковое), а также выставим «Delay before reset»: 0.
Сдвигающаяся дверь со стеклом готова!
2. Крутящиеся двери со стеклом
Принцип построения крутящихся дверей со стеклом точно такой же.
Основная сложность заключается в правильном определении места положения ORIGIN-брашей.
На картинке ниже вы видите дверь, изготовленную из семи брашей и
имеющую два отверстия для стекол (примечание: данную дверь можно создать
и из пяти брашей, но это в данном случае не принципиально). Размеры
двери, как и в первом случае 96 х 64 х 8 юнитов, толщина «рамки» везде
по 8 юнитов.
Так как дверь крутящаяся, то нужно определить центром ORIGIN-браша
точку, через которую проходит ось вращения. ORIGIN-браш мы сделали в
верхней половине двери (смотрите картинку ниже). Это сделано для
удобства — внизу будет ORIGIN-браш стеклянной (внутренней) двери.
На виде сверху (2D top) хорошо видно положение центра ORIGIN-браша
(смотрите картинку ниже). При таком размещении дверь будеть правильно
открываться в обе стороны, не въезжая в стену. Стрелками показаны обе
двери: и внутренняя стеклянная (пока что мы ее не сделали) и внешняя
(«рамка»).
Чтобы сделать дверь из браша, выделите с зажатым Ctrl все семь брашей и
вместе с ними ORIGIN-браш. Затем нажмите комбинацию клавиш [Ctrl-T] и в списке выберите func_door_rotating.
Выставим для двери следующие свойства:
Name — rotating_door1 (это название мы будем использовать для активации двери, а точнее 2-ух дверей одновременно одним триггером); Move sound — vacuum (звук движения двери, можно не указывать); Delay before close — 4 (через 4 секунды дверь закроется автоматом); Distance (deg) — 90 (градус поворота двери); Speed — 100 (скорость движения двери, по умолчанию);
Теперь создадим вторую (стеклянную) дверь (смотрите картинку ниже).
Она будет изготовлена из двух отдельных брашей, имеющих размеры
отверстий (в нашем случае отверстия одинаковые — по 48 х 36 юнитов). ORIGIN-браш
разместим в нижней части двери и на виде сверху (смотрите картинку
выше) совместим с первым ORIGIN-брашем. Это нужно сделать, так как оси
вращения обеих дверей должны совпадать!
Выберите оба браша-стекла и вместе с ними ORIGIN-браш и также превратите нажатием комбинации клавиш [Ctrl-T] в func_door_rotating. Дайте 2-ой двери точно такое же название, как и первой, то есть rotating_door1. Скорость открытия, градус поворота и время до закрытия выставьте такие же.
Теперь различия:
Move sound — No sound (второй звук открывающейся двери нам не нужен — он уже задан для первой двери); Render Mode — Texture (этот режим необходим, чтобы стекло стало прозрачным); FX Amount — 80 (чем ближе значение к нулю, тем стекло прозрачнее и, наооборот, чем ближе к 255, тем — непрозрачней).
Теперь нужно сделать триггер (trigger_multiple), который будет
открывать 2 двери одновременно. В свойствах в параметр «Target» следует
вписать название обеих дверей (оно одинаково): rotating_door1, а также поставить «Delay before reset»: 0 (чтобы триггер «обнулялся» мгновенно).
Вторая дверь готова! При прохождении через trigger_multiple обе двери
будут открыты в одном и том же направлении, с одинаковой скоростью и
закроются одинаково через четыре секунды.
Не забывайте изменять свойства у обеих дверей симметрично, иначе одновременность будет потеряна.
glassdoor_32.zip [21Кб] — в архиве карта-пример в форматах BSP и RMF.