Экспорт анимации с нуля.
Автор: -=FileMoon=-
В этой статье я расскажу о создании анимированного объекта с нуля в 3D-пакете и написание плагина экспорта (тоже с нуля). Также я прикрепляю к статье исходные коды плагина и вьювера анимации для VC++6.
Буду надеяться, что эта статья поможет начинающим разработчикам полностью исчерпать вопросы об Keyframe Morphing’е.
8<---------
Введение
Что нам понадобится
Анимирование объекта
Написание плагина экспорта
1. Настройка компилятора
2. Описание базовых классов / функций DLL
3. Описание базовых классов / функций экспорта
4. Реализация окна параметров
5. Создание def – файла
Экспорт из 3Ds-MAX
Введение
В Интернете очень мало русскоязычных статей, описывающих общеизвестные методы анимирования объектов. Поэтому начинающие разработчики часто задают на форумах один и тот же вопрос: “Экспорт и реализация анимации”.
Из моей предыдущей статьи можно было понять суть применения такого метода анимирования объектов как Keyframe Morphing (морфирование по ключевым кадрам). Но я решил написать новую статью, полностью исчерпывающую эту тему.
Что нам понадобится
Во-первых, для создания анимированных мешей мы будем использовать всеми любимый 3DS-Max. Лучше последней версии 8. Для анимирования персонажей лучше использовать бипед (готовый скелет, к которому стоит только привязать сетку и можно начать анимировать). Но в нашем случае я не стану затруднять материал, и ограничимся экспортом неживого объекта (будем анимировать водяную мельницу). Для этого будем использовать кости (bone).
Во-вторых, нам понадобится Visual C++ 6 для написания плагина экспорта и вьювера анимации. Конечно, компилятор вы можете использовать, какой вы предпочитаете, просто мои проекты сделаны в VC++6.
В-третьих, обязательно нужен MaxSdk. Это Setup Development Kit для 3D-Max’а, позволяющий писать утилиты. MaxSdk обычно находится на диске, с которого вы устанавливали сам пакет (поясняю для новичков). После того как MaxSdk установлен, нужно указать к *.h и *.lib директории в компиляторе:
Теперь все необходимое подготовлено и можно начинать.
Анимирование объекта
У нас есть обычная 3d-модель (в нашем случае это мельница). Нам нужно её проанимировать. Я буду сразу описывать наш конкретный случай анимирования мельницы.
Мельница состоит из колеса и основания, причем эти два объекта приаттачены, т.к. мы экспортируем один объект сцены.
Создаем две кости (Create->Systems->Bones) Bone1 и Bone2 с обычными параметрами.
Далее на сетку применяем модификатор skin.
Теперь добавляем в список костей две наши кости.
Далее привязываем все вершины основания к Bone1, а все вершины колеса к Bone2.
Анимируем поворот кости Bone2 на 360 градусов.
Расставляем ключевые кадры через всю анимацию.
Анимация закончена.
Написание плагина экспорта
1. Настройка компилятора
Наш плагин будет представлять DLL-библиотеку (Dynamic Link Library), которую мы в дальнейшем подключим к MAX’у.
Если у вас установлен лицензионный MAX, то смело пропускайте следующий шаг. Но если вы обладатель “крякнутой” пиратской копии, то Debug-конфигурация вам будет недоступна. Вот как решить эту проблему:
Создаем свою собственную конфигурацию, копированием Debug-конфигурации, и назовем её Plug_Debug например.
Далее нужно настроить настройки проекта. Для этого открываем окно Project->Settings, и выполняем следующие действия (для конфигурации Plug_Debug):
• Вкладка Generals: Intermediate files, и Output files выставляем в Plug_Debug.
• Вкладка Debug: Правее поля Executable for debug session нажимаем на кнопку и выбираем exe-файл 3dsmax.exe (это для того, чтобы нам для отладки плагина каждый раз не запускать MAX вручную).
• Вкладка C/C++: в выпадающем списке Category выбираем Code Generation: выставляем поле Use run-time library в Multiheaded DLL.
• Вкладка Link: Output file name выставляем в “ваш_путь_к_3dsmax \ stdplugs \ имя _плагина.dle”.
Компилятор настроен для начала работы над плагином.
28 июня 2006 (Обновление: 25 сен. 2006)