forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   LoadAnimSeq подскажите как этим пользоваться (http://forum.boolean.name/showthread.php?t=9140)

MadMax 14.09.2009 02:21

LoadAnimSeq подскажите как этим пользоваться
 
Доброго, всем, времени суток.
Столкнулся я с одной проблемой. Решил наконец-то воспользоваться командами анимации. Загрузил модель LoadAnimMesh и запустил анимацию через Animate - все заработало. Затам я узнал на БлицБейсик, что одной модели можно применять анимацию из другой, главное, чтобы названия костей были идентичны.
Нашел как это сделать здесь:
http://www.blitzbasic.com/Community/...hp?topic=42239
Проблема в том, что у меня этот код не заработал.
Переменные, которым присваивались LoadAnimSeq, были все время равны 0.
При этом, мне кажется в этом коде ошибка, нужно вместо:
Animate Mesh,1,0.3,seqs(5)
использовать:
Animate FindChild(Mesh,<имя меши>),1,0.3,seqs(5),
хотя, может я не прав и это зависит от версии блица.
У меня версия 1.98.
Помогите, пожалуйста, разобраться в чем здесь проблема.

Raion 14.09.2009 13:06

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
вместо seqs(5) просто 5

loadanimseq model,"walk".b3d"
loadanimseq model,"death.b3d"

animate model,1,0.5,1


FINDCHILD это совсем другая команда она тут совсем не нужна!

MadMax 14.09.2009 14:41

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Попробую расписать ситуацию по-подробнее:
model.b3b - 3D модель(меш+biped) не анимированая
walk.b3d - biped с анимацией ходьбы(соответственно без меши)
death.b3d - biped с анимацией смерти(то же без меши)
..... и т.д.
Эти файлы получаю экспортом из 3DSMax 9 с помощью пайплайна.

Код:

model=LoadAnimMesh("Model.b3d")

walk=LoadAnimSeq(model, "walk.b3b")
death=LoadAnimSeq(model, "death.b3b")

Animate(model, 1, 0.03, walk, 1)

В итоге никакого результата. Модель - неподвижна.
Я понимаю, что дело в кривых руках, но на какой стадии они напортачили понять не могу.
И еще один момент. Если анимировать модель model.b3b и загрузить как описано выше, то анимации то же не будет, т.к. нужно находить в model именно ту меш, которая была проскинена в максе с помощью файндчилд.
Но если при этом попытаться применить анимацию walk или death, будет проигрываться анимация, которая была в файле model.b3b, т.к. walk и death у меня постоянно равны 0, чего , как я понимаю, быть не должно.
Может я неправильно экспортирую модель или анимацию? Может не те галочки оставляю/убираю в экспортере? Пробовал даже оставлять все, кроме бонмешес... Может дело в версии блица или макса?

Colossus 14.09.2009 14:49

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
хм...

пересмотри внимательно свой код.. т.к у других все работает)

Arles 15.09.2009 00:28

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Вложений: 1
Попробуй сделать как описано здесь...

ABTOMAT 15.09.2009 00:49

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
http://forum.boolean.name/showthread.php?t=7338
http://blitz-coder.narod.ru/text/export/export.htm

FAQ читал?

MadMax 15.09.2009 09:38

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Всем ОГРОМНОЕ спасибо. Думал уже никогда не получится.
За вчерашний вечер прочитал кучу туроров на эту тему, но так и ни чего не добился.
АВТОМАТ тебе спасибо за ссылку на сэмпл. Подставил туда свои модели!!!!! Все заработало!!!!
Буду ковыряться в коде, хотя на первый взгляд, все один в один.
И еще возник вопрос. Можно ли как-нибудь применить одну анимацию одним костям, а другую другим. Или при этом придется саму меш разрезать на куски?

Arles 15.09.2009 11:10

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
думаю можно при помощи findchild

ABTOMAT 15.09.2009 18:44

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Цитата:

Можно ли как-нибудь применить одну анимацию одним костям, а другую другим.
Нельзя, в Ксорсе добавили такую фишку.
На блице - тока резать

Arles 15.09.2009 21:10

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Цитата:

Сообщение от ABTOMAT (Сообщение 118624)
Нельзя, в Ксорсе добавили такую фишку.
На блице - тока резать

А разве нельзя найти кость файндчайлдом и передать ей анимацию?! Я конечно понимаю, что вариант через.опный, но чем не выход?!

Knightmare 15.09.2009 21:17

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Цитата:

Сообщение от Arles (Сообщение 118660)
А разве нельзя найти кость файндчайлдом и передать ей анимацию?! Я конечно понимаю, что вариант через.опный, но чем не выход?!

Тем что оно не работает =) Однако при должной мере задротства можно заставить.

jimon 15.09.2009 21:18

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
На блице в принципе можно разным костям разную анимацию сделать,
просто интерфейса нет для этого.

Randomize 16.09.2009 00:36

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Как вариант в хиддене проигрывать анимацию первой модели и передавать ориентацию чилдов нашей модели.

Чтото типа:

Код:

mshRun=LoadAnimMesh("run.b3d")
mshShot=LoadAnimMesh("Hump.b3d")


Animate(mshRun, 1, 0.03)
Animate(mshShot, 1, 0.03)


repeat

rotateentity FindChild(mshRun,"Arms"),entityYaw( FindChild(mshShot,"Arms") ),entityPitch(FindChild( mshShot,"Arms") ),entityRoll( FindChild(mshShot,"Arms") )



updateworld()
renderworld()
flip()
until keyhit(1)

Правда очень не рекомендую так делать

H@NON 16.09.2009 10:23

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
Клевый способ, спасибо за инфу, только поворачивать кости нужно уже после UpdateWorld()

MadMax 16.09.2009 10:49

Ответ: LoadAnimSeq подскажите как этим пользоваться
 
я вот придумал еще вариант. а что, если в максе меш натянуть сразу на 2 бипеда. обозвать их как ноги и торс. к верхней части меши прискиниваем бипед с именем торс, а к нижней - с именем ноги. далее создаем для каждого бипеда соответствующие анимации. а в блице находим нужный бипед и применяем ему именно его анимацию. может идея не новая и кто-нибудь проверял этот метод? сработает ли он?


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

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