PDA

View Full Version : An idea: thinPose



Michael Hartlef
19-03-2007, 11:44
Hi Petr,

after some sleep and thoughts about the box animation, I think you are allready on a very nice system for animations
in TBGL. If someone doesn't work with Blender, an external tool for bone creation and animation would
become very usefull. Also the new command you mentioned, TBGL_DefBoneAddVertex, would be really handy
for an idea I have, thinPose.

This tool, created with thinBasic, would have 3 main functionalities:

1) Create bones visually. With this tool the user could load a M15 model, draw the bone boxes in it (or load a predefined skeleton), assign or unassign single vertices, define which bones are parents of others, etc etc.

2) Animate the bones manually and with predefined paths. You would have a timeline with spline curves. Also playback the animation inside the UI.

3) Load/Save the bones in a format that TBGL could read, also be able to import BVH animation files.

I guess that will be my next big project, giving the UI and TBGL modules a good workout ;)
Also I'm positive that creating this in thinBasic would great to exchange ideas and define the animation routines
that then can be turned into TBGL functions for performance reasons.

What do you think?

Michael

Petr Schreiber
19-03-2007, 20:43
Hi Mike,

great idea !
I think the base then is to develop TBGL_DefBoneAddVertex and TBGL_EraseBoneVertices.
This should be ( as Duke Nukem says :) ) piece of cake.

Your plan is good, I just don't know about BVH file format :-[
Could you give me some links ?


Bye,
Petr

kryton9
19-03-2007, 21:39
Sounds like an awesome next project for you Mike and your capabilities. It will be a very very nice addition for sure.

I had never heard of BVH format either Petr, found this link:

http://www.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html

Petr Schreiber
19-03-2007, 21:43
Hi,

thanks a lot kryton :),
this seems to be the BVH Mike is talking about!


Bye,
Petr

Michael Hartlef
19-03-2007, 21:44
Google for bvh animation file format. It is mostly used for transfering motion captured datas. It is a little vague format and hard to find description, but some importers allready exist and so i can study the sources. Nothing that shoudl be implemented into TBGL itself, just to get these datas into this tool.

kryton9
19-03-2007, 21:49
There is a popular program motionbuilder that I never used. But I see in video tutorials at 3dbuzz. You might want to check them out too Mike, as that one is very very popular and probably a lot more information available. Good luck!!

Petr Schreiber
19-03-2007, 22:02
Hi,

I got some description from Wotsit (http://www.wotsit.org/list.asp?fc=3), I will study it.

Regarding motion capture there is problem in my country, I know about just 2 companies at max which have mocap studio ( Illusion softworks and Cinemax ? ) and they won't it probably let open for everyone ... and free :)


Bye,
Petr

Michael Hartlef
19-03-2007, 22:21
You can get motion capture files from the net, some for free, some expensive. But that is not the point of this tool. It is more a nice addition and I would not be sad if it doesn't happen.

kryton9
20-03-2007, 07:59
As long as we can save animation (motion sequences we make) and use them with other models by assigning common control points.

So perhaps let's say we make a humanoid walk cycle in various complexities:

HumanoidWalkVeryBasic
head attached to a body: 1 Neck Joint
2 arms attached to body: 2 shoulder Joints - Left and Right
2 hands attached to Arm: 2 wrist Joints - Left and Right
2 legs attached to body: 2 hip joints - Left and Right
2 feet attached to leg: 2 ankle joints - Left and Right

Now any models we make that have these joints can use this walk cycle

Now we could have
HumanoidWalkBasic
HumanoidWalkNormal
HumanoidWalkComplex

Each level would have more joints and movable points. But having these templates the model designers can design their models accordingly thinking of the key joint points.

The same for creatures, vehicles etc.

HumanoidWalkComplex for example would have the eyes, the ears, the mouth a full human character with all their attributes that can be animated.
HumanoidWalk Normal would have all the key joints for movement of a full humanoid, but not details like eye, ear, mouth, respiration etc. Just the limb and major body part movements.

we could design categories like this if you want and then you can work on your project with these things in mind.

The reason for the very basic walk for instance would be for a crowd, where they are in the distance and detail is not important, but you want to animate them. Or for an alien race that might have a simpler humanoid structure. This way the modeler and animator will know what is available in their palette of preset animation motions, or what they could add for the future when they have time.
What do you think guys?

Michael Hartlef
20-03-2007, 09:53
Yes, exchangeable animation rigs and so reuse of animation data is my goal. As long as the bones are named the same, animation should be able to be exchanged.

kryton9
20-03-2007, 10:30
Great Mike, sounds like a good way to go!!

Michael Hartlef
22-03-2007, 10:15
Yesterday I fiddled a little around with the possibility to add other controls like toolbars, treeviews, etc. For sure it will be a lotof work and testing before I have this done. As I think that Eros will come up with these controls as a native controls for tb, I wanna try a different route, making some pseudo 2D gui element routines for tbgl. most of my 3D apps do it this way, so I curious if I will be able to build something like this. Stay tuned.

Cheers
Michael

ErosOlmi
22-03-2007, 13:00
Yes, right Mike.
All native Windows control can be handled directly in thinBasic with just few UI module tune in message pump.
I have almost ready Tab control usage. The difficult part is that many of those controls use message notification that add a new level in message pump returning pointers to specific control structures. So here the decision is to wrap all those controls into UI functions or go with Win32 SDK programming.

So, still some time to test and take decision on which direction to take.

I know, you would like to have all already there and I would like it to be so. So sorry but we need more time (months) to make the job.
This is the problem to be here with a language that is just trying to start flying but wings are not already completelly built.

Eros

Michael Hartlef
22-03-2007, 13:36
Don't be sorry Eros, you guys do a great job. I nice to hear that you have these common controls on your list. :)

kryton9
22-03-2007, 20:41
Eros you are the human dynamo, nothing to be sorry about. Amazing what you guys are doing with thinBasic!!

Mike, since you were able to tap into the input of directx, why not the ui stuff too. Just make a tbui module from the great stuff in directX?

Michael Hartlef
23-03-2007, 09:43
I don't have directx 9 headers for PowerBasic. Plus, wasn't it you who wanted to look into this? ;)
I'm still waiting for this. :)

Mixing 2 graphic apis that are not related feesl unnatural to me.

kryton9
23-03-2007, 10:12
I had interest in it, but sort of got talked out of it by you guys and the sample that Petr did.
On the otherhand you already figured out how to make a module out of directX input, so maybe the ui will be easier, I have no idea.

I think with Petr's neat example he made the other day. it is not necessary to use directX, that sample was very neat. Once we have fadeable meshes/objects, it will be perfect!!

Petr Schreiber
23-03-2007, 10:18
Hi kryton,

for the fading meshes, would you like to take tbgl_m15DrawModel one parameter in range 0 to 100 specifying alpha channel ? Or using other way ?


Bye,
Petr

Michael Hartlef
23-03-2007, 10:47
I had interest in it, but sort of got talked out of it by you guys and the sample that Petr did.

Sorry, it was not my intention to demotivate you. I will keep my mouth shut from now on.

kryton9
23-03-2007, 20:00
Mike, please don't feel like that. We need to discuss and give opinions, you guys talked me out of it with good comments and Petr's example, so that is why. I wrote that right before going to sleep so maybe it didn't come out right or something?

I love to hear from everyone and never get offended, because when reading written things it is hard sometime to see the context or time the person wrote in. But on the otherhand, I like written more than talking as more casual it seems to me.

So always speak your mind, I love it and look forward to it and if anything ever offends you or you take badly please say so, because I can gaurantee that was not the intent ever!!

Petr I know that it will be really nice to be able to control the fade dynamically. This is just an example not that it will be in the game, but what came to my mind right now, a ship might cloak, so you can see it sort of go from solid to transparent in a short period of time. So it would be nice to make it something that can be in the render loop that can change dynamically, so whatever way you see best is fine for the command. Of course as in the case of a glass material or surface, it wouldn't need to be dynamic, so both cases should be addressed and so whatever you say is best is fine with me, I am just happy it is coming!!

One thing, like in the case of the space station, would the m15 be able to read the transparency of the material from Blender for example? So maybe something you and Mike should talk about too. Or would the all the glass parts be separate from the main model?

Petr Schreiber
23-03-2007, 20:51
Hi kryton,

I now discovered one way to speed up general model handling, it will need lot of work on internal structures. So I will do changes anyway :)

Fact is - less state changes, more speed. I think I could add this autoblending to some parts of model, but it will be always slower than rendering solid stuff first and transparent later, in 2 big chunks.

But maybe it won't be that drastical. I now have to study way OpenGL is going in future too, to not built TBGL on base which will vanish or be inefficient in future. Still trying to achieve maxximal compatibility with old and low end hardware.
Quite a challenge :)


Bye,
Petr

kryton9
24-03-2007, 07:47
Petr, it is beyond me how you are doing all of this. I have total faith in you and know you will figure out a really good way. Good luck with it. It will be a very nice feature to have that is for sure.