Приветствую Вас, Гость | RSS
Вторник, 25.02.2020, 03:48

Учебник по 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!




Создание первого уровня

Итак, приступим к созданию нашего первого уровня. Для простоты это будет 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! и подождите, пока откомпилируется карта и загрузится игра. Всё, можете рубится в своей первой карте!!!

Конечно, она очень простая и (если использовать мои размеры) очень маленькая. Вашим "домашним заданием" будет увеличить размер комнаты и добавить игроков.





Усложняем наш уровень

Этот урок я начну с объяснения "домашнего задания"

Для начала надо было растянуть пол и потолок. Для этого надо было перейти в 3D Textered вид и выделить их с помощью , удерживая клавишу Ctrl.

Потом надо было перейти в Top и растянуть их примерно так:

Теперь надо растянуть стены. Выделяем две противоположные стены (зажимая Ctrl) и растягиваем так:

А теперь снимаем выделение кликом на свободном месте и перетаскиваем одну стену к краю пола и потолка:

Остальные две стены изменяем точно также.
Вот комнату мы и увеличили. Теперь надо добавить игроков. Для этого просто создаём новые точки старта (см. Урок №1).
Но это ещё не всё. Уровень может получиться слишком тёмным, поэтому добавьте ещё 2 - 3 лампочки.
Вы, конечно, можете ещё увеличить высоту потолка, но я это объяснять не буду потому, что высота увеличивается также само как и ширина.

Теперь перейду к конкретно второму уроку. На этом уроке мы добавим на карту вторую комнату и соеденим их коридором, а потом я расскажу, как сделать красивое небо.

Для начала создадим вторую комнату недалеко от первой. Примерно так:

Top

или 3D Textured

Теперь создадим коридор:

А сейчас надо соединить проходами коридор и комнаты. Для этого выделяем стену одной из комнат, которая перекрывает проход, и уменьшаем её размер так, чтоб она перестала мешать:

Точно также делаем проход в другую комнату.
Теперь убираем из первой комнаты все info_player_start (точки старта контров) и создаём их во второй комнате (можно просто перетащить).

Дальше изменяем Angle для контров - 270, а для теров - 180. (см. Урок №1)
Теперь добавляем лампочек:

Вот, собственно и всё. Компилируем карту, и в ней можно будет играть.

А сейчас я расскажу, как создать красивое небо.

Для начала находим текстуру Sky (где-то в halflife.wad), она очень маленькая 16x16:

Теперь надо создать браш, поглощающий в себя всю карту:

Top

и Side

Теперь нажимаем на нем правой кнопкой мыши и выбираем Hollow. В появившемся окне нажимаем OK

Теперь везде удаляем потолки с помощью клавиши Delete.
После всего этого надо указать название неба. Открываем Map - Map properties, в появившемся окне выбираем environment map (cl_skyname) (надо включить кнопку Smart Edit) и вписуем в поле справа название неба. Пусть это будет doom1, как в de_aztec. Список всех небес можно посмотреть в папке cstrike\gfx\env, отбрасывая от названий файлов последние две буквы (название + bk, ft, lt, rt, up, dn).

Желательно все лампочки поднять почти под самое небо, чтоб освещение было ровномерней:

Side

Вот, вобщем-то и всё.





Ящики, кустики и т.п.

На этом уроке я расскажу, как расставлять ящики, кустики, создавать воду, раскидывать оружие...

Ящики

Для начала уменьшим шаг сетки с помощью кнопки на панеле инструментов. Создадим квадратный браш (кубик) с текстурой , примерно здесь:

Теперь переходим в 3D Textured и, с помощью кнопки , выставляем все текстуры, чтоб они соответствовали границам ящика. Сперва уменьшаем размер текстур в 2 раза (Scale выставляем по 0.50):

Если бы наш ящик был больше, мы б не уменьшали текстуру, но это самый стандартный размер. Теперь закрываем окно и смотрим на ящик. Если получается, что на каких-то сторонах ящика текстура лежит не правильно, то, не выделяя ящик, заходим в свойства текстур, и нажимаем на неправильную текстуру:

Теперь передвиним текстуру, как нам удобно:

Точно также исправляем все неправильные текстуры. Теперь включаем Texture Lock и копирум этот ящик куда хотим. Если мы хотим поставить ящик боком, то надо 2 раза нажать на наго левой кнопкой мыши, навести указатель на кружочек в углу и повернуть ящик вокруг своей оси:

Кустики

Для создания кустика надо создать две взаимноперпендикулярные плоские пластины. Для этого меняем текстуру на , уменьшаем шаг сетки до предела и создаём максимально плоский браш:

Теперь создаём второй такой-же браш, накрест с первым. Выставляем на них текстуры. Выделяем оба браша и нажимаем на них правой кнопкой. Выбираем Tie to Entity. В появившемся окне в выпадающем списке выбираем func_illusionary (чтоб синее стало прозрачным, теперь в Render Mode ставим Solid, а в FX Amount ставим 225.

Результат должен выглядеть примерно так:

Теперь его можно копировать куда хочеш и сколько хочеш (только нодо включить Texture Lock).

Вода

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

Сменим неправильные текстуры в комнате на текстуры стен с помощью кнопки Browse...

Теперь выберем любую текстуру воды, начинающуюся на "!" и создадим браш, заполняющий весь "низ" этой комнаты.

Теперь нажимаем правой кнопкой на этом браше и выбираем Tie to Entity. Там выбираем func_water, Render Mode ставим Texture, а FX Amount где-то 100 (это мутность воды).

Оружие

Оружие раскладывается так-же, как и точки старта игроков и лампочки, т. к. это всё Point-based entity, только вместо light выбирается armoury_entity. Потом нажимаем на нём правой кнопкой и выбираем тип оружия (Item) и количество пушек в одной точке (Count)

Оружие можно просто копировать.

Лестница

Из воды надо как-то вылазить, создадим лестницу. Выберем текстуру , уменьшим сетку и создадим плоский браш размером с лестницу.

Повернём текстуры как надо и сделаем Tie to Entity. Выберем func_wall и поставим Render Mode и FX Amount как у кустика.

Дальше создадим браш, чуть толще лестницы и поставим его так, чтоб он поглощал лестницу.

Теперь делаем Tie to Entity и выбираем func_ladder. В свойствах ничего делать не нужно, объект будет невидимый.



Спрайты, зоны, камеры и т.п.

На этом уроке я продолжу рассказывать о различных 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, только она реагирует на выстрелы.



Заложники, VIP, звуки и т.д.

На этом уроке я закончу описывать различные entity.

Заложники

Придание карте тип cs_map (карта с заложниками) происходитв два этапа. Во-первых надо поставить точки, где будут появляться заложники. А во-вторых зону эвакуации. Точка старта заложников ставится так-же как и точки старта игроков, только выбирается hostage_entity. Поставьте несколько заложников к терам на базу. Теперь надо поставить зону эвакуации. Это можно сделать двумя способами: поставить info_hostage_rescue из Point-based entities или сделать из браша func_hostage_rescue. Лучше использовать func_hostage_rescue из-за чёткости границ. Поставте зону для эвакуации на контровскую базу.

V.I.P.

придание карте типа as_map (карта с VIP) тоже состоит из двух частей. Точки старта VIP и зоны эвакуации. Точка старта VIP называется info_vip_start, а зона эвакуации func_vip_safetyzone и создаётся из браша. Поставьте точку старта VIP к контрам, а зону эвакуации к терам.

Звук на карте

Звуки на карте ставятся с помощью ambient_generic из Point-based entities. Поставим его в комнате с водой. В свойствах надо указать WAV файл с необходимым звуком, укажите "ambience/crickets.wav" В свойстве Volume можно изменять громкость звука, а в Start volume надо поставить число, равное Volume. Поставим громкость 2.

Взрывающиеся от бомбы ящики

Что нам для этого надо? Во-первых сам ящик, во-вторых огонь от взрыва и в-третьих место для бомбы. Поставим на контровскую базу ящик, который надо взорвать.

Превратим его в func_breakable, переходим на вкладку Flags и ставим флажок Only trigger, чтоб выдержал все выстрелы. Material type ставим Metal, Name пусть будет bomb. Теперь поставим внутрь ящика взрыв - env_explosion из Point-based entities. В его свойствах поставим Name - bomb. Теперь переходим в свойства func_bomb_target и поставим в Target (when bomb blows) - bomb. Вот, собственно, и всё.

Гроза

Для создания грозы нам понодобятся молния (env_laser), гром (ambient_generic), вспышка от молнии (light_spot) и генератор события (trigger_multiple). Поставим один env_laser по середине карты под самое небо. Здесь будет начинаться молния. В свойствах указываем Name - moln1, Target of Laser - moln2, Sprite Name - "sprites/lgtning.spr", Brightness - 225, Beam Color - 225 225 225, Width of beam - 80, Amount of noise - 100, Texture scroll Rate - 1. Теперь надо поставить info_target в точке, куда молния будет бить, и назвать его moln2. Где-то между ними надо поставить 3 light_spot, в свойствах указать Name - light1, а на вкладке Flags поставить Initially dark. Дальше поставте ambient_generic возле light_spot, Name - grom1, Path/filename.waw of WAV - "ambience/thunder_clap.wav", Volume и Start volume - 10. Теперь надо поставить два trigger_multiple: на выходе из теровской и контровской баз. В их свойствах Target - manager, Delay before trigger - 0, Delay before reset - 5. Теперь всё это надо собрать "до кучи". Ставим где-нибудь на карте multi_manager. В его свойствах Name - manager, дальше выключаем SmartEdit, нажимаем add, в поле key пишем moln1, в поле Value - 3, нажимаем OK. Дальше точно так-же key - light1#1, в поле Value - 3.5, нажимаем OK; key - grom1, в поле Value - 3, нажимаем OK; key - light1#1, в поле Value - 3.5, нажимаем OK; key - grom1, в поле Value - 4.3, нажимаем OK. Закрываем свойства.




Учебник по Worldcraft

Последний урок

На этом уроке я пока закончу описывать Worldcraft.

Послесловие

Вот, вобщем-то, и всё основное, что необходимо знать для создания карт в Worldcraft. Конечно, в Worldcraft есть ещё много функций и возможностей, с многими из которых даже я ещё не совсем разобрался, но это больше касается Half-life и других его модов (кроме CS).

Таблица Entities

Список Point-based entities:

cycler_sprite

Размещает на карте спрайт, в отличие от env_sprite через него нельзя проходить.

env_beam

Прокручивает спрайты от одного "таргета" к другому.

env_beverage

При активации появляется банка Coca-Cola (или чего-нибуть другого)

env_blood

При активации появляется кровь

env_explosion

При активации появляется взрыв

env_laser

Луч из env_laser в "таргет"

env_message

При активации игрок получает сообщение (звук)

env_shake

Землетрясение

env_sound

Управляет аккустикой помещения (можно сделать иллюзию маленькой, большой команаты и т.д.)

env_spark

При активации появляется вспышка

env_sprite

Спрайт, в отличие от cycler_sprite, через него можно проходить

infodecal

Создаёт декаль

info_player_deathmatch

Точка старта террористов

info_player_start

Точка старта контр-террористов

info_vip_start

Точка старта VIP

info_target

Таргет (или цель для других entities)

light

Источник света

light_environment

Источник света помощнее

light_spot

Самый мощный источник света, имеет направленость

trigger_camera

Камера

trigger_changetarget

Триггер, меняющий цель

ambient_generic

Источник звука

multi_manager

Управляет включением/выключением других entities.

hostage_entity

Точка старта заложников

info_hostage_rescue

Точка эвакуации заложников

info_bomb_target

Место для бомбы

armoury_entity

Оружие

info_map_parameters

Параметры карты

Теперь частоиспользуемые Solid-based entities.

button_target

Кнопка, реагирующая на выстрелы

func_button

Кнопка, реагирующая на +use

func_buyzone

Зона покупки

func_bomb_target

Зона для бомбы

func_breakable

Разбивающийся объект

func_door

Дверь, въезжающая в стену

func_door_rotating

Дверь, окрывающаяся поворотом (обычная)

func_escapezone

Зона эвакуации террористов

func_hostage_rescue

Зона эвакуации заложников

func_illusionary

Визуальный объект

func_ladder

Лестница (см. Урок №3)

func_vip_safetyzone

Зона эвакуации VIP

func_wall

Неразбивающийся объект

func_water

Вода





Дополнительный урок

Здесь я расскажу обо всём, что забыл сказать на прошлых уроках.

Двери

Итак, двери бывают двух типов:
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 :)

Создание машины состоит из трёх этапов: создание самой машины, её "одушевление" и устранение неизбежных глюков. Итак, создадим из брашей что-то, напоминающее по форме тачку (по большому счёту, в качестве машины можно использовать даже один браш, но хочется покрасивее). Я думаю, с этим вы справитесь и без меня, в крайнем случае скатаете из примера, поэтому перехожу сразу ко второму этапу. Во-первых по-середине маши

Copyright MyCorp © 2020 |