Animationen in Blitz selber und veränderbaren Werten
Übersicht BlitzBasic Blitz3D
onkelz89Betreff: Animationen in Blitz selber und veränderbaren Werten |
Mo, Jun 11, 2007 8:22 Antworten mit Zitat |
|
---|---|---|
Hi,
Hab mir das mit SetAnimKey() angeschaut (Beitrag unter dem hier), klingt soweit gut, aber ich habe spezielle Animationen und zwar möchte ich beispielsweise, dass sich 2 Personen zur Begrüßung die Hand geben. Habe für eine Person folgende Gelenke als (später unsichtbare) Cubes erstellt: Hals Schultern Ellbogen Hand usw (das sind nur die interessanten jetzt) Soweit klar, bisher auf diese Art: Code: [AUSKLAPPEN] If NextPositionAr=1 Then ;Ausgangsstellung
ok=0 If EntityPitch(Roberarm)<-13 Then TurnEntity Roberarm,5,0,0 Else If EntityPitch(Roberarm)<-11 Then TurnEntity Roberarm,1,0,0 Else ok=ok+1 EndIf If EntityPitch(Roberarm)>13 Then TurnEntity Roberarm,-5,0,0 Else If EntityPitch(Roberarm)>11 Then TurnEntity Roberarm,-1,0,0 Else ok=ok+1 EndIf If EntityPitch(Loberarm)<-13 Then TurnEntity Loberarm,5,0,0 Else If EntityPitch(Loberarm)<-11 Then TurnEntity Loberarm,1,0,0 Else ok=ok+1 EndIf If EntityPitch(Loberarm)>13 Then TurnEntity Loberarm,-5,0,0 Else If EntityPitch(Loberarm)>11 Then TurnEntity Loberarm,-1,0,0 Else ok=ok+1 EndIf If EntityYaw(Roberarm)<72 Then TurnEntity Roberarm,0,5,0 Else If EntityYaw(Roberarm)<74 Then TurnEntity Roberarm,0,1,0 Else ok=ok+1 EndIf If EntityYaw(Roberarm)>78 Then TurnEntity Roberarm,0,-5,0 Else If EntityYaw(Roberarm)>76 Then TurnEntity Roberarm,0,-1,0 Else ok=ok+1 EndIf If EntityYaw(Loberarm)<-78 Then TurnEntity Loberarm,0,5,0 Else If EntityYaw(Loberarm)<-76 Then TurnEntity Loberarm,0,1,0 Else ok=ok+1 EndIf If EntityYaw(Loberarm)>-72 Then TurnEntity Loberarm,0,-5,0 Else If EntityYaw(Loberarm)>-74 Then TurnEntity Loberarm,0,-1,0 Else ok=ok+1 EndIf If EntityRoll(Roberarm)<-43 Then TurnEntity Roberarm,0,0,5 Else If EntityRoll(Roberarm)<-41 Then TurnEntity Roberarm,0,0,1 Else ok=ok+1 EndIf If EntityRoll(Roberarm)>-37 Then TurnEntity Roberarm,0,0,-5 Else If EntityRoll(Roberarm)>-39 Then TurnEntity Roberarm,0,0,-1 Else ok=ok+1 EndIf If EntityRoll(Loberarm)<-43 Then TurnEntity Loberarm,0,0,5 Else If EntityRoll(Loberarm)<-41 Then TurnEntity Loberarm,0,0,1 Else ok=ok+1 EndIf If EntityRoll(Loberarm)>-37 Then TurnEntity Loberarm,0,0,-5 Else If EntityRoll(Loberarm)>-39 Then TurnEntity Loberarm,0,0,-1 Else ok=ok+1 EndIf If RunterarmWinkelMOM<90 Then TurnEntity Runterarm,0,speed,0 RunterarmWinkelMOM=RunterarmWinkelMOM+speed Else ok=ok+1 If RunterarmWinkelMOM>90 Then TurnEntity Runterarm,0,-speed,0 RunterarmWinkelMOM=RunterarmWinkelMOM-speed Else ok=ok+1 If LunterarmWinkelMOM<-90 Then TurnEntity Lunterarm,0,speed,0 LunterarmWinkelMOM=LunterarmWinkelMOM+speed Else ok=ok+1 If LunterarmWinkelMOM>-90 Then TurnEntity Lunterarm,0,-speed,0 LunterarmWinkelMOM=LunterarmWinkelMOM-speed Else ok=ok+1 If ok=16 Then NextPositionAr=2 EndIf Habe ich die Bewegungen durchgeführt (ich hoffe es gibt da bessere Methoden) Positiv hierbei ist aber, dass man einfach weitere Abfragen einbringen kann, um zu testen ob zB eine weitere Hand in der Nähe ist und man animiert dann das "Hand geben". Gibt es bessere und einfachere Methoden??? Vielen Dank im Vorraus |
||
V4LL3 |
Mi, Jun 20, 2007 17:17 Antworten mit Zitat |
|
---|---|---|
Ich wüsste da nur eine Einfachere Methode...
1. Du moddelst 2 Figuren und erstellst alles im Moddelinprogramm (sprich die Bones etc. für die Animation) 2. Lade das ganze und anmire das ganze in B3D 3. Benutze aber nur die erstellten Figuren für deine Abfragen => Nachteil... Das "Handschütteln" könnte etwas ungenau bzw. unkoordiniert werden, da du bei diesem einfachen Beispiel jetzt auch von hinten die Hand geben kannst ^^ aber den Bereich kannst du ja noch unter der Figur einschränken... Ich hoffe, dass das verständlich ist... wenn nicht, spamt mich zu oder schlagt mich dafür :p |
||
Meine HP http://vallerockt.ohost.de/
Verbesserungsvorschläge für die HP bitte als PN an mich |
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group