Главная » Статьи » GLScene » Для новичков |
Вставка моделей и их анимация Пример демонстрирует анимацию *.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 . Дальше начинаем кодить, при создании формы задаём исходную папку (оттуда будем брать текстуры, модели…): SetCurrentDir(ExtractFilePath(Application.ExeName)+'Media'); Далее загружаем модели, анимацию и текстуры для Актёров, включаем видимость скелетной анимации, а так же делаем невидимым второго Актёра и выключаем кнопку SMD(*.smd) : procedure TForm1.FormCreate(Sender: TObject); baseAnimation – начальная анимация (её актёры будут исполнят сразу после появления); Для Актёра2 (Actor2) мы используем модель формата *.md2 и вся её анимация хранится в одном файле (в нашем случае в Quake2Animations.aaf ), а для формата *.smd приходится загружать анимацию отдельно. Текстуры первому Актёру(Actor1) мы не задали поскольку текстура (у формата *.smd находится автоматически если создана MaterialLibrary). procedure TForm1.BegClick(Sender: TObject); А при нажатии на кнопку “Смерть” Актёр должен умирать: procedure TForm1.SMERTClick(Sender: TObject); При нажатии на ЧекБокс должен быть виден скелет модели (только у *.smd): procedure TForm1.CheckBox1Click(Sender: TObject); Ну и старый способ вращения вокруг нашего Актёра: procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Не забудем про смену формата моделей Актёров: procedure TForm1.SMDClick(Sender: TObject); procedure TForm1.MD2Click(Sender: TObject); И новый способ приближения камеры к Актёру(если на мышке есть калёсик): procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); Что касается формата *.3ds то он вставляется аналогично формату *.md2 (загрузка модели и текстуры), но с анимацией я буду разбираться! =))
| |
Просмотров: 2688 | Комментарии: 3 | Рейтинг: 5.0/1 |
Всего комментариев: 3 | ||||
| ||||
Для новичков [1] |
Эффекты [2] |
Материалы [1] |
Физика [0] |
Другое [28] |