Создание пусковой установки и улавливателя энергетических шаров

From Valve Developer Community
Jump to: navigation, search
English (en)русский (ru)
... Icon-Important.png
Создание уровней Portal
Info content.png
This page has not been fully translated.

You can help by finishing the translation.

Also, please make sure the article tries to comply with the alternate languages guide.

Введение

Целью данного руководства является показать, как создать один пускатель и один приёмник энергетических шаров. В инструкции подробно рассматривается, как создать базовую анимацию и прикрутить визуальные и звуковые эффекты.

The Aperture Science High Energy Pellet Launcher

Launcher assembly.

Пускатель состоит из трёх функциональных частей:

Используемая модель:

  • models/props/combine_ball_launcher.mdl

Для создания пускателя:

1. Добавьте на карту энтити prop_dynamic (Shift+E) и задайте значение World Model равным "models/props/combine_ball_launcher.mdl". Дальше следует изменить имя этнити на "ball_launcher".
2. Расположите энтити на карте, где хотите.
3. Добавьте на карту энтити типа point_energy_ball_launcher и назовите её "ball".
4. Расположите эту энтити внутри модели "ball_launcher".
5. Создайте квадратный браш в 20 юнитов с утолщением в 1 юнит с помощью nodraw texture.
6. Обратите этот браш в энтити func_brush (Ctrl+T) и переименуйте его в "ball_launcher_shield".
7. Расположите "ball_launcher_shield" так, чтобы он касался чёрного круглого щитка "ball_launcher model".
8. Откройте свойства point_energy_ball_launcher и пропишите в Outputs:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPostSpawnBall ball_launcher SetAnimation close 0.00 No
Io11.png OnPostSpawnBall ball_launcher_shield Disable <none> 0.00 No
Io11.png OnPostSpawnBall ball_launcher_shield Enable <none> 2.00 No
9. Задайте значения point_energy_ball_launcher в пунктах Direction, Speed, Type, и Life шара.

Создание Aperture Science High Energy Pellet Launcher завершено.

Note.pngNote:При необходимости, вы можете расположить point_energy_ball_launcher снаружи модели "ball_launcher" и удалить Output'ы у "ball_launcher_shield".
Note.pngNote:Если вы не используете триггер для запуска шара, вы должны зайти в свойства энтити "ball", во вкладку Flags, и снять галочку с флага "Start Inactive". Теперь пускатель активируется при запуске уровня.

The Aperture Science High Energy Pellet Target

Target assembly.

Приёмник состоит из семи частей:

Используемые модели:

  • /models/props/combine_ball_catcher.mdl
  • /models/Effects/combineball.mdl

Для создания приёмника:

1. Создайте энтити prop_dynamic с моделью "models/props/combine_ball_catcher.mdl" и именем "ball_trap".
2. Расположите энтити на карте.
Note.pngNote:Модель требует квадратного углубления в 32 юнита и 8 юнитов глубиной. Иначе, при анимации, часть модели будет скрыта стеной.
3. Создайте энтити filter_combineball_type и назовите её "filter_ball".
4. Измените тип энтити "filter_ball" на "Launched by point_combine_ball_launcher".
5. Создайте цилиндрический браш с восемью гранями, и задайте ему высоту и ширину, как у динамик-пропа. Затекстурьте текстурой триггера и перекройте им место открытия модели "ball_trap".
6. Обратите этот браш в энтити trigger_multiple и назовите "trigger_ball_trap", также задайте значение filter_name равным "filter_ball". Удостоверьтесь, что выбран флаг Physics Objects.
7. Создайте энтити prop_dynamic с моделью "models/Effects/combineball.mdl", задайте значение Parent равным "ball_trap" и назовите энитити "ball_trap_ball". Также, проверьте, соотвестсвует ли значение Start Disabled "Yes".
8. Создайте энтити env_sprite, задайте значение полю Sprite Name равным "sprites/physring1.vmt", также задайте значение Parent равным "ball_trap" и переименуйте энтити в "ball_trap_sprite". Значение 'Render mode' должно быть равным Additive. Также, задайте значение 'Scale should be set равным 1.5, значение 'Size of Glow proxy' задайте равным 0, и HDR Color Scale задайте равным 1.0, вообще все эти значения могут быть заданы на ваше усмотрение. Значение 'Render Fx' должно быть Distort.
9. Расположите "ball_trap_ball" и "ball_trap_sprite" где-нибудь спереди модели "ball_trap".
10. Создайте энтити logic_relay и переименуйте её в "relay_ball_trap_spawn".
11. Откройте свойства logic_relay и задайте следующие значения в Outputs:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnSpawn ball_trap_ball SetParentAttachment ball_attachment 0.00 No
Io11.png OnSpawn ball_trap_sprite SetParentAttachment ball_attachment 0.00 No
12. Создайте энтити path_track и переименуйте в "path_ball_trap_01", задайте значение Next Stop Target равным "path_ball_trap_02".
13. Расположите "path_ball_trap_01" на 34 юнита от модели "ball_trap" и на 18 юнитов выше центра модели.
14. Создайте энтити path_track и переименуйте в "path_ball_trap_02, задайте значение Next Stop Target равным "path_ball_trap_01".
15. Расположите "path_ball_trap_02" на 56 юнитор от центра path_track. Удостоверьтесь, что прямая линия совпадает с центром.
16. Создайте браш с атрибутом nodraw texture. Он должне быть размером 14x8x16, (ДхШхВ).
17. Обратите браш в энтити func_tracktrain и назовите его "ball_trap_door".
18. Расположение браша не имеет значения, ставьте где хотите.
19. Откройте свойства "ball_trap_door" и задайте следующие значения:
Property Name Value
First Stop Target path_ball_trap_01
Move Sound d3_citadel.podarm_move
Start Sound d3_citadel.podarm_move_start
Stop Sound d3_citadel.podarm_move_stop
Change Angles Never (Fixed Orientation)
Height Above Tracks 0
Также, следующие флаги должны быть отмечены:
Property Name Value
No user Control Checked
Fixed Orientation Checked
20. Откройте свойства "path_ball_trap_02" и задайте слеующие значения в Output'ах:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass ball_trap_door SetSpeed 0 0.00 No
21. Создайте энтити point_spotlight (Shift+E) и назовите её "ball_trap_spotlight". Если хотите, можете снять галочку с флага Dynamic Light.
22. Задайте значение Color для "ball_trap_spotlight" равным "255 0 0", дальше задайте значение Beam Length равным длине комнаты и значение Beam Width в пределах от 20 до 40.
23. Создайте энтити ambient_generic и назовите её "ball_trap_sound"
24. Задайте значение Sound Name для "ball_trap_sound" равным "AlyxEMP.Charge". Задайте Source Entity Name равным Main Prop_dynamic.
25. откройте свойства для "trigger_ball_trap" и задайте следующие значения в Outputs:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch trigger_ball_trap Disable <none> 0.00 No
Io11.png OnStartTouch ball Disable <none> 0.00 No
Io11.png OnStartTouch !activator Kill <none> 0.00 No
Io11.png OnStartTouch ball_trap_ball Enable <none> 0.00 No
Io11.png OnStartTouch ball_trap_sprite ToggleSprite <none> 0.00 No
Io11.png OnStartTouch ball_trap SetAnimation close 0.00 No
Io11.png OnStartTouch ball_trap_spotlight LightOff <none> 0.00 No
Io11.png OnStartTouch ball_trap_door SetSpeed .5 0.00 No
Io11.png OnStartTouch ball_trap_sound PlaySound <none> 0.00 No
Затем, снимите флажок с "clients" и поставлте флажок на всём остальном.

Создание Aperture Science High Energy Pellet Target завершено.

Note.pngNote:Звук "ball_trap_door" перекрывается звуком "ball_trap_sound", если хотите, можете задать задержку в PlaySound.

Теория

Приёмник и пускатель в деле.

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

Смотрите также

Ссылки

  • Example map Карта, созданная по этому тутору.