В изображении выше лазер перемещается по path_track и при соприкосновении с игроком убивает его. Лазер расположен таким образом, чтобы игрок смог перепрыгнуть через него в любое время. Игрок не сможет пройти под лазером. Есть несколько способов создать эффект подобно этому, любые параметры и настройки, используемые в этом туторе могут быть легко изменены как вам угодно. На каждую сторону были помещены спрайты для эффекта прожига. Также при помощи info_overlay будет создана лужа со звуком всплеска. Для всего этого нам понадобятся 4 энтити: func_tracktrain (заставляет двигаться наш лазер), env_beam (Луч), env_sprite, (спрайт, по желанию), path_track (путь, по которому двигается лазер). Расположите все 4 энтити как показано на картинке. Прозрачный = func_tracktrain (браш, превращенный в Entity func_tracktrain) Фиолетовый = env_beam Зеленый = env_sprite Красный = path_track Class: env_beam (Луч) Name: Beam01 (Правую сторону назовите Beam02) Parent: Beam01train (Правую сторону назовите Beam02train) Brightness: 75 Beam Color: 255 0 0 Life: 0 (Infinite) (Время существования лазера в секундах,0= бесконечно) Width of Beam: 0.7 (Ширина луча) Noise: 0 (“количество” неровностей в луче,0= прямой луч) Sprite name: sprites/laserbeam.spr Texture scroll rate: 40 Damage: 1000 (Урон, наносимый игроку) Start Entity: Beam01 (Beam02 для правой стороны) Ending Entity: Beam02 (Beam01 для правой стороны) Touch Type: Not a tripwire Flags: Start On Это параметры настройки для каждого env_sprite, которые используются только для небольшого эффекта (прожига) Class: env_sprite Parent: Beam01 (Beam02 для правой стороны) Render FX: Normal Render Mode: Additive FX Amount: 150 FX Color: 255 0 0 Disable receiving shadows: Yes Frame rate: 10.0 Sprite name: materials/sprites/glow03.vmt Scale: 0.2 (Масштаб) Size of Glow: 2.0 Flags: Start on Все func_tracktrain покрасьте текстурой toolsinvisible. Параметры настройки для каждого func_tracktrain: Class: func_tracktrain Name: Beam01train (Beam02train для правой стороны) Disable receiving shadows: Yes Disable Shadows: Yes First Stop Target: Beam01path01 (Beam02path01 для правой стороны) Max speed: 60 Initial Speed: 60 (Начальная скорость) Change Velocity: Instantaneously Change Angles: Near path_tracks Distance between the wheels: 10 Height above the track: 0 Bank angle on turns: 0 Move sound: d3_citadel.weapon_zapper_beam_loop1 (только для левой стороны) Volume: 2 Flags: No User Control, (Без управления пользователя) Passable, (Проходимый) Fixed Orientation, (Установленное передвижение) Is unblockable by Player. Все func_tracktrain покрасьте текстурой toolsinvisible. Заметьте, что в изображении ниже присутствуют только 4 path_track (По два на каждой стороне, для каждого func_tracktrain) На левой стороне первый path_track ссылается (Next Stop Target) на второй path_track, который в свою очередь ссылается на первый path_track, это заставляет перемещаться лазер вперёд назад бесконечно. Параметры настройки для первого path_track на левой стороне: Class: path_track Name: Beam01path01 (Beam02path01 для правой стороны) Next Stop Target: Beam01path02 (Beam02path02 для правой стороны) Добавляя больше path_track вы можете заставить лазер перемещаться зигзагообразно. Можно также добавить ещё по несколько лазеров на каждую сторону для двойного эффекта.. Обратите внимание: env_beam использовался на каждой стороне, а не на одной стороне только затем, чтобы лазерный эффект был намного лучше, эксперементируйте. Водный эффект для лужи сделан при помощи info_overlay. Class: info_overlay Material: decals/decalborealispuddle001a Я поместил env_cubemap, ambient_generic для звука и trigger_multiple, чтобы запустить звук, когда игрок наступает на лужу. Class: ambient_generic Name: WaterSound Sound name: Water.StepLeft Volume: 4 Flags: Start Silent Is NOT Looped, Class: trigger_multiple Start disabled: No Delay before reset: 1 Flags: Clients, Everything Output: OnStartTouch, WaterSound, PlaySound Этот тутор содержит два vmf файла. Во втором примере Лазер поворачивает за угол и перемещается по другому туннелю. Заметьте, что спрайты для второго примера не используются. Смотрится лучше без них. Смотрите на Outputs для path_tracks в углу, два path-track (там, где совершается поворот) должны быть расположены друг напротив друга.
Источник: http://www.source-inside.ru/index.php?id=114 |