Вообще то данное руководство я хотел написать по окончании своей миссии, но т.к. ее создание затягивается по разным причина (сессия, сайт, глюки редактора), то решил написать главные моменты. Позже, когда миссия будет готова, я переделаю текст, который уже будет основываться на реальных примерах. Итак, поехали (все иссследования проводились на версии игры 1.40, однако большая часть верна для всех версий).
Главное при создании миссии - это терпение и усидчивость. Если вы не обладаете этими качествами, то придется их тренировать или же заняться чем, то еще. Для примера - у меня ушло 2 дня лишь на проработку 1 военной базы (подробнее ниже).
Также вам нужно обладать хорошими знаниями в военном искусстве (чтобы иметь представление как могут вести себя войска, как они располагаются, ведют боевые действия и т.п.).
Еще одна не менее важная деталь - скрипты. Без них ваша миссия будет "одна из". То есть не будет выделяться среди тысяч паручасовых поделок других игроков.
Теперь о времени. Сразу отведите себе несколько часов в день на работу над миссией. Если вы будете делать перерывы, вы можете потерять главную идею (в этому случае поможет запись всего интересного в блокнот). В общей же сложности рассчитывайте, что миссия будет завершена где-то через неделю (это релиз, первая бета может появиться и раньше, зависит от того, хоите ли вы ее кому-то показывать). Кстати я бы не советовал вам показывать незавершенные версии миссии (например без четкиз задач и завершения, видео-ролики можно и опустить). При этом тем кто в нее поиграл она может не понравится, вы поддадитесь их меннию что миссия не удалась и забросите ее, а ведь идея могла быть отличной, хромала лишь реализация.
Однако если большинство людей после просмотра полной версии скажу, что миссия плохая, то с ней действительно проблемы и стоит ее переделать.
Хорошая привычка - пересматривать свои работы через некоторое время (1-2 недели). Вы забываете некоторые моменты и смотрите на них совершенно по другому. Это позволяет вам найти те ошибки, которые не были видны сразу, или сделать определенные добавления.
Далее сюжет. Если у вас его нет, лучше и не начинать. Проект развития событий должен быть готов заранее (не обязательно полный, но в общих чертах). Детали же обычно приходят сами во время работы и это даже лучше, если события ведут вас, а не наоборот (получается куда интереснее). Хотя здесь будьте осторожны. Важно также понимать и знать все тонкости работы с редактором OF, т.к. у него достаточно ограничений, чтобы загубить ваши лучшие идеи. Если такое случилось, ищите другое решение, желательно чтобы оно было не менее оригинальное.
Так, с общими вопросами разобрадись, переходим к деталям. Начнем с заставки, а именно Intro. Вообще это очень нудное занятие. Если вы хотите сделать качественную миссию, вам придется поработать над расположением камер и точно расставить их. Если заставка у вас прямо в миссии, а не в виде отдельного Intro, создавайте камеру в первые же секунды, чтобы не появлялся это раздражающий вид игрока перед видео-роликом.
Делайте затенение, если не хотите показывать что твориться вначале миссии (может в это время проходит инициализация игры и не все персонажы успели встать на свои места).
Всегда завершайте видео-ролики. Заставлять игрока жать ESC - дурной тон.
Что касается самой миссии. Умейте сокращать. Во-первых, это признак мастерства, уметь исключать лишнее. Во-вторых этого требует игра, т.к. не у всех Pentuim 4 или Athlon. Юнитов может быть не много, но они могут быть расставлены идеально, гармонируя с внешним миром и создавая цельную картинку без явных белых пятен.
Но и умейте наполнять. Это больше связано с реалистичностью. Вы думаете на военной базе будут футбольные поля или безлюдные площади. Посмотрите, вон в середине много свободного места. А что же мы можем там разместить? Например полевой госпиталь, всего пара мед. палаток, а уже вырисовывается объемная картинка. Или же полоса препятствий для бойцов, взлетные площадки для вертолетов, да много вариантов, подключите ваше вооброжение. Да и еще, обычно люди не сидят целый день в технике, так что на базах используйте пустую (Empty), а экипаж расположите поблизости (или можно вообше без оного, малоли какие у них дела).
Умейте оживить миссию. Вот это самое сложное. Важно знать где и как AI должен действовать, чтобы игроку казалось, что он не в музее восковых фигур, а на театральном представлении. Все замерает лишь ночью, и то еще шевелятся часовые и патрули. А днем вообще шабаш. Почему бы не сделать отъедз грузовика с солдатами. Может кто-то возвращается с учений. А если солдаты на улице, то займите их делом, пусть отжимаются, говорят и т.п.
Иногда приходится ограничивать игрока (запрещать использование некоторой техники, запрещать выходить за определенную територию), чтобы он не убежал куда не надо, или не уехал. Что ж, это вынужденная мера и вам ха это еще спасибо скажут, если вы не дадите игроку тратить впустую время слоняясь по пустому острову.
Теперь можно переходить к граблям, на которые я напоролся создавая миссию.
1. Танк почему-то произвольно перемещался (очень медленно, как бы спозая) вверх или вниз. Оказалось на него влияет даже минимальное отклонение рельефа (грузовик стоял нормально), так что следите за коричневыит полосками на карте.
2. Солдаты в группе напрочь отказываются вставать как я их расставляю (все время становятся клином). Не помогает ни указание свойства None вместо In Formation, ни прописвание this setbehaviour careless. До сих пор не знаю как побороть этот глюк, поэтому пришлось отказаться от объединения солдат в группы.
3. Создание стройной колонны бегущих солдат. Уууу, вот это гемор. Всех разединил, выставил свойство none и careless. Поставил waypoint MOVE - не хотят бежать стройно, разбегаются. Убрал waypoint, поставил объект gamelogic и заставил бежать к нему командой domove, опять не хотя. Прописал просто move, побежали стройно. НО, на бегу все время сносит и могу бежать так только по прямой, при повороте опять стройность вся пропадает. Ну, думаю, сделаю хоть бег в колонее. Колонная тоже получалась не ровная. Только когда я уменьшил количество бегущих до 4 он выровнялась. А до этого 5-й солдат все время запутывался.
4. Чтобы солдаты не падали с вышек, пропишите им в строке инициализации this setunitpos "UP", тогда они не бдут ложиться.
5. Если после диалога строка остается на экране слишком долго, проишите в скрипте задержку на пару секунд (~2) и команду titlecut ["","plain",1] и ту строку заменит пустая, которой не будет видно.
6. Не делайте больше диалоги (только если они не озвучены), их нудно читать.
7. Не делайте длительных/бесконечных циклов и циклов без задержки, повесите или затормозите компьютер.
8. Не пишите в скриптах много повторяющихся команд (например при диалогах или прописывании свойств), если после этого используете команду move, она почему-то не срабатывает.
9. Если не хотите, чтобы игрок вылез из машины на ходу, заблокируйте ее командой lock
10. Если хотите, чтобы юнит пошел по waypointу при определенном условии, можно воспользоваться командой lockwp, но учтите, что она срабатывает только на второй waypoint, а в первый юнит идет в любом случае (не помогает даже постановка условий с самом первом waypointе, по крайней мере в версии 1.40). Так что либо придется сделать для этого один лишний маленький waypoint гдето в паре миллиметров от юнита, чтобы он туда прошел, а дальше заблокировать его, либо использовать команду move по условию.
11. Чтобы заставить солдата смотреть куда надо, пропишите dowatch и имя целевого объекта. Чтобы юнит стрелял по кому-то (даже по своим), используйте dofire.
12. Если нужно использовать заложников, чтобы враги не стреляли по вам, пропишите unit setcaptive true.
13. Если нужно посадить в технику вначале миссии солдат, используйте команду moveincargo (moveindriver, moveingunner и moveincommander).
14. Следите за сообщениями об ошибках, появляющихся вверху экрана слева. По ним можно поределить где именно вы ошиблись. Например, возможно, вы указали объект вместо массива (такое часто бывает, если прописать unit command вместо [unit] command).
15. Помните, что команду move надо использовать с координатами объектов а не самим объектом, то есть писать надо unit move getpos object а не unit move object.
16. Логические значения true и fasle нужно прописывать БЕЗ кавычек, иначе они буду воприняты как текстовые переменные и команда не выполнится. И наоборот все текстовые строки, которые присваиваются переменным или используются в сприктах должны быть В кавычках.
17. Некоторые команды не принимают группы, а только объекты по отдельности (например команда ordergetin).
На данный момент это все, руководство будет расширяться по мере продвижения работы над миссией (или если его дополните).