forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Анимация персонажа (http://forum.boolean.name/showthread.php?t=7974)

Baisangur 13.03.2009 17:29

Анимация персонажа
 
Приветствую уважаемы форумчане!
У меня есть персонаж, в максе одел его на бипед, анимировал ходьбу. Когда я экспортирую его пипелайном в .b3d то в Блице все отлично анимириуется, но мне нужно чтобы персонаж был отдельным мешем а анимация грузилась по отдельности(LoadAnimSeq).
Я сделал анимацию и сохранил её пипелайном оставив лишь галочки "Export Animation" и "Export Bones".
Когда я в блице пишу такой код:
Код:

model=LoadAnimMesh("mesh.b3d")
anim=LoadAnimSeq(model, "anim.b3d")
child=FindChild(model, "cloth")
Animate(child, 1, 0.3, anim)

То ничего не анимируется, вариант с тем, чтобы вместо child написать model в комманде Animate также не прокатил. Подскажите чего делать, что я упустил?

Colossus 13.03.2009 18:27

Ответ: Анимация персонажа
 
хм.. вроде достаточно просто) кароче, сделай анимацию спокойного стояния (idle) и пропиши:

Код:

Global idle=LoadAnimSeq(model,"Idle.b3d")
потом в цикле:

Код:

If Not Animating(model) Animate model,3,1,idle
If KeyDown(кнопка на которую бежать)  If AnimSeq (model)<>беговая анимка Animate urban,3,0.5,беговая анимка

вроде так) если не прав поправьте)

так же потом прописывай стрейфы и бег назад:

Код:

If KeyDown(бег вправо)  If AnimSeq (model)<>бег вправо Animate model,3,0.5,стрейф вправо
If KeyDown(бег влево)  If AnimSeq (model)<>бег влево влево Animate model,3,0.5,стрейф влево
If KeyDown(бег назад)  If AnimSeq (model)<>бег назад Animate model,3,0.5,бег назад


Baisangur 13.03.2009 18:38

Ответ: Анимация персонажа
 
Terminator, спасибо за ответ, но ты не совсем меня понял. У меня вообще не анимируется ничего, когда и меш и анимация в одном файле то все ок, а когда в разных то просто стоит меш и не двигается. Я грешу на то, что не правильно настроил экспорт... Для меша я ставил галки на экспорт только меша. Для анимации, только анимацию и кости. Но ничего не вышло.. =(

Colossus 13.03.2009 18:42

Ответ: Анимация персонажа
 
хы) кароч подробно поясняем...

при экспорте модели с костями не нада ставить галочку напротив Export Bones

просто экспортишь модель

затем сделав анимку прячешь модель в максе чтобы были видны тока кости.. и уже на этот раз ставишь галочку на Export Bones

вооот...

ну а потом делай как я написал) должно сработать)

Baisangur 13.03.2009 19:26

Ответ: Анимация персонажа
 
Охх... Зделал все, как ты описал, но опять модель просто стоит....
Вот какие галочки я ставлю при экспорте анимации:
Meshes
Materials
Textures
Relative paths
Export Animation(без нее блиц говорит что ентити не имеет анимации, странно однако)

Вот какие для экспорта модели:
Meshes
Materials
Textures
Relative paths
Export Animation
Export Bones

Код всей программы:
Код:

Graphics3D 640,480,16,2


cam=CreateCamera()
                PositionEntity(cam, 0, 50, -250)

l=CreateLight()


model=LoadAnimMesh("mesh.b3d"); Читаем модель персонажа с диска
anim=LoadAnimSeq(model, "anim.b3d"); Читаем анимацию для модели персонажа
Animate(model, 1, 0.3, anim); Анимируем со скорость 0.3



Repeat

UpdateWorld()
RenderWorld()
Flip()
Until KeyHit(1)
End


Colossus 13.03.2009 19:46

Ответ: Анимация персонажа
 
аа... ну над наверно анимку то между Repeat и Until Keyhit(1) тоесть:

Код:

Graphics3D 640,480,16,2
Setbuffer Backbackbuffer() это тож не забывай писать для правильности работы проги))

cam=CreateCamera()
PositionEntity cam, 0, 50,-250

l=CreateLight()

model=LoadAnimMesh("mesh.b3d")
anim=LoadAnimSeq(model, "anim.b3d")

Repeat
Animate model, 1, 0.3, anim ; тоесть им просто он у тебя будит постоянно анимиться)
UpdateWorld()
RenderWorld()
Flip()
Until KeyHit(1)
End

ну нахрена тебе где Animate (model, 1, 0.3, anim) скобки?! просто Animate model, 1, 0.3,anim

пробуй кароч)

Baisangur 13.03.2009 19:57

Ответ: Анимация персонажа
 
Скобки =)) люблю скобки, они помогают вообще ограничить понятия что есть функция, а что, что-то другое.. Вообще я думаю в Бейсике необходимо сделать скобки обязательным свойством при написании кода.

Насчет того, что Animate должен быть в цикле - это не так, при таком подходе просто постоянно, с каждой итерацией цикла, анимация будет устанавливаться в первый кадр.

Colossus 13.03.2009 19:59

Ответ: Анимация персонажа
 
на я хз) у меня анимируется все))

ABTOMAT 13.03.2009 21:59

Ответ: Анимация персонажа
 
www.blitz-coder.narod.ru - в статьях ищешь экспорт моделей со скелетной анимациекй в b3d. Там всё подробно как раз как ты просил.

http://www.blitz-coder.narod.ru/text/export/export.htm пока открывалась редактилка поста уж и сам нашёл

Baisangur 14.03.2009 12:33

Ответ: Анимация персонажа
 
Огромное спасибо! Все получилось, персонаж ожил ;)

Colossus 14.03.2009 12:39

Ответ: Анимация персонажа
 
ну вот) все правильно сделал)


Часовой пояс GMT +4, время: 17:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot