Базовые тонкости картостроения, часть 2

Добавлен , опубликован

Содержание:
В этой статье Вы научитесь мелким, но очень полезным вещам в редакторе Valve Hammer Editor

Создание лестницы

Внутри своей карты инструментом Entity Tool (Shift+E) создайте два объекта типа prop_static. Зайдите в свойства одного (Alt+Enter), в списке выберите World Model, далее Browse... и выберите модель по этому адресу: props_c17/metalladder002.mdl. Далее OK, Apply ... Аналогичным образом для второго объекта выберите модель: props_c17/metalladder002b.mdl.
Соответственно соедините их, чтоб это было похоже на лестницу, и разместите её в нужном месте. Теперь у Вас полноценная лестница, с замыкающей верхушкой.
Но наш персонаж по ней подниматься не будет, т.к. это лишь визуальная часть. Чтобы он поднимался, нужно установить специальный триггер.
Внимание: Создание триггера лестницы для Half Life 2 очень сильно отличается от CS:S, так, что я поясню для каждой игры по отдельности.
Создание подъёмного триггера для Half Life 2:
Существует два типа подобных триггеров для Half Life 2 , у каждого есть свои плюсы и минусы, я также напишу о создании каждого из них.
1-й. Создайте инструментом Entity Tool (Shift+E) объект func_ladderendpoint в точке, где Вы собираетесь подниматься по лестнице, т.е. внизу лестницы. Он должен быть серого цвета (при выделении он красный)
Далее создайте такой же объект там, где лестница закончится, (сверху). Сама лестница обязательно должна быть вертикальной, поэтому создавайте сверху предыдущего объекта (это минус этого способа). Зайдите в свойства второго, (верхнего, кнопками Alt+Enter) в списке выберите Name и введите имя (в поле, где расположен выпадающий список), например up и, не закрывая окна в окне 3d вида, нажмите на этот объект (т.е. в окне camera выберите объект, который мы создали вторым, не смотря на то, что мы уже в его свойствах, нам надо указать, кому будет принадлежать данное имя, в нашем примере up), теперь надпись (имя) сменит цвет с красного на чёрный. Жмите Apply. Закрываем окно. Теперь выделяем первый объект. Там же в списке найдите строку Other, в таком же списке, где мы писали, имя выберите название конечной точки (up). Жмите Apply.
Теперь осталось добавить точки (ммм, как бы это выразиться...) спуска с лестницы. Создайте ещё один объект типа info_ladder_dismount. Расположите его перед первым объектом, (нижним) так, чтобы с него мы попали на лестницу:
Далее создайте ещё один такой объект, но расположите его сверху лестницы, чтобы, когда наш персонаж поднялся по лестнице встал на эту точку:
2-й Создайте объект инструментом Entity Tool (Shift+E) объект func_useableladder в точке, где Вы собираетесь подниматься по лестнице, т.е. внизу лестницы. Он должен быть жёлтого цвета. Затем в режиме 2d вида (сбоку) выделите этот объект, в центре прямоугольника и Вы увидите маленький круг. Наведите курсор на него (курсор должен стать крестиком, без стрелок), зажав ЛКМ (Левую Кнопку Мыши) переместите прямоугольник, он должен раздвоиться. Тот, который Вы сейчас тянете, и будет конечной точкой поднятия по лестнице.
Внимание: На пути поднятия по лестнице не должно быть никаких предметов, которые Вы можете задеть, иначе вы сразу упадёте с лестницы. Ещё, не забудьте, также сверху и снизу поставить объекты info_ladder_dismount
Вот так и создаются лестницы в Half Life 2
Создание подъёмного триггера для CSS:
Для CSS само создание наверно в тысячу раз легче, чем для Half Life 2. Вам нужно лишь:
  • Создать Браш (brush) инструментом Block Tool (Shift+B) приблизительно такого же размера, как и сама лестница.
  • Наложить на него текстуру Ladder (toolsinvesibleladder), все объекты с этой текстурой будут поднимать и опускать Вашего персонажа автоматически, никаких начальных и конечных точек.
  • Расположить этот браш рядом с лестницей, как показано на рисунке:
На этой ноте мы закончим инструкцию по созданию лестниц на движке Source
[Bar]Необходимые мелочи картостроения[/Bar]
Создание стартовых позиций
Half Life 2: Инструментом Entity Tool (Shift+E) создайте объект info_player_start, и расположите его в нужном месте.

CS:S: Тут не намного сложнее, то же самое, только вместо info_player_start, выберите info_player_terrorist для террористов и info_player_counterterrorist для ментов, соответственно. Если вместо моделей у вас появляется надпись ERROR, вероятнее всего у Вас неполная версия игры (лишь немного урезанная), тогда скачайте вот этот файл (5 Мб) и всё будет ОК
Добавление спец. костюма
Пустяковое дело, нужно лишь инструментом Entity Tool (Shift+E) создать объект item_suit, расположить его в нужном месте (чаще всего это место появления игрока) и всё
Создание собственных дверей
Создайте браш (Block Tool (Shift+B)) высотой, к примеру, 112, шириной 56 и толщиной большей, чем толщина перегородки (больше стены, в которой будет стоять дверь). Этот браш мы будем использовать как примитив сечения, то есть им мы вырежем отверстие в перегородке для дверного проема. Теперь самый ответственный момент. Требуется перенести этот браш так, чтобы он полностью пересекал перегородку с двух сторон, касался пола, но не пересекал его! Все зоны примитивов, которые попадут в зону сечения, будут отрезаны, следовательно, в эту зону должна попадать только перегородка, как на рисунке:
После того, как Вы установили место, где будет находиться Ваша будущая дверь, нажмите ПКМ и выберите Carve (Вырезать) или нажмите Ctrl+Shift+C. Будет создано отверстие в перегородке. Чтобы это увидеть, Вы можете удалить плоскость сечения. Конечно, удалять ее преждевременно, но если Вы все-таки это сделали, нажмите отмену.
Отсюда следует два варианта: либо Вы создаёте дверь из этого браша, либо Вы импортирутете модель уже готовой двери из архива игры. Я поясню оба способа, хотя второй, конечно же, легче.
1-й Измените толщину двери на 4 юнита и расположите ее точно в центре проема. На получившуюся дверь наложите текстуру, например metaldoor052a, распределите текстуру аккуратно по двери и всё, на этом визуальная часть двери готова.
Теперь время заняться ее функциональными возможностями. Так как дверь будет вращающейся, игре необходимо знать, по какой оси она будет совершать поворот. Для задания оси используется браш со служебной текстурой origin. Создайте его и расположите, как показано на рисунке:
Зажмите кнопку Ctrl и выделите дверь вместе с осью вращения. На панели настроек, справа, нажмите кнопку To Entity. В появившемся окне требуется указать класс объекта — в нашем случае это будет func_door_rotating, далее сверху во вкладке Flags (всё тех же свойств) укажите необходимые параметры открытия двери.
Например:
Touch Opens (при столкновении с дверью), Use Opens (при нажатии кнопки использовать (по умолчанию Е));
Starts Open (будет открыта при запуске карты) и др.
Speed — скорость открытия двери;
Start/Stop Sound — звук при открытии и остановке двери;
Delay Before Reset — время, через которое дверь закроется сама, если указать -1, то дверь останется открытой;
Distance — радиус открытия двери, по умолчанию равен 90 градусам;

2-й При помощи инструмента Entity Tool (Shift+E) создайте объект класса prop_door_rotating. В его настройках выберите пункт World Model и нажмите кнопку Browse. Перед Вами откроется менеджер моделей. Выберите подходящую модель двери (воспользоваться библиотекой props_c17) (например props_c17/door01_left.mdl) и нажмите кнопку Open, а затем Apply. На фронтальной проекции перенесите две белые точки в левый нижний и левый верхний углы выделенной двери. Получившийся отрезок и будет являться осью вращения. Вот и всё.
Создание окон
Для начала сделайте вырез в том участке стены, куда предполагается вставить стекло, так, как мы вырезали его в предыдущем пункте. Затем в полученном отверстии разместите браш с минимальной толщиной, окрашенный текстурой стекла по фильтру glass (любое стекло, которое понравится, например combineglass001a), нажмите кнопку Fit, чтобы текстура разлеглась по всей поверхности стекла. Приведите стекло к классу func_breakable (Разрушаемое) и задайте требуемые настройки. Для этого зайдите в свойства стекла (Alt+Enter) и в поле Class укажите func_breakable. Вообще, описанный класс подойдет для любых типов разрушаемых объектов, достаточно изменить параметр Material type (Тип материала), и стекло станет металлом или деревом. А если вписать число в строке Explode Magnitude, то объект будет инициировать взрыв указанной силы при разрушении. Поиграв с различными классами объектов и их настройками, Вы можете открыть для себя много нового.

Содержание