Меню сайта


[DS]: Half-Life Server
[DS]: Half-Life Server


[DS]: CS:S GunGame v34 Server
[DS]: CS:S GunGame v34 Server


[DS]: CS:S v34 Server
[DS]: CS:S v34 Server


Поиск

add_newДобавить новость
Последние добавленные
Название игры: S.I.P: Out Life
Жанр: FPS, с элементами RPG
Язык: с++, скрипты lua
G API: DirectX 9
Сайт: sip-game.su
Группа Vk: vk....
Читать далее

<JAM>
m1-palinka


HL-HEV
hl-hev

DS-Servers
Статьи
Туториалы
Маппинг
Goldsrc
Создание карт
Двери

Двери со стеклом



Двери со стеклом
Добавил: root
2013-01-07 12:59:04
26 просмотров

В этой статье мы рассмотрим создание дверей со стеклом, как сдвигающихся, так и вращающихся. Мы предполагаем, что Вы хорошо освоили создание обычных дверей этих двух типов, а также поняли принцип действия триггера trigger_multiple.

1. Сдвигающиеся двери со стеклом

Опять же, как и в случае с обычными дверями, сдвигающуюся дверь со стеклом изготовить проще, чем вращающуюся, поэтому начнем с этого типа.

Почему же мы не можем просто сделать дверь со вставкой из стекла? Дело в том, что дверь должна быть непрозрачной, а стеклянная вставка наоборот прозрачной. А один и тот же объект не может быть прозрачным в одной части и непрозрачным в другой. Придется прибегнуть к некой хитрости.

На самом деле мы создадим две двери: одну в виде двери с отверстием, другую как стеклянную вставку. Чтобы возникла иллюзия одной двери, мы дадим дверям одинаковые имена и будем активировать их одновременно одним триггером. Итак, приступим к обману простого игрока, думающего, что дверь одна! :)

Построим дверь с размерами 96х64х8 юнитов с отверстием 48х36 юнитов. Для закраски мы использовали текстуру FIFTIES_DR9. Чтобы текстура хорошо подходила, толщину (высоту) верхней балки двери мы сделали 6 юнитов, а двух боковых — по 8. В итоге наша дверь будет состоять из 4-х отдельных брашей (см. рис. ниже).

Создаем дверь с отверстием



Выставим следующие свойства:

Name — sliding_door1 (это имя мы будем использовать для открытия двери, а точнее двух дверей одновременно триггером);
Move sound — pneumatic (звук при движении двери, можно не указывать);
Delay before close — 4 (через 4 секунды дверь закроется автоматически);
Lip — «2» (дверь будет «выглядывать» из стены на 2 юнита в открытом положении);
Speed — 100 (скорость движения двери, по умолчанию);

Также не забудьте определить в «Angle» правильный угол, который устанавливает направление движения двери. У нас получился угол 0 градусов, т.к. дверь сдвигается вправо на виде сверху.

Первая дверь готова. Теперь сделаем вторую (прозрачную в игре) дверь (см. рис. ниже). Будем использовать текстуру GLASSGREEN (на рисунке практически черная). Размеры второй стеклянной двери естественно равны размерам отверстия. В нашем случае 48х36х8 юнитов.

Создаем вторую (стеклянную) дверь



Выставьте точно такие же свойства как и для первой двери (т.е. тот же угол, то же имя sliding_door1, delay before close: 4, speed: 100). Остальные свойства следует изменить.

Move sound — No sound (второй звук открывающейся двери нам не нужен — он уже задан для первой двери);
Render Mode — Texture (этот режим необходим, чтобы стекло стало прозрачным);
FX Amount — 80 (чем ближе значение к 0, тем стекло прозрачнее и наооборот, чем ближе к 255, тем — непрозрачней);
Lip «-14» (минус 14);

Почему именно такой Lip? Так как ширина у дверей разная, то и Lip должен быть разным. У стеклянной двери он должен быть больше (т.е. отрицательным). Если Lip у стеклянной двери будет отрицательным, то она продвинется дальше, чем на расстояние своей ширины.

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

Принцип определения параметра Lip для внутренней стеклянной двери



Это вид сверху. Черное — основная дверь («рамка»), розовое — внутренняя стеклянная дверь, серое — стенка. Итак, искомый Lip будет равен расстоянию со знаком вопроса минус Lip основной двери («рамки»).

Теперь необходимо изготовить триггер, который будет активировать обе двери одновременно (см. рис. ниже). Используем для этого trigger_multiple, как и в случае с простыми дверями.

Размещаем триггер для активации обеих дверей одновременно



В свойствах триггера в «Target» запишем имя дверей (оно одинаковое), а также выставим «Delay before reset»: 0.

Сдвигающаяся дверь со стеклом готова!


2. Вращающиеся двери со стеклом

Принцип построения вращающихся дверей со стеклом точно такой же. Основная трудность заключается в правильном определении места положения ORIGIN-брашей.

На рисунке ниже Вы можете видеть дверь, состоящую из 7 брашей и имеющую 2 отверстия для стекол (примечание: такую дверь можно изготовить и из 5-ти брашей, но это не принципиально). Размеры двери, как и в первом случае 96х64х8 юнитов, толщина «рамки» везде по 8 юнитов.

Так как дверь вращающаяся, то необходимо определить ORIGIN-брашем центр вращения. ORIGIN-браш мы разместили в верхней половине двери (см. рис. ниже). Это сделано для удобства — внизу будет ORIGIN-браш стеклянной (внутренней) двери.

Создаем дверь с двумя отверстиями и определяем положение ORIGIN-браша



На виде сверху хорошо видно положение центра ORIGIN-браша (см. рис. ниже). При таком расположении дверь будеть правильно открываться в обе стороны, не въезжая в стену (косяк). Стрелками показаны обе двери: и внутренняя стеклянная (пока что мы ее не сделали) и внешняя («рамка»).

Так необходимо размещать ORIGIN-браши обеих дверей на виде сверху



Чтобы сделать дверь, выделите с зажатым Ctrl все 7 брашей и ORIGIN-браш. Затем нажмите [Ctrl-T] и в списке выберите func_door_rotating.

Выставим для двери следующие свойства:

Name — rotating_door1 (это имя мы будем использовать для открытия двери, а точнее двух дверей одновременно триггером);
Move sound — vacuum (звук при движении двери, можно не указывать);
Delay before close — 4 (через 4 секунды дверь закроется автоматически);
Distance (deg) — 90 (угол поворота двери);
Speed — 100 (скорость движения двери, по умолчанию);

Теперь создадим вторую (стеклянную) дверь (см. рис. ниже). Она будет состоять из 2-х отдельных брашей, имеющих размеры отверстий (в нашем случае отверстия одинаковые — по 48х36 юнитов). ORIGIN-браш разместим в нижней части двери и на виде сверху (см. рис. выше) совместим с первым ORIGIN-брашем. Это необходимо сделать, т.к. оси вращения должны совпадать.

Создаем вторую (стеклянную) вращающуюся дверь



Выделите оба браша-стекла и ORIGIN-браш и также превратите [Ctrl-T] в func_door_rotating. Дайте второй двери точно такое же имя, как и первой, т.е. rotating_door1. Скорость, угол поворота и время до закрытия выставьте такие же.

Теперь различия:

Move sound — No sound (второй звук открывающейся двери нам не нужен — он уже задан для первой двери);
Render Mode — Texture (этот режим необходим, чтобы стекло стало прозрачным);
FX Amount — 80 (чем ближе значение к 0, тем стекло прозрачнее и наооборот, чем ближе к 255, тем — непрозрачней).

Все что осталось сделать, это построить trigger_multiple, как и в первой случае. В свойствах в параметр «Target» следует вписать имя обеих дверей (оно одинаково): rotating_door1, а также поставить «Delay before reset»: 0 (чтобы триггер «обнулялся» мгновенно).

Вторая дверь готова! При прохождении через триггер обе двери будут открыты в одном и том же направлении, с одинаковой скоростью и закроются одинаково через 4 секунды.

Не забывайте менять параметры у обеих дверей симметрично, иначе синхронность будет потеряна. Ну, и как всегда, если что-то осталось непонятным, Вы всегда можете скачать нашу карту-пример. В архиве находится как исходник карты в формате RMF, так и уже откомпилированная BSP карта.


glassdoor.zip [21Кб] — в архиве карта-пример в форматах BSP и RMF.


§ 10.1 Сдвигающиеся и вращающиеся двери
§ 10.2 Двери со стеклом
§ 10.3 Специальные двери (momentary_door)

Поделиться:
Тэги:

DS-Servers.com
Copyright © 2012-2016. All Rights Reserved.
При копировании материала ссылка на источник обязательна
За материалы, размещенные пользователями, администрация сайта ответственности НЕ несет