|
3D-программирование Вопросы, касающиеся программирования 3D мира |
13.03.2009, 17:29
|
#1
|
ПроЭктировщик
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений (для 23 пользователей)
|
Анимация персонажа
Приветствую уважаемы форумчане!
У меня есть персонаж, в максе одел его на бипед, анимировал ходьбу. Когда я экспортирую его пипелайном в .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 также не прокатил. Подскажите чего делать, что я упустил?
Последний раз редактировалось Baisangur, 13.03.2009 в 18:12.
|
(Offline)
|
|
13.03.2009, 18:27
|
#2
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Анимация персонажа
хм.. вроде достаточно просто) кароче, сделай анимацию спокойного стояния (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,бег назад
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.03.2009, 18:38
|
#3
|
ПроЭктировщик
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений (для 23 пользователей)
|
Ответ: Анимация персонажа
Terminator, спасибо за ответ, но ты не совсем меня понял. У меня вообще не анимируется ничего, когда и меш и анимация в одном файле то все ок, а когда в разных то просто стоит меш и не двигается. Я грешу на то, что не правильно настроил экспорт... Для меша я ставил галки на экспорт только меша. Для анимации, только анимацию и кости. Но ничего не вышло.. =(
|
(Offline)
|
|
13.03.2009, 18:42
|
#4
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Анимация персонажа
хы) кароч подробно поясняем...
при экспорте модели с костями не нада ставить галочку напротив Export Bones
просто экспортишь модель
затем сделав анимку прячешь модель в максе чтобы были видны тока кости.. и уже на этот раз ставишь галочку на Export Bones
вооот...
ну а потом делай как я написал) должно сработать)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
13.03.2009, 19:26
|
#5
|
ПроЭктировщик
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений (для 23 пользователей)
|
Ответ: Анимация персонажа
Охх... Зделал все, как ты описал, но опять модель просто стоит....
Вот какие галочки я ставлю при экспорте анимации:
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
|
(Offline)
|
|
13.03.2009, 19:46
|
#6
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Анимация персонажа
аа... ну над наверно анимку то между 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
пробуй кароч)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
13.03.2009, 19:57
|
#7
|
ПроЭктировщик
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений (для 23 пользователей)
|
Ответ: Анимация персонажа
Скобки =)) люблю скобки, они помогают вообще ограничить понятия что есть функция, а что, что-то другое.. Вообще я думаю в Бейсике необходимо сделать скобки обязательным свойством при написании кода.
Насчет того, что Animate должен быть в цикле - это не так, при таком подходе просто постоянно, с каждой итерацией цикла, анимация будет устанавливаться в первый кадр.
|
(Offline)
|
|
13.03.2009, 19:59
|
#8
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Анимация персонажа
на я хз) у меня анимируется все))
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
13.03.2009, 21:59
|
#9
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Анимация персонажа
www.blitz-coder.narod.ru - в статьях ищешь экспорт моделей со скелетной анимациекй в b3d. Там всё подробно как раз как ты просил.
http://www.blitz-coder.narod.ru/text/export/export.htm пока открывалась редактилка поста уж и сам нашёл
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.03.2009, 12:33
|
#10
|
ПроЭктировщик
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений (для 23 пользователей)
|
Ответ: Анимация персонажа
Огромное спасибо! Все получилось, персонаж ожил
|
(Offline)
|
|
14.03.2009, 12:39
|
#11
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Анимация персонажа
ну вот) все правильно сделал)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:20.
|