Пример демонстрирует анимацию *.smd и *.md2 моделей
Поместим на форму GLScene, GLSceneViewer, GLCadencer, GLMaterialLibrary. Cоздадим камеру, источник света, dummyCube, двух актёров (Mesh Objects => Actor), сетку (Special Objects => XYZGird) и 4 кнопки (Бег, Смерть, *.smd, *.md2) и один CheckBox. Камеру направим на DummyCube1, а Актёра2 (Actor2) опустим (так как размеры его модели немного меньше чем размеры модели Актёра1 и его ноги не достают до сетки): y = -6. И не забудем сделать видными текстуры Actor2 => Material => Texture => Disabled = False .
Дальше начинаем кодить, при создании формы задаём исходную папку (оттуда будем брать текстуры, модели…):
Далее загружаем модели, анимацию и текстуры для Актёров, включаем видимость скелетной анимации, а так же делаем невидимым второго Актёра и выключаем кнопку SMD(*.smd) :
baseAnimation – начальная анимация (её актёры будут исполнят сразу после появления); Для Актёра2 (Actor2) мы используем модель формата *.md2 и вся её анимация хранится в одном файле (в нашем случае в Quake2Animations.aaf ), а для формата *.smd приходится загружать анимацию отдельно. Текстуры первому Актёру(Actor1) мы не задали поскольку текстура (у формата *.smd находится автоматически если создана MaterialLibrary). Далее при нажатии на кнопку “Бег” Актёр должен бежать (проигрываться анимация):
А при нажатии на кнопку “Смерть” Актёр должен умирать:
При нажатии на ЧекБокс должен быть виден скелет модели (только у *.smd):
Ну и старый способ вращения вокруг нашего Актёра:
Не забудем про смену формата моделей Актёров:
И новый способ приближения камеры к Актёру(если на мышке есть калёсик):
Что касается формата *.3ds то он вставляется аналогично формату *.md2 (загрузка модели и текстуры), но с анимацией я буду разбираться! =))