Recommendation for the best approach to take?

The place for artists, modellers, level designers et al to discuss their approaches for creating content for OGRE.
Post Reply
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Recommendation for the best approach to take?

Post by Garthy »

I was wondering if I could get some recommendations on the best approach to take in my situation, from people who have a bit more experience than me in the area of content creation and use. I've spent a while trying to figure this out myself and am really having trouble wrapping my head around all the information, especially when so much is out-of-date or trying to sell me something that I may not need. I've sunk hours into this problem and it really feels like I'm getting nowhere on my own. I could really use some additional input.

First, some background: I'm a software developer, that side is no hassle. I'm quite familiar with 3D software development, and 3D engines, and much of their tech. I've been using Ogre for a short time in comparison, but I feel I've got the hang of it now and can find my way around the documentation fine. Using the Ogre3D engine isn't a big hassle for me.

However: When it comes to the 3D content *itself*, ie. the models themselves, tools commonly used, preferred formats, tricks of the trade, things to look for and avoid- I know next to nothing. I also lack artistic ability, don't have the tools commonly used for model generation, don't know how to work them, and don't have the time or opportunity to learn them in the detail required to do my own modeling. It is just an area I am not skilled in.

What I have: I currently have a bit of software that works fine with the included models with Ogre. Setup, animations, so forth, all fine. I load existing Ogre meshes (and indirectly, skeletons), and adjust animation states to animate the entity. This part is fine.

What I'm after: I can see the need for two main types of models in my project. The first type is fairly basic static geometry. The second type is for animated human models. I think my ideal is something where I had a simple model (or two, or three) linked to a skeleton, along with a set of animations for that skeleton, that can be combined (before runtime) to produce a bunch of meshes that I can use in my existing code. Being able to have a large number of animations would be a very big bonus, even if I had to compromise on quality in some respect. If I can't have this, a small number of animations is fine.

Cost *is* also an issue. I can't afford to have it all custom-designed for me (sadly).

Now, for the latter of the two types of models I've mentioned, I've dug around and found a bunch of information, but lack the experience to make a sensible decision as to what to do with it.

I've found, for example, places like CMU with downloadable motion capture information. I'm thinking this sort of thing, applied to existing models somehow, could be very useful. I've heard of tools like Poser, which would seem to handle this sort of thing in some capacity. My understanding is that various modeling tools can pull in animation data of this sort and somehow use it with existing models, but I'm not really sure about this. It'd be neat to be able to combine the models, skeleton data, and animation data together outside of a modeling package, if such a facility existed. Again, processing before runtime is entirely acceptable, I don't have to do this live.

Now for both cases, one thing I've noticed is that various model sites (eg. TurboSquid) tend to offer models in a limited number of formats, a common one being 3ds max, for example. Another thing I've noticed is that most converters are actually exporters, and require the modeling tool to be owned to be able to use them. At a cost of around $3.5k for say 3ds max, I really can't see someone downloading a free model and then forking out $3.5k to covert it. So people are taking another approach- what is it? I had an experiment with Blender, pulling in 3ds max files and attempting to export them. I haven't had a great deal of success.

The overall approach that I'd like to take would be one where I grabbed as much freely-usable content as possible initially, got that working, and then later, and as needed, paid a professional artist/designer/modeler to fix up the things that really needed to be customised. Or, if I can determine this would be prohibitively expensive, finding out about it now before I've sunk too much more time into things would be useful.

Now skimming the Ogre wikis, I've found *some* information that has helped, but good chunks seem out of date. For example, the step-by-step guide here:

http://www.ogre3d.org/tikiwiki/ArtisticallyDisabled

doesn't actually work, and it even tells you that in the opening lines.

The page here:

http://www.ogre3d.org/tikiwiki/tiki-ind ... +Exporters

doesn't seem to have any maintained non-commercial 3ds max exporters or converters on it. Are there really none? Can this be done by converting from format A to B, then to Ogre, or something like that?

So, basically what I'm wondering, is: based on what I am trying to achieve, what approaches should I be considering, where should I be looking for suitable content, how feasible is it to use the wealth of existing mocap data with models, and how can I get the whole lot into Ogre to use, preferably inexpensively? Where can I find further information on specific approaches that are worthwhile taking?

Thankyou for reading this far; any suggestions most appreciated.
User avatar
so0os
Bugbear
Posts: 833
Joined: Thu Apr 15, 2010 7:42 am
Location: Poznan, Poland
x 33

Re: Recommendation for the best approach to take?

Post by so0os »

Hijack as much as you can from free resources. It's always more efficient that reinventing the wheel, unless you plan to do stuff better than ones you can just get from somewhere.
Sos Sosowski :)
http://www.sos.gd
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

so0os wrote:Hijack as much as you can from free resources. It's always more efficient that reinventing the wheel, unless you plan to do stuff better than ones you can just get from somewhere.
Yes, this is the gist of the overall approach that I'm looking to take, at least initially. However, as detailed in my over-long post above, there are a few things that I am unsure how to best approach, and a few problems I have run into. This is what I am seeking a recommendation on.
jvcraft87
Gnoblar
Posts: 7
Joined: Wed Jan 26, 2011 9:43 pm

Re: Recommendation for the best approach to take?

Post by jvcraft87 »

I'm in a similar boat as you. I'm a software engineer and am trying to get a project going with 3d models/animation/interaction/etc..

For 3d modeling ... freeware like Blender (blender.org) provide import tools from a wide variety of mesh sources. There are several free resources online that provide meshes for free. Animating them in Blender takes work in setting up the armature rig, skinning/binding the rig to the mesh, and then actually generating the animations. Blender even has a game engine with physics that can use such models/rigs/animations. Lastly, there is an active effort in providing export tools of such resources to a format that Ogre can use.

Content such as models with textures, animals with fur, buildings with material, etc., can be found for free but they won't be the highest quality (there are some exceptions). Renderosity (www.renderosity.com) has many resources that can be bought inexpensively, imported into Blender, worked up, and exported in Ogre format to be used. It takes time/work/effort to pull it off end-to-end, but it can be done.

One last thing, software such as Daz3d (www.daz3d.com) provide access to models that can be pulled into Blender, rigged, skinned and animated, and used in Ogre. The problem arises is that the EULA for the models from DAZ are that they ARE NOT allowed to be used in any game creation. You can buy licenses for them for that usage, but the cost is usually $80-$100 (USD). The other issue is that they are very hi-poly count meshes. Again that can be overcome as DAZ has a tool add-on that you can buy to "derez" the mesh, so to speak.

I hope that helps a little. Again, I'm working my way through it myself and have spent quite a bit of time learning to model/rig/skin/animate in Blender. Next steps are to push it into Ogre to finalize and perhaps publish someday.

Cheers!

Jim
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

jvcraft87 wrote:I'm in a similar boat as you. I'm a software engineer and am trying to get a project going with 3d models/animation/interaction/etc..

For 3d modeling ... freeware like Blender (blender.org) provide import tools from a wide variety of mesh sources. There are several free resources online that provide meshes for free. Animating them in Blender takes work in setting up the armature rig, skinning/binding the rig to the mesh, and then actually generating the animations. Blender even has a game engine with physics that can use such models/rigs/animations. Lastly, there is an active effort in providing export tools of such resources to a format that Ogre can use.
Cheers for the input on this one. I've experimented with Blender, but have had some hassles getting things imported and then exported successfully. You mention a need to perform a bit of touch-up on things- I guess this is what I was dreading.
jvcraft87 wrote: Content such as models with textures, animals with fur, buildings with material, etc., can be found for free but they won't be the highest quality (there are some exceptions). Renderosity (http://www.renderosity.com) has many resources that can be bought inexpensively, imported into Blender, worked up, and exported in Ogre format to be used. It takes time/work/effort to pull it off end-to-end, but it can be done.

One last thing, software such as Daz3d (http://www.daz3d.com) provide access to models that can be pulled into Blender, rigged, skinned and animated, and used in Ogre. The problem arises is that the EULA for the models from DAZ are that they ARE NOT allowed to be used in any game creation. You can buy licenses for them for that usage, but the cost is usually $80-$100 (USD). The other issue is that they are very hi-poly count meshes. Again that can be overcome as DAZ has a tool add-on that you can buy to "derez" the mesh, so to speak.
Cheers, I'd run into Daz3D as well. I'm left with the feeling that there might be a number of accumulating costs that I'll encounter as I head down this path. You mention the license to use the models, the need for a decimation tool. I am left wondering what the end cost will be by the time I've bought everything, and if it'll even do what I need. Of course, I could be entirely wrong, and I'm happy for anyone who has taken this path to correct me.
jvcraft87 wrote: I hope that helps a little. Again, I'm working my way through it myself and have spent quite a bit of time learning to model/rig/skin/animate in Blender. Next steps are to push it into Ogre to finalize and perhaps publish someday.
Cheers for sharing your experiences on this one, much appreciated. It's reassuring that I'm not the only one struggling with this situation.

Personally, it seems strange to me that such a big gap can exist between content and getting it into the engine, so I am working on the assumption that there are means to achieve this, I am just ignorant as to what they are. Of course, I could very well be wrong.
jvcraft87
Gnoblar
Posts: 7
Joined: Wed Jan 26, 2011 9:43 pm

Re: Recommendation for the best approach to take?

Post by jvcraft87 »

I think it depends on which side of the gap you stand on. Or, the gap is Left Brain/Right Brain.

From what I've gleaned is end-to-end in a short time frame requires a team.
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

Well, I managed to get a chain going that *resembles* what I'm after:

makehuman -> Blender 2.4 -> Ogre export -> OgreXMLConverter

Unfortunately, you can't animate it, which makes it a bit of a hollow victory.

The next refinement to this is to use a version of Blender that has the newer makehuman plugin that'll (apparently) let you animate it properly:

makehuman -> Blender 2.5

But then you need an Ogre exporter for Blender 2.5- whoops, there doesn't seem to be one that works with animated meshes. So basically:

makehuman -> Blender 2.5 -> *magic happens* -> Blender 2.4 -> Ogre export -> OgreXMLConverter

Unfortunately the step where magic happens has to be one where the makehuman-specific stuff isn't lost. And I'm assuming that the Ogre exporter is compatible and can export the skeleton and mesh properly. And that the mocap data used is compatible. And the results are reasonable. And that the model can be easily tweaked, decimated, and clothed.

Ugh. More wasted time.

Perhaps a better phrasing of the second part of my original question is:

Can anyone confirm a full working toolchain from start app to Ogre that allows rapid creation of animated figures (by a skilled modeler) from freely-available mocap data, and what the likely cost would be either for the toolchain or for the services of someone with such an established chain? What are established artists/designers/modelers typically using for the first stage here? Daz3D? Poser? Something else? Not realistic? Not possible?

But again, I'm not sure if I'm even asking the right question. Very frustrating.
jvcraft87
Gnoblar
Posts: 7
Joined: Wed Jan 26, 2011 9:43 pm

Re: Recommendation for the best approach to take?

Post by jvcraft87 »

Actually they (my friend's outfit) are using Autodesk products. Blender CAN duplicate them, but it takes time to get up the learning curve. Modo, Muddbox, ZBrush are all modeling packages that can export into a format that can be used in an Engine.

In your chain, you could sub 3DSMax, Muddbox, ZBrush in the Blender side and those models/scenes get dropped into an engine such as Unreal.

My chain is similar to your chain, but animations in Blender can be exported via the Ogre exporter. I've created a simple model with armature and animation in Blender 2.49 and exported via Ogre export, and successfully imported the exported "stuff" into the jMonkeyEngine (kind of a Java-based Ogre w/physics). I was able to assign the various animations (Rest, Motion) to a key, and then render it and animate it. I'm confident that I can take a mesh created in MakeHuman, rig and skin it, create animations, and successfully export them with the Ogre exporter finally using them in Ogre or jMonkey.
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

jvcraft87 wrote:Actually they (my friend's outfit) are using Autodesk products. Blender CAN duplicate them, but it takes time to get up the learning curve. Modo, Muddbox, ZBrush are all modeling packages that can export into a format that can be used in an Engine.

In your chain, you could sub 3DSMax, Muddbox, ZBrush in the Blender side and those models/scenes get dropped into an engine such as Unreal.
Cheers, that's useful to know.
jvcraft87 wrote:My chain is similar to your chain, but animations in Blender can be exported via the Ogre exporter. I've created a simple model with armature and animation in Blender 2.49 and exported via Ogre export, and successfully imported the exported "stuff" into the jMonkeyEngine (kind of a Java-based Ogre w/physics). I was able to assign the various animations (Rest, Motion) to a key, and then render it and animate it.
And again, cheers for that, it's useful to know.
jvcraft87 wrote:I'm confident that I can take a mesh created in MakeHuman, rig and skin it, create animations, and successfully export them with the Ogre exporter finally using them in Ogre or jMonkey.
My understanding at this point with respect to makehuman (not confirmed, I'm still experimenting with it) is that if you use the importer for Blender 2.5*, the rigging is already handled for you, and you basically just pull in mocap data and export to your desired format. Unfortunately, that creates the problem mentioned above, namely that if I'm using Blender 2.5*, I can kiss Ogre exporting goodbye.

If I use Blender 2.49, it needs manual rigging but I *can* use the exporter. At this point, manual rigging is beyond my understanding. In your opinion, how long do you think it would take yourself to rig an arbitrary model (say, in Blender)? I'm only asking to get a ballpark figure- I'm not asking you to do it or anything crazy. ;) How about an experienced modeler? Once the rigging was done, would I be correct in assuming that it then become fairly trivial to pull in external mocap data and get the animations into Ogre via the exporter (quality of the mocap data aside)?
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

Update: I was unsuccessful in finding a working combination of makehuman, Blender, and suitable mocap data. Some people appear to have succeeded, but finding information on the specific versions or the tricks they used to clean things up seems impossible. This approach is a dead-end it would seem. Perhaps it will be more feasible once Blender hits the next stable release and makehuman is more mature.
jvcraft87
Gnoblar
Posts: 7
Joined: Wed Jan 26, 2011 9:43 pm

Re: Recommendation for the best approach to take?

Post by jvcraft87 »

Garthy wrote:My understanding at this point with respect to makehuman (not confirmed, I'm still experimenting with it) is that if you use the importer for Blender 2.5*, the rigging is already handled for you, and you basically just pull in mocap data and export to your desired format. Unfortunately, that creates the problem mentioned above, namely that if I'm using Blender 2.5*, I can kiss Ogre exporting goodbye.

If I use Blender 2.49, it needs manual rigging but I *can* use the exporter. At this point, manual rigging is beyond my understanding. In your opinion, how long do you think it would take yourself to rig an arbitrary model (say, in Blender)? I'm only asking to get a ballpark figure- I'm not asking you to do it or anything crazy. ;) How about an experienced modeler? Once the rigging was done, would I be correct in assuming that it then become fairly trivial to pull in external mocap data and get the animations into Ogre via the exporter (quality of the mocap data aside)?
For the current version of MakeHuman that imports into 2.5X, there is a fully functional armature skinned with the mesh. However, as you pointed out exporting to Ogre is not working at the moment. However, there supposedly is a fix in Blender SVN that will work with an updated version of the exporter addon. I haven't pulled that yet so I can't confirm it.

As for mocap data ... I would think the armature would need appropriate IK bones to map the mocap data onto. In other words, the mocap and the mapping onto the armature have been pre-planned. Further, I would expect the engine to be somewhat customized to properly interface the armature/mesh with the mocap so that the "motions" are effectively a macro. Perhaps if you had intimate knowledge of the points captured in the mocap one could generate a rig sufficient to "replay" the animation. As you can infer I've not worked with any mocap data ... yet ...

And to answer your question about how long to rig an arbitrary model ... Just to do a basic rig would be 3-4 hours. Rigging the face for full expression (including tongue) probably another 4-6 hours. Animating would probably take minimally 4-6 six hours for essential animations (stand, walk, run, jump). I would expect an experienced modeler/rigger would probably cut that time in half (or more).
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

jvcraft87 wrote:For the current version of MakeHuman that imports into 2.5X, there is a fully functional armature skinned with the mesh. However, as you pointed out exporting to Ogre is not working at the moment. However, there supposedly is a fix in Blender SVN that will work with an updated version of the exporter addon. I haven't pulled that yet so I can't confirm it.
I'll be holding off on this one for for now, perhaps checking the situation out in a few months time. I've been burnt too many times chasing tech that sounds great in theory but isn't quite there yet to want to sink too much more time into it. Eventually things will stablise, I'm guessing a couple of months after a stable Blender 2.5* is out.
jvcraft87 wrote:As for mocap data ... I would think the armature would need appropriate IK bones to map the mocap data onto. In other words, the mocap and the mapping onto the armature have been pre-planned. Further, I would expect the engine to be somewhat customized to properly interface the armature/mesh with the mocap so that the "motions" are effectively a macro. Perhaps if you had intimate knowledge of the points captured in the mocap one could generate a rig sufficient to "replay" the animation. As you can infer I've not worked with any mocap data ... yet ...
It's all fairly new to me as well. I'm seeing a whole bundle of demos floating around the place though, it would be great to know if a sensible path for getting such (captured) animations into Ogre existed, and what it is.
jvcraft87 wrote:And to answer your question about how long to rig an arbitrary model ... Just to do a basic rig would be 3-4 hours. Rigging the face for full expression (including tongue) probably another 4-6 hours. Animating would probably take minimally 4-6 six hours for essential animations (stand, walk, run, jump). I would expect an experienced modeler/rigger would probably cut that time in half (or more).
Cheers. Knowing this gives me a rough idea as to workload involved, which is quite useful.

Thankyou again for your time and thoughts on the topic. To be frank, the general response to my original post has been pretty underwhelming, so I'm grateful for the time you've personally taken in sharing your thoughts and experiences.

After a bit more experimentation on my part, I fear that I may need to take some time to reevaluate what I can sensibly accomplish in this area, and the overall viability of what I can do.
jvcraft87
Gnoblar
Posts: 7
Joined: Wed Jan 26, 2011 9:43 pm

Re: Recommendation for the best approach to take?

Post by jvcraft87 »

Garthy wrote:It's all fairly new to me as well. I'm seeing a whole bundle of demos floating around the place though, it would be great to know if a sensible path for getting such (captured) animations into Ogre existed, and what it is.
Look at this web site:

http://mocap.cs.cmu.edu/

I haven't looked at the data yet, but I don't see why the data couldn't be mapped to an IK bone or individual bones in the armature.
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

Cheers, yep, this is the CMU website I mentioned. Cleaned up copies of the data are also available (elsewhere), apparently suitable for import into various programs as BVH, and I believe this includes Blender.
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

jvcraft87, if you're curious, this seems to me at this point to be the most promising starting point:

https://sites.google.com/a/cgspeed.com/ ... ly-release

My guess is that with this data the thing I am setting out to do *might* be within your grasp- it's not quite within mine yet.
Garthy
Halfling
Posts: 47
Joined: Wed Dec 22, 2010 7:30 am

Re: Recommendation for the best approach to take?

Post by Garthy »

I've had a bit of an experiment with the trial version of 3ds max and the max-specific version of the data above, and had a partial degree of success. I can create a skeleton in 3ds max, load in the BVH version of the CMU capture data, and play it as an animation in max. Exporting via OgreMax as a mesh claims to work but there is no output. I am guessing that this is due to there being a skeleton, but no actual mesh. Being unfamiliar with 3ds max, I don't know enough to proceed much further, but I can guess the process that follows is create a model, rig it, and export it.

Assuming the above is correct, it would appear that the answers to my original questions are:

A model can be created in various packages, rigged (ie. bone weights assigned) in a package capable of doing so (eg. 3ds max) to a predefined skeleton (of which some packages have a "default" skeleton they use, eg. the biped tool in 3ds max). Motion capture data, once properly processed to work with a particular skeleton (this being a specific step, and the reason there are app-specific "tweaks" of mocap data), can simply be imported into the tool in question, this being an extremely simple process. To generate files suitable for use in engines (such as Ogre), somehow multiple sequences are pulled in and the exporter emits them somehow (I'm not sure of the specifics of this).

I am guessing that the answer to the first part is probably that everyone is either using a dodgy version of 3ds max, or has a legitimate version and are selling their services, which means that people have just settled on to that as a preferred format.

At a guess with respect to toolchains, I'm guessing that people are either paying for something like OgreMax, or exporting to a suitable intermediate format that is more readily converted (I can't be sure what format(s) are used in this way though).

I'm also guessing that the above is entirely obvious to anyone involved in animation and modeling. This would suggest that I asked the original question either in the wrong place, or in the wrong way. Lesson learned.

Hopefully my guesses above are at least vaguely accurate. With any luck I hope that anyone in a similar situation to myself can be saved the considerable frustration I went through.
Post Reply