Вторник, 15.10.2024, 04:18
 
Приветствую Вас Guest | RSS
Главная страница | Как создать простейшую карту для Half-Life 2 - Форум | Регистрация | Вход
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Как создать простейшую карту для Half-Life 2
lexzerДата: Суббота, 02.06.2007, 15:41 | Сообщение # 1
Engineer
Группа: Проверенные
Сообщений: 73
Репутация: 2
Статус: Offline
Привет всем! Я огромный поклонник игр ХЛ. И уже давно горю идеей создать собственную карту для ХЛ2 (или сингл или для дезмача). Может вы поможете - я хотел бы узнать какие именно проги нужны (у меня есть CSM SourceSDK SP2, в который входят Хаммер, Модел Вьвер и Фейс Позер) и... Не могли бы здесь обьяснить (типа статейки написать) как создать простейшую карту?
Я лазил по многим форумам и сайтам в поисках инфы - создание карт для новичков - но все в основном только для тех кто уже много чего может. А для таких как я ничего не нашел :(((
Я был бы очень рад (да и нетолько я, думаю и др. такие же фаны) если бы кто нибудь здесь подробно описал процесс создания карты для ХЛ2.
 
DetLeRДата: Суббота, 02.06.2007, 19:38 | Сообщение # 2
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
Вот тут очень подробно написано
http://xgm.ru/articles.php?name=HL2vhe_manual_part_1
Если будет что-то непонятно, то спрашивай. CSM SourceSDK SP2 вполне подойдет. Основная прога это хаммер, Модел Вьвер - это программа для просмотра моделей. Фейс Позер - это программа нужна для того, что б например создать новую лицевую анимацию для нпс smile
 
lexzerДата: Воскресенье, 03.06.2007, 12:11 | Сообщение # 3
Engineer
Группа: Проверенные
Сообщений: 73
Репутация: 2
Статус: Offline
Quote (detler)
Вот тут очень подробно написано http://xgm.ru/articles.php?name=HL2vhe_manual_part_1 Если будет что-то непонятно, то спрашивай. CSM SourceSDK SP2 вполне подойдет. Основная прога это хаммер, Модел Вьвер - это программа для просмотра моделей. Фейс Позер - это программа нужна для того, что б например создать новую лицевую анимацию для нпс smile

Спасибо! Много интересного! Надеюсь смогу разобраться. Потому что у иеня как минимум 3 интересных идеи карт для ХЛ 2 дезмач и 1 для сингла.
Если ктото еще чтонибудь подскажет, буду благодарен!

detler, а сам как оцениваешь те статьи? Там действительно все что нужно чтобы сделать простейшую карту? И самому неохота\некогда написать статейку smile ?

 
DetLeRДата: Воскресенье, 03.06.2007, 16:04 | Сообщение # 4
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
Ну я по этой статье научиляся делать карты для хл2, и теперь у меня это успешно получается, сначало делал простые комнаты, потом учился всяким фишкам, а щас я вообще все знаю в хаммере, но идей маловато sad
 
lexzerДата: Пятница, 15.06.2007, 08:37 | Сообщение # 5
Engineer
Группа: Проверенные
Сообщений: 73
Репутация: 2
Статус: Offline
Вот настроил сдк, включаю хаммер, делаю здание например, облетаю его вокруг Камерой... Дальше сказано включить утилиту Hollow... но че то я нигде ее не могу найти.

А!!! всё!!! Нашел и разобрался!!
Если будут еще вопросы - спрошу... smile

Добавлено (15.06.2007, 08:37)
---------------------------------------------
Помогите пожалуста! У меня два вопроса -
1. как компилировать\ сохранять карту в формате bsp., т.е чтоб можно было вставить карту в папку самой игры и запустить ее через консоль?
2. никак не пойму как ставить на уровне мебель и прочее - столы, бутылки, бочки и т.д.

АААА!!! Еще чуть не забыл! Как положить трупы зомби и людей?
Народ, пожалуста подскажите - у меня вроде ничего идея - сделаю - обязательно тут выложу!!!

Было отредактированно - lexzer - Среда, 13.06.2007, 09:35
 
Master_4ifДата: Пятница, 15.06.2007, 09:14 | Сообщение # 6
Modern Warfare
Группа: Проверенные
Сообщений: 933
Репутация: 20
Статус: Offline
1) Нажми F9 предварительно сохранив карту в папке maps
2) Мебель вставляется легко - если это не подвижный объект, то нужно ставить prop_static, выдилив интитю нужно нажать Alt+Enter и выбрать четвёртую по порядку функцию World Model и нажав Browse, спокойно искать нужный тебе предмет.
Если тебе нужен физический объект, то нужно поставить интитю prop_pfisics и таким же методом найти нужный тебе объект
3) Если тебе нужен труп, а именно регдал, бери props_ragdoll, и опять же таким же методом ищи что тебе нужно smile

+5 мне за это biggrin




 
CastiGoДата: Пятница, 15.06.2007, 09:35 | Сообщение # 7
Combat medic
Группа: Пользователи
Сообщений: 31
Репутация: 4
Статус: Offline
Quote (DetLeR)
1. как компилировать\ сохранять карту в формате bsp., т.е чтоб можно было вставить карту в папку самой игры и запустить ее через консоль?

В hammer`e есть кнопка (run map - F9)-расположена на панели инструментов, после того как нажмешь на нее появится окошко, там ничего пока не трогай и нажимай OK. После запустится твоя карта, если конечно стоит Counter-strike:Source или Half-ife 2. С этим надеюсь все!!!
Quote (DetLeR)
2. никак не пойму как ставить на уровне мебель и прочее - столы, бутылки, бочки и т.д.

это зависит от того какой объект ты хочешь вставить: статичный, то есть который будет наглухо прилеплен к полу или физический, то есть который можно будет двигать.
Если первый вариант, тогда нажимаешь на Entity Tool, иконка в виде лампочки - расположена на левой боковой панели, затем на правой боковой панели в окне move в строчке, где написано info_player_start (команда стоит по умолчанию), выбираешь prop_static и нажимаешь мышкой на карту, у тебя должен появится красный куб, теперь нажимаешь на красную стрелку на левой боковой панели и дважды щелкаешь на куб, открываются его свойства. Выбираешь строчку world model и нажимаешь на browse, появляется окно с моделями из half-life 2 или контры (если этого не просходит, тогда убедись в том, что ты, если пользуешься пиратской версией hammer`a, в папку, куда установил саму программу, перекинул папки models, materials, sounds из самих игр). Если ты это сделал, тогда при открытии окна ты увидешь модели.

Quote (DetLeR)
АААА!!! Еще чуть не забыл! Как положить трупы зомби и людей?
Народ, пожалуста подскажите - у меня вроде ничего идея - сделаю - обязательно тут выложу!!!

с трупами по сложнее, если честно не знаю, потому что сам буквально 3 недели изучаю hammer, но есть другой вариант, можно на карту разместить зомби, которые встают, когда к ним подходит игрок. Это делается очень просто, хотя на самом деле там ...., ну да ладно. Значит опятm нажимаешь на entity tool и выбираешь в строчке, где написано entities строчку prelabs HL2 (графа categories), затем в графе objects выбираешь npc_zombie_slump и нажимаешь мышкой на карте, появляется зомби и еще несколько обьектов, их не удаляй, а то ничего не получится, run game и все.

PS. вот так сказать венеч моего творения, это просто переделанная карта мода для half-life 1, Azure Sheep, тут все еще очень, очень, очень мокро, но буду делать.


...Я не всегда знаю, о чем говорю, но знаю, что прав...


Было отредактированно - CastiGo - Пятница, 15.06.2007, 09:41
 
Master_4ifДата: Пятница, 15.06.2007, 10:23 | Сообщение # 8
Modern Warfare
Группа: Проверенные
Сообщений: 933
Репутация: 20
Статус: Offline
кхе кхе, если ты почитаешь то что я написал ты поймёшь что у тебя точно так же!!! В следущий раз воздержись от того что бы написать то же самое, а то балы будут начислятцо angry



 
ХемульДата: Пятница, 15.06.2007, 10:55 | Сообщение # 9
Pyro
Группа: Проверенные
Сообщений: 118
Репутация: 7
Статус: Offline
Как положить трупы зомби и людей?
prop_ragdol, вроде так wink



-Вышел из леса гоблин...
-Кто блин?
-Не перебивай, так вот за спиной у него сабля...
-Шо бл*?
 
Master_4ifДата: Пятница, 15.06.2007, 12:23 | Сообщение # 10
Modern Warfare
Группа: Проверенные
Сообщений: 933
Репутация: 20
Статус: Offline
да, только props_ragdoll с двумя л smile



 
CastiGoДата: Пятница, 15.06.2007, 15:10 | Сообщение # 11
Combat medic
Группа: Пользователи
Сообщений: 31
Репутация: 4
Статус: Offline
Master_4if
извиняюсь я просто не мог видеть твое сообщение,когда печатал свое, поэтому и получилось так некрасив smile о.


...Я не всегда знаю, о чем говорю, но знаю, что прав...
 
lexzerДата: Суббота, 16.06.2007, 08:19 | Сообщение # 12
Engineer
Группа: Проверенные
Сообщений: 73
Репутация: 2
Статус: Offline
Всем спасибо!
Я с сохранением лопухнулся - я уже нажимал File\Run map (F9) и по своей карте бегал, но то что она сохраняется и бсп-формате не заметил )))
А у меня еще вопрос - можно как-то улучшить искусственный интеллект ботов? А то комбайны в меня вроде и стреляют, но чето за мной не бегают. Да и др. твари туповатые....
 
ХемульДата: Суббота, 16.06.2007, 10:16 | Сообщение # 13
Pyro
Группа: Проверенные
Сообщений: 118
Репутация: 7
Статус: Offline
Вот читай: biggrin
Управление Наземными NPC.На этом уроке Вы получите начальные знания в управлении Наземными NPC:Думаю вы уже без труда можете сделать себе помещение или комнату, так что не буду описывать как это делается.
Я к Уроку приложил карту со всеми NPC,триггерами и тп. это я специально для тех кому лень всё делать самому. (остаётся только поглазеть настройки и узнать для чего они нужны =) ).
И так...
На этом уроке я вас познакомлю с системой тригеров для NPC и после его прохождения в сможете:
- Комната 1: Назначать NPC их путь передвижения с помощью scripted_sequence
- Комната 2: Назначать NPC их путь передвижения с помощью path_corner
- Комната 3: Анимировать NPC
- Комната 4: Respawn NPC и после этого сразу указывать куда идти
- Комната 5: Respawn случайного монстра или генератов случайных чисел.
- Комната 6: Заставлять NPC Стрелять куда угодно/атаковать кого угодно/указывать кто ему враг а кто нет/
Как вы уже наверно заметили карта разделена на маленькие комнаты. Я сделал это специально, чтобы отделить наши подтемы урока.
В каждой комнате я поставил рычаг (где то кнопки поставил, где то бьющийся предмет ) для запуска триггера .
PS: не обращайте внимание на фиолетовые кубики у меня на скринах. Это light_spot.

Первая комната:
Здесь Самый простой скрипт, для "отправки" NPC в одну точку с помощью scripted_sequence.
Для этого нам понадобится следующее:
1) npc_alyx // естесственно сам NPC
Настройки:
Name: Alyx_room1 // задаём имя, чтобы можно было обратиться к этой энтити от других.
2) scripted_sequence // Имеено до этой энтити будет идти Алекс
Настройки:
Name: Alyx_target_room1
Target NPC: Alyx_room1 // здесь указываем с каким NPC будет работать наш scripted_sequence
Custom Move Animation: s_walk_N // Это поле позволяет нам самим выбрать какую анимацию будет выполнять NPC при передвижении. Я выбрал простую ходьбу.
Move To Posotion: Walk // Как будет добираться NPC до цели. Я выбрал пешком.
4) func_button
В исходящих триггерах (закладка "Outputs") добавляем следующее:
My output Named: On Pressed
Tagets Entities Named: alyx_target_room1
Via This Input: Start Sequence
Давайте теперь поставим Alyx в один конец комнаты, а Alex_target в другой.
Теперь можете компилировать и смотреть что получилось.
При нажатии на кнопку, Алекс должна дойти до конца комнаты.

Вторая комната:
В этом примере рассмотрим передвижение NPC по заданному маршруту.
Этот пример похож на предыдущий, но только тут мы теперь будем вместо scripted_sequence использовать path_corner.
Path_Corner тоже является пунктом передвижения NPC и его обычно используют для несложных передвижений в отличии scripted_sequence. Как использовать path_corner вы увидите на этом примере.
Нам понадобятся следующие обьекты:
1) 4 штуки path_corner // Пути.
Настройки:
Name: alyx_path1_room2; alyx_path2_room2;alyx_path3_room2;alyx_path4_room2 // каждому пути даём имя
Next Stop Target: alyx_path2,3,4,1_room2 // здесь указываем имя следующего пути куда будет идти npc . Тоесть если у нас имя alyx_path2_room2, то Next Stop Target будет alyx_path3_room2. Чтобы NPC зациклился в путях, надо в последнем пути, в Next Stop Target указать первый путь. В нашем случае Алекс будет бегать по кругу.

Настройки не нужны
2) aiscripted_shedule // управляет NPC
Настройки:
Name: Alyx_shedule_room2
Target NPC: Alyx_room2 // указываем какой NPC будем управлять
Shedule To Run: Run Goal Path // Что будет делать NPC при запуске. (в нашем случае бежать к цели)
Goal entity: alyx_path1_room2 // Изходя из верхней настройки, указываем куда будет бежать NPC
3) func_button
В исходящих триггерах (закладка "Outputs") добавляем следующее:
My output Named: On Pressed
Tagets Entities Named: alyx_shedule_room2
Via This Input: StartShedule
4) npc_alyx // наша Алекс
Настройки:
Name: Alyx_room2
Вам теперь оссталось расставить всё это дело по местам.
Теперь компилируйте и проверяйте. По идеи Алекс должна кругами бегать smile

Третья комната:
В этой комнате вы увидите пример того, как анимируется NPC.
И так, вот набор необходимых энтитей:
1) npc_alyx
Настройки:
Name: alyx_room3
2) scripted_sequence
Настройки:
Name: alyx_start-run_room3
Target NPC: alyx_room3
Action Animation: Open_door_away // Здесь задаётся наименование анимации, которая будет проиграна когда NPC дойдёт до этой энтити.
Custom Move Animation: run2
Move To Position: Run

Закладка OUTPUTS:
My output Named: OnBeginSequence // когда алекс добежит до энтити, случися сследующее...
Tagets Entities Named: door_room3 // ...дверь...
Via This Input: Open // ...откроется...
After a delay in seconds of: 2.30 // ...через 2.30 секунды (почему 2.30 ? 2.30 - это продолжительность анимации Алекс, когда она открывает дверь. Если бы небыло 2.30, то получилось бы, что когда Алекс прибежит к двери, то дверь сама откроется и потом только сработает анимация.)
3) func_door // Дверь уже стоит в комнате, её не надо делать.
Настройки:
Name: door_room3
Delay before Close: -1
В Закладке FLAGS, поставьте галочку на reverse dir ( чтобы дверь открывалась в противоположную сторону).
4) func_button
Закладка OUTPUTS:
My output Named: On Pressed
Tagets Entities Named: alyx_start-run_room3
Via This Input: BeginSequence
Если у вас всё получилось правильно, то при нажатии на кнопку Алекс должна подбежать к двери и открыть её.

Четвёртая комната
Этот урок поможет вам создавать ( респаунить ) NPC и после этого сразу же делать какие то действия.
Эх.. надоела мне эта Алекс wink и кнопка тоже.... давайте ка поставим......нуу..... Зомби! и разбивающуюся металлическую плитку в качестве рычага например...
Вот список юзаемых энтитей
1) npc_maker // эта энтити отвечает за создание NPC. В нашем случае создаст Зомбика.
Настройки:
Name: zombie_maker_room4
Class name of spawned NPC: npc_zombie
Children's name: zombie_room4
2) aiscripted_schedule // как уже выше упомяналось, эта энтити работает с NPC.
Настройки: // описания настроек aiscripted_schedule я описывал для второй комнаты
Name: zombie_shedule_room4
Target NPC: zombie_room4
Shedule To Run: Run Goal Path
Goal Entity: zombie_path1_room4
3) два path_corner'a
Настройки:
- Для первого:
Name: zombie_path1_room4
Next Stop Target: zombie_path2_room4
- Для второго:
Name: zombie_path2_room4
Next Stop Target: zombie_path1_room4
4) func_breakable // наш рычаг всего триггера в виде стальной пластинки.
Настройки:
Strenght: 1
Material Type: Metal
-- OUTPUTS: // здесь у нас будет несколько триггеров
1) -My output Named: OnBreak // Когда разобьётся....
-Tagets Entities Named: zombie_maker_room4 //...энтити отвечающая за создание зомби...
-Via This Input: Spawn //...создаст зомби
2) - My output Named: OnBreak // Когда разобьётся....
-Tagets Entities Named: zombie_room4 //..зомби...
-Via This Input: SetRelationship //..будет дружелюбным по отношению к...
-With a parameter override of: !player D_LI 9999 //... игроку
-After a delay in seconds of: 0.20 //.. через 0.20 сек
3) -My output Named: OnBreak // Когда разобьётся....
-Tagets Entities Named: zombie_shedule_room4 //..."контролёр над NPC"...
-Via This Input: StartSchedule // ...запустит заданный ему скрипт.... ( В нашем случает укажет куда зомби идти )...
-After a delay in seconds of: 0.40 //...через 0.40 сек.
А теперь расставим всё на места.
Что же у нас должно получится ?
При разбивании пластинки наш зомбик после респауна должен бегать между двумя путями и не должен нас укусить =))
PS: стёбные звуки он издаёт когда ходит :))

Пятая комната
Самая главная Энтити в этой комнате это logic_case. Мы посмотрим одну из её возможностей, это выбор случайного значения.
С этой энтитей я вам покажу как можно респаунить случайного монстра.
Нам понадобятся:
1) 5 штук npc_maker
Настройки:
Class name of Spawned NPC: // здесь выбираете 5 разных npc
Каждому NPC присвойте своё имя ( children's name ), чтобы к нему можно было обратиться. Например к npc_alex я присвоил имя alex_maker_room5, для npc_zombie - zombie_maker_room5 и т.д.

2) logic_case
Настройки:
name: npc_case
Case 01: 1
Case 02: 2
Case 03: 3
Case 04: 4
Case 05: 5 // это мы как бы задали 5 чисел, из которых только одно будет выбрано наугад
Закладка Outputs: // здесь нам надо добавить 5 триггеров
1) -My output Named: OnCase01
-Tagets Entities Named: alyx_maker_room5
-Via This Input: Spawn
2) -My output Named: OnCase02
-Tagets Entities Named: zombie_maker_room5
-Via This Input: Spawn
Итак далее пока не выставите триггеры для всех NPC.

А теперь объясняю как это работает:
После того как мы указали, что будут задействованы 5 триггеров, logic_case генерирует их и выбирает только один, который потом запустится.
Соответственно у нас он ( logic_case ) сам выберет какой из npc_maker'ов создаст своего юнита.
Ну и конечно не забудьте запустить наш logic_case, через разбивающуюся плитку.
Тоесть в свойствах у func_breakable в закладке Outputs указываем следующее:
OnBreak -> npc_case -> PickRandom

Шестая комната
Здесь я покажу вам как заставить NPC стрелять куда вы укажите.
Помните мувик с Е3, где вы забегаете в дом, запирая за собой дверь столом. ? Незаметили когда начинает стрелять Combine в окно ? Я вам скажу: он начинает стрелять когда вы еще не успели сесть за Стиральную машинку(или чтото типо наподобее её =) ).
Ну так вот дорогие мои, это чистой воды скрипт(а Вальв говорила что не будет их...делайте выводы...) и я вам покажу как его реализовать...
Вообщем нам понадобится один или несколько npc_combine_s (можно любого монстра, я выбрал Солдатов). //из настроек нам только надо Обозвать его в поле Name:( у меня Combine_room6 )
Далее понадобится цель, тобишь куда будет стрелять сам NPC. Для этого нам поможет Энтити npc_bullseye со следующими настройками:
Name: // у меня target1_room6
- В закладке Flags ставим галочки на Not Solid и Take No Damage
Теперь нам понадобятся Активаторы, тоесть кнопки или триггеры, которые "Скажут" NPC, что его враг №1 -это наша npc_bullseye.
Я поставил кнопку со следующими настройками:
Закладка Outputs:
1) -My output Named: OnIn //при включении кнопки...
-Tagets Entities Named: combine_room6
-Via This Input: SetRelationShip
- With a parameter ovverride of: target_room6 D_HT 9999 // здесь мы указываем, что target_room6 Враг
2) -My output Named: OnOut //при выключении ктопки
-Tagets Entities Named: combine_room6
-Via This Input: SetRelationShip
- With a parameter ovverride of: target_room6 D_LI 9999 // здесь мы указываем, что target_room6 Свой/союзник
Вот и всё. При нажатии на кнопку, ваш npc будет стрелять в цель, если ктопку отжать То он перестаёт в неё стрелять.
Если ваш NPC по умолчанию вам враг то советую поставить Энтити logic_auto и в Outputs указать следующее:
-My output Named: OnMapSpawn
-Tagets Entities Named: combine_room6
-Via This Input: SetRelationShip
- With a parameter ovverride of: !player D_LI 9999
Так же можно NPC заставить атаковать движущуюся цель. Для этого у энтити npc_bullseye в Поле parent надо укозать имя объекта который передвигается, следовательно npc_bullseye будеть ездить/летать/плавать вместе с его Родителем (parent)



-Вышел из леса гоблин...
-Кто блин?
-Не перебивай, так вот за спиной у него сабля...
-Шо бл*?


Было отредактированно - Хемуль - Суббота, 16.06.2007, 10:22
 
lexzerДата: Суббота, 16.06.2007, 12:24 | Сообщение # 14
Engineer
Группа: Проверенные
Сообщений: 73
Репутация: 2
Статус: Offline
А можно исходники тоже выложить или хотя бы ссылки на те которые тут упоминаются
 
ХемульДата: Воскресенье, 17.06.2007, 11:54 | Сообщение # 15
Pyro
Группа: Проверенные
Сообщений: 118
Репутация: 7
Статус: Offline
Здесь


-Вышел из леса гоблин...
-Кто блин?
-Не перебивай, так вот за спиной у него сабля...
-Шо бл*?


Было отредактированно - Хемуль - Воскресенье, 17.06.2007, 11:54
 
MadKingДата: Воскресенье, 19.04.2009, 10:55 | Сообщение # 16
Soldier
Группа: Проверенные
Сообщений: 442
Репутация: 14
Статус: Offline
Quote (DetLeR)
Ну я по этой статье научиляся делать карты для хл2, и теперь у меня это успешно получается, сначало делал простые комнаты, потом учился всяким фишкам, а щас я вообще все знаю в хаммере, но идей маловато

За идeями ко мне, Det happy
Я мастер придумывать сюжет модов и карт... happy




Качаем MaxLife3! Описание здесь
 
  • Страница 1 из 1
  • 1
Поиск:

Помощь в разработке форума: HOMiE7