What you do is append again with the next file as the filename. Load the first one, and then use a loop to append to that. Change the filename at the bottom of the loop, and it will load as many as you want. You should end up with 135 frames for the human models. The valid frame numbers are a little odd. I will edit this post with a bit of DBPro code to show you what I mean.
About the snippet:
It uses a global array of strings to access the names of the files. You provide the function with the path and filename, up to the part where it differs, which is where the animation is named. Here is the array being dimmed, near the top of my code:
dim DM_AnimsPeople(6) as string
Then, I initialize the strings in the array, like this:
DM_AnimsPeople(0) = "Static.x"
DM_AnimsPeople(1) = "Idle.x"
DM_AnimsPeople(2) = "Move.x"
DM_AnimsPeople(3) = "Attack1.x"
DM_AnimsPeople(4) = "Impact.x"
DM_AnimsPeople(5) = "Die.x"
To load an entire set of DMI animations, I get an object ID, and pass the path and partial filename in, like this for example:
jzLoadDarkMatterHumanXModel('C:/Program Files/Dark Basic Software/DarkMATTER/Models/DB/People/German/H-German-',
objnum, 3)
This is the function:
function jzLoadDarkMatterHumanXModel(filename as string, objnum as integer, mode as integer)
local i as integer
local loadstr as string
loadstr = filename + DM_AnimsPeople(0)
if file exist(loadstr) <> 1
exitfunction
endif
load object loadstr, objnum, mode
for i = 0 to 5
loadstr = filename + DM_AnimsPeople(i)
if file exist(loadstr) = 1
append object loadstr, objnum, total object frames(objnum) + 1
select i
case 0
rem
endcase
case 1
rem
endcase
case 2
rem
endcase
case 3
rem
endcase
case 4
rem
endcase
case default
endcase
endselect
endif
next i
endfunction
Now, I removed some code in there, because I store the frame numbers in a custom UDT that is inappropriate for this demonstration, and I am modifying the code anyway. You could easily store off the frame numbers, but I am just about to give them to you. When you are done loading, you should have 135 frames, at least with the ones I've tried, anyway.
As nearly as I can work out in my slow and pig-headed manner, the frame numbers for DMI animations are:
idle 5 - 25 /3, 2 is better
move 32 - 50 /6
attack 54 - 72 /4
impact 76 - 84 /3
die 85 - 112 /6
The last column is the speed I use when playing, or looping them. I use an interpolation of 10, and the models animate pretty well, even when looping the walk animation. The Soviet guy has a small tic at the end I can't seem to lose that...the Germans march along very well. That MP-40 is a real bullet hose!
One thing about the move animation...I think that there is a transition from idle to moving that you run...maybe you let the idle spill into the move, and then restart it at 32. (You see, you are supposed to run them yourself, using
set object frame. You can use a time value, and it is automatically interpolated for you; its very slick, actually!)