Old 04-20-2008, 03:23 AM   #1 (permalink)
Cloud's Hair Spray
 
Join Date: Aug 2006
Location: Away from you.
Posts: 70
Reputation: 10
Send a message via AIM to Gauge Send a message via MSN to Gauge Send a message via Yahoo to Gauge
Default Help - Mesh Animations/Rigging

I'm making a 3d game engine for fun or use later. Right now I have segmented 3d models rendering from .obj files. Segmented models and animation is good and all but it would be nice to figure out how to do mesh animations so we can actually have something nice.

If anyone knows anything about how to do this or where I can get example code please help me out.

My plan is to use the segmented renderer I have now for the bones and maybe attach a weight map to a mesh and have the mesh calculated after all the bones move first according to the mesh points weight map.

This was just an idea but I'm open to all suggestions.

Gauge
__________________
Gauge is offline   Reply With Quote
Old 04-20-2008, 03:58 AM   #2 (permalink)
Sonic’s Milkshake
 
Mustang's Avatar
 
Join Date: Dec 2006
Location: Los Angeles
Posts: 312
Reputation: 0
Send a message via MSN to Mustang
Default

Well you may already know this but obj format does not include rig support.

Now on the other hand, depending what you are using (programming language) and what operating system you plan on using it for, windows, macintosh or linux, you will find different formats supportable.

.max (max file for either turbo or 3d studio max, do not know exact origins)
.X (direct x)
.fbx (autodesk)
.MA (maya native)

These are a few formats you could see to allow to be viewed.

FBX is a very, very strong format, although how much of it you can support is a bit hard to find out, .X is a much more game ready format and is supported by a wide variety of game programs.

MA is a maya native file format, it can hold much more complicated data, everything from physics, fluids, etc, but it will only import into maya, if you can get an sdk from autodesk it may be possible to work on an MA format.

Max I think is a comprehensive format to use, if your using irrchlit or whatever, you can use max and .x as well as b3d or aka blitz3d format.

Any way you do it, your going to be required to get these formats preview able like you did with the obj format.
__________________
Your mind is only as great as you want it to be.
At the center of every mind, lies the heart of creation.

Last edited by Mustang; 04-20-2008 at 04:02 AM.
Mustang is offline   Reply With Quote
Old 04-20-2008, 04:28 AM   #3 (permalink)
Cloud's Hair Spray
 
Join Date: Aug 2006
Location: Away from you.
Posts: 70
Reputation: 10
Send a message via AIM to Gauge Send a message via MSN to Gauge Send a message via Yahoo to Gauge
Default

Other than using these file formats and the appropriate readers. Is there anyway to make your own plugin, export text files and code a universal reader yourself.

This is our ultimate goal. To create plugins for maya, max and lightwave to export all needed info in our own file format( essentially an organized text file ) and then just have the engine be able to use it. I mean if they can do it we can do it to right?

Also we are making our own game engine from scratch using SDL, C++, and openGL so far. As far as I know I can compile it in windows and in linux, but I've only ran it in linux thus far. Theoretically this is possible, however, we all know how that goes.
__________________

Last edited by Gauge; 04-20-2008 at 04:32 AM.
Gauge is offline   Reply With Quote
Old 04-20-2008, 04:41 AM   #4 (permalink)
Sonic’s Milkshake
 
Mustang's Avatar
 
Join Date: Dec 2006
Location: Los Angeles
Posts: 312
Reputation: 0
Send a message via MSN to Mustang
Default

Quote:
Originally Posted by Gauge View Post
Other than using these file formats and the appropriate readers. Is there anyway to make your own plugin, export text files and code a universal reader yourself.

This is our ultimate goal. To create plugins for maya, max and lightwave to export all needed info in our own file format( essentially an organized text file ) and then just have the engine be able to use it. I mean if they can do it we can do it to right?
I assume so, MilkShape was capable of doing this, even supporting a WIP MB and MA file format reader for maya support.

A universal reader if fully available, but not in.... well a game way, as much as milkshape can handle game related things, you may be better off finding a way to replicate whatever milkshape has done.

An MA format would work especially, as well a more complicated one would be MB format (Maya Binary) Which is in my opinion a much more better format than MA.

One thing you will want to look into is supporting hlsl shaders.

Maya can work directly on hlsl shaders, and if your uniting support for rendering, hlsl shader support is probably one of the best ideas you could go for, although it may be a pain in the rear end to complete.

Universal support would be wonderful, but you would really need to take into account the many variables of what is carried over, in MA and MB fluids, dynamics, IK, shaders, etc that are controlled by hlsl materials would all need to be networked correctly in your engine.

So if you plan on working on a universal network, which is possible, you might want to think about a hyper graph for connecting specific material and managing them for specific content.

If you can somehow get support for lightwave, 3d studio max and Maya on a native grounds, then you would need to take into serious consideration IK and FBIK handles in maya.

How much of these formats work with other 3rd party applications and methods like game physics, as an example newton or agea, the format you support may not be compatible, or work correctly with that game function.

If you focus allot on lower formats for universal readers you might have a wider foundation to then work on more powerful formats such as MAYA and XSI.

EDIT: Unreal has a format actor X used to import animation and mesh data from maya, xsi and 3dsmax.
I reckon it is fully possible to work on a plug in to import maya data, 3ds data light wave data, while these programs would be given a plug in to export to this format you would make.

Its an example of how unreal supports maya, 3ds max and xsi.

Maya and 3ds max, especially maya, is optimized for open gl. HLSL shaders work extremely fast on fireGL, ruby cards from ati. If your looking for a good render supporting hlsl shaders would be a plus for you on a rendering end. GLSL shaders support from programs like maya and max I don't know much about, but if you are able to support each, hlsl and glsl shaders you could export shaders from maya or max to be used in games that you make or your customers make with your engine if you support both a direct x and open gl foundation.
__________________
Your mind is only as great as you want it to be.
At the center of every mind, lies the heart of creation.

Last edited by Mustang; 04-20-2008 at 04:33 PM.
Mustang is offline   Reply With Quote
Old 04-21-2008, 02:55 PM   #5 (permalink)
Cloud's Hair Spray
 
Join Date: Aug 2006
Location: Away from you.
Posts: 70
Reputation: 10
Send a message via AIM to Gauge Send a message via MSN to Gauge Send a message via Yahoo to Gauge
Default

So after reading carefully what you are saying.

My problem with this is, I can do 2 things.

1. Make my engine compatible with all the modeling programs I want to support by adding readers to my engine. This is rough for me. It makes me think every time one of the programs updated their software I will have to release a new version of my engine. (which in modeling programs is very frequently, i'm sure you know) If this is not true then my engine just got done a heck of a lot sooner.

2. Make plugins for the modeling programs to make a universal file format for my engine. This would mean only the plugins would need to be updated. Which I could have users, artists, or anyone else do. Scripting isn't the hardest thing in the world to do.



As far as how to do it.

I'm thinking that having segmented bones pointing to each other with an attached mesh of vertices and weights of bones is the way to go. I'll move the bones like I'm moving my segmented models now. Then on a last pass I can use the rotations of the bones and the weights attached to each vertex on the mesh to move the mesh.

Thoughts?

EDIT:

What would be truly awesome is if anyone knew how to get data out of the Maya, max and light wave files. then I could just make a program that extracts the data I need to a text file, already formatted and everything. I am not even a newbie at encryption stuff, so I know nothing about it.
__________________

Last edited by Gauge; 04-21-2008 at 03:05 PM.
Gauge is offline   Reply With Quote
Old 04-22-2008, 04:56 AM   #6 (permalink)
Sonic’s Milkshake
 
Mustang's Avatar
 
Join Date: Dec 2006
Location: Los Angeles
Posts: 312
Reputation: 0
Send a message via MSN to Mustang
Default

I think I understand where your going with this. You would use weights as placements to act as bones in your own format, replicating the rig data?

In relation to an ma/mb format to extract data, would be.... well it may be a little more complicated, if you only want to allow specific thing such as bones, and mesh data to be extracted I suppose you should much rather go with fbx.

If you can work around getting much more data out of ma and mb formats you might find it useful to do this in 3ds max and lightwave files.

Lightwave, 3ds max, and maya lights, and materials may help allot with extracting some very intriguing results.

But if your working around hlsl shaders if I remember correctly they are direct x shaders, glsl or whatever they are for open gl shaders may be something you can add if you wish to work on other OS's, since Open Gl can be used on all 3 major OS's I assume glsl shaders would be best to go with and not hlsl.

If you use skinned weights, the probability of mesh deformation could be different for many different formats, if you were to export from ma to fbx, an animation or mesh deformation that looks correct in maya, may look much different when imported or re-imported into maya or another program via an exported fbx.

So the chances of compatibility with what your looking for by extracting data could be messed up a little bit.

If you do go looking how to extract data from 3ds max, lightwave and maya, even xsi, it would be a really good idea to support lighting exports, or imports from your engine into these programs.

Lights, materials, mesh and rig data.
__________________
Your mind is only as great as you want it to be.
At the center of every mind, lies the heart of creation.
Mustang is offline   Reply With Quote
Old 04-23-2008, 01:33 PM   #7 (permalink)
Cloud's Hair Spray
 
Join Date: Aug 2006
Location: Away from you.
Posts: 70
Reputation: 10
Send a message via AIM to Gauge Send a message via MSN to Gauge Send a message via Yahoo to Gauge
Default

Well it appears that my girlfriend, who is graduating this semester, decided to not get a real job and work on the engine full time. I think I'm going to be adding members to the team sooner than I expected and releasing information on it.

Here is hoping our company is one out of the 10000000 new game companies that make it.
__________________
Gauge is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 04:31 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
OnRPG, Copyright ©2003-2011, Game Entertainment Enterprises