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=12690)

strayhnd 19.06.2010 19:59

Управляемая голова во время анимации
 
Ребят подскажите, что нужно сделать, чтоб при анимации, к примеру, ходьбы можно было бы управлять поворотом головы вручную? Работает только если не проигрывать анимацию...

Код:

man = LoadAnimMesh("man.b3d")
head = FindChild(man, "Bip01 Head")

Animate man, 1, 1, 0
While Not KeyHit(1)
            If KeyDown(2) Then
                TurnEntity head,1,0,0
        EndIf
        If KeyDown(3) Then
                TurnEntity head,-1,0,0
        EndIf

        UpdateWorld()
        RenderWorld()
        Flip
Wend
End


DeeJex 19.06.2010 21:04

Ответ: Управляемая голова во время анимации
 
сначала
UpdateWorld()
а потом уже управляй головой, но не turn, а меняй переменную поворота и rotate

Hurrit 20.06.2010 16:20

Ответ: Управляемая голова во время анимации
 
Анимируешь ноги, потом, через findchild находишь их, и запускаешь только их анимацию. Затем, находишь голову через тот же findchild, и уже её крутишь через свой код.

DeeJex 20.06.2010 17:06

Ответ: Управляемая голова во время анимации
 
Цитата:

Управляемая голова
ага, головой нужно управлять чтоб не создавать подобные темы, смотреть справку и логически рассуждать(в твоем коде сначала голова поварачивается, а потом ее поварачивает согласно анимации).

Coks 20.06.2010 18:37

Ответ: Управляемая голова во время анимации
 
DeeJex, ты сам пробовал так делать как описал?
P.S. Вообще-то форум для того и создан, что бы темы создавать и направлять начинающих в нужную сторону. Гы!

DeeJex 20.06.2010 18:41

Ответ: Управляемая голова во время анимации
 
Цитата:

Сообщение от Coks (Сообщение 150728)
DeeJex, ты сам пробовал так делать как описал?

а смысл если ошибка очевидна?

strayhnd 22.06.2010 14:29

Ответ: Управляемая голова во время анимации
 
DeeJex, спасибо, теперь все ок. Не пойму только почему в ксорсе этот метод не работает (тоесть работает как в первом посте), хотя все команды идентичны.

Цитата:

Сообщение от Hurrit (Сообщение 150718)
Анимируешь ноги, потом, через findchild находишь их, и запускаешь только их анимацию. Затем, находишь голову через тот же findchild, и уже её крутишь через свой код.

Расскажи пожалуйста чуть подробнее, как реализовать это начиная с импорта анимации из 3дмакса (ну или в общем случае). Я так думаю, нужно скрыть или удалить незадействованные части скелета при импорте, но боюсь что нарушится иерархия и блитц не захочет грузить эту анимацию. Вобщем, буду разбираться и экспериментировать...

Hurrit 23.06.2010 22:11

Ответ: Управляемая голова во время анимации
 
Ну смотри: Голову ты называешь head. У тебя есть ноги, допустим называешь их legs (учитываем регистр), ты анимируешь их в 3дс макс и экспортируешь через б3д пайплайн. Теперь, пишешь в коде следующее:

PHP код:

model=LoadAnimMesh("model.b3d")
   
head=FindChild(model,"head")
   
legs=FindChild(model,"legs")
      
Animate legs,1

While Not KeyHit(1)

      If 
KeyDown(2Then 
         TurnEntity head
,1,0,0
      
EndIf
      If 
KeyDown(3Then 
         TurnEntity head
,-1,0,0
      
EndIf   

   
UpdateWorld
   RenderWorld
   Flip
Wend 

Ну, что-то вроде этого.

strayhnd 24.06.2010 17:02

Ответ: Управляемая голова во время анимации
 
У меня анимация работает только если анимировать основную модель, а когда я пытаюсь анимировать какую-нибудь часть модели, получаю ошибку "Entity has no animation".

Тоесть это работает:
PHP код:

model=LoadAnimMesh("model.b3d"
Animate model,


а это не работает (Entity has no animation):
PHP код:

model=LoadAnimMesh("model.b3d"
legs=FindChild(model,"legs"
Animate legs,

В чем может быть проблема? Если в экспорте, тогда почему в первом случае анимация проигрывается? :)

Coks 27.06.2010 22:36

Ответ: Управляемая голова во время анимации
 
Цитата:

Сообщение от DeeJex (Сообщение 150729)
а смысл если ошибка очевидна?

Теория немного отличается от практики. Я попробовал так - у меня не получилось. Если предоставишь работающий код буду благодарен :)


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

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