Тема: Оформление
В данной статье вы узнаете о камере и ее чудодейственных свойствах. Как вы знаете во многих картах присутствуют нестандартные камеры (в основном карты жанра RPG, Survival, AoS). Камера играет не мало-мальски важную роль в игре. Под разными ракурсами один и тот же предмет выглядит по-разному (если вы откусите яблоко и повернете его другой стороной оно будет выглядить апетитней конечно). При разработке системы камер нужно учитывать возвышенности и расположение декораций на своей карте. К примеру для ORPG карт (в которых используется большое кол-во импорта и возведение декора в стиле олд-скул) можно позволить камеру от 3его лица. На самом деле в создании системы камер нет ничего сложного, нужно всего-лишь знать базовые возможности редактора. Приступим к созданию системы камер (GUI).
Попробуем сделать регулируемую камеру для ORPG карты.
Пусть у игроков будет возможность регулировать расстояние до героя и угол атаки камеры.
Возьмемся за создание переменных: Создаем 2 реальных переменных (массив). Пусть одна из них отвечает за угол атаки, а другая за расстояние до цели. Далее создаем триггер, который при инициализации карты будет ставить первоначальные значения. Пусть угол атаки будет -25 градусов, а расстояние до цели - 375.
Создаем триггер, с событием Every 0.1с (что бы камера не шла "по кадрам"). Далее ищем действие - Set camera field for player, и выбираем расстояние до цели = соответствующая переменная, так же и с углом атаки. Устанавливаем границу высот (очень важная вещь), к примеру на 100, ставим поле зрения на 150. После этого ставим поворот камеры равный повороту взгляда цели (facing of unit), лучше всего вашего персонажа заносить в переменную при выборе. В итоге должен получится такой триггер:
Далее копируем вышеупомянутый триг, и устанавливаем для каждого возможного игрока. Для того что бы не было лишних лагов - убираем галочку -Изначально включен- у этих триггеров. Потом делаем триггер инициализации, в котором будет проверятся занят (ли?) тот или иной слот. Теперь приступим к регулировке камеры. Создаем 6 триггеров (для того что бы не запутаться в одном большом, хотя как вам удобней (предпочитаю в один тригг=) )). Делаем соответственно события: Нажимает стрелку влево-1, Нажимает стрелку вправо-2, Отпускает стрелку влево-3, Отпускает стрелку вправо-4, Каждые 0.05 сек-5, Каждые 0.05 сек-6. (У последних двух убираем галочку -Изначально включен-). После этого ставим действие у триггера 1: Активировать триггер -5, у 2 - Активировать триггер -6, у 3 - Остановить триггер -5, у 4 - Остановить триггер -6. А у триггера -5 ставим условие (Если Угол атаки меньше или равно -5.00) и действие (сделать угол атаки - угол атаки +1), у 6ого такое же условие, со значением -80, и такое же действие, только угол атаки сделать -1 от текущего значения.
Делаем такие 6 триггеров (это так геморно, оптимальней сделать все в 1 как я упоминал выше, но все-таки) для каждого возможного игрока. Потом ставим То же самое на переменную с отдалением и приближением камеры. Протестируйте свой результат и удалите все возможные утечки. На самом деле занимает времени от силы минут 5-10, а результат того стоит.
В такой системе возможно будут наблюдаться ошибки, для уменьшения таких ошибок конвертируйте все триггеры (уже проверенные) в текст.
Примерчик