This article relates to the game "Portal". Click here for more information.

Ru/Creating a rotating portalgun: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Multipage removal)
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Вступление ==
{{LanguageBar}}
[[Image:Picture_03.jpg|right|Width:64]]
{{Portal topicon}}
 
<onlyinclude>
[[File:Picture_03.jpg|right|Width:64]]
В этом учебнике мы создадим вращающийся стенд с прикреплённой портальной пушкой, которая будет автоматически открывать порталы.
В этом учебнике мы создадим вращающийся стенд с прикреплённой портальной пушкой, которая будет автоматически открывать порталы.


== Подготовим модели ==
== Подготовим модели ==
Потребуется две {{ent|prop_dynamic}} энтити, по одной для каждой из следующих моделей:
Потребуется две {{Ent|prop_dynamic}} энтити, по одной для каждой из следующих моделей:
* <code>models/props/pedestal_base_reference.mdl</code>. Назовите её <code>stand_bottom_model</code> и установите параметр "disableshadows" на 1.
* <code>models/props/pedestal_base_reference.mdl</code>. Назовите её <code>stand_bottom_model</code> и установите параметр "disableshadows" на 1.
* <code>models/props/pedestal_center_reference.mdl</code>. Назовите её <code>stand_top_model</code>.
* <code>models/props/pedestal_center_reference.mdl</code>. Назовите её <code>stand_top_model</code>.
Line 10: Line 13:
== Подготовим браши ==
== Подготовим браши ==
Создаёте два браша с такими размерами:
Создаёте два браша с такими размерами:
* 32 x 32, высота - 4, использовать текстуру <code>[[tool textures|tools/nodraw]]</code>.
* 32 x 32, высота - 4, использовать текстуру <code>{{L|tool textures|tools/nodraw}}</code>.
* 4 x 32, высота - 55, также использовать текстуру <code>tools/nodraw</code>.
* 4 x 32, высота - 55, также использовать текстуру <code>tools/nodraw</code>.


== Движение ==
== Движение ==
[[Image:Picture_01.jpg|right|thumb|Расположение брашей и моделей.]]
[[File:Picture_01.jpg|right|thumb|Расположение брашей и моделей.]]
Переместите <code>stand_bottom_model</code> туда, где будет стоять стенд. Мелкие дверцы внизу модели должны находиться под землёй. Теперь переместите <code>stand_top_model</code> над <code>stand_bottom_model</code>, как показано на картинке справа.
Переместите <code>stand_bottom_model</code> туда, где будет стоять стенд. Мелкие дверцы внизу модели должны находиться под землёй. Теперь переместите <code>stand_top_model</code> над <code>stand_bottom_model</code>, как показано на картинке справа.


Line 62: Line 65:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnTimer || stand_func_rotating || Start || <none> || 0.00 || No
| [[File:Io11.png]] || OnTimer || stand_func_rotating || Start || <none> || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnTimer || stand_func_rotating || Stop || <none> || 3.00 || No
| [[File:Io11.png]] || OnTimer || stand_func_rotating || Stop || <none> || 3.00 || No
|-
|-
| [[Image:Io11.png]] || OnTimer || weapon_portalgun || FirePortal1 || <none> || 3.00 || No
| [[File:Io11.png]] || OnTimer || weapon_portalgun || FirePortal1 || <none> || 3.00 || No
|}
|}


Line 74: Line 77:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once   
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once   
|-
|-
| [[Image:Io11.png]] || OnFullyOpen || stand_bottom_model || SetAnimation || close || 0.00 || No   
| [[File:Io11.png]] || OnFullyOpen || stand_bottom_model || SetAnimation || close || 0.00 || No   
|}
|}


Line 82: Line 85:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnAnimationDone || stand_bottom_model || SetAnimation || inactive || 0.00 || No
| [[File:Io11.png]] || OnAnimationDone || stand_bottom_model || SetAnimation || inactive || 0.00 || No
|}
|}


Line 90: Line 93:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPlayerPickup || timer_stand || Kill || || 0.00 || No
| [[File:Io11.png]] || OnPlayerPickup || timer_stand || Kill || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPlayerPickup || stand_top_model || SetParent || stand_func_door || 0.00 || No
| [[File:Io11.png]] || OnPlayerPickup || stand_top_model || SetParent || stand_func_door || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPlayerPickup || stand_func_door || Open ||  || 0.80 || No
| [[File:Io11.png]] || OnPlayerPickup || stand_func_door || Open ||  || 0.80 || No
|}
|}


== Parent-ы и "дырка" ==
== Parent-ы и "дырка" ==


[[Image:Picture_02.jpg|right|thumb|Всё готово. Заметьте, что отверстие сделано на полу.]]
[[File:Picture_02.jpg|right|thumb|Всё готово. Заметьте, что отверстие сделано на полу.]]
Сейчас установим параметр parent у <code>weapon_portalgun</code> и <code>stand_top_model</code> на <code>stand_func_rotating</code>.
Сейчас установим параметр parent у <code>weapon_portalgun</code> и <code>stand_top_model</code> на <code>stand_func_rotating</code>.
Когда всё будет готово, сделайте дырку в форме цилиндра на полу ниже <code>stand_bottom_model</code>, как показано на картинке справа.
Когда всё будет готово, сделайте дырку в форме цилиндра на полу ниже <code>stand_bottom_model</code>, как показано на картинке справа.
Line 106: Line 109:
Вдобавок, вы можете создать portal frame на каждой стене, на которых будут открываться порталы.
Вдобавок, вы можете создать portal frame на каждой стене, на которых будут открываться порталы.


Чтобы это сделать, создайте {{ent|prop_static}} энити с моделью <code>models/props/autoportal_frame/autoportal_frame.mdl</code>, Переместите её к стенке, на которой вы собираетесь её разместить, поверните её так, чтобы она встала параллельно к стене.
Чтобы это сделать, создайте {{Ent|prop_static}} энити с моделью <code>models/props/autoportal_frame/autoportal_frame.mdl</code>, Переместите её к стенке, на которой вы собираетесь её разместить, поверните её так, чтобы она встала параллельно к стене.


Или вы можете создать portal frame из брашей с такими параметрами:
Или вы можете создать portal frame из брашей с такими параметрами:
Line 115: Line 118:


== Смотрите также ==
== Смотрите также ==
* [[Portal Level Creation:ru]]
* {{LCategory|Portal level design|Создание уровней Portal}}/onlyinclude>


[[Category:Level Design Tutorials]]
{{ACategory|Portal}} {{ACategory|Level Design}} {{ACategory|Tutorials}}
[[Category:Portal]]
[[Category:Russian]]

Latest revision as of 06:04, 12 July 2024

English (en)Русский (ru)Translate (Translate)


Width:64

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

Подготовим модели

Потребуется две prop_dynamic энтити, по одной для каждой из следующих моделей:

  • models/props/pedestal_base_reference.mdl. Назовите её stand_bottom_model и установите параметр "disableshadows" на 1.
  • models/props/pedestal_center_reference.mdl. Назовите её stand_top_model.

Подготовим браши

Создаёте два браша с такими размерами:

  • 32 x 32, высота - 4, использовать текстуру tools/nodraw(en).
  • 4 x 32, высота - 55, также использовать текстуру tools/nodraw.

Движение

Расположение брашей и моделей.

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

Сопоставьте первый браш (с размерами 32x32) с stand_top_model. Установите на оси Z (высоте) около половины высоты stand_top_model. Теперь передвиньте второй браш к стенке стенда, как показано на картинке справа.

Брашевые энити

Выберите первый браш и превратите его в func_rotating энити со следующими параметрами:

Property Name Value
Name stand_func_rotating
Max Rotation Speed 30

В списке флагов снимите галочку Start ON.

Превратите второй браш в func_door с такими параметрами:

Property Name Value
Name stand_func_door
Speed 25
Move direction: 90 0 0
Delay Before Reset -1

В списке флагов снимите галочку Passable.

Портальная пушка

Создайте энити weapon_portalgun. Назовите её weapon_portalgun. Поместите её точно на макушку stand_top_model. Портальная пушка должна быть направлена налево, если вы смотрите на stand_top_model со стороны, где видно синюю стрелочку, как на первой картинке наверху этой страницы.

Определение аутпутов у энитей

Сделайте logic_timer энити, назовите timer_stand и установите его refire interval на 5 секунд. Убедитесь, что start enabled у энити включён. А теперь идём в аутпуты и пишем:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTimer stand_func_rotating Start <none> 0.00 No
Io11.png OnTimer stand_func_rotating Stop <none> 3.00 No
Io11.png OnTimer weapon_portalgun FirePortal1 <none> 3.00 No


Создайте новый аутпут у stand_func_door:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnFullyOpen stand_bottom_model SetAnimation close 0.00 No


Теперь делаем аутпуты у stand_bottom_model:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnAnimationDone stand_bottom_model SetAnimation inactive 0.00 No


И несколько аутпутов для weapon_portalgun:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPlayerPickup timer_stand Kill 0.00 No
Io11.png OnPlayerPickup stand_top_model SetParent stand_func_door 0.00 No
Io11.png OnPlayerPickup stand_func_door Open 0.80 No

Parent-ы и "дырка"

Всё готово. Заметьте, что отверстие сделано на полу.

Сейчас установим параметр parent у weapon_portalgun и stand_top_model на stand_func_rotating. Когда всё будет готово, сделайте дырку в форме цилиндра на полу ниже stand_bottom_model, как показано на картинке справа.

Финал

Вдобавок, вы можете создать portal frame на каждой стене, на которых будут открываться порталы.

Чтобы это сделать, создайте prop_static энити с моделью models/props/autoportal_frame/autoportal_frame.mdl, Переместите её к стенке, на которой вы собираетесь её разместить, поверните её так, чтобы она встала параллельно к стене.

Или вы можете создать portal frame из брашей с такими параметрами:

  • Размер - 8 x 2, высота - 128
  • Расстояние между брашами - 64 юнита
  • Текстура на передней стороне брашей - signage/fixed_portal_border
  • Текстуры по бокам - signage/signage_border

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