Этот туториал объясняет, как сделать дверь на карте, используя
актор DoorMover в Postal 2.
Желательно, чтобы Вы уже имели какой-либо опыт работы в PostED и имеете
некоторые знания в создании указателей движения и путей. Если Вы не
знакомы с этим, советуем Вам прочесть туториалы по следующим темам:
Муверы
Построение путей
Основы работы с редактором
Игра:
Это стандартная двухсторонняя дверь. Игрок откроет толчком дверь, и она
останется открытой до тех пор, пока кто-либо не дотронется до нее. Если
игрок коснется ее снова – она закроется. Если дверь будет открыта
напротив стены, то она (дверь) будет в состоянии быть закрытой игроком
снова. Помните об этом, когда создаете радиус открытия двери. Возможно,
Вы захотите открыть дверь на 70 градусов, и можно будет зайти обратно,
пока она не закрылась. Когда кто-либо откроет ее, то она будет открыта
на время, указанное в графе StayOpenTime и затем закроется обратно.
Создание Статик Меша:
Есть особая точка опоры и ориентации (pivot point), чтобы создать меш,
использующийся в качестве двери. К примеру: разместите точку опоры в
следующем ключевом кадре по центру двери.
После размещения на уровне, Вы сможете вращать дверной мувер в любом
направлении по оси Z. Вы должны точно манипулировать предметами для
успешной работы.
Добавьте на уровень актор DoorMover из раздела акторов Mover-SplitMover.
Размещение Двери:
Для добавления двери на уровень сделайте следующее: Нажмите вкладку
Display и укажите в DrawType значение StaticMesh и добавьте свой статик
меш в поле чуть ниже. Стандартный размер - 208 высоты и 112 ширины. Это
не какие-нибудь значения дерьмового радиуса или другой фигни (!!!), это –
полные ширина и высота двери . Если Ваша дверь другого размера, то
настройте ее коллизию и высоту.
Теперь, когда Вы видите свою дверь, Вы должны настроить ее и
указать ключевые кадры анимации. Это нужно для вращения и перемещения
двери от точки опоры. Переместите дверь куда нужно. Убедитесь в нужном
положении по оси Z. С вида сверху легче всего настраивать вращение.
Данное положение будет использовать кадр 0 и кадр 1 для первого сдвига.
Поставьте дверь в кадре 0 в начальное положение, ЗАТЕМ выберите кадр 1 и
переместите дверь так, как будто она открыта. Так останется, когда Вы
выберите другой кадр. Теперь эта дверь будет открываться в одном
направлении.
Для двух направлений, выберите кадр 2 и поверните двери в закрытое
положение. Теперь выберите кадр 3 и «откройте» дверь в противоположном
направлении. В свойствах выберите кадр 0 для стартового положения, чтобы
дверь была в «закрытом» положении.
Как и со всеми муверами, после их размещения, настройка кадров анимации
проста, но можно столкнуться с недоразумениями. Вы должны указывать
ключевой кадр анимации ПЕРЕД передвижением мувера в нужную новую
позицию.
Итак, представим, что мы создаем дверной мувер, или
просто – дверь, на уровне. Укажите кадр 0 и поставьте дверь в начальное
положение. Теперь если Вы будете далее вращать объект в других кадрах,
данное положение сохранится в кадре 0. Теперь создайте кадр 1, дальше
зайдите в Mover:KeyNum свойства (или лучше кликните правой кнопкой
Mover:Key settings) и установите ключ-кадр 1. Сейчас сдвиньте мувер в
следующее положение. С кадром 1 закончили. Вы можете продолжать так
сколько угодно, и в кадрах будет сохраняться только финальное положение
предмета. Также Вы можете изменять положение в уже сохраненных кадрах
анимации.
Нажмите Build all и проверьте, что пути соединились. Если Ваш
autodoor узел пути пишет, что должен находиться внутри двери, просто
перестройте пути снова и решите проблему. Если Ваша точка навигации
autodoor ниже Вашего мувера двери, это означает, что у Вас имеется
ландшафт ниже BSP под этой дверью. Тогда Вы должны отключить параметр
bAutoDoor.
Параметр bMakeBuffer установлен по умолчанию в true. Это включит
автоматическое создание DoorBufferPoint для связи путей на уровне и
Вашей двери. Это поможет избежать столпотворения персонажей около Вашей
двери, которые будут пытаться пройти все разом. Это хорошо для дверей
снаружи зданий. Отключите параметр для дверей в зданиях, если там не
будут проходить много NPC.
SplitMover: улучшенный Actor::Mover
Этот параметр указывает, с какого ключа начнется «новый» мувер.
SecondPathKeyNum указывает, где начнется «разрезка». Если количество
ключ-кадров мувера в NumKeys равно 8 и параметр SecondPathKeyNum равен
4, Вы «разрежете» все ключ-кадры наполовину. Итак, первое движение будет
продолжаться с 0 до 3, а второе – с 4 до 7.
Эти два движения контролируются от направления касания к двери. Если
получается обратный результат – попробуйте поменять параметры кадров и
испытайте снова.
Door: расширенный Actor::NavigationPoint
ПРИМЕЧАНИЕ: Используйте, только если параметр Mover:AI:bAutoDoor
отключен (false). Используется для улучшенной связи путей на уровне с
дверью.
Это не совсем дверь, но и не просто вспомогательная точка навигации.
Название немного не совпадает с предназначением. Будем называть ее
Точка Двери, ‘door point’. Они должны быть размещены с одной или с обеих
сторон мувера и максимально близко. Назовем его (мувер) – Дверной
Мувер, ‘door mover’. Если Вы теперь перестроите пути на уровне, то
никакой связи с общими путями и Вашей дверью не будет. Сначала, Вы
должны настроить имя (тег) мувера (Events:Tag). Назовите его, к примеру,
DoorMover1. Затем в Точке Двери, ‘door point’ , в разделе Door:DoorTag
укажите DoorMover1. Это свяжет Ваш Дверной Мувер и Точку Двери.
Перестройка геометрии и путей должна связать точки пути с Вашей дверью.
Если они не соединились - проверьте теги, дистанцию между ближайшими
путями (она должна быть не более 1200), и, наконец, попробуйте немного
передвинуть точку опоры Вашей двери.
1: ‘выше’ (по отношению к окну вида сверху)
2: ‘внутрь’ (по отношению к окну вида сверху)
3: ‘ниже’ (по отношению к окну вида сверху)