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.

3 Dimensional Chat / mesh deform control in DB useing limbs

Author
Message
arras
22
Years of Service
User Offline
Joined: 3rd Feb 2003
Location: Slovakia
Posted: 6th Oct 2003 13:44 Edited at: 7th Oct 2003 17:23
I was doing small research during weekend inspired by M00NSHiNE
and I found out that you can control and animate your model in DBpro with mesh deformation wia standard limb commands. Heres hove:

IN Milkshape3D build your model and build skelet for it as usual. Attach vertices to joints as usual. Build your animation. You have to have at last two keyframes of animation so if you dont need any, just build two random keyframes. They can be even the same.

Export your model using direct JT exporter. In export options choose DirectX Skin and Bones, choose Binary and Templates or S&B Templates. Include keyframes of your animation.


Here is example with code, just download Mesh.x (simple tube) model and paste code to your DBpro editor:
http://members.lycos.co.uk/arras1/Pictures/Mesh.x

Screenshot from Milkshape showing bone scheme of model:
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 6th Oct 2003 15:35
Hehe, what a totally awesome hidden feature - I mean live realtime bone adjustments mean ragdolls, animation transitions, animation fixes (like changing your run loop for fixed arm poses, for guns etc).

Also, imagine a big matrix style grid, with a bone mesh thing - you could have a wavy water matrix that reacts to the players position, and all without having to use memblocks at all.

Nice one - now I gotta be the first to do ragdolls in DBPro .


Van-B

My cats breath smells of cat food.
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 6th Oct 2003 16:28
Can't wait to see what amzing stuff appears from this!

Pincho.
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 7th Oct 2003 15:43
I. Feel. So. Good.



Weyhey, those GTA3/Mafia/whatever games can be done! Hooray!!!

"It's amazin' what you can do with a computer and access to t'internet"
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 7th Oct 2003 15:55
I gotta ask Rich why this feature is not advertised, it's one of the most tantalising features in the whole language!


Van-B

My cats breath smells of cat food.
ESC_
21
Years of Service
User Offline
Joined: 29th Aug 2003
Location: Mass.
Posted: 7th Oct 2003 15:59
Wow, that is pretty cool. Perhaps it's one of those wip features that's not *quite* ready yet, so it hasn't been anounced

"That's not a bug, it's a feature!"
"Variables won't, constants aren't."
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 7th Oct 2003 16:02
Yeh its one of the best things I reckon, it means games can share the professional look of many commercial games - enemies can look up and down if youre on a ledge above them for example.

"It's amazin' what you can do with a computer and access to t'internet"
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 7th Oct 2003 16:10
Can Blitz do the same thing?


Van-B

My cats breath smells of cat food.
arras
22
Years of Service
User Offline
Joined: 3rd Feb 2003
Location: Slovakia
Posted: 7th Oct 2003 17:21
yea, its great feature...I agree

added screene from export...
indi
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 9th Oct 2003 18:31
I havent explored this yet, but i think i will make it a sticky subject for a while to let more people know about it.

Ravey
Retired TGC Developer
22
Years of Service
User Offline
Joined: 2nd Nov 2002
Location: Southern TGC Nerve Centre
Posted: 9th Oct 2003 18:56
Ive been using this feature for my fps. It allows my characters to run (pre animated) whist looking around and aiming (realtime), works a treat.

Regards,
Dave Milton
Check out my games: Diode, Root, Binman & Skateboard Crazy
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 9th Oct 2003 22:18
Yes I know Ravey, I emailed you a while back but you never replied. So I had to figure it out myself.

"It's amazin' what you can do with a computer and access to t'internet"
Darclyte
22
Years of Service
User Offline
Joined: 13th Jun 2003
Location: Cydonia, Mars
Posted: 11th Oct 2003 22:50 Edited at: 11th Oct 2003 22:53
This is actually a feature of the Direct X file format not DBpro. I've been trying to decode X files for a while (text versions) and it's all about how your bones are linked to each vertex.

It just so happens that Milkshape's JTExporter is very well implemented. The same thing is possible with 3DS Max R5 & Panda Exporter.



Strings are PChars ??????? What a World
John H
Retired Moderator
22
Years of Service
User Offline
Joined: 14th Oct 2002
Location: Burlington, VT
Posted: 12th Oct 2003 19:01
WOO HOOO! Time to have those townspeople do something cool! Monsters reacting to hits on different parts of the body

RPGamer

Current Project: Eternal Destiny
We need a texture artist!
If your interested email me - [email protected]
Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 13th Oct 2003 22:14
how would you do this with 3dsmax and pandaX?

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 15th Oct 2003 20:13
so anyone got an idea???

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
NinjaNL
21
Years of Service
User Offline
Joined: 11th Oct 2003
Location:
Posted: 15th Oct 2003 21:24
Quote: "how would you do this with 3dsmax and pandaX?"


What about JTedit?
Darclyte
22
Years of Service
User Offline
Joined: 13th Jun 2003
Location: Cydonia, Mars
Posted: 15th Oct 2003 22:07
In 3ds Max R5 and possibly R4 (But not R3), create a model with bones and the skin modifier. Try a multi segment cylinder with 3 or 4 bones as a test. In max you can even adjust your vertex weighting to each bone and this data will be retained!, make sure you export the file with some frame animation data in it.

Then once loaded into your DBPro project:
Use PERFORM CHECKLIST FOR OBJECT LIMBS to find available limb numbers and names (these should correspond with your bone names).

Try manipulating the limbs in realtime using ROTATE LIMB, et voila, live mesh deformation!

Strings are PChars ??????? What a World
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 16th Oct 2003 11:55
It might not look like it's working to some, but here's a couple of things to consider:

The animation is constant, so rotating the bones affects a sorta parent orientation, take a man running for instance - legs going arms swinging. With this animation you could rotate the top torso to to any direction, like maybe you'd aim in a FPS but have the legs only turn when they had to. There's not a lot you can do with a moving limb, but if you added another running animation, say with both arms frozen this time - all you would have to do is calculate the rotate angles for each limb and you'd be able to pose your models arms and torso for any weapon, and the model would run along in that pose forever.

I suggest making a little mini-poser, something that will let you experiment with and store limb angles, maybe it could even be in a weapon setup file. Like 'Beretta.wpn' might have the name of the gun model, textures, settings for animation on the gun, as well as the angles for each limb for it's pose - then you'd make a little function to load and setup the gun and arms for each weapon. I reckon that's the way I'm going with my compo entry anyway.


Van-B

arras
22
Years of Service
User Offline
Joined: 3rd Feb 2003
Location: Slovakia
Posted: 16th Oct 2003 16:42 Edited at: 16th Oct 2003 16:45
Thats basicly hove this sort of things should work Van B.
You can have diferent limb positions just for type of weapon (pistol, smg, rifle) not for each weapon individualy may be.
Do you want to add weapon like limb or just glue it to a limb?

Dont forget that you can make and save animations in DB but I was not experimenting with it together with mesh deform, so its just idea for aproach to the problem.
...I mean you can make and then play animations in real time.
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 16th Oct 2003 17:11
My plan was to have maybe 5 different poses, just by storing each limbs angles in an array and forcing the rotation when changing weapon - I don't think there's any need to keep setting the rotation because the limb angles are a seperate system when using CFX, might be different with other proggies, but with CFX the limb rotations are always 0, even though the animation is there, rotating the limbs is like an offset. You could even manually animate a weapon swap, if you stored the rotations for reaching for another weapon (like from a backpack or something) you simply have to linear interpolate the rotations to the weapon swap angles then back again, or back into a different pose.

I tend to glue weapons to the object limbs.


Van-B

Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 17th Oct 2003 15:13
sorry that my question wasn't so clear... what i mean is, how should i setup my pandax exporter so I can make use of mesh deformation using the limb commands, I only see by bone rotate if I test the exportet object. so how should i setup my pandax exporter?

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
Darclyte
22
Years of Service
User Offline
Joined: 13th Jun 2003
Location: Cydonia, Mars
Posted: 18th Oct 2003 02:31 Edited at: 18th Oct 2003 02:43
Panda exporter setup:

http://members.lycos.co.uk/mrdarclyte

Strings are PChars ??????? What a World
Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 18th Oct 2003 03:29
hmmm... not working for me, do you have to set keyframe for each frame or something? or key frames for bones only cuz nothing happens when i try to load my program, it just shuts down.

test prog i use:



Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
Darclyte
22
Years of Service
User Offline
Joined: 13th Jun 2003
Location: Cydonia, Mars
Posted: 18th Oct 2003 17:18 Edited at: 18th Oct 2003 17:21
Make sure you have some keyframe animation that flexes the skin in your model, or it wont work at all. You don't need to run the animation in DBPro, it just needs to be in the file or Panda seems to fail exporting.

Use autocam and get rid of your position/point camera commands to avoid scaling problems.

Have you identified your bone limb names & numbers with a Checklist? Make sure you give them relevent names in max so you can find them in db. Then you can be sure which limb you are manipulating. I can pretty much guarantee that limb 1 is your actual mesh and not a bone!

Strings are PChars ??????? What a World
Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 19th Oct 2003 15:25
now that it does load correct, still nothing happans, i see my object but nothing is happening, i tried all the limbs and the only one that does rotate is limb number 1 which is the mesh it's self :/
maybe something is wrong with my model.
i made a cylinder with 5 height segments, put 3 bones in it, applied the skin modifyer to it, added the bones in the modifyer, edited the envelops, set a key frame on frame 0, moved the slider to 10 and rotated a bone and set another keyframe and then exported it. did something went wrong there?

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
Darclyte
22
Years of Service
User Offline
Joined: 13th Jun 2003
Location: Cydonia, Mars
Posted: 19th Oct 2003 21:19
Hey Mussi, You're right.

I started working on an example and I have exactly the same problem. Rotate limb only appears to work on the root limb of a bone hierachy, I thought it worked because I have used it to manipulate the head of a figure model I created. The neck bone of this model is a root bone attached to the end bone of the torso. The same goes for the shoulders. I can dynamically deform my mesh by moving these bones, but any referance to a bone further down the hierachy (eg elbow) does nothing!

It works correctly if you change panda to export 'position,rotation & scale keys' instead of 'matrix keys' but of coarse that messes up your origional animation so it's kinda useless unless you animate everything from within DBPro.

Gotta be a way around this, I'm going to try messing around with dummy objects and see if I can rotate my bones that way! Sorry if I lead you astray, but it appeared to work. As soon as I have an answer I'll post it.



Strings are PChars ??????? What a World
Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 19th Oct 2003 22:47
hé that works, only prob is that if you play animation after you modifyd the the mesh, it just plays the bone animation from it's current angle and position, so I guess that you would just have to reset the bones :/
or are there any other problems involved becouse of this?

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
indi
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 23rd Oct 2003 21:07
I finally got some time to create my own test for this purpose and find it very interesting indeed.

Its very rewarding to see those results.

I sent a letter to lee and mike to see if its worthwhile to spend a lot of time creating animated creatures and players for my game using this method with DBP future builds.

Im at a crossroad where I can waist a lot of time if I use methods that wont be supported later on down the track due to the amount of work involved with animating characters etc..
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 23rd Oct 2003 23:59
Tell us what they say when you get a reply, will you indi?

ZEDWARE website coming soon... //END TRANSMISSION//
indi
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 24th Oct 2003 03:55
sure mate, the verdict is yes.

its a permanent feature which will have even more features added for it in p7 and p8
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 24th Oct 2003 15:38
Coolio! Nice one, indi, thanks for telling us.

I might give this some consideration... I could also do a 3rd person auto-aim feature where the gun arm points to the nearest enemy...

ZEDWARE website coming soon... //END TRANSMISSION//
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 24th Oct 2003 15:46
That is good news

There is more possibilities than just cool character animation mods though, like a patch of trees as an object that can be set to the ground height and sway in the wind... something I'm looking into pretty soon.


Van-B

Shadow Robert
22
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 24th Oct 2003 17:02 Edited at: 24th Oct 2003 17:03
Quote: "I gotta ask Rich why this feature is not advertised, it's one of the most tantalising features in the whole language!"


was not possible before U5.0
and it still doesn't 100% work, even more annoyingly they still haven't added Splines which means mesh deformation in X without boned animation is just a pipedream.

its annoying because XOF 3.0 is actually one of the most versitile game formats you'll ever come across.


To Survive You Must Evolve... This Time Van Will Not Escape His Fate!
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 24th Oct 2003 17:31
Quote: "was not possible before U5.0"

You mean they can't advertise a feature that has been introduced through an update?

I'm not sure what you mean about working 100%, it does what I expect it to do - let's you offset limb angles to suit your own needs - means you have to bear this in mind when making animations, but with a little effort you can do what you like with it.


Van-B

Shadow Robert
22
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 24th Oct 2003 18:51
no the feature was in there Van, and they did advertise it (Real Time Skeletal Animating or something like that) ... problem was the bugger didn't work, which me and Dan found out the hardway.


To Survive You Must Evolve... This Time Van Will Not Escape His Fate!
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 24th Oct 2003 21:07
Aahhh well, im sure it'll become more mainstream and it'll work better incoming updates. Lets hope

ZEDWARE website coming soon... //END TRANSMISSION//
indi
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 27th Oct 2003 07:29
it works for me as well in the way I understood the description helper above.

perhaps raven should elaborate on what doesnt work for him so theres no inuendo or misconception.
Beta 1
21
Years of Service
User Offline
Joined: 27th Aug 2003
Location:
Posted: 28th Oct 2003 19:23
So this works when moving limb offsets as well as rotations?

That would be cool. Being able to deform a pre-modelled scenery feature (eg - river/ area of wood / hedge) so it actually follows the ground would allow some very nice terrain engines to be built.
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 29th Oct 2003 10:16
Just did that a couple of nights ago - works pretty well, I have an object which is made from 5 trees, each as a seperate limb, then it simply turns the trees randomly, and sits the trees on the terrain. Looking into mesh deformed animations on the trees too, so they can sway with the wind.


Van-B

arras
22
Years of Service
User Offline
Joined: 3rd Feb 2003
Location: Slovakia
Posted: 29th Oct 2003 10:29
I would say that for terrain the best is still to use memblocks since you can get quickly data about wertex position and calculate terrain colisions easily.

I dont know way to get collision with x model terain other than to use DB colision detection set to polygoons ...preaty slow, isnt it?

With trees made like limbs -you can have then only 5 trees on scene since you cant add and remove limbs if model is one mesh. That can be OK only under wery specific conditions.
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 29th Oct 2003 10:44
I use memblocks, the control you have over objects is so much better than anything else, I use a matrice for designing the level, but can turn the matrice into a vertice coloured memblock mesh inside the main game.

As for collision, well I use a ground height function, Kevil made it ages ago but it's fast - fast enough for me anyway, I keep adding stuff and keep adding more collision checks, it does'nt seem to slow down at all. Kevil is the man. I have expanded it to allow a very cool collision system, basically each imported object has a sorta grid, with each grid block having a top and bottom set of corners, which allows me to outline the object for super fast and perfect collision detection. Sorta like a simplified Tomb Raider engine, you know how the level is made from blocks that can be slanted in any way - that's what I've done.

I use 5 trees for convenience, in my engine I can import 32 objects, these might be a bridge, a tower, or a patch of trees, I simply rotate the tree object and position a few over an area I want to have trees in. It's not a great idea to have each tree as a seperate object when your optimising for the best frame rate - besides, who has the time to plant individual trees!.


Van-B

Mussi
22
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 2nd Nov 2003 22:10
Had an idea, tell if it would be possible and if it is... could somebody make the program.
if you would animate your character in a modelling package using bones and then export it, write an app that asks you what the limb numbers of the bones are and which you want to use, then plays the animation and records the angles and position of the bones and then write a function to play the the animation making use of mesh deformation using the limb commands. would that be possible?
this may be very handy

Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb ddr sdram
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 3rd Nov 2003 15:07
Not quite, the object limbs don't store the angle, so if you had a model with the frames looping all the time, the angles still would read 0. The only way would be to check the real world locations of each limb and calculating the angle between them, even then it'd be pretty tricky.

An entire animation system could be made in this way though, you could store the limb angles in an array, and interpolate them depending on the frame - this would give absolute control over the animation - but it means writing an animator/replayer which is no mean feat.


Van-B


I bet you've never even been to mars.

Login to post a reply

Server time is: 2025-06-27 04:31:09
Your offset time is: 2025-06-27 04:31:09