Creating an energy ball launcher and catcher:ru

From Valve Developer Community
Jump to: navigation, search
English

Введение

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

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:При необходимости, вы можете расположить point_energy_ball_launcher снаружи модели "ball_launcher" и удалить Output'ы у "ball_launcher_shield".
Note:Если вы не используете триггер для запуска шара, вы должны зайти в свойства энтити "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:Модель требует квадратного углубления в 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:Звук "ball_trap_door" перекрывается звуком "ball_trap_sound", если хотите, можете задать задержку в PlaySound.

Теория

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

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

Ссылки

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