1. Включаем билдер 2. Нажимаем кнопку создания новой мапы (белый лист) и видим окошко, где надо ввести высоту и ширину и длину карты, ширину границ. Пишем, к примеру, длину 300, ширину - 300, высоту - 50 и границы - 30 и жмём ОК 3. Перед нами серая равнина. Нажимаем кнопку, где нарисовано ведро) Это заливка. Выбираем из списка любую понравившеюся текстуру и заливаем карту. 4. Теперь надо поставить возвышенности. Нажимаем кнопку с кисточкой и плюсом. В небольшом окошке справа настраиваем инструмент: Brush width - это ширина центра, Brush feather width - ширина краёв, Brush Height - это скорость роста горы. Теперь рисуйте! Но учтите, максимальная высота карты - 255 5. Канава - это кнопочка с кисточкой, у которой минус. Всё тоже самое, что и у гор. 6. Чтобы сделать переходы с малой высоты на большую, можно использовать 2 инструмента: а) Smooth Height - кнопочка с изображением распыления, используется для малых перепадов высоты - Brush width - ширина рабочего поля, Filter Radius - радиус фильтра - то есть радиус самого разглаживания в круге, Feather rate - ясно, что это скорость) б) Ramp - белый прямоугольный треугольник, там одна опция - ширина 7. Вода. Нажимаем кнопку с волнами. Сначала делаем зону воды. Настройка - имя, высота, река или водный полигон, и ещё какая то опция, в которой я не разобрался. 8. Чтобы затекстурить горы, некоторые места, в общем - внести разнообразие в палитру карты, жмите кнопку с шахматными квадратами))) выбирайте текстуру, размер и красьте. Ландшафт готов!
Глава 2. Объекты
1. Всматриваясь в карту, видим, что чего-то не хватает. Да! Нужно добавить декорации (объекты, не участвующие в скриптах): деревья, дороги, здания, машины и т.д. 2. Начнём с дорог. Выбираем инструмент Road - это две сплошные линии и одна пунктирная посередине - и смотрим - там есть дороги и мосты. Нам нужны дороги. Выбираем то, что нужно и наносим на карту. Также можно выбрать вид угла. 3. Деревья - инструмент Grove (поджареное дерево). Там мы выбираем виды деревьев и их количество (в процентах). Общий процент желательно должен быть 100. Далее ставим общее количество деревьев (в штуках). Флаги Allow Water Placement и Allow Cliff Placement лучше не отмечать. 4. Теперь остальные объекты - выбираем инструмент Place Object (три стрелочки). Здания штатских - Civilian/STRUCTURE, машины - Civilian/VEHICLE, люди Civilian/INFANTRY, детали - Civilian/MISC_MAN_MADE, звуки - Civilian/AUDIO Всё!
Глава 3. Опции карты
1. Ставим игроков. Заходим в Edit->Edit player list. В миссиях традиционно игрок имеет имя "ThePlayer", а врага как хотите, так и называйте. Жмём кнопку New Player, выбираем фракцию, имя, цвет - как угодно. Потом у каждого из полученных игроков в поле Enemies указываем врага, а в поле Allies - союзника (если надо). Жмём ОК. 2. Настраиваем время суток карты - жмём ctrl+d до нужного результата. 3. Если у ИИ будет база, которую он будет строить или отстраивать заново, то юзаем инструмент Build List Tool. Он прост в использовании: Structure Already Built - этот флаг ставится, если вам нужно, что это здание стояло с самого начала, Rebuilds - сколько раз он будет строиться. Остальное думаю не надо объяснять)) Не лишне будет добавить объектов для игрока и объектов врага, которые не участвуют в скриптах. Всё вроде.
Часть 2. Скриптинг
Глава 1. Предисловие
1. В первой части я рассказывал о создании миссии. Теперь пришло время для её начинки. Нам понадобятся три кнопки: а) Edit Scripts - делать скрипты б) Edit Teams - создавать команды юнитов в) Waypoint Tool - делать вейпоинты г) Polygon Tool - делать полигоны (триггеры) 2. Опции инструментов: а) Вы можете добавить папку (New Folder) - у неё есть название, флаги: Group is Active - выполняются ли скрипты внутри папки и Group is Subroutine - является ли группа скриптов подпрограммой; Добавить скрипт - у него есть название, флаги: Script is Subroutine - является ли скрипт подпрограммой, Script is Active - активен ли скрипт, Deactivate upon success - деактивация после выполнения, Active in - при каком (каких) уровне (уровнях) сложности срабатывает скрипт, Evaluate script - повтор скрипта (если флаг DUS отключен) каждый кадр или каждые ## секунд, Вкладки - Script Properties - опции скрипта, Script Conditions - условия скрипта, Actions if True - действия при выполнении условий, Actions if False - действия при невыполнении условий. Вы можете удалить группу или скрипт и импортировать или экспортировать скрипты. б) Вы можете создавать команды. Более подробно о структуре окна команды вы можете узнать из тутора "Руководство по редактированию ИИ в игре Generals Zero Hour" от Креатора. в) Там всё очень просто, левой кнопкой - ставим точку, удерживая кнопку - делаем путь, справа - название точки, название пути (если несколько точек связаны) г) Левой кнопкой ставим узлы полигона, справа название 3. Рекомендую самим изучить условия и действия скриптов, так как вы сможете тогда по своему изменить данные ниже скрипты, добавить в них своё.
Глава 2. Необходимые в миссии скрипты
1. Интро:Создаём группу скриптов в папке (neutral) под названием Intro, она должна быть активной и не-подпрограммой. а) Создаём скрипт под названием, к примеру, SetUpCam. Он должен быть активным, не-подпрограммой и деактивирующимся, ну и конечно для всех уровней сложности. В условиях ничего не меняем) Действия: Camera -> Adjust -> Set up the camera - настройка камеры - где она стоит (например, "Cam_Start"), куда смотрит("Cam_Look_Start", например), наклон и приближение Camera -> Letterbox -> Begin letterbox mode - сверху и снизу чёрные прямоугольники Multimedia -> Music -> Play a music track - музыка Map -> Shroud or Reveal -> Reveal the entire map permanently for a player - нет тумана войны Scripting -> Briefing -> Show military briefing caption - брифинг User -> Input -> Disable - убрать мышь и нейтрализовать клаву Scripting -> Timer -> Seconds countdown timer -- set - таймер, который нужен для старта следующего скрипта (например "Intro") Scripting -> Script -> Enable Script - включить следующий скрипт, который будет отвечать за движение камеры. Что можно добавить в этот скрипт, условия, действия? Да что душа пожелает! Условия не следует добавлять. Можно добавить чёрно-белое изображение через действие: Camera -> Camera FX -> Start black & white mode а можно использовать эффект "Затемнение"): Camera -> CameraFX -> Fade using a *** Или звуки добавить: Multimedia -> Sound Effect -> Play a speech file или Play sound effect и т. д. б) Теперь скрипт движения камеры (например, имя "CameraMove01"), а точнее, первого шага. Он неактивен, не-подпрограмма и отключается. Все уровни сложности. Условие: Scripting -> Timer expired - в нём указываете таймер (наш "Intro") Действия: Camera -> Move -> Move the camera to a location - камера идёт в точку (например "Cam_Move01") Camera -> Modify -> Move -> Camera look toward point while moving - камера будет направлена на точку ("Cam_Look", если к примеру) Scripting -> Timer -> Seconds countdown timer -- set - перезапуск таймера ("Intro") Scripting -> Script -> Enable Script - включить следующий скрипт, который будет отвечать за следующее движение камеры. В скрипт можно добавить тоже много чего - движение юнита, команды (это я позже буду освещать), изменение угла и приближения камеры Camera -> Adjust -> Change **** Scripting -> Briefing -> Show military briefing caption - брифинг звуки добавить: Multimedia -> Sound Effect -> Play a speech file или Play sound effect Ротация: Camera -> Rotate -> Rotate around the current viewpoint Далее все остальные скрипты движения камеры в интро имеют такое же строение, кроме финального По желанию можно добавить другие действия в) Финальный скрипт (пример, "CamFinal") Он неактивен, не-подпрограмма и отключается. Все уровни сложности. Условие Scripting -> Timer expired - в нём указываете таймер (наш "Intro") Действия Camera -> Move -> Reset to the default view - Camera -> Letterbox -> End letterbox mode - сверху и снизу чёрные прямоугольники Map -> Shroud or Reveal -> Un-Reveal the entire map permanently for a player - туман войны Scripting -> Briefing -> Show military briefing caption - брифинг User -> Input -> Enable - Мышь и клава снова в полной свободе В скрипт можно звуки добавить: Multimedia -> Sound Effect -> Play a speech file или Play sound effect если надо отключить ЧБ: Camera -> Camera FX -> Stop black & white mode Хотя можно и всякие другие скрипты добавить) Интро готово. 2. Цели миссии: Проработаем несколько вариантов задач и поражений (условий специальных скриптов) миссии. Задачи и поражения можно комбинировать через логику AND (и) или OR (или). Действия я опишу отдельно, так как они практически одни и теже. Структура скрипта победы/поражения такова: в условиях вы ставите условие победы/поражения, а в действиях - что происходит. Главное действие - User/Announce Win или User/Announce Lose. Вот два примера - простой и сложный: 1) Можно сделать так, чтобы при уничтожении юнита тут же игра заканчивалась победой, но если юнит войдёт в зону - то поражением. а) Победа. Условие: Unit/Destroyed/Unit is destroyed Действие: User/Announce Win б) Поражение. Условие: Unit/Area/Unit entered area Действие: User/Announce Lose Просто, не правда ли? Но "просто" не значит "лучше". Интересней будет так: 2) При уничтожении юнита играет музыка, камера поворачивается вокруг оси и через 10 секунд игра заканчивается победой. При поражении (юнит вошёл в зону) тоже играет музыка, камера затемняется и через 10 секунд поражение показывается. Условия теже, что и в простом примере. Действия: а) Победа. Multimedia/Music/Play a music track, Camera -> Rotate -> Rotate around the current viewpoint, Scripting/Script/Enable Script (здесь вы указываете не-активный скрипт, в котором одно действие - User/Announce Win б) Поражение. Multimedia/Music/Play a music track, Camera -> CameraFX -> Fade using a ***, Scripting/Script/Enable Script (здесь вы указываете не-активный скрипт, в котором одно действие - User/Announce Lose
Всё это - самые главные скрипты миссии, хотя можно обойтись без интро, но это будет в минус карте
Глава 3. Скрипты - какие ещё бывают
1. Юниты и команды в целом подчиняются одним и тем же скриптам, они различаются только тем, что для юнитов скриптов больше, так как юнит - это более гибкий объект, чем команда. 2. Можно сделать рэндом-скрипты, используя соответствующий фрэйм-таймер и вычисляя при помощи других скриптов выпавшее значение 3. Скрипт использования супероружия ИИ имеет два скрипта, немногим отличающихся друг от друга. 4. ИИ в миссии сделать в принципе несложно, в отличие от ИИ скирмиша 5. Часть действий и условий вы никогда не будете использовать 6. Можно сделать так, чтоб при лёгком уровне сложности вам на голову десантировались пехи, а на тяжёлом - танки)
Часть 3. Заключение
Эта статья не полностью научит вас строить миссии для Генералов. Но я надеюсь, что эта статья убыстрит вашу учёбу в этой сфере. Я намеренно не стал останавливаться на других скриптах, так как хочу, чтобы вы сами их изучили, как впрочем и само картостроительство. Но чтобы создавать миссии, нельзя иметь просто умение. Нужно ещё иметь фантазию, чтобы сделать свою миссию неповторимой и интересной. Модить Генералы сейчас даже ребёнок сможет. А вот миссию создать - не так уж и многие могут. Если у вас возникнут вопросы или проблемы, если у вас появилась крутая идея для миссии, но вы не можете её реализовать без посторонней помощи, не стесняйтесь обращаться ко мне. Я помогу любому, отвечу на вопросы, сделаю карту-пример, если хотите наглядно что-то увидеть, даже миссию сделать по вашим экскизам, хотите - для оригинальных Генов, хотите - для ЗХ, хотите - для Контры, а может быть вы даже мне свою карту дадите с просьбой доработать - добавить нужные скрипты, проверить играбельность миссии. Но учтите, я не всемогущ, и некоторые идеи я мб не смогу реализовать, или же мне будет неизвестен ответ на ваш вопрос.
З.Ы. Эта статья не будет считаться законченной. В неё добавится своеобразный ЧаВО, в ней будут правиться мои ошибки или непонятности
Приложение 1: Волны в Генералах
Создать прибой в Генералах довольно сложно...тока на первый взгляд. Раз научившись вы уже запомните алгоритм=) Итак, рецепт прибоя: 1) Сначала по берегам водоёма расставьте вэйпоинты вот так: То есть первый вэйпоинт называется CoastStart##, а второй - CoastEnd##, средние без разницы 2) Сохраните карту. Потом жмите File -> Dump Map To File. Потом включаете прогу WakEdit. Там есть кнопка "Импорт". Жмёте, находите файл [Название карты] в папке ZeroHour, если вы открыли правильный текстовый файл, появится окошко, в котором мона выбрать направление и тип волн. Выбираете направление, тип волн и жмёте ОК. Потом жмёте "Сохранить" (прога на англ., но проблем точно не будет=)), и сохраняете в папке с картой. Учтите, если у файла не будет расширения, то добавьте после названия .wak. Так же проверьте чтоб название файла совпадало с названием карты. Всё!
Приложение 2: Генератор случайных чисел
Он описан хорошо в туторе Креатора, но тут я прилагаю пример. Причём в примере ещё есть и волны=) Кстате, чтоб увидеть реально случайность, нужно перезапускать карту не через меню эскейпа, а возвращаться в меню скирмиша и запускать каждый раз пока не убедитесь.Карта