Для того, чтобы изготовить подобную птицу, нам потребуется текстура с маской, например, вот такая:
А теперь о том, как сделана птица. Данное животное будет у нас объектом func_tracktrain, который будет безостановочно перемещаться по точечным энтити-объектам path_track. Эти path_track, как вам должно быть известно, определяют маршрут движения для func_tracktrain.
1. Создаём птицу
Создадим среднего размера браш, в нашем случае это будет браш с размерами 96 х 48 х 8 юнитов.
Нижнюю сторону браша окрасим текстурой с птицей (смотрите выше). Все остальные стороны раскрасим текстурой {BLUE, чтобы в игре они были невидимыми.
Объект func_tracktrain, который будет птицей, как объект вращающийся, должен содержать ORIGIN-браш. ORIGIN-браш мы расположили в центре нашего животного :-)
На виде сверху (2D top) отлично видно, как расположен ORIGIN-браш:
Дальше выбираем и птицу, и ORIGIN-браш, и превращаем нажатием комбинации клавиш [Ctrl-T] в брашевый энтити-объект func_tracktrain.
Выставим параметры и флаги для этого энтити-объекта.
Func_tracktrain (птица)
Render Mode: Solid (при данном режиме отображения синие части текстуры будут невидимыми) FX Amount: 255 First stop target: 1 (название первой точки траектории, то есть 1-ого точечного энтити-объекта path_track) Distance between the wheels: 100 (влияет на плавность разворота птицы; больше — плавнее) Initial speed: 240 (стартовая скорость полёта птицы) Speed: 240 (максимальная скорость полёта птицы)
Флаги:
No User Control — игрок не может управлять птицей Passable — чтобы птица была нематериальной (игроки могут через
нее «проходить», хотя птица расположена на такой высоте, что до неё не
допрыгнуть :-)
Все остальные параметры можно сохранить по умолчанию.
Важно! Последнее, что касается птицы. Проследите за тем, чтобы голова
птицы смотрела налево на виде сверху (2D top). То есть вы просто ставите
в редакторе 2D-вид сверху и разворачиваете птицу головой налево. Это
нужно, чтобы игровой движок знал, какой стороной энтити-объект func_tracktrain должен двигаться вперёд. А не то, птица может полететь вперед хвостом :-)
2. Определяем траекторию движения птицы
Теперь мы сделаем 16 объектов path_track. Мы разместим их «восьмеркой», примерно так, как это сделано на De_Survivor.
Чем больше 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
Из приведенных выше параметров видно, что у каждого точечного энтити-объекта path_track в параметре Next stop target прописано название следующего path_track в маршруте.
У самого последнего, 16-ого, энтити-объекта в этом параметре указано
название начальной — первой — точки маршрута. Таким образом, птичка
будет перемещаться бесконечно по восьмёрке.
Чтобы птичка что-либо выкрикивала, можно создать точечный энтити-объект ambient_generic, в котором установить звуковой файл с криком птички. Запускать его можно энтити-объектом trigger_multiple.
func_tracktrain_32.zip [28Кб] — в архиве карта-пример в форматах BSP и RMF, а также нужный текстурный файл.