Объясню что тебе нужно разобрать. При загрузке модели, которую тебе нужно анимировать в программе используй команду LoadAnimMesh, именно она загружает модель со всеми чилдами входящими в нее, в отличие команды LoadMesh(), которая объединяет все чилды в один меш и мы уже не сможим получить доступ к ним. Если у тебя анимация и модель находиться в одном файле, то тебе, чтобы вычленить Часть анимации нужно использовать ExtractAnimSeq(entity, frameStart, frameEnd), если же ты хранишь анимацию в отдельном файле от модели, то тогда используй команду LoadAnimSeq(entity, "file.b3d"). Причем, при создании анимации со скелетом ты этот самый скелет крепишь именно к какому-то чилду в модели перед экспортом в б3д. Чтобы найти этот чилд с анимацией, тебе нужно воспользоваться командой FindChild(model, "name"), причем тут очень важен регистр твоего названия, например чилд с именем "aNiMaTe" и "animate" будут разными чилдами, учти это. Когда ты найдешь этот чилд с анимацией всю обработку анимации веди с ним, то есть запускай анимацию именно для этого чилда, а не для модели. Теперь пойми, что "Запускать" и "Обновлять" это разные вещи, обновление анимации ведет команда UpdateWorld() и ее лучше ставить прямо перед командой RenderWorld(), а вот чтобы ЗАПУСТИТЬ анимацию нужно единожды вызвать команду Animate. Я например пользуюсь следующей схемой : Проверяю нажата ли нужная кнопка, проверяю проигрывается ли необходимая секвенция, и если не проигрывается, то запустить анимацию, также и при отпускании, проверяю, если не нажаты кнопки движения (или действия), то проиграть анимацию ожидания, либо вообще остановить анимацию. Теперь приблизительный код, который должен у тебя сложиться в результате понимания всего что я тебе написал :
model = LoadAnimMesh("model.b3d")
animChild = FindChild(model, "Animate")
seqIdle = ExtractAnimSeq(animChild, 0, 19)
seqRun = ExtractAnimSeq(animChild, 20, 40)
Repeat
If KeyDown(200) Then
If AnimSeq(animChild) <> seqRun Then Animate animChild, 1, 0.2, seqRun
Else
If AnimSeq(animChild) <> seqIdle Then Animate animChild, 1, 0.2, seqIdle
EndIf
UpdateWorld()
Renderworld()
Until KeyDown(1)
end