Учебник по созданию карт


Глава XX. Продвинутый маппинг.

§ 20.15 Летающая птица на карте de_survivor

В этой статье мы расскажем, как сделана летающая птица на карте DE_SURVIVOR.

Кто не помнит эту птицу — вот посмотрите:

Летающая птица на De_Survivor


Для того, чтобы сделать такую птицу, нам понадобится текстура с ее изображением. Это будет текстура с маской, вот такая:

Текстура птицы


А теперь собственно о том, как устроена птичка. Данный зверь будет у нас объектом func_tracktrain, который будет постоянно перемещаться по объектам path_track. Эти path_track, как известно, определяют траекторию движения для func_tracktrain.

1. Делаем птичку

Начнем с изготовления птицы. Создадим небольшой браш, в нашем случае это будет браш с размерами 96х48х8 юнитов.

Создаем небольшой браш, окрашиваем его нижнюю сторону текстурой с птицей


Нижнюю сторону браша окрасим текстурой с птицей. Все остальные стороны окрасим текстурой {BLUE. Сделаем мы это для того, чтобы они были прозрачными в игре.

Объект func_tracktrain, который будет птицей, должен содержать ORIGIN-браш. ORIGIN-браш мы разместим в центре птицы.

ORIGIN-браш размещаем в центре птицы. Рис.1


На виде сверху хорошо видно, как размещен ORIGIN-браш:

ORIGIN-браш размещаем в центре птицы. Рис.2


Дальше выделяем птицу вместе с ORIGIN-брашем и превращаем в объект func_tracktrain.

Выставим свойства и флаги для данного объекта.

Func_tracktrain (птица)
Render Mode: Solid (режим отображения, при котором синие части текстуры будут прозрачными)
FX Amount: 255
First stop target: 1 (имя первой точки маршрута, т.е. первого объекта path_track)
Distance between the wheels: 100 (влияет на плавность разворота птицы; больше -> плавнее)
Initial speed: 240 (начальная скорость полета птицы)
Speed: 240 (максимальная скорость птицы)

Флаги:

No User Control - чтобы игрок не мог управлять птицей
Passable - чтобы птица была нематериальной (игроки могут через нее "проходить")


Все остальные свойства можно оставить по умолчанию.

И последнее, что касается птицы. Проследите за тем, чтобы голова птицы смотрела налево на виде сверху. Т.е. Вы просто ставите в редакторе 2D-вид сверху и разворачиваете птицу головой налево. Это необходимо, чтобы игра знала, какой стороной объект func_tracktrain должен двигаться вперед. В противном случае птичка может полететь вперед хвостом :)


2. Определяем траекторию движения птицы

Теперь мы создадим 16 объектов path_track. Мы расположим их <восьмеркой>, примерно так, как это сделано на карте DE_SURVIVOR.

При помощи объектов path_track определяем траекторию движения птицы


Чем больше path_track Вы создадите, тем более плавной будет траектория полета птицы. Хотя можно сделать много path_track, а траектория все равно будет угловатой :) Тут уж все зависит от Вашего глазомера.

Свойства всех объектов path_track схожи. Разница лишь в названии объектов и в названии следующей точки траектории.

Path_track (16 точек, составляющих траекторию полета птицы)
Name: 1
Next stop target: 2 (имя следующего объекта path_track в траектории)

Name: 2
Next stop target: 3

...........
...........
...........

Name: 16
Next stop target: 1


Из приведенных выше свойств видно, что у каждого объекта DE_SURVIVOR в параметре Next stop target прописано имя следующего DE_SURVIVOR в траектории.

У самого последнего - шестнадцатого - объекта в данном параметре записано имя начальной - первой - точки траектории. Таким образом, птица будет летать бесконечно по восьмерке.

Птицу можно разместить в любом месте карты. Но для удобства, разместите ее около какого-нибудь объекта DE_SURVIVOR. И не забудьте направить голову птицы налево на виде сверху.

Чтобы птичка еще что-нибудь кричала, можно сделать объект DE_SURVIVOR, в котором указать звуковой файл с криком птички. Активировать его можно объектом DE_SURVIVOR.

Если что-то осталось для Вас не ясным, Вы можете скачать нашу карту-пример.


Ссылки

func_tracktrain.zip [28Кб] — в архиве карта-пример в форматах BSP и RMF, а также нужный текстурный файл.


Глава XX. Продвинутый маппинг.


К оглавлению Учебника

© http://cs-mapper.by.ru/
CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0055 ]