Quote: "I have milkshape and it only works with skeletal animation"
What are you using actually, Db or Dbpro? . If you have Dbpro, you can use the Panda exporter pluging for max than works as well with bones...as we can not use single animated mesh in darkbasic clasic, you could make your model in any 3D program and copy several times and modify slightly each mesh to make it live.
we have to hide all limb and show just the one we need. Eg.
//our soldat has 20 frames
for ani=1 to 20
hide limb soldat,ani
next ani
loop object soldat,1,20
f=object frame(soldat)
show limb soldat,f
set object speed soldat,9
Here is the complete code , I hope it can help
hide mouse
make matrix 1,10000.0,10000.0,25,25
load bitmap "floor1.bmp",1
get image 2,1,1,100,100
get image 1,130,0,250,130
delete bitmap 1
prepare matrix texture 1,1,2,2
randomize matrix 1,50.0
set ambient light 100
rem Activa sync manual
sync on
`Creamos algunas paredes para chocar
make object box 10,300,500,10
position object 10,1000,30,1200
texture object 10,2
make object box 11,300,500,10
position object 11,1000,30,750
texture object 11,2
make object box 12,500,300,10
position object 12,1100,150,1000
texture object 12,2
yrotate object 12,90
make object box 13,300,500,10
position object 13,1000,230,1000
texture object 13,2
xrotate object 13,90
load object "trinchera.3ds",777
position object 777,720,100,720
load object "soldado20.3ds",778
position object 778,400,120,1200
scale object 778,30,40,30
`-------------------------------------------------------------------
`objetos que actuan de sensores para colisionar con el escenario
make object cylinder 1,20
scale object 1,20,100,120
position object 1,300,30,300
color object 1,rgb(250,0,250)
make object cylinder 2,20
scale object 2,120,100,20
position object 2,300,30,300
color object 2,rgb(0,255,0)
set object collision to spheres 1
set object collision to spheres 2
`-------------------------------------------------------------------
_controla_camara:
rem guarda la vieja posision de los sensores
oldx#=x#
oldz#=z#
rem Controla la cámara con las teclas de flechas(alante y atras )
if upkey()=1 then x#=newxvalue(x#,a#,10) : z#=newzvalue(z#,a#,10)
if downkey()=1 then x#=newxvalue(x#,a#,-10) : z#=newzvalue(z#,a#,-10)
`nos desplazamos lateralmente a la izquierda (cursor derecho)
if leftkey()=1 THEN x#=NEWXVALUE(x#,a#-90,8)
if leftkey()=1 then z#=NEWZVALUE(z#,a#-90,8)
`nos desplazamos lateralmente a la derecha (cursor izquierdo)
if rightkey()=1 THEN x#=NEWXVALUE(x#,a#-90,-8)
if rightkey()=1 then z#=NEWZVALUE(z#,a#-90,-8)
a#=wrapvalue(a#+mousemovex()/2)
cam#=wrapvalue(cam#+mousemovey()/2)
rotate camera cam#,0,0
`limitamos el subir y bajar la cabeza con el raton(vista de camara)
if cam#<=290 and cam#>180 then cam#=290
if cam#>=70 and cam#<180 then cam#=70
rem actualiza cámara y objetos sensores
position camera x#,145,z#
position object 1,x#,40,z#
position object 2,x#,90,z#
yrotate camera a#
`Condiciones de las coliciones
if object collision(1,0)>3
z#=oldz#
endif
if object collision(2,0)>3
x#=oldx#
endif
return
`-------------------------------------------------------------------
rem inicio del bucle
do
move object 778,-1
r#=wrapvalue(r#+1.3)
if rnd(100)=1 then r#=wrapvalue(r#-55)
yrotate object 778,r#
for ani=1 to 20
hide limb 778,ani
next ani
loop object 778,1,20
f=object frame(778)
show limb 778,f
set object speed 778,9
gosub _controla_camara
sync
loop
oh my god