Создание реалистичного проектора Думаю, многие помнят проекторы с cs_office и ep1_citadel_00. В этом туторе описано, как сделать проектор, показывающий изображение с камеры. Плюс ещё различные эффекты (пылинки, луч света, разбиваемость). Приступим нах!!!11 Для начала создадим модель проектора. Можно взять модели из CSS или Episode 1, но если такой возможности нет, ставьте чё хотите))). Главное, чтобы это был объект prop_static. Следующее – изображение на стене. Есть дох*я способов это сделать, я поставил func_illusionary, покрасил переднюю сторону текстурой монитора. Кстати, не любая текстура подойдёт для этого. Нужна обязательно прозрачная текстура с хорошим качеством изображения. Наберите в фильтре текстур combinemonitor и выбирайте любую из появившихся (я выбрал первую). Все они отвечают вышеуказанным требованиям. Кроме того, браш func_illusionary должен иметь минимальную толщину (1 юнит) и вплотную прилегать к стене. Дайте брашу имя screen. Стену, на которой будет показываться изображение, желательно покрасить как можно более светлой текстурой, не использующей кубмапы (то есть без параметра $envmap в VMT), тогда изображение будет хорошо видно, я выбрал concrete/concretewall013a. И не забудьте сделать комнату как можно более тёмной. Теперь надо осветить стену с изображением. Если этого не сделать, то изображение будет тупо светится на стене. Можно сделать как угодно, но я решил освещение всё-таки сделать. Ставим light_spot, направляем его на изображение и выставляем параметры: Name: light Brightness: 220 200 180 500 //первые три числа – цвет в RGB, последнее – яркость Inner (bright) angle: 10 Outer (fading) angle 13 //изображение на стене должно целиком попасть в луч света Флаги не трогаем. Добавим спрайт луча. В том же месте ставим point_spotlight с флаг «Start On» и параметрами: Name: spot Spotlight Length: 20 //длина Spotlight Width: 15 //ширина Создадим пылинки в луче света. Ставим прямоугольный браш тех же размеров, что и func_illusionary, но протянуть его необходимо до самого проектора. Затем при помощи Vertex Tool придаём брашу конусовидную форму, красим текстурой TRIGGER и превращаем в func_dustcloud с параметрами: Name: dust Particle Color: 255 230 170 //цвет в RGB Particle Per Second: 25 //скорость появления пылинок Maximum Particle Speed: 5 //максимальная скорость движения Minimum Particle Lifetime: 2 //минимальное время движения каждой пылинки Maximum Particle Lifetime: 4 //максимальное время движения каждой пылинки Maximum Visible Distance: 512 //дистанция видимости Minimum Particle Size: 15 //минимальный размер пылинок Maximum Particle Size: 15 //максимальный размер пылинок Теперь создадим камеру. Ставим point_camera, даём ей имя camera. Затем ставим info_camera_link и выставляем следующие параметры: Name: link Entity Whose Material Uses _rt_camera: screen //где показывать изображение Camera Name: camera //указываем созданную ранее камеру Можно создать тихое гудение проектора. Ставим ambient_generic с параметрами: Name: sound Sound Name: ambient/machines/combine_shield_loop3.wav // гудение силового поля Флаги все сносим нахер. Последний наворот – разбиваемость. Для начала сделаем искры, ставим env_spark с параметрами: Name: spark Max Delay: 0 Magnitude: Small //размер искр минимальный Spark Trail Length: Small //минимальная дальность разброса искр Флаги убираем. Далее окружаем модель проектора брашем, обрезаем его при помощи Clipping Tool и Vertex Tool (необходимо для придания ему формы проектора), красим текстурой NODRAW, превращаем в func_button, выставляем параметр Delay Before Reset на -1, Отмечаем флаги «Don’t move» и «Damage Activates», остальные не нужны. Теперь аутпуты (каждый с флагом Fire once only): OnDamaged => dust => Kill OnDamaged => light => TurnOff OnDamaged => screen => Kill OnDamaged => sound => StopSound OnDamaged => spark => SparkOnce OnDamaged => spot =>LightOff Готово!!!11 Автор – La Mafioza lamafioza@mail.ru |