Учебник по Worldcraft Counter-Strike| CS 1.6 | СОЗДАНИЕ КАРТ
| |
admin | Дата: Суббота, 15.11.2008, 19:41 | Сообщение # 1 |
Admin
Группа: Администраторы
Сообщений: 57
Статус: Offline
| Учебник по Worldcraft
Вступление
Worldcraft - это 3D редактор уровней для Half-life и для его модов, в том числе и Counter-Strike. Но так как всё (кроме Контра) полный отстой, то я буду рассматривать создание карт именно для него. Общие понятияПрежде чем начать работу в Worldcraft, неоходимо ознакомиться с некоторыми понятиями, такими как Браш, Entity, Текстура, Декаль. Брашем называестя любой простой объект в Worldcraft (стены, пол, ящики...), если к нему не применены особые свойства. Entity - это все действующие объекты (оружие, точки старта игроков, подъёмники, источники света и т. п.). Все Entity делятся на solid-based и point-based. К первым относятся двери, лифты, вода , т. е. всё то, размеры чего определяются создателем карты. Создаются такие Entity из брашей. Ко вторым относятся оружие, источники света и звука и кое-что еще. Все они расположены в отдельной библиотеке. Текстура - это изображение, которое наносится на браш или solid-based entity и будет видно в игре. Находятся текстуры в файлах с расширением *.WAD Декали - это специальные текстуры, кторые наносятся поверх других текстур (место для бомбы, пятна крови). Расположены в файле decals.wad Компиляция - это процесс преобразования всего, что вы наворотили в редакторе в один нормальный файл с расширением *.BSP Производят компиляцию четыре небольшие программки: qcsg.exe, qbsp2.exe, qrad.exe и vis.exe, расположенные в папке Worldcraft. При csg компиляции создаётся общее расположение брашей. BSP компилятор подключает entity и текстуры. RAD компилятор обрабатывает свет в уровне. А vis компилятор используется на последних этапах компиляции, оптимизирует и ускоряет работу уровня, устроняет всевозможные глюки. Без vis компиляции уровень будет сильно тормозить, а большой уровень может даже не запуститься. VIS компилятор не будет работать, если в уровне есть дырки в окружающее пространство. Ищутся дырки при помощи команды pointfile в самой игре. После ввода команды в консоль, дырки будут отмечены пунктиром. Настройка редактораСначала редактор надо настроить: указать расположение игры, вспомогательных программ, служебных и конечных папок и т. п. Надеюсь, что Worldcraft вы уже у себя установили (желательно устанавливать его на тот-же диск, где и Half-life). Так что запускайте редактор и заходите в Tools/Options в главном меню программы (File, Edit, Map...). Там открывайте вкладку Game Configuration. Здесь нажимаем кнопку Edit и в открывшемся окне нажимаем Add и вводим название конфигурации (я назвал counter-strike). Нажимаем OK и Close. Дальше возле следующего окна нажимаем Add и находим в папке cstrike файл halflife-cs.fgd. Дальше следующие четыре списка настраиваются автоматически. А в последних четырёх надо указать папки как у меня, только где у вас установлена игра. Теперь переходим на вкладку Build Programs. Здесь вы должны указать: 1) EXE-шник игры 2) Компилятор csg 3) Компилятор bsp 4) Компилятор vis 5) Компилятор rad 6) Папку, куда будет сбрасываться готовая карта Теперь переходим на вкладку Textures и с помощью кнопки Add WAD выбираем необходимые текстуры. Я советую указать из папки cstrike текстуры de_aztec.wad, cs_dust.wad, cstrike.wad и decals.wad, а из папки valve текстуры halflife.wad В принципе, на этом можно и закончить. Но я должен сказать, что по неизвестным мне причинам у меня (в WindowsMe) Worldcraft не хочет компилировать карты, пока я не восстановлю реестр с помощью программы WinRetRu. Потом всё начинает прекрасно работать, хотя в WindowsXP этого глюка нет. Ну вот и всё. Можно приступать к созданию вашей первой карты для Counter-Strike!
|
|
| |
admin | Дата: Суббота, 15.11.2008, 19:41 | Сообщение # 2 |
Admin
Группа: Администраторы
Сообщений: 57
Статус: Offline
| Создание первого уровняИтак, приступим к созданию нашего первого уровня. Для простоты это будет killzone на двоих. Для начала нажимаем File/New (создаём новый проэкт) и переключаем вид на Дальше нажимаем на кнопку , этой кнопкой в Worldcraft создаются браши. Теперь в любом месте рабочей области щёлкаем мышью: появляется заготовка браша с размерами, равными нулю. Теперь надо задать его размеры. Для этого наведём мышь на один из квадратиков, окружающих заготовку, до появления двухсторонней стрелки. Зажимаем левую кнопку мыши и растягиваем объект до нужных размеров. Примерно так: Настраиваем размеры во всех трёх видах (сверху, сбоку, сзади). Прежде, чем закончить создание браша, с помощью кнопки Browse выберем подходящюю текстуру. Пусть она будет такая: Теперь нажимаем правой кнопкой на заготовке: Нажмите на Create Object. У вас должно получится что-то, наподобие этого: Top: , front: , side: Это будет пол. Можно просмотреть предварительный результат, для этого надо выбрать 3D Textured вид, нажать на кнопку и ,управляя как в Контре, посмотреть общий вид браша. Теперь приступим к стенам. Смените текстуру на и создайте браш, примерно так, как у меня Top: , front: , side: Вот первая стена и готова. Теперь нажимайте на и левой кнопкой нажимайте на вашу стену. Теперь нажмите на ней правой кнопкой и в появившемся меню выбирайте Copy. Теперь на свободном месте нажимаем левой кнопкой, а потом правой и выбираем Paste. Теперь во всех трёх видах перетаскиваем её так, как у меня. Top: , front: , side: Точно так-же создадим остальные две стены. Должно получится так: Top: , front: , side: Теперь меняем текстуру на и создайте браш для потолка: Top: , front: , side: Вот наша комната и готова! Теперь надо её осветить. Для этого нажимаем и справа выбираем light: Теперь на карте нажимаем мышкой и перемещаем пересечение прямых как здесь: Top: , front: , side: Теперь нажимаем Enter. Теперь, изменив light на info_player_start, ставите точку старта контр-террориста, а, изменив на info_player_deathmatch, точку старта террориста. Поставте одну точку CT и одну T: Top: , front: , side: Какая из точек будет для контров (левая или правая), а какая для теров, не имеет значения. Красная точка посредине - это лампочка (источник света). Вот, в принципе, карта и готова. Только ,если всё так и оставить, то у одного игрока будет преимущество (один будет рождаться лицом к врагу, а другой - к стене). Поэтому переходим в Top, выделяем левой и нажимаем правой кнопкой на правую точку старта. Выбираем Properties и в появившемся окне меняем Angle на 180: Теперь сохраняйте карту и жмите F9. Если появится то лучше перейдите на Expert здесь нажмите последнюю строчку во втором поле и в четвёртом поле после $game_exe добавте -game cstrike, нажмите Go! и подождите, пока откомпилируется карта и загрузится игра. Всё, можете рубится в своей первой карте!!! Конечно, она очень простая и (если использовать мои размеры) очень маленькая. Вашим "домашним заданием" будет увеличить размер комнаты и добавить игроков.
|
|
| |
admin | Дата: Суббота, 15.11.2008, 19:46 | Сообщение # 3 |
Admin
Группа: Администраторы
Сообщений: 57
Статус: Offline
|
Спрайты, зоны, камеры и т.п.На этом уроке я продолжу рассказывать о различных Entities. ОгоньДопустим мы хотим сделать небольшой костёр. Для начала положим на землю несколько брашей с "деревянной текстурой". Чтоб они были круглые, надо справа выбрать cylinder.Это будут "дрова". Теперь заходим в Point-based Entities и выбираем env_sprite. Ставим его на "дрова". Заходим в его Properties и ставим Render Mode - Additive, FX Amount - 225, Sprite Name - sprites\fire.spr. Размер спрайта настраивается в Scale, оставим 1. Для большей реалистичности в середину огня можно вставить лампочку. Но огонь должен обжигать, т.е. снимать проценты здоровья. По-этому создаём небольшой браш, делаем Tie to Entity выбираем trigger_hurt и ставим Damage Type - SLOWBURN, этот объект будет невидимый: Зона покупкиПо умолчанию покупать оружие можно вблизи точек старта игроков. Но если мы хотим сделать границы зоны болеечёткими или просто расширить зону, то надо использовать func_buyzone, созданый из браша (Tie to Entity). Зона будет невидимая, как воздух. Внутри её можно покупать оружие. В свойстве Team надо указать команду, для которой создана зона. По умолчанию зона действует на обе команды. БомбаМесто для бомбы делается двумя способами: В Entities выбирается info_bomb_target и ставится где надо. Поставим место для бомбы на контровской базе. У этого способа есть один недостаток. Никто точно не знает, где заканчивается зона для бомбы. Поэтому существует второй способ: делается браш (как для buyzone), только выбирается func_bomb_target, здесь границы чётко обозначены границами браша. Сделаем всю базу зоной для бомбы. Стёкла и решёткиСтёкла и решётки создаются из брашей (solid-based entity). Сперва создаётся браш с размерами будущего стекла или решётки. Для стёкол используются текстуры, начинающиеся с glass, а для решёток с {. Создадим стеклянное окно с контровской базы на воду. Сначала надо прорезать дырку в стене. Создадим браш там, где должна быть дырка (для красоты стену можно сделать тоньше). Теперь нажимаем на нём правой кнопкой и выбираем Carve. Теперь уменьшаем его толщину до толщины стекла и делаем Tie to Entity. Стекло будет разбивающимся, по-этому выбираем func_breakable. Для стёко Render Mode - Texture, FX Amount - где-то 100 (мутность стекла), Material Type выбираем Glass (это-же стекло), а Strength - это прочность стекла. Чем больше это число, тем больше выстрелов оно не разобъёться. Поставьте 20. Скопируйте это стекло к другому краю стены, чтоб получился "двойной стеклопакет" :) Теперь создадим неразбивающуюся решётку. Создадим браш для решётки возле воды и поправим текстуры. Теперь сделаем Tie to Entity, выбираем func_wall, чтоб она не разбивалась. Теперь Render Mode - Solid, FX Amount - 225. КамерыПо умолчанию при входе в игру показывается контровская база. Но можно сделать несколько просматриваемых мест. Для этого заходим в Entities и выбираем trigger_camera. Ставим её в точке, откуда игрок будет смотреть. В свойствах ставим Name - cam1 (имя камеры), Target - tar1 (имя цели), Hold time - 10 (время работы этой камеры в секундах). Теперь поставьте info_target из Entities в точке, куда будет смотреть камера. В свойствах Name - tar1. Теперь создадите вторую камеру (Name - cam2, Target - tar2, Hold time - 10) и вторую цель (Name - tar2). Поставьте первую камеру на теровскую базу, а вторую на контровскую. Камеры можно использовать и во время игры. Создадим очень маленький браш: Превратим его в func_button, в свойствах Targetted object ставим cam2 и ставим эту кнопку на теровскую базу. Теперь при нажатии вблизи неё +use на монитор выведется вид с cam2 т.е. с контровской базы. Вместо func_button можно было использовать button_target, только она реагирует на выстрелы.
|
|
| |
admin | Дата: Суббота, 15.11.2008, 19:48 | Сообщение # 4 |
Admin
Группа: Администраторы
Сообщений: 57
Статус: Offline
|
Дополнительный урокЗдесь я расскажу обо всём, что забыл сказать на прошлых уроках. ДвериИтак, двери бывают двух типов: 1) Раздвижные (как в метро) 2) Обычные (поворотные на петлях) Раздвижные двери - это funс_door, созданый из браша. В свойстве Pitch Yaw Roll ставится направление открывания. Можно сделать, чтоб дверь открывалась кнопкой: для этого в Name двери пишем её название (например door1) и в Target кнопки пишем его-же. Если надо, чтоб дверь открывалась только при нажетии +use, надо на вкладке Flags свойств двери отметить Use Only. Так называемые обычные двери делаются чуть сложней. Сначала создаётся браш для самой двери. Потом создаётся невидимый браш с текстурой ORIGIN из halflife.wad (она обеспечивает невидимость), этот браш будет осью вращения. Размещается он половиной на двери, а половиной на стене. Потом оба эти браша (вместе) превращаем в funс_door_rotating. СнегопадСнегопад создаётся с помощью объекта env_sprite, точнее множества спрайтов (конечно, если у вас такая карта, что на ней еле умещается один человек, то вам хватит и одного). Этими спрайтами надо заполнить весь объём карты, в котором должен идти снег. Параметры env_sprite: Render Mode - Additive FX Amount - 225, Framerate - 15 Sprite Name - sprites/snow.spr Scale - 4 При установке снега помните, что подобные "навороты" уменьшают fps в игре, т.е. по-простому, тормозят карту. ДождьСоздание дождя - это весьма трудоёмкий процесс. Хоть это и не сложно для понимания, но сделать несколько десятков (а для больших уровней и сотен) объектов, причём так, что у каждого будет своё уникальное имя (тупо копировать не выйдет - пробовал), терпения хватит далеко не у каждого. Если вы ещё не передумали далать дождь, то начнём. Нам понадобится для каждой "капли" создать по три объекта: env_beam и два info_target. Расположить их нодо так, чтоб один таргет был вверху карты (отсюда капля будет начинаться), а второй внизу (сюда капля будет падать). Между ними надо поставить env_beam. Верхний таргет назовём s1, а нижний e1. Теперь приступим к настройке env_beam: Start Entity - s1 Ending Entity - e1 Brightness - 100 Beam Color - 225 225 225 Radius - 512 Width of beam - 24 Sprite Name - sprites/rain.spr Texture Scroll Rate - -20 (минус 20) Strike again time - 1 Теперь перейдём на вкладку Flags и отметим флажки Start On и Shade Start. Это будет первая капля. Теперь можете скопировать эти три объекта и переименовать таргеты (например s2 и e2). И так далее, пока не заполните всю карту. Желаю успеха! Свой собственный Need for Speed :)Создание машины состоит из трёх этапов: создание самой машины, её "одушевление" и устранение неизбежных глюков. Итак, создадим из брашей что-то, напоминающее по форме тачку (по большому счёту, в качестве машины можно использовать даже один браш, но хочется покрасивее). Я думаю, с этим вы справитесь и без меня, в крайнем случае скатаете из примера, поэтому перехожу сразу ко второму этапу. Во-первых по-середине маши
|
|
| |
Mega | Дата: Понедельник, 13.04.2009, 21:57 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| у меня такой вопрос: а можно как нибудь уже готовую карту уменьшить? Добавлено (13.04.2009, 21:57) --------------------------------------------- а то я по неопытность сделал карту(делал долго, заново не охота) а получилось так што игрок подстол пешком проходит в прямом смысле слова. Когда всю выделяю и уменьшаю размер она не работает. как быть?
|
|
| |
|
|