Итак, уже (сбился со счёту который) раз меня об этом спрашивают.
Специально написал без синхронизации, а то м.б. народ запутается)
Для запуска семпла нужен Blitz3D версии 1.98 и желательно понимающий русские комментарии
Вся необходимая медия - в аттаче.
Итак:
Graphics3D 800,600,32,2 ; Объявляем графический режим
SetBuffer BackBuffer() ; и иже с ним - короче, без этого никак в любой проге
cam = CreateCamera() ; Камера,
CreateLight() ; свет - тоже неотъемлемые части любой проги
man = LoadAnimMesh("MedicTFC.b3d") ; Грузим модельку перца
PositionEntity man,0,-50,100 ; Отдаляем от камеры чтоб видно было
idle = LoadAnimSeq(man, "Idle.b3d") ; Вот так грузим первую анимацию
run = LoadAnimSeq(man, "run.b3d") ; Точно так же - вторую
; В переменных run и idle появятся порядковые номера анимации - не более того
; Они назначаются автоматом при загрузке анимации в том порядке, в котором
; эта анимация была загружена. Например, в данном случае, idle будет = 1, а
; run = 2, ноль - это та анимация, которая изначально содержалась в модели
; (Если стояла галка "сохранить анимацию")
Repeat ; Главный цикл
If KeyHit(2) Then Animate man, 1,.5,run,10 ; По нажатию клавиш анимируем мужика
If KeyHit(3) Then Animate man, 1,1,idle,10
; Обратите внимание на 3-й параметр
; Собсно туда и указывают, какую анимацию запускать
; Остальные параметры (режим, скорость, плавность переключания)
; выбирают по ситуации, это, думаю, понятно
; Если непонятно - читайте справку
UpdateWorld() ; Для того чтобы работала анимация, UpdateWorld обязателен!
RenderWorld() ; Рендер
Text 20,20,"PRESS 1 TO RUN AND 2 TO STOP" ; Немного текста
Flip 1 ; Вертикальная синхронизация включена
Until KeyHit(1) ; Выход из главного цикла - по нажатию клавиши Ескейп
End ; Конец всея проги
Хинт: Если скопировать модель с загруженными анимациями при помощи CopyEntity, то и анимация тоже будет в скопированной модели
Так что грузим с винта всего 1 раз а потом только копируем.