Benubi hat geschrieben:ja das ist vielleicht die sicherste lösung, ich weiss ja nicht wie Milkshape intern arbeitet, aber es ist nicht auszuschliessen dass bei hin-und-her-konvertierungen daten verloren gehen, da ja verschiedene formate verschiedene einschränkungen und features haben können...
schön dass es jetzt klappt
fragen kostet nichts, also spare ich jetzt eine runde:
1.hast du auch schon eigene animationen erstellt/exportiert ?
ich bin noch nicht ganz so weit, aber da stand irgendwo in der exporter-hilfe(?), dass man die anims nochmal in einer textdatei (?) editieren soll bzw. ihre frame-bereiche festlegen muss... mit anims kenne ich mich nun garnicht aus, und ich dachte, eine animation hat immer eine bestimme anzahl von frames (30), und wäre "logisch" von den anderen anims getrennt !?
2.falls jemand noch viel weiter sein sollte:
Wie kann man animationen stoppen ? Mit PlayAnim("") ?
Wie funktionieren mehrfachanimationen (z.b. laufen+reden) ? kann ich mehrere animationen hintereinander aufrufen, die sich addieren !? geheimbefehl ?
auf den ogre hilfen steht nämlich, dass dies schon vor der version 0.11.1 auch unterstützt wurde!?
3.und noch ein bohrende frage:
in der Engine3D.dll befinden sich hunderte funktionen aus ogre (alle?)... kann man auf die auch zugreifen ? zB. "VertexBoneAssignement" ?
muss ich dann die dll als library mit openlibrary laden ?
oder wird jeder "direkte" zugriff durch die rechtevererbung vereitelt ? ist das der grund, weshalb hier einige ihre eigenen engines bauen

?
vielleicht weiss ja jemand was
cu
Benubi
zu 2. playanim("") ..das heisst AnimateEntity() .. das ging mal zu löschen aber wohl mittlerweile nicht mehr.
animationen hinzufügen geht allerdings sehrwohl .. einfach die gewünschten Anims per animateEntity() dazuladen.
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Light
;
; (c) 2002 - Fantaisie Software
;
; ------------------------------------------------------------
;
#CameraSpeed = 10
Enumeration
#Robot0
#Robot1
#Robot2
EndEnumeration
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
LoadMesh (0, "Robot.mesh")
LoadTexture(0, "r2skin.jpg")
CreateEntity (#Robot0, MeshID(0), CreateMaterial(0, TextureID(0)))
CopyEntity(#Robot0,#Robot1)
CopyEntity(#Robot0,#Robot2)
HideEntity(#Robot1,1)
HideEntity(#Robot2,1)
; AnimateEntity(#Robot0, "Idle")
; AnimateEntity(#Robot0, "Shoot")
AnimateEntity(#Robot0, "Slump")
AnimateEntity(#Robot0, "Walk")
AnimateEntity(#Robot0, "Walk")
AnimateEntity(#Robot0, "Walk")
AnimateEntity(#Robot0, "Walk")
AnimateEntity(#Robot0, "Walk")
AnimateEntity(#Robot1, "")
AnimateEntity(#Robot2, "Die")
CreateLight(0, RGB(0,0,255), 100.0, 0, 0) ; Blue light
CreateLight(1, RGB(255,0,0), -100.0, 0, 0) ; Red light
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,100)
sterbenb=0
Repeat
Screen3DEvents()
ClearScreen(0, 0, 0)
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
If KeyboardReleased(#PB_Key_Return)
HideEntity(#Robot2,1)
HideEntity(#Robot1,1)
HideEntity(#Robot0,0)
EndIf
If KeyboardPushed(#PB_Key_Return)
HideEntity(#Robot0,1)
HideEntity(#Robot1,1)
HideEntity(#Robot2,0)
sterben=sterben+1
EndIf
If KeyboardPushed(#PB_Key_Space)
HideEntity(#Robot0,1)
HideEntity(#Robot1,0)
HideEntity(#Robot2,1)
EndIf
If KeyboardReleased(#PB_Key_Space)
HideEntity(#Robot1,1)
HideEntity(#Robot0,0)
EndIf
EndIf
If ExamineMouse()
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
;RotateEntity(0, 1, 0, 0)
;RotateEntity(1, 1, 0, 0)
r1.f=(Random(100)-50)/15000 +1
r2.f=(Random(100)-50)/15000 +1
r3.f=(Random(100)-50)/15000 +1
Debug r1
ScaleEntity(#Robot0, r1, r2, r3) ; Macht die Breite des Entity 3-mal größer
ScaleEntity(#Robot1, r1, r2, r3) ; Macht die Breite des Entity 3-mal größer
ScaleEntity(#Robot2, r1, r2, r3) ; Macht die Breite des Entity 3-mal größer
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
If sterben >20
Debug "totgehen"
Goto sterben
EndIf
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
sterben:
For i=1 To 541667 Step 541
fall.f=i/1000000
SetEntityAnimationTime(#Robot2,fall)
RenderWorld()
FlipBuffers()
Next i
MessageRequester("","Ich bin platt",0)
End
Dieser Code ist ein etwas anngepasster von dem Code der sowieso mit PB ausgeliefert wird.