КАРТЫ ДЕС КИНГА

Четверг, 04.07.2024, 00:25
Приветствую Вас дух
Главная

Регистрация

Вход

RSS
Главная » 2007 » Октябрь » 22 » Wolrd Editor
20:44
Wolrd Editor
Редактор: Warcraft III World Editor Где взять: Устанавливается вместе с игрой. Возможности: Ограничены лишь вашей фантазией.
Сложность освоения: Ниже средней. С тонкостями — чуть выше.
Документация: В комплекте. Но зачем, если есть "Мания"?
Хотя цикл статей по редактору карт Warcraft III завершился, осталось еще много нерассмотренных моментов. Какие-то были пропущены из-за своей "некритичности", какие-то, наоборот, из-за чрезмерной углубленности в тонкости редактирования. Наиболее интересные вопросы читателей, не поленившихся прислать их нам, и, разумеется, ответы на них вы можете найти в этом материале.

Ваши вопросы
Q: Я хочу создать карту с разными типами ландшафтов — зимним, подземным и другими. Можно ли это сделать, и как?
A: Можно. Для этого откройте меню Tools\Advanced\Modify Tileset. В появившемся окне установите флажок на параметр Use custom tileset. С помощью кнопок рядом со списками тайлсетов вы можете удалять, добавлять или заменять текстуры ландшафта. Набор (наборы) текстур, из которого вы будете добавлять "плитки" к основному тайлсету, выбирается в нижней части окна. Некоторые текстуры не

поддаются замене, удалению или добавлению в другой набор (отмечены красным цветом). Тайлы обычно составлены из

одного или двух
типов текстур (отмечено цифрой) — имейте в виду, что общая сумма текстур не может превышать 12.
Q: Создавая скриптовую сценку, я сделал для камеры довольно сложный маршрут. Но когда я нажимаю кнопку Preview Camera Motion в редакторе триггеров, чтобы просмотреть, правильно ли расставлен маршрут, камера переворачивается и часто движется совсем не в заданном направлении. В чем дело?
А: Дело в том, что хотя редактор и использует движок игры, задействованными остаются далеко не все его возможности. В данном случае редактор не может правильно переместить камеру через границу между 360 и 0 градусов угла поворота — вместо этого он начинает обратный отсчет. Просто просмотрите эту сценку непосредственно в игре.
Q: А если эта сценка проигрывается ближе к концу карты? Неужели всю придется проходить?
А: Необязательно. Временно сделайте, например, так, чтобы сценка запускалась, когда игрок посылает какое-либо сообщение в игровой чат (событие Player — Chat Message).
Q: Я сделал карту для одиночной игры, создал базы всех игроков, но когда я запускаю карту, компьютерные оппоненты не предпринимают никаких действий, а лишь стоят на месте. Что я мог сделать не так?
Наш размерчик!


А: В №11 "Мании" за этот год во второй статье про редактор

WorldEdit подробно рассматривался
этот вопрос. Но один ключевой момент стоит упомянуть еще раз. Итак, для запуска AI врагов нужно создать триггер с действием AI — Start Campaign AI Script. В качестве AI-скриптов здесь можно указывать следующие имена: orc.ai для орков, elf.ai для ночных эльфов, human.ai для людей и undead.ai для некромантов.
Q: Я создал несколько новых юнитов в редакторе, но не знаю, как сделать так, чтобы ихможно было заказывать, например, в бараках...
A: У любого здания (даже у ферм) есть параметр Trained Units. В нем можно указать абсолютно любой юнит, который вы хотите сделать доступным для тренировки в здании, — присутствующий в игре или созданный вами. Но не забывайте, что количество свободных ячеек для юнитов ограничено.
Q: Хорошо, а если сотворить новое здание, как сделать его доступным к постройке?
А: Так же, как и у зданий, у любого юнита имеется параметр Structures Built. Его и используйте. В данном случае можно не очень опасаться за превышение допустимого числа зданий — если кончатся свободные ячейки у одного юнита, можно назначить постройку остальных другому. Например, другому типу рабочих юнитов, вами же созданных...
Q. А почему вы так быстро закрыли тему редактирования "Варкрафта"? Ведь возможностей у WorldEditor'а — хоть отбавляй, а рассмотрены были только самые основные.
А. Создание карт для Warcraft III оказалось гораздо более популярной темой, чем мы ожидали — после первой же статьи о WorldEditor'е к нам в редакцию посыпались письма с просьбами продолжать и развивать ее. Ну что ж, раз читатели просят... Возможно, в будущих номерах мы продолжим изучать возможности редактора.
* * *
На этом пока все. Если ответа на ваши вопросы не оказалось в этом материале, присылайте их нам. Если скопится достаточное


Новые требования
В WarCraft III, в отличие от StarCraft, нельзя указать при выборе карты, будет ли она запущена как мультиплеерная (melee) или как сценарий — игра самостоятельно определяет тип карты. И чтобы игра признала в ваших новых творениях не мультиплеерные карты, а сценарии, нужно особым образом изменить некоторые их свойства.
После того как вы построите основу будущей карты (ландшафт, базы игроков), зайдите в меню Scenario\Player Properties. В открывшемся окне вы сможете задать все свойства отрядов, присутствующих на карте. На первой представшей вашему взору закладке — Players — вы задаете, какие отряды вообще присутствуют на карте (просто установите галочку напротив), их названия и расы, а также кто этими отрядами управляет — компьютер или игрок. На закладке Ally Priorities задаются союзники игрока. Следом идет закладка Forces, на которой вы определяете, кто против кого воюет. Первым делом необходимо установить галочку на параметр Use Custom Forces и Fixed Player Settings. В списке ниже все силы, участвующие в битве, объединены в одном формировании. Разумеется, отряды одного формирования сражаться друг с другом не будут, поэтому создайте как минимум еще одну "силу" (кнопка Add Force) и распределите по ним враждующие отряды.
На следующих трех закладках — Techtree, Abilities и Upgrades — вы можете установить, какие способности и апгрейды уже изучены у какого-либо игрока, а также какие юниты и здания доступны ему для постройки. Не будем на них задерживаться.
Также в окне Map Properties (вызывается, напомню, в меню Scenario\Map Description) на закладке Description обязательно включите параметр Hide minimap in preview screens и отключите Masked areas is partially visible.

Триггеры

После того как сама карта будет полностью завершена, понадобится создать триггеры,
определяющие условия победы и поражения, контролирующие AI и прочее. Стоит сказать, что здешние скрипты и триггеры больше напоминают упрощенный язык программирования. При желании вы сможете даже создавать игры другого типа на варкрафтовском движке. Конечно, гонки или файтинг создать вряд ли получится, но простенькую ролевку или аркаду сделать можно. Примером тому служит карта The Death Sheep, которая идет в комплекте с редактором. Мы же пока обойдемся лишь основными возможностями триггеров.
Откройте редактор триггеров — клавиша F4. В появившемся окне вашему взору предстанет примерно следующая картина:
В левой части окна расположился список, в котором будут отображены все созданные триггеры. Справа снизу помещается список событий, условий и выполняемых каким-либо конкретным триггером действий. Оставшееся пространство занимает окно, в котором вы можете написать комментарии к триггеру.
С самого начала здесь присутствует лишь триггер, задающий условия игры для melee-карт. Рассмотрим на его примере, каким образом эти триггеры устроены. Итак, триггер активизируется, когда в игре происходит какое-либо событие (event), и события эти задаются в разделе Events. В рассматриваемом триггере таким событием является Map Initialization — запуск карты. В следующем разделе — Conditions — задаются дополнительные условия выполнения триггера. Например, помимо инициализации карты в качестве активатора можно указать, что триггер будет выполняться, только если сложность игры установлена на Difficult. В разделе Actions задаются действия, которые произведет триггер. Порядок действий можно менять простым перетаскиванием, но, например, в рассматриваемом триггере в этом нет никакого смысла, так все действия выполняются одновременно и действуют на протяжении всей игры. Немного освоившись со структурой триггеров, приступим к созданию основных.

Правила игры
Для начала удалите триггер Melee Initialization — он нам не понадобится. Новый триггер будет инициализировать карту на "сценарный" лад.
Щелкните правой кнопкой мыши по каталогу Triggers в списке триггеров и в контекстном меню выберите пункт New Category (там все равно ничего больше выбрать нельзя). Название новой директории ни на что не влияет, но лучше уж назвать ее так, чтобы было понятно, какого рода триггеры там будут находиться. Для создаваемой директории задайте имя, скажем, Initialization. Затем щелкните по созданной папке и выберите пункт New Trigger. Ему, разумеется, тоже желательно давать имя, характеризующее его назначение.
Приступим к заданию событий и действий триггера. Щелкнув по разделу Events правой кнопкой мыши, выберите в меню пункт New Event. По умолчанию будет установлено событие Map Initialization — оно нам сейчас и нужно. Дополнительных условий (Conditions) в этом триггере задавать не нужно. Затем установим действия триггера. Неплохо было бы сделать так, чтобы компьютерный оппонент проявлял какие-нибудь признаки интеллекта. Щелкните правой кнопкой мыши по одному из разделов триггера и выберите пункт New Action. В списке выбора действий выберите AI — Start Campaign AI Script. После этого в поле под списком нужно установить дополнительные параметры скрипта. Щелкните по строке Player 1 (Red) и в появившемся окне, выбрав пункт Preset, установите, интеллект какого именно игрока будет запущен. Затем нужно выбрать подходящий для игрока скрипт AI. Щелкните по строке map.ai и в

новом окне впишите в поле Value имя

AI-скрипта, соответствующее расе игрока. Имена могут быть
такими: orc.ai для орков, elf.ai для ночных эльфов, human.ai для людей и undead.ai для мертвяков. Установив все параметры, щелкаем OK — первое действие триггера готово.
Если вы планируете создавать скриптовые сценки на карте, то необходимо также установить небо (действие Environment — Set Sky), иначе в кадре можно будет увидеть лишь черную бездну. Также можно установить туман (Environment — Set Fog), ограничивающий поле зрения, чтобы камера не экспонировала дальние участки карты, попадающие в кадр. Помимо этого, по запуску карты можно назначить, например, стартовое время суток и скорость его течения (Game — Set Time Of Day и Game — Set Time Of Day Speed). Необходимо назначить описание задания, которое должен выполнить игрок для завершения уровня (Quest — Create Quest). В настройках всех перечисленных действий достаточно легко разобраться, поэтому предлагаю вам сделать это самостоятельно.
Еще по инициализации карты необходимо установить, какой уровень запустится после того, как вы одержите победу на текущем. Это делается с помощью действия Game — Set Next Level — понадобится просто указать путь к карте (например, Maps\NextLevel.w3m).
После инициализации карты зададим условия победы. Для первого раза достаточно будет стандартных условий — победа засчитывается, если уничтожены все здания противника. Для этого создайте новый триггер (желательно в новой категории). В качестве активатора установите событие Unit — Player-Owned Unit Event. Строка настроек события должна иметь примерно такой вид: A unit owned by [отряд противника] [dies]. Затем установите дополнительное условие триггера — Integer Comparison. В поле настроек щелкните по строке Number of units... и в новом окне в списке Function выберите параметр Player — Count Structures. В поле настроек измените строку Player1 (Red) так, чтобы в ней был указан отряд противника. Также, изменяя строку Exclude, вы можете установить, будут ли учитываться недостроенные здания. Закончив с этими параметрами, щелкните OK и в предыдущем окне (где вы выбирали дополнительное условие) проверьте, чтобы строки Equal to и 0 оставались без изменений. Наконец, установите действие (Action) триггера — Game — Victory. В его настройках нужно лишь изменить строку Player 1 (Red) на отряд, управляемый игроком.
Если условие поражения в вашем сценарии — потеря всех зданий игроком, вы можете создать второй такой же триггер. Нужно лишь поменять местами игрока и противника и, конечно, действие Game — Victory сменить на Game — Defeat.


Диалоги


Если уж мы назвали наш уровень "сценарием", то в нем должен быть сюжет. А как иначе донести сюжет до играющего, если не диалогами? Вот только создавать диалоги, да и вообще скриптовые сценки, мы пока не научились. Поэтому сейчас самое время рассмотреть их создание.
Диалоги и сценки обычно состоят из двух компонентов. Это сами диалоги (то есть различные текстовые и звуковые сообщения, произносимые юнитами) и перемещения камеры. Следует создавать отдельный триггер для камеры и отдельный — для разговоров, так как, если юнит произносит какую-либо фразу, то игра ждет ее окончания и лишь затем приступает к выполнению следующего действия. Прежде чем создавать какие-либо скрипты, определитесь, где будет происходить диалог и какие юниты примут в нем участие, и лишь затем начинайте создавать триггеры.
Сперва разберемся с управлением камерой. Изменение положения камеры в игре осуществляется специальными маркерами, которые создаются с помощью палитры Camera Palette, находящейся в окне Tool Palette. Камера как бы переключается между этими маркерами, принимая указанное ими положение. Если вы хотите, чтобы камера не просто принимала то одну позицию, то другую, а перемещалась по сложной траектории, вам нужно создать несколько маркеров, которые будут своеобразными вэй-пойнтами для камеры. Чтобы создать маркер камеры, нужно просто щелкнуть по кнопке Create Camera. Выделив созданный объект и дважды щелкнув по нему, вы, как и в случаях с другими объектами редактора, попадете в окно свойств. Нет смысла рассматривать в журнале, за что отвечает каждый параметр — здесь все элементарно. Единственное — установите галочку на параметр Preview Values in Main Window. Таким образом камера обзора в главном окне примет положение выбранного маркера, и вы будете смотреть на карту с позиции, заданной маркером. Создайте несколько маркеров так, чтобы, например, камера переключалась или поворачивалась то к одному участнику диалога, то к другому. Маркеры можно переименовывать — для этого в окне инструментов нужно щелкнуть правой кнопкой мыши по нужному маркеру и выбрать пункт Rename Camera. Сделайте несколько маркеров, а затем вернитесь в окно редактирования триггеров.
Создайте новую директорию для триггеров, а затем и первый триггер — назовите его Camera. Чтобы сделать нормальную скриптовую сценку, недостаточно просто движений камеры. Нужно убрать различные посторонние звуки и перевести игру в соответствующий режим. Громкость звуков можно изменить с помощью действия Sound — Set Volume Channel. В настройках действия выберите канал User Interface Sounds и установите его громкость на 0. Чтобы перевести игру в режим Cinematic Mode, создайте действие Cinematic — Cinematic Mode — режим должен быть включен (On) для всех игроков (All Players). Затем создайте действие Cinematic — Letterbox Mode On — оно нужно, чтобы спрятать интерфейс игры и показать поля, на которых отображается портрет говорящего юнита и текст, который он произносит. Это действие тоже можно назначить для All Players. Также в свойствах действия можно указать промежуток времени, за который поля скроют интерфейс. После всех этих приготовлений можно приступить к работе непосредственно с камерой.
Перемещение камеры между маркерами осуществляется действием Camera — Apply Camera Object (Timed). В его свойствах щелкните по строке Camera Object, в появившемся окне выберите пункт Variables и имя той камеры, с которой вы хотите начать движение. Затем выберите отряд, камера которого будет менять свою позицию (в нашем случае это отряд игрока), а также укажите временной промежуток в секундах, за который камера преодолеет расстояние между своей исходной позицией и маркером. Вам нужно создать несколько подобных действий, последовательно переключающих камеры между маркерами. При этом имейте в виду, что игра не дожидается, пока камера преодолеет путь между соседними маркерами, и сразу начинает перемещать камеру к следующей точке. Получается, что камера летит от первого маркера сразу к последнему. Чтобы этого избежать, используйте действие Wait. Просто вставляйте его между действиями, перемещающими камеру. При этом установленное время ожидания должно быть равным тому времени, за которое камера проходит очередной отрезок траектории между маркерами. Если при создании действий вы поставили их в неправильном порядке, вы можете все исправить простым перетаскиванием.
Задав движения камеры, нужно завершить скриптовую сценку. Завершение заключается в установке громкости User Interface Channel на прежнюю величину, отключении Cinematic Mode и возвращении игровой камеры на ее обычную позицию (действие Camera — Reset Game Camera). На этом работу с камерой можно считать завершенной.
Теперь займемся звуками. Прежде чем создавать действия триггера, нужно выбрать фразы, которые будут произносить юниты. Нажмите клавишу F5 — откроется окно редактора звуков.
В левой части окна находится структурированный список практически всех звуков, производимых юнитами, включая все сюжетные диалоги. Справа — список тех звуков, которые вы будете использовать в диалогах и сценках на своей карте — он пока пустой. Разумеется, никто не заставляет вас использовать лишь те записи, что есть в игре. Вы можете импортировать свои собственные фразы и музыкальные файлы, используя комбинации, соответственно, Ctrl+I и Ctrl+P. Файлы могут быть как в формате *.wav, так и в *.mp3.

Допустим, вы определились, какие звуки будут использованы, и

уже импортировали их. Выделите
один из файлов, который предстоит использовать на карте, и нажмите клавиши Ctrl+U — выбранный звук появится в списке справа. Таким образом вы создали переменную, обозначающую звуковой файл, которую сможете указывать в триггерах. Повторите эту процедуру со всеми звуками, которые будете использовать в диалогах. При создании переменной ей присваивается имя файла, который она обозначает. Но возможно, это имя будет не очень удобно использовать при создании триггеров (например, оно слишком длинное и к тому же похоже на имя какого-то иного файла). Чтобы изменить название переменной, нужно дважды щелкнуть по ней и в открывшемся окне указать желаемое имя. В нем также можно изменить некоторые свойства воспроизведения, но ничего критичного среди них нет.
Обращайте внимание на длительность звуков — она указана в том же списке переменных. Время, в течение которого камера будет показывать скриптовую сценку, должно совпадать с общей длительностью звуков создаваемого диалога. В противном случае скриптовая сценка закончится раньше, чем будут произнесены все фразы, или, наоборот, будет продолжаться, когда все слова уже давно были сказаны.
Указав переменные для всех звуков, вернитесь в окно редактирования триггеров. В той же директории, где расположен триггер, управляющий камерой, создайте триггер с именем, скажем, Talk. В триггере создайте действие Cinematic — Transmission From Unit. В его многочисленных свойствах надо установить следующее: в строке All Players укажите отряд игрока (того, которому предназначено сообщение). В строке Unit укажите персонаж, который будет говорить. Для этого в открывшемся окне щелкните по кнопке Select a Unit и выберите нужный юнит прямо на карте. В строке Name впишите имя персонажа, которое будет отображаться рядом с портретом во время его разговоров. Затем щелкните по строке No Sound и в пункте Variable укажите переменную того файла, который вы хотите воспроизвести. В строке Message надо вписать отображаемый текст сообщения. Желательно, чтобы он повторял слова, которые произносятся в звуковом сообщении. Как уже говорилось выше, игра будет дожидаться, когда закончится звуковое сообщение, и лишь затем приступает к выполнению следующего действия. Если по какой-то причине вы решили обойтись без звукозаписи, то следующими тремя строчками нужно указать Add ## seconds and Wait, где "##" — время в секундах, в течение которого будет отображаться текст. Повторяйте описанные выше действия для каждой фразы диалога. Чтобы синхронизировать триггеры речи и движений камеры, используйте действие Wait, вставляя его, например, между перемещениями камеры.
Осталось указать события, которые активируют скриптовую сценку. На моей карте, например, сценка запускалась по инициализации карты с задержкой в две секунды. Для этого был создан отдельный скрипт, в котором запуск триггеров диалога осуществлялся действиями Trigger — Run. Вообще различных способов запуска диалога десятки, поэтому вам, вероятно, придется решить эту задачу самостоятельно.

Просмотров: 1683 | Добавил: Necromancer | Рейтинг: 5.0/2
Всего комментариев: 4
4 AllefBogorene  
0
Дали мені url - адресу: http://srub-dizain.ru/articles/94-profilirovanniybrus - виробництво профільованого бруса сосна
і я став вдячним ! Мені якраз хотілося купити Погонажні профільований брус . Коротше зайшов туди і вирішив туди поїхати! Там реально все професійно зроблене і сухий брус від виробника важко прикупити . Всьому даній події супроводжувала навігація сайту , яку я Струд зрозумів .Дуже круто звичайно те, що це виготовлювач пиломатеріалів - але сайт важкий на сприйняття.

3 ploppyCen  
0
online pharmacy fiorinal no membership fee http://sundrugstore.net/products/imuran.htm medical arts pharmacy cinyers

2 InquideImmeds  
0
walmart pharmacy 4 dollar med list http://exclusiverx.com/products/ranitidine.htm canadian pharmacy use in texas

1 dassader123  
0
sad немоги скачать

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Календарь
«  Октябрь 2007  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 439
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0