Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Discussion / WIP Lightning Limbs - free 3d animation software

Author
Message
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 22nd Jun 2008 16:43 Edited at: 10th Aug 2008 15:48
Latest news
Lightning Limbs v1.0 is finished and ready for download! Please see my latest post for the download.
(Could a Mod please remove the "WIP" from the thread name?)

Original Post
Hi guys, I'm back! Exams are over at last, and I'm just starting to reawaken the coding projects that have been lying dormant this last month while I revised. So here's the first one - a 3d animation package called Lightning Limbs. This first appeared on the WIP board late last year, but I ran out of steam after writing the Save Project routine and being unable to figure out how to write an Open Project routine .

But after starting to write the program from scratch, I've managed to get that sorted out (a little matter of saving the data arrays rather than writing out their contents one byte at a time). There's not much more to do on the program itself, and right now you can:

Load any .x or .3ds object
Rotate or offset any of the first 1000 limbs,
Set up to 1000 animation keyframes
Preview the animation
Save your project as a native .Lim file
Open previously saved projects (But at the moment if the program can't find the specified 3d object, it'll crash)
Create New Projects

Load any additional 3d objects as props
Rotate, Position and Scale props
Glue props to limbs
(so, for example, you can load a sword as a prop, glue it to the knight's hand and animate him wielding it. If you wish to glue the sword to another limb at a particular keyframe, you'll be able to do so and LL will export the DBC source code to let this happen)

Export animation to the xof file format
Export a .x file containing both the object's 3d data and it's animation.

Features I intend to add are:
Load a reference avi file
Move through frame by frame
(this was suggested last time I was working on this, in case you were trying to generate a 3d animation based on a video you had)

You can download the demo here:
(Link removed - there's a much better version now available!)

Just to show how powerful Limbs is, here's a pose I generated from the alien mutant in DarkMATTER (with all limbs initially rotated to 0, 0, 0)in just 30 seconds!



Hope you like the program. Any comments/suggestions/criticism would be appreciated!
Regards
RTR

"I wish I was a spaceman, the fastest guy alive. I'd fly you round the universe, in Fireball XL5..."
Sinani201
18
Years of Service
User Offline
Joined: 16th Apr 2007
Location: Aperture Science Enrichment Center
Posted: 22nd Jun 2008 23:02 Edited at: 22nd Jun 2008 23:05
Looks cool! I'll download it as soon as can. The pic looks great.


Project I am working on: Super MMORPG. Phenomenal graphics. Unique gameplay. Supports up to one player.
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 23rd Jun 2008 00:03
Wow. I was making something like this but I kinda failed . Looks nice and I hope you eventually get to adding support for exporting as .X files with animations. Will this ever be able to support the .dbo file format?

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 23rd Jun 2008 13:34
Quote: "I hope you eventually get to adding support for exporting as .X files with animations"

Me too!

Quote: "Will this ever be able to support the .dbo file format?"

Not directly. Lightning Limbs was coded in DBC, so there can't be any direct support for the .dbo format. However, I think DBPro has a Save Object command, so if you were to load an exported object (with animation) into DBPro and then Save it as a .dbo file, you could get it into the format you want.

I'm afraid I wouldn't be able to do anything like that myself, as I don't own DBPro. (I did get GDK, but I think the Save Object command in that got removed or something).

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 23rd Jun 2008 18:43 Edited at: 23rd Jun 2008 18:43
Quote: "Not directly. Lightning Limbs was coded in DBC, so there can't be any direct support for the .dbo format. "


Oh right this is the DBC board . I thought it was the WIP one. Anyway, DBO support or not, good luck I'm looking forward to using this program to make a really awesome fighting game

Ed222
17
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 24th Jun 2008 03:48
heres a simple dbo converter
to use:
use modelname$
to get what the user names it then use the code below and thats all

you'll also need the program I don't know if it's possible to do it this way but it's worth a try(yeah I know my program sucks)

Attachments

Login to view attachments
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 25th Jun 2008 19:03 Edited at: 25th Jun 2008 19:04
@Sixty Squares
Quote: "I'm looking forward to using this program to make a really awesome fighting game"

Wow, really?

@Ed222
Thanks for your program! I'm not sure why you say "it sucks" - it looks great to me! The only snag is that I can't seem to execute the file with a call from DBC - I keep getting the error "The instruction at "0x018a2bb3" referenced memory at "0x00000000". The memory could not be read." Doesn't matter, though, as DBC always goes a bit bizarre when it loses focus and then regains it (the screen becomes a mass of fuzzy colours, and any 3d objects vanish).

Anyway, I was wondering - would you mind if I included your converter with the Lightning Limbs demos and the final build? I'll give you full credit for it, and I think it would be good to give LL the ability to produce DBO files - you know, just for any DBPro users that come across this .

@All
Now, the latest news about Lightning Limbs:
We have animation export!!

The other day I was beavering away on the Props toolbar, but it occurred to me that the ability to export the animation was slightly more important. So, I've added in the "Export animation as a data file" feature. The next challenge facing me is to add in the export animation to a .x file. A couple of tests I've done show that it's possible (and remarkably easy) provided that the original model file was a .x ASCII Text file, or it was a .3ds.

A .3ds file can be converted to .x using DBC's "3ds2X" hidden command (and when DBPRo was made they said it was redundant ). A .x file without animation can have the animation added to it simply by copying the anim data file (as exported using the "Save Object Animation" command) and pasting its contents atb the end of the model file. The only downside to this is that you can't extend the existing animation - LL will only be able to replace it. Not sure if th9is is too much of a problem.

Anyway, I'll have a demo of this ready in the next day or so. I'd hoped to get it ready today, but I got a little sidetracked with trying to animate a helicopter model - for the life of me, I can't add figure out how to animate the rotor blades moving in a full circle. If one keyframe is at YAngle 140, and the next is at YAngle 180, the blades swing round to 180 by going from 140 to 0 to 180, rather than 140 straight to 180. I need to do a few more tests, but I'm thinking it might be a flaw in my program. I'll let you know how I get on...

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Ed222
17
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 25th Jun 2008 20:47 Edited at: 25th Jun 2008 20:51
Quote: "Anyway, I was wondering - would you mind if I included your converter with the Lightning Limbs demos and the final build?"
nope not at all
BTW if you want me to change something in the program just ask


[edit]
Quote: "
I keep getting the error "The instruction at "0x018a2bb3" referenced memory at "0x00000000". The memory could not be read." Doesn't matter, though, as DBC always goes a bit bizarre"

that would be my fault I forgot to finish off the execute file code
anyways I fixed it.


Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 26th Jun 2008 05:36 Edited at: 26th Jun 2008 06:05
This is cool

Say if you need any help, give me a shout!


EDIT:


Actually, a closer look and test has sparked my intrest.
Robert,This is Really,Really good potential stuff!

if you are looking for help with anything,let me know!

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 26th Jun 2008 13:56 Edited at: 18th Jul 2008 16:42
@Ed222
Quote: "I keep getting the error "The instruction at "0x018a2bb3" referenced memory at "0x00000000". The memory could not be read." Doesn't matter, though, as DBC always goes a bit bizarre"
that would be my fault I forgot to finish off the execute file code"

I don't think so - I added in the extra parameters when I tested it, and I got the error. Maybbe I did something wrong, I'll have another look later...

@All
Here's the download link to the new demo of Lightning Limbs:
(Link removed, as there's a much better version now available!)

It includes the ability to export your animations as a data file (xof file format) or as a .x model file including the animation. I've updated the "How to use this demo" file in the zip to explain how you do the export. I think the routine works quite well, but you are restricted to having the source model as either a .3ds or as an ASCII .x file - a binary .x file just won't work, as the animation data is saved out as text.

Attached is a copy of the DarkMATTER Knight model, animated and exported using Lightning Limbs. I didn't get round to fiddling with the arms, just created a pretty basic walking cycle, but what do you think? (Please say if I'm not supposed to distribute this model, and I'll take it down.)


There are a couple of minor problems facing me at the moment:
1) DBC 1.20 can't seem to rotate a limb through 360 degrees using keyframes. I mentioned this in my last post, but I was a bit surprised to find that 1.13 can do this fine. I've started a new thread to ask for help about this, but in the meantime I've switched back to DBC 1.13 while I work on LL.

2) DarkMATTER animations - when the objects load and are set playing, they always seem to appear 1/10 of their actual size. Does anyone have any ideas why this should be the case? Is it some kind of scaling factor built into the object animation?

3) I'm also trying to work out how to read in a 3d objects existing animation. Rather than read in the keyframe data directly from the 3d model file, I thought I'd just load the objetc, go to each whole number frame of animation and obtain all the limb angles. Unfortunately, when the object is playing, or set to a frame, the limb angle commands always return zero no matter what angle the limb is at. Help???

EDIT Actually, just had a thought. Maybe this is another "Error" in DB 1.20...

If I admit that I'm lying, am I telling the truth?

Attachments

Login to view attachments
Ed222
17
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 26th Jun 2008 16:18 Edited at: 26th Jun 2008 16:18
Quote: "The instruction at "0x018a2bb3" referenced memory at "0x00000000"

is that all the error says? anyways I could make it into a external converter if it doesn't work.

Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 26th Jun 2008 16:28 Edited at: 26th Jun 2008 16:48
hey ed. do you mind uploading the new version here?
i was able to get to it yesterday,but.....
my dads blasted proxy wont let me get to your server..

about no.3....

i beleive you must get the total number of frames.
then you must use a for next loop of some sort and get keyframes using set object frame in increments defined by the user when loaded. after that, any new frames go after the existing animation.

Hope it helps.

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Ed222
17
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 26th Jun 2008 17:20
Quote: "hey ed. do you mind uploading the new version here?
i was able to get to it yesterday,but.....
my dads blasted proxy wont let me get to your server"

I never had a new version all I'm saying is that if Robert the Robot can't fix it I could make a external converter and as for the download it's right here http://forumfiles.thegamecreators.com/?i=1529522
unless you ment roberts Lighting limbs

Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 26th Jun 2008 18:37
oh well thanks. i thought it was a new version. nice coverter.

@ robert

well, could you load the new version up to the fourm when you have it?
I dont think my dad is gonna take the proxy down for a while.

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 27th Jun 2008 00:02 Edited at: 27th Jun 2008 00:45
Quote: "A .x file without animation can have the animation added to it simply by copying the anim data file (as exported using the "Save Object Animation" command) and pasting its contents atb the end of the model file. "


That sounds awesome . I'm downloading your demo right now

@Ed222: Do you by any off chance have a .dbo to .x converter? If not you don't have to go and make one, I'm just curious b/c it would surely come in useful for me and my models made using the DBPro object commands...

EDIT: Wow I even found this asking the same question :
http://forum.thegamecreators.com/?m=forum_view&t=132290&b=1

****************************************************************

EDIT #2: Hey awesome program! I will probably be using this... Maybe I will finally be able to make a game with more than one "attack" animation .

One issue. The program froze (for more than a minute) when I tried to export an animation I'd created with the "L-Teck-Idle.x" model from Dark Matter as a .x file. Is that model in the proper text format? I see a bunch of numbers, some brackets, and some things that notepad cannot recognize, denoting them as rectangles. I looked at DarkMatter's "Knight" model and saw the same thing. However, when I looked at your animated model everything was readable and formatted. Any ideas?

EDIT #3: I tried saving the project first, but then I got a RUNTIME ERROR 136 (or was it 130...) and the program closed itself. Am I doing something wrong? I tend to make programs bug out when I use them



Off topic: How did you detect folders in your file browser? I've tried using PERFORM CHECKLIST FOR FILE but that doesn't seem to work (or maybe I'm doing it wrong)

Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 27th Jun 2008 00:30
Quote: "EDIT #2: Hey awesome program! I will probably be using this... Maybe finally I will be able to make a game with more than one "attack" animation . "
Tell me about it.

@Robert

ya know, i think that without the use of a dll or somthing,Db only can export to ASCII-type .x.....

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 27th Jun 2008 00:40
@Robert
Quote: "2) DarkMATTER animations - when the objects load and are set playing, they always seem to appear 1/10 of their actual size. Does anyone have any ideas why this should be the case? Is it some kind of scaling factor built into the object animation?

3) I'm also trying to work out how to read in a 3d objects existing animation. Rather than read in the keyframe data directly from the 3d model file, I thought I'd just load the objetc, go to each whole number frame of animation and obtain all the limb angles. Unfortunately, when the object is playing, or set to a frame, the limb angle commands always return zero no matter what angle the limb is at. Help???"


number 2 : Yes and no. In order to have parent child relationships in a Direct x file, each mesh definition is contained within a frame. A parent frame can contain several child frames (limbs) . A Transform Matrix Definition is often included for a specific frame. This sets up any scaling, default rotation, and /or position of the mesh. The animation keys are actually modifyers to the transform matrices of each frame. Therefore, if there is a transformation in a parent frame as the result of an animation key, the children are affected. Also, if there is an animation key that sets a transformation for a meshes own frame, of course it is affected as well.

For example, in the gi animation from the dark matter demo, there is an animation key for the waist mesh that is set to scale to .1,.1,.1 which is 10% of the original size. The waist is the main parent frame:



Thus the entire model will be affected by this scaling (1/10).

number 3) In order to retrieve the angles of the limbs, if the limb itself has been rotated, you should be able to go to a frame like you said, call sync, and you should be able to get the angle. The angles of limbs that are children to the rotated limb will not change because their frame of reference is the parent limb. To retrieve that angle, use Limb Direction() though the value returned isn't what you'd expect. Again, you need to call sync after the frame has been set or the limb angles and positions may not refresh.

Enjoy your day.
Ed222
17
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 27th Jun 2008 01:08 Edited at: 27th Jun 2008 01:09
Quote: "Do you by any off chance have a .dbo to .x converter? If not you don't have to go and make one, I'm just curious b/c it would surely come in useful for me and my models made using the DBPro object commands"

I don't think thats possible in dbp

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 27th Jun 2008 18:21 Edited at: 18th Jul 2008 16:45
Wow, I leave the forums for 24 hours and everything changes!

@Sixty Squares
Quote: "One issue. The program froze (for more than a minute) when I tried to export an animation I'd created with the "L-Teck-Idle.x" model from Dark Matter as a .x file. Is that model in the proper text format? I see a bunch of numbers, some brackets, and some things that notepad cannot recognize, denoting them as rectangles. "


Yes, the model is in the proper text format. The rectangles you're seeing represent the return key, and only seem to be there to compress all the text in the file. When you export the model from LL, the program reads each line from the model data file and then writes it to the export file. Whenever DB writes a string, it terminates the string by "hitting the return key" and dropping everything else down to the next line.

I don't know quite what's happened with the export time, when I first tested it it only took a second or two. I tried the Tech model, and the program did freeze - by the time I'd gotten Windows to terminate it, it had written about 135Mb of data! Something must have gone wrong in the compiling, I redid it and it seems (fingers crossed) to be working now.

Quote: "I tried saving the project first, but then I got a RUNTIME ERROR 136"

Whoops! LL needs a temp folder for saving projects and exporting .x model files, so I decided to use the one that DBC 1.20 automatically creates, rather than create my own and have to delete it later. (I've never used the command to delete folders - always been too afraid I'd make a mistake and delete Windows). Unfortunately, when I switched to DBC 1.13 I forgot to change this. The new demo (no longer attached to this post, there's a newone available) has taken care of that - it'll create the folder if it isn't there, but will never delete it.


Oh, and as regards your query about reading in folder data, here's my code for reading in the folders, .3ds and .x files in a folder:

Hope this helps...


@Latch
I just about follow what you're saying for number 2, but I'm still struggling with Number 3 - the Limb Z Direction always seems to be 0, even when it clearly shouldn't be:

Limb 8 of the GI model is the Left upper arm, by the way. Surprisingly, the other two commands work fine - is the Z axis command returning zero because the limb has not been affected by the parent following a rotation?

If I admit that I'm lying, am I telling the truth?
Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 27th Jun 2008 18:43
downloading...

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 27th Jun 2008 21:31 Edited at: 27th Jun 2008 21:32
Quote: "Limb 8 of the GI model is the Left upper arm, by the way. Surprisingly, the other two commands work fine - is the Z axis command returning zero because the limb has not been affected by the parent following a rotation?"


That should be. If the child limb isn't being rotated by the parent on that particular axis, then that axis' angle shouldn't change.

Enjoy your day.
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 27th Jun 2008 22:50 Edited at: 27th Jun 2008 23:16
@Robert The Robot: Thanks for that . I'm downloding the demo now, and I actually thought of another thing you could add. It's probably extremely simple to do as well. You could print the number of the selected limb beside its name (it could be in brackets or in another color or something). That way I can know which one it is when referring to it in a game

EDIT: Yes it works! Great job Would it be okay if I animated a model using this demo (and used it in a game, if I got around to it)?

EDIT #2: Quick question. I noticed a "props" section. Will this be expanded on at some point? (H-Ninja-Idle.x could use another sword )

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 28th Jun 2008 12:14
@Latch
Quote: "If the child limb isn't being rotated by the parent on that particular axis, then that axis' angle shouldn't change."

But the limb has still been rotated about the Z axis. When I ran a few tests with LL, I found the GI model kept his arms outstretched, but by rotating them about the Z-axis only, they came into line with how the original animation had looked. (Unfortunately, I think I disabled the feature on the demos so you can't test this for yourself ). I'm still puzzled as to how to read in the animation though.

@Sixty Squares
Quote: "You could print the number of the selected limb beside its name "

Great idea, it'll be in the next demo

Quote: "Would it be okay if I animated a model using this demo (and used it in a game, if I got around to it)?"

Of course! LL is free, it has the export animation facility in. Do as many animations as you like!

Quote: "Quick question. I noticed a "props" section. "

Yes, that one's still under construction. The idea is to let you load additional objects and then "Glue Prop To Limb". Then when you export your animation, LL will write a function that sets up the prop's initial scale, offset and rotation for you. It may even be possible to change which limb the prop is glued to, so you may be able to have a sword hanging at the Knight's side, and then as his hand reaches it's hilt, the sword jumps from the waist to the hand.

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 28th Jun 2008 23:33
Quote: "But the limb has still been rotated about the Z axis. When I ran a few tests with LL, I found the GI model kept his arms outstretched, but by rotating them about the Z-axis only, they came into line with how the original animation had looked. (Unfortunately, I think I disabled the feature on the demos so you can't test this for yourself ). I'm still puzzled as to how to read in the animation though."


hmmmm... not sure what's going on. I'll have to run some tests on this. Check out your rotation error thread, I have a little info that may be helpful.

Enjoy your day.
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 30th Jun 2008 18:02
@Latch
Thanks. I've tried a few different models myself, but "Limb Direction Z" still seems to return 0 every time.

@All
OK guys, just an update on how things are going. In the last demo, it was possible to load a prop, and rotate/scale/position. I've now got LL to allow you to select which prop you work with, and also to store which 'slot' you wish the object to be loaded into.

Like I said, I've had a problem with the "Limb Direction Z" command always returning 0, but that meant that in LL the axis pointer doesn't always point in the right direction. I'd been trying to rotate to the world angles the limb would be at if was rotated 0,0,0, but now I've switched to gluing the pointer to the selected limb and calling:

Whatever angle the limb is at, this will always fix the axes pointer along the limbs xyz axes (these aren't the world XYZ axes, of course, but the axes relative to the parent limb). Inadvertantly, it's also speeded up the load time of projects! I used to load the main animation object twice, and used the hidden copy to remove a "flicker" that occurred when the nodes changed positions one sync after the limbs had been repositioned.

I'll post a new demo as soon as I can, but I'd like to get the Prop commands finished off first - there doesn't seem to be that much left to do on them (famous last words...)


Oh, and I was wondering if I could have your opinions on a couple of things:
I've found that if you load the DarkMATTER Raptor model, it's enormous compared to the nodes. Instead of keeping the nodes at a fixed size, do you think I should size each node based on the size of the object?

I was thinking of giving you the ability to show a matrix that was permanently situated at the animation object's feet, so that when you're doing a walking cycle you can make sure your character doesn't start floating in the air. What do you think?

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 1st Jul 2008 03:12
I'm looking forward to that props menu I wish you luck in solving any bugs you may encounter...


Quote: "Instead of keeping the nodes at a fixed size, do you think I should size each node based on the size of the object?"


Maybe you could include a button that can be pressed for either fixed size or model based size upon the loading of the model (or real time like the ghost animation button). Or, better yet, you could create two buttons allowing the user to raise and lower the size of the nodes

Quote: "I was thinking of giving you the ability to show a matrix that was permanently situated at the animation object's feet, so that when you're doing a walking cycle you can make sure your character doesn't start floating in the air. What do you think?"


That's a great idea. I can imagine working on a detailed walking animation and then noticing that my character starts to float for no reason /

Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 1st Jul 2008 05:39 Edited at: 1st Jul 2008 19:20
Quote: "I was thinking of giving you the ability to show a matrix that was permanently situated at the animation object's feet, so that when you're doing a walking cycle you can make sure your character doesn't start floating in the air. What do you think?"


yes!!!!!

only, the matrix should be optional. and textured.

say,....one sugestion I have is to make the object positionable. nothing special, just to set up the position of the object each frame or keyframe.
If you include this, I'd say this software is as good as done(except for props! It's a nice idea for this.).

oh.when you release the final, will you include the source code??


-DD

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 2nd Jul 2008 20:44 Edited at: 10th Aug 2008 15:49
Thanks for your comments guys! With luck I'll get working on those features in the next day or so - some of the buttons have already appeared on the toolbars, though they don't do anything yet!

Quote: "say,....one sugestion I have is to make the object positionable. nothing special, just to set up the position of the object each frame or keyframe."

You can do that already - all you have to do is select the very first node/limb of the object. Just go to the "Select Nodes" button, and click the very first icon on the list (located top left).

Quote: "oh.when you release the final, will you include the source code??"

I don't know, possibly not - I havn't really thought about it.

Props have now been almost fully implemeted, so here's another demo (demo removed). I hope you think it's been worth the wait!

The Zip file contains a new file explaining how you work with props - you can rotate, scale, and position any 3d object. You can also set these values to be different at each keyframe you specify. Just remember to set the keyframe after fiddling with the props and limbs, or the changes won't apply. The file also explains a couple of temporary glitches - you can't delete a prop, and while you can still delete keyframes, the props arrays don't update and the props will still move based on the old keyframes. Here's something I knocked up earlier:



I just grabbed a weapon model from DarkMATTER - don't think it's quite the skeleton's weapon of choice though...

Anyway, you can also save all prop data to the newly extended .Lim file format. I haven't had a chance to put it through its paces properly yet, but it appears to work fine. Don't worry about any of your "old" projects - they'll still load properly, as I added a header string at the top of each file.

One minor warning, you may get the program crashing if you click the "New Project" button on the Export toolbar. it's only happened twice to me, and DBC says that it's a "Runtime Error: Object does not exist". Unfortunately, it never tells me just which object does not exist. If it does happen to you, could you try and remember what it was you did so I can try and generate the error at my end?

Enjoy!

"I wish I was a spaceman, the fastest guy alive. I'd fly you round the universe, in Fireball XL5..."
Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 3rd Jul 2008 01:41
Quote: "You can do that already - all you have to do is select the very first node/limb of the object. Just go to the "Select Nodes" button, and click the very first icon on the list (located top left). "


oh.

Sweet! a new version! downloading.....

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 5th Jul 2008 17:18 Edited at: 5th Jul 2008 17:28
Nice! Downloading now

EDIT: Nice demo! I noticed you added the limb numbers

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 7th Jul 2008 12:57
Quote: "I noticed you added the limb numbers "

Oh yes...

Actually, I've been working on a new demo the last few days - that's one reason why I've hardly been online! I've been finishing off the props toolbar and adding the environment features.

Unless there are any more serious bugs (I did find one where if you click the Save Project button, the project name gets reduced to "") I think LL should be finished inside a fortnight!

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 12th Jul 2008 23:32
That's great news . Hopefully you can get the filename thing worked out... I've had that issue before but I was using DBPro's Entry$() command. I ended up needing to use Input. By the way, if you wouldn't mind me asking, how do you handle your text entering? Do you use input? inkey$()?

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 13th Jul 2008 21:57
Yes, I got the filename thing sorted - it was because I'd merged the Save/Save-as routines into one and not done it properly. Clicking Save-as generated a new titlebar image, saying:

Yet clicking Save did exactly the same thing - only then UserInput$ = "".

When entering text, I do use Entry$ because it's slightly more accurate at detecting keystrokes. I call this at startup (to set up keystate numbers, as these may vary from computer to computer)

and this when I click to enter a textbox (so nothing's there)

then I just call this Gosub:

To display the text, simply call this:


The (x-1) part is to keep the cursor aligned at the end of the text - it'll almost certainly be different with different font settings and sizes, but it works with Arial Size 16.

To create a flashing cursor (so that it changes every half second), I call this at the top of each program loop:


This particular GoSub only allows letter keys (caps or lower case) and the space key. I have made a couple of variations, allowing numbers only (for integers) and numbers with a single decimal point (for floats):

Integers:

Floats:

Hope this isn't too much information!

As regards Lightning Limbs, I'm afraid I'll have to put the finish date back a bit. My brother came down with a cold last week and oh-so-kindly shared it with me. I haven't felt up to coding the last few days, but I'm starting to get back into it now.

There's a host of new features been added - you can choose to "flip" the mouse buttons round, set prop properties at each keyframe (just imagine, you can make an object go ghosted for a few frames!), delete props and safely delete keyframes. I'm also rewriting the file format, to make the .Lim project files more logical and less wasteful of memory - if you open one up in Notepad, most of it is just blank spaces!

It is said there are 10 types of people in this world - those who understand binary, and those who have friends!
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 14th Jul 2008 03:22
What about 360 degree limb rotations?

Enjoy your day.
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 14th Jul 2008 20:17 Edited at: 14th Jul 2008 20:17
Quote: "Hope this isn't too much information! "


Not at all, thanks for typing all of that! It only makes it easier to understand the concept. I didn't know DBC had the Entry$() command. For some reason the OPEN TO WRITE command in DBP doesn't like to save files whose filename was generated using the command. It's strange, because I'll print the variable on screen for debugging and directly after that I'll say OPEN TO WRITE 1,Name$ where Name$="Some File.txt" and write the file, but it won't be saved. However, when I use OPEN TO WRITE 1,"Some File.txt" it works. [/end ramble]

Anyway, those new features sound awesome. It'd be cool for a person to maybe become ghosted from his feet up . Maybe he has a "Ghose Mode" power. As for the delayed release date, take your time

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 14th Jul 2008 22:32
@Latch
No luck, I'm afraid. I haven't been able to progress much beyond what I said in my last post here. But I have found that in GDK you the Limb Direction Z command returns values other than zero. So I can probably extract animation data from an object (which is great for LL) and maybe write my own Play Object Function which automatically handles the frame interpolation. It'd be cumbersome, but I think I could do it. I'll let you know how I get on.

@Sixty Squares
Yes, DBC has the Entry$ command. Strangely it's listed in the help files as Entyr$, and in the default DBC Editor the context sensitive help will only register it if it's typed as Entyr$ - which then throws a compiler error!

Quote: "It'd be cool for a person to maybe become ghosted from his feet up "

Sorry to disappoint, but I'm afraid it's not possible to ghost the individual limbs. Only the additional objects you load can be ghosted - you mentioned a while back that the Ninja model with DarkMatter could use another sword. The extra sword could be made to go ghosted, but not the ninja himself.

That said, you might be able to do it with a combination of fade object and ghost object. I'll have to try it - thinking about it, it would certainly be a good idea to allow you to ghost object's during an animation. And adjust the object's properties - there could be a whole host of extra controls over the character himself.

I might not get it in this version, but I'd definitely include it in the next! (Blimey, it's not even finished and I'm planning future generations already! )

If I admit that I'm lying, am I telling the truth?
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 15th Jul 2008 03:31 Edited at: 15th Jul 2008 14:12
Oh well. I'm sure whatever features you add will be more than enough (heck, they already are!) .

Quote: "If I admit that I'm lying, am I telling the truth?"



EDIT: Will the object be able to be textured with one texture on some keyframes and another on the others?

Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 15th Jul 2008 03:47
Quote: "Oh well. I'm sure whatever features you add will be more than enough (heck, they already are!) ."


very well put.

Quote: "Yes, DBC has the Entry$ command. Strangely it's listed in the help files as Entyr$, and in the default DBC Editor the context sensitive help will only register it if it's typed as Entyr$ - which then throws a compiler error! "


Hmm..never noticed that!

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 15th Jul 2008 17:11 Edited at: 15th Jul 2008 17:12
New demo of Lightning Limbs!
It's been a long wait, but I think I can safely say it'll be worth it. Apart from the changes I mentioned in my last post, there's a couple more which I forgot - the .Lim file format has been rewritten (again) and is now somewhat samller than it used to be. (For the Dark Matter Skeleton with 3 keyframes, its now 2Kb down from about 700Kb - a reduction to about 0.3%!)

The most noticeable change is when you've loaded an object. When you first run this demo, load the DarkMatter skeleton, go to the camera mode, and press the down arrow to pull back a little. It has to be the skeleton, as I've set the defaults to work perfectly with it. Comments? (It's not my skybox by the way, I just borrowed it from a GDK example!)

I've also included the first draft of my help documentation - I've only written the limbs section, but if you could read it and let me know if it's clear/easy to understand, I'd be very grateful. I've also included in the last three pages the details of the newly revised .Lim file format - it makes quite a bit more sense now!

Enjoy! (Sorry the file size has shot up so much, it's 1.5Mb now)

@Sixty Squares
Quote: "Oh well. I'm sure whatever features you add will be more than enough (heck, they already are!) "

Well actually, I was having a look at fade/ghost object. It works but not that well. To truly fade an object from nothing into existance, I think you'd have to use the "Set Alpha Mapping On" command of DBPro - which gives me an idea. I've seen a couple of the effects in GDK, but I don't really understand them. What about creating an advanced 'Effects Console' with GDK where you can set all these different properties after completing your animation? I'm not sure which effects would be worth adding, or even if I'd be able to do it (never worked in C++ before), but it might be interesting to try.

As regards textures... No, not this version. But like I said, I'm making plans for another one. Given the current exe file size, I've been looking into ways of slimming it down. A medialess file browser, which I'm just starting work on, should shave about 1Mb off the exe. It'll tidy the code up immensely, and automatically build in the ability to load images!

@Latch
<slaps head> Sorry, my idea won't work. Logistics of getting the data into the function aside, "Rotate limb" is a sluggish command at the best of times. It was only after I posted that I remembered one of the articles released by StarWraith 3d Games, where he recommended keping that command to a minimum, because it'll cause a drop in frame rate. I even had LL not bother rotating limbs unless a change had been made, because just having them constantly rotated to the current angle when the program was idle made the mouse run jerkily. It was a bit stupid of me not to remember - I think our only hope of getting this bug resolved is if someone opens up DBC and checks the 3d maths that makes things move.

If I admit that I'm lying, am I telling the truth?

Attachments

Login to view attachments
Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 15th Jul 2008 17:32
yay! downloading....

AM I UGLY OR WHAT??!!
What? It's My Sig!!...
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 18th Jul 2008 16:26 Edited at: 24th Jul 2008 16:56
Hi guys, I've spent the last few days finishing off the help files - I've exported them as a 20 page .pdf file, which is attached. (Download removed) Some of the things it refers to are features that haven't quite been written yet, but I thought you could probably use a decent set of instructions!

Enjoy!

Edit: Actually, just remembered something else I meant to say - the file format (and the data in the pdf) has had a new byte introduced to solve a bug with the limb cross-links. The demo of LL that you've got will crash if you open a project and then use the "Affect Parent Limbs" feature . You'll get the new format with the next demo, which will sort everything out.

"I wish I was a spaceman, the fastest guy alive.
I'd fly you round the universe, in Fireball XL5..."
Jmahmood
18
Years of Service
User Offline
Joined: 3rd Apr 2007
Location: not sure
Posted: 20th Jul 2008 19:06
did you make the gui yourself? Looks cool.
Sixty Squares
18
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Somewhere in the world
Posted: 21st Jul 2008 00:49
Nice! Downloading the demo now

Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 21st Jul 2008 19:36
@bat out of hell
I made most of the Gui myself, yes. The textboxe design was...ah... borrowed from Windows, but everything else was hand drawn using MS Paint. Sometimes I'd use Windows components as a guide, but more often than not they didn't work with the color scheme I'd chosen. I did have an idea once to make a Windows-component system for DBC, but I've never really gotten round to it...

@All
The project's almost finished. Just got one or two loose ends still to tidy up, and then its the extra tool in gdk for extracting existing animation data from a 3d object.

If I admit that I'm lying, am I telling the truth?
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 22nd Jul 2008 00:00 Edited at: 22nd Jul 2008 11:53
[EDIT]
I was curious how the commands APPEND OBJECT and APPEND OBJECT ANIMATION worked and were different but I think I figured it out.

Enjoy your day.
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 23rd Jul 2008 13:15
@Latch
Both Append Object and Append Object Animation allow you to specify a 3d object file, and attach the animation contained within the file to a loaded 3d object. However, (I think I'm reading this right) "Append object" allows you to specify which frame this animation data starts being read from. For example, if the animation in the file runs from frames 1 to 50, and you specify a start frame of 25, you will load frames 25 to 50.

"Append Object Animation" is slightly different. All the animation in the data/3d object file gets attached to the loaded 3d object, but you can specify when this animation starts. To use the example above (frames 1 to 50), specifying a start frame of 100 will load the file's frames 1 to 50, and attach them to the loaded object as frames 100 to 150.

@All
Got the program just about set for release, I'm just trying to write an 'animation extractor' with GDK so you can make a .Lim project from an existing 3d animation. Unfortunately, just as I thought I had LL ready for release, I found I may have to rewrite parts of it to allow compatability with this new program. I'll keep you posted!

If I admit that I'm lying, am I telling the truth?
Latch
18
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 24th Jul 2008 02:22
@Robert
Are you writing an extrator to replace the SAVE OBJECT ANIMATION command? Or are you trying to grab the animation data out of an x file as it's own file?

Enjoy your day.
Robert The Robot
18
Years of Service
User Offline
Joined: 8th Jan 2007
Location: Fireball XL5
Posted: 24th Jul 2008 16:53
Lightning Limbs 1.0 is (almost) finished!!!

I'm saying 'almost' finished because I'm still struggling with the loading of 3d objetcs with existing animations. GDK is behaving rather differently to DBC so I may be quite a while knocking up a secondary file format so LL can understand the animation data. I thought I'd let you have what is effectively the finished program - which is in the attached winzip!

Avi reference animation is now in, the file format has been changed ever so slightly (Limb Cross-links data will load correctly), and you are now asked to locate a file if the one specified in the project can't be found. Even if the file is different or has had limbs added/removed, LL will still handle loading your animation - though the animation may not play correctly. The last few pages of the help pdf has been modified to explain in a little more detail.

I've also slipped in a splash screen (just there for show, really, you can skip it by clicking the mouse or hitting enter). Oh, and one more thing - have a look at the environment folder "readme" file

Comments?

@Latch
I'm trying to grab the animation from a .x or .3ds file and convert it to a .Lim project file. It's rather confusing me at the moment, but I think I've got it figured - DBC reads limb offsets but not limb directions (Z-axis is always 0), while GDK reads limb directions but not limb offsets. The only snag is that GDK lists limbs in a different order to DBC (the DarkMatter Knightis an example - in DBC, his chest is limb 10, but in GDK it's limb 2)

"I wish I was a spaceman, the fastest guy alive.
I'd fly you round the universe, in Fireball XL5..."

Attachments

Login to view attachments
Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 24th Jul 2008 18:23
Cool It's almost finished!.....

anyway i wish to upload a few of my animations i made with LL.

They are all gonna be used in my newest game.

@Robert

How should i credit you?
You are gonna be in the credits for such an amazingly easy-to-use animator!


Heres the run cycle for the main character...

AM I UGLY OR WHAT??!!
oh and join my PivoT Forum at....http://pivo.proboards104.com

Attachments

Login to view attachments
Dark Dragon
17
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 24th Jul 2008 18:25
and a punch.

(oh the actual model is the MAN2.x model that comes w/darkbasic.)

AM I UGLY OR WHAT??!!
oh and join my PivoT Forum at....http://pivo.proboards104.com

Attachments

Login to view attachments

Login to post a reply

Server time is: 2025-06-07 07:05:10
Your offset time is: 2025-06-07 07:05:10