netlib.narod.ru | < Назад | Оглавление | Далее > |
Когда дело доходит до анимации трехмерных объектов в ваших играх, появляются две возможности: жестко прописать анимационную последовательность в коде программы или создать ее в редакторе анимации. Поскольку жесткое кодирование — это источник проблем в будущем, наилучшим вариантом является использование редактора анимации. Если предположить, что вы выбрали лучший путь и решили воспользоваться редактором анимации, открывается новый набор возможностей: можно выбрать коммерческий программный пакет для редактирования анимации, а затем разобраться в том, как интерпретировать создаваемые им файлы, либо можно написать собственный редактор анимации. Здесь появляются хитрости.
Использование готового редактора может казаться лучшим вариантом, но в этом случае вам придется разобраться как считывать данные редактора и как использовать их в своей игре. Вы также будете зависеть от графика выпуска новых версий программы. Что произойдет, если в новой версии производитель изменит формат данных? Вам придется заново переписывать код чтения файлов редактора.
Несмотря на перечисленные недостатки коммерческих редакторов, у них есть одно важное преимущество: вам не придется тратить время на программирование собственного редактора! Программирование инструментальных средств — одна из самых больших частей игрового проекта, и чем меньше вам придется программировать — тем лучше.
Большинство разработчиков любят писать собственный код, так что для них создание своего редактора может на первый взгляд показаться лучшим вариантом. Это не совсем справедливо в случае редактирования анимации. Как я говорил минуту назад, если вы решите сами программировать редактор анимации, то потратите значительное время на разработку редактора, а не на работу над самой игрой. Но в конце вы получите собственный редактор анимации, который работает независимо от того, что делают другие компании. Это — самая большая польза от написания собственного редактора.
Другая польза от написания собственного редактора — получение полного контроля над системой. Вы не должны ждать несколько лет, пока компания X реализует необходимую вам возможность. Вы просто разработаете ее сами. Конечно, это подразумевает, что вы знаете как писать эти чертовы вещи.
Итак, у нас получилась абсолютно двусмысленная дискуссия о том, что лучше — написать собственный редактор или воспользоваться готовым. Я оставляю выбор за вами, так как мое мнение — это всего лишь мнение. Тем времением, позвольте мне показать вам как начать разработку собственного редактора анимации. Прежде чем перейти к коду, необходимо познакомиться с составными частями редактора анимации. Далее я приведу описание следующих компонентов:
Для редактора анимации вам потребуется область редактирования и панель инструментов для кнопок команд. Эти базовые компоненты интерфейса показаны на рис. 11.15.
Рис. 11.15. Интерфейс редактора анимации
Рисунок выглядит очень похожим на программу редактирования карт. Слева расположено окно редактирования, а справа — панель инструментов. Кроме того, в верхнем левом углу окна редактирования отображается отладочная информация. В окне панели инструментов располагаются кнопки и информация об анимации.
Во всех хороших редакторах предусмотрены команды для выполнения различных функций, и данный редактор не стал исключением из правила. Хорошей отправной точкой для редактора может служить следующий набор команд:
Чтобы вдохнуть жизнь в анимацию необходимы кадры, и поэтому редактору анимации необходимы команды, позволяющие манипулировать кадрами. Вам потребуются команды для создания кадров, удаления кадров и средства навигации среди существующих кадров. Кроме того, вам потребуется способ вносить в кадр данные объектов сцены. Это можно делать с помощью полей редактирования, командных кнопок, или комбинируя оба эти метода.
Для трехмерных сцен нужны объекты, так что вам необходим способ добавлять объекты к редактируемой сцене. Потребуются команды для загрузки объектов, их удаления и выбора требуемого объекта в сцене.
Все существующие в мире данные анимации не смогут помочь вам, если вы не можете увидеть анимацию в действии. Вам помогут команды, имеющиеся на любом пульте дистанционного управления, которые позволят запускать и останавливать анимацию, перематывать ее и даже воспроизводить в ускоренном темпе.
Любой редактор будет не слишком хорош, если у вас нет возможности сохранить полученные данные анимации и загрузить их. Поэтому абсолютно необходимы кнопки Load и Save. Начните с простейших операций сохранения и загрузки, а затем можете их расширить, добавив дополнительные функции. Как насчет навигационной системы, позволяющей вам выбирать загружаемую анимацию, видя ее начальный кадр? Это будет выглядеть очень круто!
Процесс редактирования может быть настолько прост или настолько сложен, как вам хочется. Возьмем для примера 3ds max. В этой программе есть тысячи параметров и команд для редактирования анимации. Вы можете потратить годы, прежде чем узнаете все об их назначении и действии. Я работал с этой программой как профессиональный аниматор более четырех лет, и все еще продолжаю узнавать о ней что-то новое почти каждый день! Так как возможности безграничны, я предлагаю начать вам с самых основ.
Поскольку вам нужна сцена, первое, что должен сделать редактор — предоставить вам возможность загрузить трехмерные объекты. Как только у вас будут объекты, потребуется возможность создавать для объектов ключевые кадры. После этого потребуется возможность модифицировать ключевые кадры для анимации объекта. Этот процесс показан на рис. 11.16.
Рис. 11.16. Процесс редактирования
Рис. 11.16 показывает основные этапы, вовлеченные в процесс редактирования. Вы загружаете объекты чтобы создать сцену, создаете ключевые кадры для объектов, а затем модифицируете их чтобы создать анимацию.
Чтобы изменять ключевые кадры вам требуется по крайней мере возможность менять местоположение и угол поворота объектов сцены. Позднее вы, возможно, захотите добавить возможность менять масштаб объектов. Я предпочитаю предоставлять пользователям комбинации клавиш, нажатие на которые меняет местоположение и разворот объекта, а также поля редактирования для ввода точных значений. Поля редактирования облегчают ввод повторяющихся команд. Гораздо проще ввести в поле число 180, чем 180 раз нажимать на кнопку «плюс».
Теперь, когда подготовлена вся информация для анимации, с ней необходимо что-то сделать. Здесь в игру вступают функции сохранения и загрузки. Как помните, анимационные наборы очень важны для создания динамических анимаций в вашей игре. Поэтому редактор должен быть способен сохранить созданный в нем анимационный набор. Вам также необходима возможность загрузить созданную ранее анимацию, чтобы отредактировать или просто воспроизвести ее. Для этого вам нужны, по крайней мере, кнопки Save и Load.
netlib.narod.ru | < Назад | Оглавление | Далее > |