[B3D] Animations Demo
Übersicht

antome!!! gesperrt !!!Betreff: [B3D] Animations Demo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Animation läuft durch die Gegend und ändert ab und zu die Richtung, das kann man dazu benutzen um z.B. Tiere in einer Landschaft umher laufen zu lassen ohne ihnen Pfade zuteilen zu müssen.
Die Kamera kann man als Player aus der Ich-Perspektive benutzen. Damit das ganze auf einer Heightmap funktioniert muss man evtl. bei den Y-Werten von MoveEntity und EntityRadius etwas ändern. Code: [AUSKLAPPEN] ; ************************************************************************************************************
; Camera vorwärts bewegen durch drücken der rechten Maustaste ;Als Beispiel den Ninja von Psionics Seite laden ;http://www.psionic3d.co.uk/cgi-bin/imageFolio.cgi?action=view&link=Free%20Stuff/3D%20Models&image=ninja.zip&url=1 ; ************************************************************************************************************ ;Include "C:\Blitz3d\userlibs\keys.bb" Graphics3D 800,600,0,1 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ;Textur für Boden erstellen tex=CreateTexture(128,128,12) SetBuffer TextureBuffer(tex) Color 50,60,80 Rect 0,0,128,20,1 Rect 0,0,20,128 Color 100,120,140 Rect 0,5,128,10,1 Rect 5,0,10,128 ScaleTexture tex,0.001,0.001 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ;Camera Licht usw. SetBuffer BackBuffer() piv = CreatePivot() camera=CreateCamera(piv) CameraRange camera, 0.01,1000 light=CreateLight() PositionEntity piv,0,0,-15 PositionEntity camera,0,2,0 EntityType piv,3 ;Kollisionstyp für die Kamera EntityRadius piv,1,1 ;Radius für die Kamera RotateEntity light,90,0,0 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ;Treppe und Boden erstellen cube = CreateCube() PositionEntity cube,5,-3.9,-5 EntityType cube,4 ;Kollisionstyp für die Treppe TurnEntity cube ,0,45,0 c2 = CopyEntity(cube) MoveEntity c2,0,0.3,-1 c3 = CopyEntity(c2) MoveEntity c3,0,0.3,-1 plane=CreateCube() ScaleEntity plane,1000,0.001,1000 PositionEntity plane, 0,-3.3,0 EntityTexture plane,tex EntityType plane,1 ; Kollisionstyp für den Boden ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ; Cube um Animation herum (Parent) erstellen um auf Collision zu testen pAnim = CreateCube () ScaleEntity pAnim,1,2.5,1 ;auf die richtige Größe skalieren EntityAlpha pAnim,0.0 ;unsichtbar machen EntityRadius pAnim,2.1,2.75 ;Größe für die Kollisionsprüfung ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ; Animation laden, Parent zuweisen ;Anim = LoadAnimMesh("c:\blitz3d\test\Robby2anim4.b3d") ;Animation laden Anim = LoadAnimMesh("c:\blitz3d\test\ninja.b3d") ;Animation laden ScaleEntity Anim,0.5,0.5,0.5 ;Animation auf passende Größe skalieren ;RotateEntity Anim,0,0,0 ;Animation in die selbe Richtung drehen wie Parent Cube EntityParent Anim,pAnim ;Cube als Parent einsetzen MoveEntity Anim,0,-1.1,0 ;Entity Korrektur RotateEntity pAnim,0,225,0 ;Parent Rotieren damit die Animation in die richtige Richtung läuft. seq = ExtractAnimSeq(Anim,1,14) ;Die Laufanimation extrahieren ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ; EntityType pAnim,2 ;Dem Parent nun den Kollisionstyp hinzufügen Collisions 2,1,2,2 ;Kollision zwischen Anim und Boden Collisions 3,1,2,2 ;Kollision zwischen Kamera und Boden Collisions 2,3,1,2 ;Kollision zwischen Anim und Kamera Collisions 3,2,1,1 ;Kollision zwischen Kamera und Anim Collisions 2,4,2,2 ;Kollision zwischen Anim und Treppe Collisions 3,4,2,2 ;Kollision zwischen Kamera und Treppe SeedRnd MilliSecs() ; ============================================================================================================ ; Haupschleife While Not KeyDown(1) xx = MouseXSpeed() ;Horizontale Mausbewegung für Kameradrehung xx = 0-xx ;umkehren TurnEntity piv,0,xx/4,0 ;Kameradrehung If MouseDown(2) ;Kamera vorwärts bewegen wenn rechte Maustaste gefrückt wird If EntityCollided (piv,2) ;wenn Kamera-Kollision mit der Animation = wahr (true) MoveEntity piv,0.0,-0.1,-0.01 ;Animation schiebt Kamera zurück wenn diese auf sie zugeht ;MoveEntity pAnim,0.0,-0.1,-0.02 ;wenn die Kamera (Player) stärker als die Animation ist ElseIf EntityCollided (piv,4) ;wenn Kamera-Kollision mit der Treppe = wahr (true) MoveEntity piv,0,-0.01,0.1 Else ;Vorwärtsbewegung wenn keine Kollision getestet wird MoveEntity piv,0,-0.5,0.1 EndIf EndIf If EntityCollided (pAnim, 1) ;or col = 1 MoveEntity pAnim,0,-0.05,0.043 ;Vorwärtsbewegung und Animationsgeschwindigkeit aufeinander anpassen If col = 0 Then Animate(Anim,1,0.14,seq) : col = 1 ;starte Animation wenn pAnim den Boden berührt und Animation bisher nicht gestartet wurde. ; ############################################################################################################ ; Zufällige Drehung der Animation If rt1 = 0 Or rt2 = 10 Then rt1 = Rand(1,2) If rt1 = 1 Then turn# = Rnd#(-5,0) : rt2 = Rand(0,400) If rt1 = 2 Then turn# = Rnd#(0,5) : rt2 = Rand(0,400) r = Rand(0,30) If col = 2 Or now = 1 And r = 0 Then TurnEntity pAnim,0,turn#,0 : now = 1 ElseIf EntityCollided (pAnim, 3) ;Animate(Anim,1,0.1,-0.01) ElseIf EntityCollided (pAnim, 4) MoveEntity pAnim,0,-0.05,0.043 col = 2 Else MoveEntity pAnim,0,-0.5,0.043 If col = 0 Then Animate(Anim,1,0.14,seq) : col = 1 If rt1 = 0 Or rt2 = 100 Then rt1 = Rand(1,2) If rt1 = 1 Then turn# = Rnd#(-5,0) : rt2 = Rand(0,400) If rt1 = 2 Then turn# = Rnd#(0,5) : rt2 = Rand(0,400) r = Rand(0,30) If col = 2 Or now = 1 And r = 0 Then TurnEntity pAnim,0,turn#,0 : now = 1 EndIf UpdateWorld RenderWorld MoveMouse 400, 300 Flip Wend End ~Editiert~ [B3D] in den Titel eingefügt. Bitte dran denken! MfG D2006 |
||
antome |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Memory Access Violation.
-Bitte immer erst mal testen vor dem Posten bzw. Media-Dateien beifügen. Was hat das sonst für einen Sinn? ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wo kriege ich diesen Ninja/ein Animiertes mesh her? | ||
Programmers dont die. They gosub without return... |
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich denk mal hier ![]() http://www.psionic3d.co.uk/cgi...D%20Models |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
antome!!! gesperrt !!! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@x-pressive
Das Programm ist getestet und funktioniert bei mir einwandfrei wo man die Mediadatei herbekommt steht auch dabei, den Pfad muss man alledings schon selber richtig einstellen, der ist ja bei jedem anders. Wenn ich Quellcode mit Mediadatei gezippt zum download hinterlege ist die nur solange da wie die HP gültig ist. Es wird ja nicht so schwer sein eine Mediadatei runter zu laden. Für alle welche die URL nicht in den Browser bekommen hier der Link zur Seite mit den freien Animationen http://www.psionic3d.co.uk/cgi...D%20Models |
||
antome |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
@antome: Klar habe ich nichts dagegen, in jedem Quellcode erst mal nach allen möglichen Mediadateien und URLs zu suchen und diese mühsam auszuwechseln oder in den Browser zu kopieren. Warum auch nicht? Macht ja Spaß und wir haben alle nichts besseres zu tun ![]() Zitat: Wenn ich Quellcode mit Mediadatei gezippt zum download hinterlege ist die nur solange da wie die HP gültig ist.
Ja meinst du denn, das gilt nur für deine HP und nicht für andere? Aus diesem Grund benutzt man in der Regel einfache Cubes oder dynamisch erstellte Texturen. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group