MechWarrior 4 style animation with OGRE?
- Gaffeghan
- Greenskin
- Posts: 110
- Joined: Sat Nov 13, 2004 10:37 pm
- Location: Ballston Spa, NY
- Contact:
MechWarrior 4 style animation with OGRE?
I've asked this question several times, but never quite gotten a satisfying answer. So I'll ask in a different forum
Is there any easy way to make MW4 style 3d animation that is both compatible with OGRE, and economical renderspeed wise? I ask because this kind of animation is a large part of my game project and I need to know what to tell my 3d modelers to do. I myself am very familiar with the LightWave modeler and scene layout, and am eagerly awaiting the LW .mesh/.skeleton exporter plugin currently in development by "P".
Also, I've searched but haven't found anything helpfull: can the .scene format contain any animation?
Is there any easy way to make MW4 style 3d animation that is both compatible with OGRE, and economical renderspeed wise? I ask because this kind of animation is a large part of my game project and I need to know what to tell my 3d modelers to do. I myself am very familiar with the LightWave modeler and scene layout, and am eagerly awaiting the LW .mesh/.skeleton exporter plugin currently in development by "P".
Also, I've searched but haven't found anything helpfull: can the .scene format contain any animation?
- haffax
- OGRE Retired Moderator

- Posts: 4823
- Joined: Fri Jun 18, 2004 1:40 pm
- Location: Berlin, Germany
- x 8
- Contact:
- RyanN
- Halfling
- Posts: 82
- Joined: Thu Aug 19, 2004 6:41 am
- Location: Victoria, Australia
- Contact:
- sinbad
- OGRE Retired Team Member

- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 67
- Contact:
-
MrSandman666
- Gnoblar
- Posts: 18
- Joined: Sun Dec 05, 2004 6:34 pm
My guess would be that he wants to know about something like the following:
In Mechwarrior it's possible to move several parts of the mech seperately from each other. A mech consists of several different parts: torso, legs and two arms. These parts are further divided. Most notably the legs: they have a platform beneath the torso to which they are attached. Each leg is subdivided into - I believe - two or three segments (depending on the model) connected with joints, much like a knee. Then each leg has a foot with a few toes. This foot is movable on a ball joint and the toes can move up and down a bit. That way the mech is pretty flexible. For example when it stands sideways on a slope it can keep the torsoe balanced by tilting the leg platform and extending the legs independantly as well as tiltint the feet sideways.
Another nice effect is that you can move all the body parts indepentantly. You can turn the torsoe to the left and up while the legs are still running into the same direction, for example. Or you could move the arms seperatly (though that is not possible in this specific game). You can also adapt the "gear" (the legs) to the terrain and do things like that. The leg animation is really the most impressive thing about the mechs, in my opinion.
What's special about this is that it's not just blending a "turn" animation with a "run" animation. At least it feels like the mech is really composed of several distinct parts, not one single mesh that gets bent with every animation. In the older Mechwarrior games you could even blow a mech apart (like blast of a leg or an arm).
There is no polygon stretching going on as the torsoe turns, unlike the classical animations of single-mesh humanoid models.
This is actually I've been looking for myself and I'm pretty sure it's doable in Ogre, I just don't have a clue as to how...
A few screenshots to illustrate my incoherent rambling:
http://www.gamespot.com/pc/sim/mechwarr ... l?page=149
http://www.gamespot.com/pc/sim/mechwarr ... l?page=134
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=94
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=75
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=55
In Mechwarrior it's possible to move several parts of the mech seperately from each other. A mech consists of several different parts: torso, legs and two arms. These parts are further divided. Most notably the legs: they have a platform beneath the torso to which they are attached. Each leg is subdivided into - I believe - two or three segments (depending on the model) connected with joints, much like a knee. Then each leg has a foot with a few toes. This foot is movable on a ball joint and the toes can move up and down a bit. That way the mech is pretty flexible. For example when it stands sideways on a slope it can keep the torsoe balanced by tilting the leg platform and extending the legs independantly as well as tiltint the feet sideways.
Another nice effect is that you can move all the body parts indepentantly. You can turn the torsoe to the left and up while the legs are still running into the same direction, for example. Or you could move the arms seperatly (though that is not possible in this specific game). You can also adapt the "gear" (the legs) to the terrain and do things like that. The leg animation is really the most impressive thing about the mechs, in my opinion.
What's special about this is that it's not just blending a "turn" animation with a "run" animation. At least it feels like the mech is really composed of several distinct parts, not one single mesh that gets bent with every animation. In the older Mechwarrior games you could even blow a mech apart (like blast of a leg or an arm).
There is no polygon stretching going on as the torsoe turns, unlike the classical animations of single-mesh humanoid models.
This is actually I've been looking for myself and I'm pretty sure it's doable in Ogre, I just don't have a clue as to how...
A few screenshots to illustrate my incoherent rambling:
http://www.gamespot.com/pc/sim/mechwarr ... l?page=149
http://www.gamespot.com/pc/sim/mechwarr ... l?page=134
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=94
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=75
http://www.gamespot.com/pc/sim/mechwarr ... ml?page=55
Mr. Sandman bring me a dream...
- sinbad
- OGRE Retired Team Member

- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 67
- Contact:
Ok, so I can think of 3 approaches immediately:
1. Make each section of the mech a separate entity, each with a separate skeleton. Make one the 'main' entity (maybe the legs) and attach the others to bones on the main skeleton.
2. Use a unified entity with one skeleton, then create separate animations which only include the parts of the model. E.g. 'legs_walk' only has tracks for the legs, 'leftarm_wave' only includes tracks for the left arm. Then change the animation blend mode on the skeleton (skeleton->setBlendMode(ANIMBLEND_CUMULATIVE)) so that animations are just 'added up' afterbeing multiplied by their individual weighting, rather than being averaged. Then just enable all the animations you want to combine at once, and each will animate their own part of the skeleton.
3. Use a regular skeleton with normal animation, but take manual control of individual bones (see the article in the wiki)
My preferred option would be 2.
1. Make each section of the mech a separate entity, each with a separate skeleton. Make one the 'main' entity (maybe the legs) and attach the others to bones on the main skeleton.
2. Use a unified entity with one skeleton, then create separate animations which only include the parts of the model. E.g. 'legs_walk' only has tracks for the legs, 'leftarm_wave' only includes tracks for the left arm. Then change the animation blend mode on the skeleton (skeleton->setBlendMode(ANIMBLEND_CUMULATIVE)) so that animations are just 'added up' afterbeing multiplied by their individual weighting, rather than being averaged. Then just enable all the animations you want to combine at once, and each will animate their own part of the skeleton.
3. Use a regular skeleton with normal animation, but take manual control of individual bones (see the article in the wiki)
My preferred option would be 2.
-
machinimist
- Halfling
- Posts: 65
- Joined: Sun Feb 06, 2005 12:55 am
- Bren
- Goblin
- Posts: 215
- Joined: Tue Jul 08, 2003 4:41 pm
- Location: 0,0,0
- Contact:
Given this, would it still be possible to "cross blend" the legs from run->stand while the left arm is waving? I would guess not.sinbad wrote:2. Use a unified entity with one skeleton, then create separate animations which only include the parts of the model. E.g. 'legs_walk' only has tracks for the legs, 'leftarm_wave' only includes tracks for the left arm. Then change the animation blend mode on the skeleton (skeleton->setBlendMode(ANIMBLEND_CUMULATIVE)) so that animations are just 'added up' afterbeing multiplied by their individual weighting, rather than being averaged. Then just enable all the animations you want to combine at once, and each will animate their own part of the skeleton.
My preferred option would be 2.
- Nek
- Gnoblar
- Posts: 21
- Joined: Mon Aug 18, 2003 6:06 pm
- Location: Houston, Tx
- Contact:
If you make each section a different mesh with its own set of animations like sinbad suggested in point 1, you could easily have the arms run the "Wave" animation while the legs do the "Transition from run to stand" animation and the torso doing a "right twist" animation for example. Just attach the models together like voltron and away you go!... just don't get served. 
- Gaffeghan
- Greenskin
- Posts: 110
- Joined: Sat Nov 13, 2004 10:37 pm
- Location: Ballston Spa, NY
- Contact:
first: whoa! never gotten that many replies so quickly
second: i realize my question may have left many people in the dark as to what i was talking about: animation that instead of bending at joints, rotates like a robot's arms would as apposed to stretching and contorting like an organic being... but ty for all the good input, i do require parts that rotate sepperatly from the actual object under control. so that's helpfull. MrSandman666 understands my question.... somewhat disturbingly... but nonetheless, that's pretty well what i meant:
second: i realize my question may have left many people in the dark as to what i was talking about: animation that instead of bending at joints, rotates like a robot's arms would as apposed to stretching and contorting like an organic being... but ty for all the good input, i do require parts that rotate sepperatly from the actual object under control. so that's helpfull. MrSandman666 understands my question.... somewhat disturbingly... but nonetheless, that's pretty well what i meant:
that's my question pretty well... (how??)There is no polygon stretching going on as the torsoe turns, unlike the classical animations of single-mesh humanoid models...
- sinbad
- OGRE Retired Team Member

- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 67
- Contact:
This is easy to achieve - just assign all vertices on a single 'block' of the mech to a single bone at weight 1. Stretching occurs when vertices are weighted to more than one bone, or when vertices in a set of faces are weighted to different bones. If you weight the whole block of the upper arm to one bone, it won't stretch. You problem is probably that you're skinning it like a character mesh - don't. Manually assign the bone weights to give the kind of rigid setup that character skinning is usually trying to avoid.
- Gaffeghan
- Greenskin
- Posts: 110
- Joined: Sat Nov 13, 2004 10:37 pm
- Location: Ballston Spa, NY
- Contact:
- Gaffeghan
- Greenskin
- Posts: 110
- Joined: Sat Nov 13, 2004 10:37 pm
- Location: Ballston Spa, NY
- Contact:
I've managed to make lightwave do what I want, but I gotta ask: would this weight mapping be done in lightwave pre-exportation, or in OGRE, post exportation?sinbad wrote:Manually assign the bone weights to give the kind of rigid setup that character skinning is usually trying to avoid.
Also, I understand that P has halted work on the lightwave exporter... and I can no longer search for his posts.... Is anyone else currently working on this project? I'm not the best programmer around, and am very underqualified to work on an exporter, but I may look into it should the need arrise. I'm not proficiant with 3DS Max, or Maya, and Blender is underpowered for what I'm trying to do... but it has some nice features. + I like the layout system of Lightwave.
- dennis
- Gremlin
- Posts: 157
- Joined: Mon Nov 11, 2002 4:21 pm
- x 4