Создание вечнодвижущихся колес (Deathrun): различия между версиями

Материал из CSM Wiki
Перейти к навигации Перейти к поиску
м
Строка 1: Строка 1:
 +
[[Категория:Туториалы_для_GoldSource]]
 
По просьбе одного человека пишу эту статью.
 
По просьбе одного человека пишу эту статью.
  
Строка 130: Строка 131:
  
 
Автор: -HunteR-
 
Автор: -HunteR-
 
[[Категория:Маппинг_GoldSrc]]
 

Версия 16:19, 1 мая 2019

По просьбе одного человека пишу эту статью.

Если вы играете на Deathrun-серверах, то конечно знаете карту deathrun-ice и все её препятствия. Одним из сложных препятствий для любого новичка(и для некоторых не новичков) являются "вечнодвижущиеся колеса", которые, если их активирует террорист, будут двигаться до самого конца раунда.

Колесо не активировано
Колесо активировано и будет двигаться до конца раунда


В этой статье речь пойдет о создании таких колес на своей карте.

Сразу предупрежу, что я буду делать карту без террориста, просто тест-карта, на которой мы сами сможем активировать такие колеса и посмотреть как они работают.

!! Примечание: Ещё я заметил, что автор карты deathrun_ice совершенно не умеет работать с carve и vertex tool, поэтому его колеса выглядят "битыми".

Создайте небольшую комнату, в которую мы потом и поместим наши колеса.

Моя комната


Теперь давайте создадим цилиндр размером 384x 384y 64z с количеством ребер 16.

!! Напоминаю: Цилиндр создаётся на виде сверху, потому что позиционируется он всегда сверху.

Цилиндр 384*384*64

Рядом с большим цилиндром создайте маленький размером 128x 128y 64z с количеством ребер 12.

Оба цилиндра

Скройте все, кроме 2х этих цилиндров, затем разрежьте большой цилиндр пополам с помощью Clipping Tool.

Разрезаем большой цилиндр пополам

Далее удаляем одну из половин большого цилиндра.

Удаляем одну половину

Переносим маленький цилиндр на то место, где потом будет дырка.

Переносим маленький цилиндр

Снова режем большой цилиндр, теперь так, как показано на рисунке.

Опять режем

Теперь уже выделяем маленький цилиндр на любом из 2d-видов проекции и жмем Carve, далее удаляем сам маленький цилиндр.

Вырезаем дырку формой маленького цилиндра с помощью Carve
Удаляем маленький цилиндр

У нас уже есть дырка, можно оставить и так, но! Если бы наша дырка была разрезана так, что вершины не попадали бы на сетку, то в игре бы это было очень некрасиво, поэтому пора бы уже привыкнуть всегда править результат работы carve своими ручками!

Удаляем наши уголки, оставляя лишь 3, которые образуют закругление 1го из углов.

Оставляем эти уголки

Далее уменьшаем размер сетки в 2d-видах до 1го юнита и с помощью Vertex Tool Распологаем наши врешины следующим образом.

Вот так вот правильно

Теперь выделяем эти три уголка и жмем Ctl+G, для того, чтобы их сгрупировать. Увеличьте размер сетки снова, и с зажатым Shift перетащите ваши уголки в другой угол, а потом нажмите Ctrl+L или Ctrl+I для отражения ваших уголков по горизонтали или вертикали. Таким же образом скопируйте все уголки, чтобы в итоге у вас получилось как у меня.

Правильное отверстие

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

Готовый круг с 2мя дырками

Затекстурьте ваш круг по вашему желанию.

Готовый круг с наложенными текстурами

Теперь поверните ваш круг и расположите так, как он будет стоять в игре.

!! Примечание: Проверьте, чтобы кнопка Texture Lock была зажата, иначе при повороте и перемещении ваша текстура может съехать.

Готовый круг с наложенными текстурами

Далее создайте браш с текстурой origin в центре вашего круга.

Браш с текстурой origin в центре круга

Выделите весь круг вместе с origin-брашем и переведите в entity(Ctrl+T) func_door_rotating.

func_door_rotating

Теперь выставим свойства нашей entity.

Name: koleso
Delay before close: 1
Target: koleso
Delay before fire: 1
Distance (deg): 540

Где Name - имя(идентификатор) нашего колеса. Delay before close - Время, через которое колесо начнет крутиться назад, когда дойдет до каонца. Target - имя (идентификатор) объекта, который будет активирован, когда колесо закончит свое движение. Delay before fire - время, через которое будет активирован объект, указанный в поле Target. Distance (deg) - угол, на который будет поворачиваться наше колесо. В градусах.

Также важно настроить ось вращения нашего колеса.

Все, теперь 2 раза скопируем наше колесо, чтобы в итоге у нас их получилось 3.

func_door_rotating

Потом выделим среднее колесо и в ствойстве entity выставим флаг Reverse Dir, чтобы наше колесо крутилось в другую сторону.

func_door_rotating

Далее создайте место появления CT, кнопку(func_button), в ствойствах которой укажите:

Target:koleso

И флаг Don't move.

Ну и конвеер, который будет бросать нашего игрока сквозь эти колеса!!!

Готовая карта

Ну и скриншоты из игры:

Колеса не активированы
Колеса активированы

!! Примечание: Моя карта без entity-света и компилировалась без rad-компилятора, чтобы свет везде был равномерный.

!! Исходник карты-примера: Файл:Dr ice tr.zip

Автор: -HunteR-