Приветствую Вас 1-класс | RSS Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории раздела
Программирование [7]
Моделирование [8]
Маппинг [67]
Текстурирование [10]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Мини чат

Главная » Статьи » Маппинг

Продвинутая камера №2: автонаводка
Продвинутая камера №2: автонаводка
Это обучение позволит вам создавать "Живую" камеру.
Тоесть Сама камера будет следить за передвижением любого NPC, какого укажите.

В этом примере использованы башня от танка ( func_tank ) и его дуло ( func_tankmortar ).
Объясню как это всё работает:
Так как танк имеет возможность следить за его мишенью, при этом, вращая свою вышку и дуло на оппределённое количесто градусов, то эти обе части мы будем использовать, как ножку и голову камеры. Возможность вращения, делает камеру более функциональной.
Так же если учесть, что танком можно управлять, то и камерой следовательно тоже, но на этом уроке речь пойдёт не о контролировании камеры, а о её автоматизировании.
Делать камеру будем поочерёдно, тоесть сначало "скелет", потом "тело/обшивка/оболочка".
Начнём со скелета:
Делаем "ножку" камеры: Создаём Браш размерами 27 (высота) х 2(ширина и длина) и затекстуриваем её в текстуру NODRAW. Почему NODRAW ? А чтобы небыло видно этой палки, так как на её месте будет модель.
Теперь эту палку превращаем в func_tank со следующими настройками:
Name: rotation_yaw
Yaw Rate: 35 // скорость кручения ножки нашей камеры.
Yaw Range: 360 // на сколько градусов ножка камеры может поворачиваться.
Barrel lenght: 14 // длина будущей "головы" камеры
Rotate Start Sound: npc/turret_wall/turret_start1.wav // звук при начале вращения
Rotate Loop Sound: npc/turret_wall/turret_loop1.wav // звук при самом вращении
Rotate Stop Sound: npc/turret_wall/turret_stop1.wav // звук при остановки вращения
Заплатка Flags:
Ставим галочку на Activate, чтобы "ножка" была сразу активирована. Тоесть её не придётся включать.
И ставим галочку на Only Direct, что позволит Ножке камеры следить за нами и не стрелять
Делаем "голову" камеры:
Нам понадобится браш размерами 14 ( в длину ) х 4 ( ширина и высота ) и опять же затекстуриваем текстурой NODRAW.
Превращаем браш в Энтити func_tankmortar и ставим следующие настройки:
Name: rotation_pitch
Parent: rotation_yaw // эта опция позволяет вращатся нашей будущей "голове" вместе с "ножкой"
Pith Rate: 20 // скорость движения
Pith range: 70 // наклон "головы" не сможет превысить 70 градусов
Barrel length: 14 // длина "головы"
Заплатка Flags:
Ставим галочку на Activate, чтобы "голова" была сразу активирована. Тоесть её не придётся включать.
И ставим галочку на Only Direct, что позволит Голове камеры следить за нами и не стрелять.
Расставьте объекты в следующем порядке:

И так наш "скелет" готов. Осталось добавить "тело" и "глаза" для полного счастья =)
Делаем "тело" :
Для "тела" мы будем использовать entity prop_dynamic. Почему Динамическую энтити используем ? Потому что у неё есть важное для нас поле parent.
И так создаём prop_dynamic и в поле parent указываем rotation_yaw, для того чтобы скелет и тело двигались вместе.
Загружаем модель (world model) "models/props_wasteland/camera_arm001a.mdl". Теперь эту модель ставим внутри нашго скелета.
Теперь точно так же загружаем модель "головы" камеры, это "models/props_wasteland/camera_lens001a.mdl".
В поле parent указываем rotation_pitch, чтобы тело двигалось вместе со скелетом.
И теперь ставим её внутри нашего скелета.
У вас должно получится следующее:

Осталось добавить "глаза". Это будет камера point_camera.
Создаём камеру, называем её camera1 и в поле parent указываем rotation_pitch.
Ставим её в "голове". Вот так это выглядит всё:

Теперь когда у нас есть уже готовая камера, надо сделать монитор.
Для создания монитора нам надо создать браш любого размера и превратить в func_monitor, где в поле camera_name укозать имя нашей камеры camera1.
Чтобы наш монитор показывал картинку, надо сделать экран:
Берём инструмент Toggle Texture Application (shift+a) и на одну сторону монитора прилепляем текстуру с именем dev/dev_tvmonitor1a .
Ну казалось бы и всё. Но нет.... Нам надо еще задействовать эту камеру и указать её "цель".
Создаём entity logic_auto. Эта энтити поможет нам запустить скрипт сразу же, как загрузится карта.
В поле Outputs выставляем следующее:
1) My output named: OnMapSpawn
Targets entities named: rotation_yaw
Via This Input: SetTargetsEntityName
With a parameter override of: !player // здесь может быть не только игрок, но и любой NPC. Просто поменяйте это значение на имя другого NPC
// При загрузке карты, "ножка" камеры будет всегда следить за игроком.
2) My output named: OnMapSpawn
Targets entities named: rotation_pitch
Via This Input: SetTargetsEntityName
With a parameter override of: !player // здесь может быть не только игрок, но и любой NPC. Просто поменяйте это значение на имя другого NPC
// При загрузке карты, "голова" камеры будет всегда следить за игроком.
Вот собственно и всё.

Источник: http://www.source-inside.ru/index.php?id=98
Категория: Маппинг | Добавил: HellMapper (01.10.2009)
Просмотров: 590 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Группа Steam

Наша кнопка

Поиск

Друзья сайта


  • Официальный блог


  • YIIbIpu-TEAM


  • DETLER-TEAM



  • Copyright WEDGe © 2024