Как делать двери hammer
Обновлено: 11.05.2024
1 сен. 2018 в 11:57
Как сделать дверь например как на карте rp_bandclaw?
И если есть , хотел бы узнать , где можно найти нормальный гайд по хаммеру (свои текстуры, модели и тд)
и есть ли еще какой более удобный редактор ?
How create door like an rp_bandclaw?
And where i must found normal guide Hammer (own texture, models etc)
and is there any more convenient editor?
1 сен. 2018 в 14:14
Which door do you mean? Post a screenshot/picture of what door.
There is no other editor other than Hammer Editor, so you have to stick with Hammer (for now)
Guides for hammer in general are available on Garry's Mod Guides and among websites on google, you just got to search for them.
Also what game are you creating a RP map for? Garry's Mod, Half-Life 2 : Deathmatch?
I know you are not english so I will simplify if you ask.
1 сен. 2018 в 14:37
Which door do you mean? Post a screenshot/picture of what door.
There is no other editor other than Hammer Editor, so you have to stick with Hammer (for now)
Guides for hammer in general are available on Garry's Mod Guides and among websites on google, you just got to search for them.
Also what game are you creating a RP map for? Garry's Mod, Half-Life 2 : Deathmatch?
I know you are not english so I will simplify if you ask.
ty very much , i try create map for gm
and about door, simply door with handle, all guides what i see show how create door without handle , and its look like a wall that can be opened and it closes itself
1 сен. 2018 в 14:46
Which door do you mean? Post a screenshot/picture of what door.
There is no other editor other than Hammer Editor, so you have to stick with Hammer (for now)
Guides for hammer in general are available on Garry's Mod Guides and among websites on google, you just got to search for them.
Also what game are you creating a RP map for? Garry's Mod, Half-Life 2 : Deathmatch?
To create a brush-based door, create a gap in the wall as a doorspace. See dimensions for sizing. To make the gap, split the wall in half and place a small brush over the top of the doorspace. Make sure that there is floor underneath the doorspace, otherwise there will be a leak.
Creating a brush for the door
To start making the door, fill the doorspace with a brush. The brush should be a different texture from the wall (wood wall textures are good).
Turning the Brush Into the Door
To turn the brush into a door, right click on it while it is selected in one of the 2D views. Then select 'Tie to Entity' and from the entity list select either func_door_rotating for normal doors or func_door for up/down sliding doors. If the door is to slide, select func_door and scroll down the options until you reach 'Move Direction (Pitch Yaw Roll)' and select either up or down from the small box next to the select options bar. For rotating doors, you'll probably want to adjust the rotation point either by moving the blue ball (in the 3d view) using the 2d view, or by adjusting the 'Origin'.
Once this is done, to open the door (in-game), walk into it. To make it into a "use" door, double click on it in 3d view, select the "flags" tab on the properties window. Select "use opens" and de-select "touch opens."
Making a Button for Your Door
Name your door something like door1 . To make a button for the door, create a small brush (can be any shape you want), and tie it (via Tie to Entity) to func_button . Name your button as well (e.g., door1_button ). Then, once you have selected 'Apply', select 'Outputs' and 'Add Output'. The output should be:
Then press 'Apply' again, to make the button.
When you test the map, walk up to the button and press 'Use'. The door should then open.
Making Double Doors
To make two func_door s or func_door_rotating s open and close together, it is necessary to use a combination of Outputs and logic_relay s. First, make two doors through the process stated above and name them accordingly (e.g., door1 and door2 ). Second, add two logic_relay's somewhere near the doors (the location is not important, but it helps for organizational reasons to keep them close) and name them as well (e.g., door1_relay and door2_relay ). Third, open the properties of the first door, go to the 'Outputs' tab, and add an output similar to the following:
Do this for the other door too, but change the Target Entity to door1 . What these outputs do is open one door when another one is opened (whether that be done via Touch, Toggle, a button, etc.). At this point, you could save and compile to test the doors out if you wanted, but they would only be able to open each other, not close each other. That is where the logic_relay's come in.
Now normally, you would think that you could repeat the process for closing the doors via Outputs (i.e., having one door be closed by the other), but such is not the case. If you try it out for yourself, you will find that the game crashes as soon as you go to close one of the doors. So, to work around this little bug, you need to introduce a logic_relay for each door. If you've followed the above process so far, you should already have the two relays placed and named. Now, open the properties of the first door and add an output similar to this:
Again, repeat this for the other door, changing the Target Entity to door2_relay . Next, open the properties for the first relay and add an output like so:
Repeat this for the other relay, changing the Target Entity to door1 . Now save and compile, and you should have a working set of double doors.
To help you understand this concept of Outputs and logic_relay's better, here is a little diagram for the above example:
Player opens door1 -->The opening of door1 triggers door2 to open via the Output of door1
Player opens door2 -->The opening of door2 triggers door1 to open via the Output of door2
Player closes door1 -->The closing of door1 triggers door1_relay -->The triggering of door1_relay triggers door2 to close
Player closes door2 -->The closing of door2 triggers door2_relay -->The triggering of door2_relay triggers door1 to close
Двери для определенной команды открываются только для какой-либо одной команды, и чаще всего помещаются перед респауном.
Contents
Создание Двери респауна
В этом примере мы будем делать дверь для респауна красной команды, которая откроется только для нее.
Энтити filter_activator_tfteam
Для начала, создадим энтити (Shift+E) filter_activator_tfteam. Эта энтити (фильтр) определит, какая команда может открыть дверь. В его свойствах (Alt+Enter) нужно будет присвоить значения Team (т.е. команды), Name (имя) и Filter mode (способ фильтра) соответствующей команде. В нашем примере Team - Red (красная команда), Filter Mode - Allow entities that match criteria, Name - red_filter (название может быть любым, но советую не мудрить с ним, ибо оно нам еще понадобится).
На одну команду нужен только один filter_activator_tfteam (т.е. всего 2: для красной и синей команды). Все ваши какие-либо ограничения (фильтры) могут быть связаны с этими 2-мя filter_activator_tfteam. Месторасположение этих энтити может быть любое (в игре вы их не увидите), но хорошо было бы поместить эти фильтры в местах, в которых вы их не потеряете. Так что поместите наш готовый filter_activator_tfteam в область респауна команды.
Энтити prop_dynamic
Идем дальше, создайте энтити (Shift+E) prop_dynamic, откройте его свойства Edit -> Properties (Alt+Enter). Жмем двойным щелчком по World Model, далее выделяем вкладку props_gameplay, там находим модель двери door_slide_large_door.mdl жмем ОК - дверь готова.
Энтити func_door
У нас есть дверь, теперь нужно заставить ее открываться и закрываться. С этим нам поможет func_door - браш-энтити. Для создания этой энтити рисуем браш длиной/высотой/шириной примерно в нашу дверь (ну ширину можно чуть побольше сделать). Красим этот браш в текстуру tools/toolsnodraw (для удобства, введите это в Filter в окне выбора текстур), т.к. это будет невидимая преграда в игре. Превращаем браш в энтитю - Tools -> Tie to Entity (Ctrl+T), выбираем в свойсвах func_door. Но это еще не все. Теперь нам нужно покопаться в свойствах (Alt+Enter) func_door:
Свойство | Описание | Значение |
---|---|---|
Name | Это имя, для удобства оно не должно быть слишком сложным и большим, оно нужно для взаимодействия с другим объектом. | door_red_spawn_01 |
Speed | Это скорость, с которой дверь будет открываться/закрываться. Обычно она колеблится около 400-500. | 450 |
Move direction | Это свойство определяет, в каком направлении дверь будет открываться, в нашем случае дверь должна двигаться вверх. | Up |
Lip | Эта опция определяет, сколько юнитов отступа (единицы измерения Hammer) делает дверь при открытии. | 3 |
Delay Before Reset | Это значение ставьте -1, чтобы дверь не закрылась, когда кто-либо находится в дверном проеме. Иначе вся команда может просто тупо застрять в дверях респауна или вообще заблокировать дверь. | -1 |
Далее, все в тех же свойствах перейдите во вкладочку Flags func_door. И обязательно уберите галочку с Touch Opens, иначе члены другой команды смогут заходить на вражеский респаун.
Теперь мы должны связать наш func_door с моделью двери. Выберите prop_dynamic модель двери, и в ее свойствах (Alt+Enter) установите в значение Parent имя func_door. В нашем случае, это - door_red_spawn_01.
Энтити trigger_multiple
Третья и последняя часть двери - trigger_multiple. С помощью этой браш-энтити дверь будет открываться, когда игрок красной (в нашем случае) команды будет ее касаться и закрываться, когда будет выходить из нее. Получается некая "зона активации двери".
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
OnEndTouchAll | door_red_spawn_01 | Close | 0.00 | No | ||
OnStartTouchAll | door_red_spawn_01 | Open | 0.00 | No |
Теперь вернемся во вкладку Class Info свойствах trigger_multiple. В опции Name filter (имя фильтра) должно быть имя вашего filter_activator_tfteam, чтобы дверь открывалась для определенной команды. В нашем случае, это - red_filter.
Это все, теперь мы имеем дверь респануа для красной команды.
Теория Дизайна
Размещение
По идее, двери для респауна могут быть помещены в любое место на карте, т.е. вы можете ограничивать доступ в какое-либо место какой-либо команде. Но будьте осторожны, ибо это может очень сильно повлиять на баланс.
Столкновение
Двери на официальных картах - энтити prop_dynamic в свойствах обязательно имееет значение Collisions - Not Solid.
Здания
Можно также добавить func_nobuild браш-энтити в дверной проем. Для чего? Чтобы инженеры не могли строить свои "башни" в дверном проеме. Это опять же дисбаланс и возможные глюки с открытием/закрытием двери.
Чтобы сделать дверь на основе браша, для начала создайте отверстие в стене. Загляните в статью про различные игровые константы, чтобы точно подогнать отверстие под будущую дверь. Чтобы сделать такое отверстие, разделите стену на две половины и разместите небольшой браш над пространством будущей двери. Убедитесь, что под этим пространством есть пол, иначе будет утечка.
Создание браша двери
Создайте браш и заполните им все пустое пространство в стене. Желательно покрыть его текстурой, отличной от текстуры стены, хорошо подойдет, к примеру, текстура древесного типа.
Превращение браша в дверь
Чтобы сделать из браша дверь, выделите его на одном из окон развертки и щелкните правой кнопкой мыши. Выберите пункт "Tie to entity" и из появившегося списка выберите func_door_rotating для обычной двери или func_door для двери, открывающейся скольжением вверх или вниз. Во втором случае прокрутите вниз окно опций, и вы увидите пункт "Move Direction (Pitch Yaw Roll)" - направление движения; щелкните на нем и выберите вариант 'up' или 'down' в небольшом окошке справа. В случае же с обычной, открывающейся поворотом дверью, вам понадобится настроить центр вращения(синий шарик, его видно в окне трехмерного вида), используя окно развертки или пункт "origin" в окне свойств объекта.
Теперь у нас есть функционирующая дверь. Чтобы открыть такую уже непосредственно в игре, просто подойдите. Чтобы заставить дверь открываться по нажатию кнопки "использовать", дважды щелкните по двери в окне трехмерного вида и из горизонтального списка вверху выберите панель "flags". Поставьте галочку рядом с надписью "use opens" и уберите аналогичную напротив строки "touch opens".
Создание кнопки для управления дверью
Затем еще раз нажмите "Apply".
Когда будете тестировать карту, подойдите к кнопке и нажмите клавишу "использовать". После этого дверь должна открыться.
Создание двойных дверей
Чтобы сделать две скользящие или вращающиеся двери, открывающиеся синхронно, вам понадобится комбинация из output'ов и двух объектов logic_relay(прим. переводчика: на самом деле в этом нет особой необходимости, достаточно лишь дать обеим дверям одинаковое имя). Во-первых, способом, изложенным выше, создайте две двери и назовите их схожим образом, например, door1 и door2 . Во-вторых, добавьте два logic_relay где-нибудь поблизости(расположение не имеет решающего значения, но для простоты имеет смысл держать их поближе) и назовите аналогично, например, door1_relay и door2_relay . В-третьих, откройте окно свойств первой двери, зайдите на панель "Outputs" и добавьте такой output:
Проделайте то же самое со второй дверью, только в поле "Target Entity" впишите door1 . Теперь, когда одна из дверей будет открыта каким-либо способом, вместе с ней автоматически откроется и вторая. На этот моменте вы вполне можете сохранить и протестировать карту, но мы еще не закончили - мы заставили двери открываться вместе, но не закрываться. Для этого нам и понадобятся logic_relay.
Вы, должно быть, сейчас думаете, что вполне можете обойтись без logic_relay, всего лишь написав аналогичные output'ы и для закрытия дверей, как изложено выше. К сожалению, не выйдет. Можете попробовать, но скоро убедитесь, что игра вылетает при попытке закрыть одну из дверей. Придется нам задействовать logic_relay. Если вы следовали инструкциям выше, у вас уже должны быть два таких объекта, размещенных и названных. Откройте свойства первой двери и создайте следующий output:
Проделайте то же самое со второй дверью, заменив Target Entity на door2_relay . Теперь откройте свойства первого logic_relay и добавьте такой output:
Повторить со вторым logic_relay, заменив Target Entity на door1 . Теперь можете сохранить карту, скомпилировать ее и пойти похлопать установленными дверьми.
Чтобы лучше понять механизм взаимодействия Output'ов и logic_relay, изучите следующую таблицу:
Игрок открывает door1 -->Открытие door1 цепляет door2 , заставляя открыться через Output
Игрок открывает door2 -->Открытие door2 цепляет door1 , заставляя открыться через Output
Игрок закрывает door1 -->Закрытие door1 цепляет door1_relay -->Зацепка door1_relay цепляет door2 , заставляя закрыться
Игрок закрывает door2 -->Закрытие door2 цепляет door2_relay -->Зацепка door2_relay цепляет door1 , заставляя закрыться
Маппинг (картостроение) в Counter Strike: Source
Становимся маппером по шагам
Сюда со временем будут добавляться новые туториалы, вы также можете задать вопрос или заказать туториал здесь
Моделинг, моделирование
Автор: Лорд Беккет Понравилось: 30 Не понравилось: 1
Комментарии пользователей сайта:
Народ как сделать spawnkill на mg карте?
Чтобы через какое-то время люди не могли респавниться. : ops:
Месяц назад
 CobuLight
2 месяца назад
 Аристотель
2 месяца назад
 MrGajimurad1
Реально не хватает возможности редачить материалы, чтобы исправлять свои косяки, столько лет сайту, а до сих пор нет такой возможности
8 месяцев назад
 CobuLight
8 месяцев назад
 lolmanlol
Просто лучший русскоязычный сайт по маппингу который только существует! Если что-то ищешь, всегда находишь находишь то, что нужно!
9 месяцев назад
 IFlapper
10 месяцев назад
 dONkaban
10 месяцев назад
 Аристотель
Год назад
 CobuLight
Год назад
 Barney
Год назад
 jiggly
Год назад
 CobuLight
Скорее всего это и есть туннель, и наверно этот туннель многополигональный, от этого и траблы на карте, плюс утечку желательно закрыть
Год назад
 CobuLight
На этот случай в хаммере есть поисковик по брашам, ты можешь узнать где находится этот браш и удалить его
Год назад
 CobuLight
Год назад
 loeskee
Год назад
 loeskee
Год назад
 loeskee
CobuLight, У меня частая ошибка Trying to create a non-quad displacement! (entity 0, brush 3398) она в основном в брашах туннеля( у меня карта под метро 2033)
Год назад
 CobuLight
Год назад
 CobuLight
Попробуй сократить количество брашей в func_detail, а если у тебя сложные браши, то сделай для них отдельные func_detail
Год назад
 loeskee
Год назад
 CobuLight
Могу попробовать помочь, но только визуально, хотя давно не видел у себя этой проблемы.
Если так подумать, проблема может быть в переизбытке func_detail, либо ты слишком много брашей запилил в func_
Год назад
 SpacetimeJunglist92
Год назад
 SpacetimeJunglist92
2)На карте слишком много маленьких простых брашей 3)Следует поработать над хинтами, чтобы помочь компилятору разбить карту на vis-листья эффективнее
Год назад
 SpacetimeJunglist92
Сорри,ничего конкретного сказать на эту тему не могу, могу лишь только предположить что 1)карта, пусть и оптимизированная, просто слишком большая и имеет множество зон
Год назад
 loeskee
Год назад
 loeskee
Год назад
 loeskee
SpacetimeJunglist92, в основном нарушение лимитов по брашам, но когда делаю в func_detail,также пишет что привеш лимит.
Год назад
 SpacetimeJunglist92
Год назад
 loeskee
2 года назад
 CobuLight
2 года назад
 Nubuhu
2 года назад
 Nubuhu
2 года назад
 CobuLight
Скинь название карты, я гляну, может даже помогу узнать что за проблема. Тут надо уже смотреть, так проблему не понять на словах, да и лично я с такой не сталкивался.
2 года назад
 CobuLight
Скинь название карты, я гляну, может даже помогу узнать что за проблема. Тут надо уже смотреть, так проблему не понять на словах, да и лично я с такой не сталкивался.
2 года назад
 Nubuhu
2 года назад
 Nubuhu
Такая проблема после компиляции карты, при запуске ее на пк все отражения норм всё как надо, но при загрузке в мастерскую и запуске ее оттуда все отражения на предметах яркие и совсем не те что нужны
2 года назад
 CobuLight
2 года назад
 Nubuhu
2 года назад
 NobCamp
Кто может подсказать как из браша сделать проп. Префабы вроде как для этого, но я не понял где там в точечный энтити перевести. на карте перевес геометрии, не компилит, другого выхода нет.
2 года назад
 Dima_UA
2 года назад
 Name_BY
2 года назад
 ArtVisual
2 года назад
 cu6upyak
2 года назад
 cu6upyak
2 года назад
 Dima_UA
2 года назад
 EsM
привет ребята, не у кого не завалялся декомпилятор с фиксом, карта проблемная попалась, декомпилятор удаляет систему уровней, а восстанавливать это время.
2 года назад
 MARSHAL ZA
2 года назад
 MARSHAL ZA
2 года назад
 Deimost
2 года назад
 cu6upyak
hi guys! у меня проблема при компиляции карты в хамере The command failed. Windows reported the error:
"Не удается найти указанный файл" кто ни будь сталкивался?
Читайте также: