Tremulous Forum
Media => Modeling Center => Topic started by: m4gnificent_b4st4rd on November 25, 2009, 08:06:26 pm
-
This is something I've been tinkering around with. I imported the marines's md3 models and spent some time turning the body/arms and legs models into a single doom3 style mesh, adding some polys in the process. I then made a skeleton, attached the mesh to it and weight painted it. The weight painting is fairly crude, I just weighted some verts 100% to certain bones. It's a bit basic, but that can be improved later.
Here are some pics of the model in Blender. On the left is the model in edit mode (the head is a seperate model). On the right is the model in object mode with the armature visible. I've made the mesh with the elbows bent since they will spend most of the time in the game in roughly that position.
(http://imgur.com/kmH7T.png)
I've set up the models with materials and textures so that proper renders can be done. This could be pretty useful for people doing tremulous art. Here's an example render.
(http://imgur.com/340hc.png)
There are loads of advantages to making renders in Blender instead of working from Tremulous screenshots. There are none of the usual problems with transparencies and anti-aliasing. Blender has more lighting options and cool rendering stuff like raytracing. The size of the final image isn't limited by the resolution of your screen, so if you want to do some high resolution artwork you just render off big images to suit.
This could be pretty useful for artists, but there is also the possibility that something like this could be used to implement MD5 models in tremulous. It's already been done with the Xreal engine (which is also derived from the quake3 engine) so it's theoretically possible to implement in Tremulous. Someone else would need to make all the animations for it because I'm not really good at that kind of animation. Worth thinking about.
-
Worth thinking about.
Sorry but it's not. Tremulous is 50% disillusion, 30%empty words and 20% orphan's tears. It takes time to understand that.
If I were you, I would get away Tremulous(and eventually return when trem 1.2 is out) and find yourself a new place to be creative.
Be offended or whatever, its just a good advice from a guy who knows. ::)
-
I'll give some thought to what you said Redsky.
-
This is cool, but what is the black thing in front of his eye?
-
That black thing is a chunk of hair hanging down. It was on the original model, but no I look at it it does look a bit big. Odd.
-
Odd.
Alpha channel problem, can be fixed in two ways, but first get into Shading / Material Buttons
1. First way is easier and its usable if you are using image as uv image and using 'TexFac' button for viewing texture in rendering (not loading head image as a texture in blender). To fix the problem you will have to press little 'A' button next to 'TextFac' and 'ZTransp'... TADA!
2. Second if you are using loaded image as a texture. Go to 'Map To' and press twice 'Alpha' button and 'ZTransp' button.
If you want your model receive shadows only from not transparent surfaces you might wanna also turn 'TraSha' on! (Although its only working for some lights afaik!)
-
Unless a strictly dedicated team of coders got down to work and added the code to support such models, it's not going to happen anytime soon. The devs do their own thing at their own pace, if not slower at times. It looks interesting nevertheless. :)
-
I wish trem supported md5 or something similar :<
-
Since it's sounding unlikely that md5 support will be added to the game engine I'll try porting the model to another engine instead. There were two options that I considered, Xreal and Doom3. Xreal seems to be a work in progress, but is gpl. Doom3 is stable, has more features, runs on more hardware and hopefully will be gpl some day. I decided to go for Doom3.
I guess I could use the skeleton I made for this model, but that would involve a huge amount of animation work. For now I'll just attach the model to the existing Doom3 skeleton and concentrate on getting the shaders working. If this goes well I maybe consider trying to make my own animation and work towards a character completely built from scratch.
I imported the Doom3 multiplayer character model (models/md5/characters/npcs/playermoves/mpplayer.md5mesh) and used it as a guide to scale the marine model up. I found a scaling factor of 1.26 seemed to be just about right. Here's a shot of the two models in wireframe mode.
(http://imgur.com/64HET.png)
and here they are side by side
(http://imgur.com/CVCoW.png)
I'll straighten the marine's arms out to match the Doom3 model and then try attaching it to the skeleton. Should be fun. :)
-
Zomg, I'm exited!! :D
Now just use Zombie Models for Aliens and all will be good. ;)
-
Doom3 is stable, has more features
Wrong. Doom3 does not come close to the features of XreaL, lacking support for HDR, parallax mapping, even bloom, and proper occlusion culling (still using VIS, as against xreal CHC).
-
And it supports the doom3 model format, so why not continue converting models?
-
Thorn -
Yeah, I guess I got that wrong. Xreal does have some stuff that Doom3 doesn't, but I'm under the impression it doesn't have Megatextures, which is the graphical feature that really interests me. I've been playing Enemy Territory Quake Wars, which is also Id Tech 4 (http://en.wikipedia.org/wiki/Id_Tech_4) and the megatexture based environments are stunningly good. I guess megatexture isn't particularly useful for tremulous since large outdoor maps would leave aliens at a unfair advantage, but I like it anyway.
Graphics aside, I'll stick with Doom3 for now because I've got it installed on my pc and I don't feel like compiling Xreal right now. I'm pretty sure that if I get something working it could be ported to Xreal anyway.
-
I've been looking at the Doom3 multiplayer armature (skeleton) and it's got a hell of a lot of bones, most of which I won't need when weight painting the mesh. To simplify things I've made a copy of the armature and deleted all the bones I won't be using to control the movement of the mesh. I'll attach the mesh to this simplified armature and set the weight painting up, then detach it and correct the mesh to the unmodified armature. The vertex groups (linking vertices to bones) will still work because both armatures will have the same names for bones. This will save a lot of hassle with trying to select the right bones while weight painting.
Here's what's left in the simplified armature.
(http://imgur.com/VJcuq.png)
-
It's working pretty good. I attached the mesh to the simplified armature, set up the vertex groups, then transferred the mesh to the original armature. I loaded up the run animation, set up a camera and lamp, rendered the animations and turned it into a gif.
(http://imgur.com/P9XGv.gif)
Pretty sweet. ;D
-
wo0w that would be cool in trem!
-
rofl. He looks a bit like a bird. Awesome work nevertheless. :D
-
The head looks a bit odd because it's always facing forward. Otherwise great!
-
Other than the rubber neck, I'd say that's a great animation!
-
Yeah, there is something a bit odd with the head in that animation, but I can't criticise because I probably couldn't do any better myself. However, it's a nice demo of how a full body skeleton looks better than the old fashioned segmented that quake3/tremulous use. While it's theoretically possible for an animator to do good work with the segmented approach, it makes the job insanely difficult compared to full body. It's hard to get the animations of the seperate pieces working together in a beleivable way when the actual model are nowhere near lining up. Take a look at this picture...
(http://imgur.com/iY1zj.png)
This is part way through a death animation. The legs are in the process of falling to the floor, which annoyingly is actually lower than 0,0,0 so you can't use the grid floor as a reference. The torso is left mounted on 0,0,0 so you are forced to visualize how it would look if it was actually connected to the top of the legs. The head is also at 0,0,0 forcing the animator to imagine how it would look mounted on the torso. Working this way would involve a lot of guesswork and having to keep running either the game or a model viewer to see how the animations actually looked.
There is also the problem that because the legs and the torso/arms are seperate models you have problems where they connect. This is why so many quake3 player models end up wearing huge chunky belts so that the torso model can move around inside them. With an MD5 model there is no seam, so this problem is avoided.
-
Since the model is no longer segmented there is no need for the huge chunky belt any more, so I've slimmed it down to something a bit more realistic.
(http://imgur.com/fz2ix.png)
-
I decided to go back to my own armature instead of using the Doom3 armature. I did some streamlining on the armour to make it less bulky so that it could be easier to animate. I also modelled a 3D ear instead of the single plane that it was originally. I decided to consolidate the 4 textures into a single one for convenience. I spent some time arranging the uvmapping and scaling it so that the detail was distributed where it would be seen more. In the picture you can see that the head and chestplate have the most detail and there is more detail on the torso/arms than on the legs.
(http://imgur.com/8bq0g.png)
Once I was happy with the uvmapping I cloned the original textures onto the new 1024x1024 single texture.
(http://imgur.com/iUEvd.jpg)
Here's how it looks on the model now.
(http://imgur.com/xigCa.png)
-
i must say its an improvment
-
The chest plate is a bit (okay, really) bulky compared to the new slimmed-down belt.
-
He is still ugly. Purpose of this clone is not mating for sure
-
He is still ugly. Purpose of this clone is not mating for sure
They probably havn't worked out the kinks with clones reproducing anyways (and what's the point really?) so I don't think he has much to worry about.
That being said, I'm sure goons don't have high standards. :-X
-
I've put some more detail into the hand and given it more articulation with the skeleton. The vertical bone just before the finger bones is the weapon mount.
(http://imgur.com/eGUfz.png)
Now the thumb can be moved a bit and the palm can curl up. Like how the hands are holding the rifle in this pic.
(http://imgur.com/rDkjt.png)
It's an improvement, but I'm kinda tempted to model individual fingers with bones to match.
-
wow. :o That looks really cool right now. 8)
-
Ugly model is ugly no matter how much you pimp him.
-
Oh. I thought the purpose of this whole thing was to add a Doom 3 Model into Tremulous. :-X Misunderstood the whole thing, I guess.
-
we need new textures more than anything!
-
we need new textures more than anything!
I'm not a texture artist, so I can't really help with that. However I can clone textures in Blender, so if I had some good reference images of someone's head (front, side, back, top) I should be able to clone the textures into one photorealistic image.
I tried doing it in this thread (http://tremulous.net/forum/index.php?topic=12279.0) and it seemed to work ok, but since I only had a front shot the sides were left blank. If I had side photo as well I reckon I could get a decent result.
-
I've had a bright idea. While I'd still ideally like to have MD5 support built into the ioquake 3 engine there might be a way I can get it working in the game so I can check how my animations look while I'm working on it.
The quake3 engine uses one model for the legs which includes a tag for the torso/arms model. The torso/arms model has 2 tags, one for the gun and one for the head. I've seen a player model (angelyss from openarena) that got around this by making the entire body and head out of one model and then setting that as the legs model, with the torso tag where the gun should be and the torso model being simple a tag for the weapon, so that the weapon appeared at the right place. While this was clever I think a better method would be to use the torso/arms model to draw the body since this would allow you to still use the weapons tag and the head tag. Having the head model seperate from the body saves wasting polys by building it into the body mesh.
To get things started I've exported the body and tags to upper.md3 and put it into a pk3. Here's how it looks.
(http://www.freeimagehosting.net/uploads/228f404d28.png) (http://www.freeimagehosting.net/)
It's worked pretty well. The next step is to replace the legs model with a torso tag and position it so that my model is correctly rotated and at the right height.
-
I've replaced the legs model with a single torso tag positioned at 0,0,-24 with 270 degrees of rotation on the z axis. This positions the body on the floor and facing forwards. Now I just need to tweak the tags for the head and weapon to face them in the right direction and reposition them slightly. Here's how it looks now.
(http://www.freeimagehosting.net/uploads/c4b1a3b336.png) (http://www.freeimagehosting.net/)
I was able to look at my model like this by using this script...
//thirdperson.cfg
seta cg_thirdperson 1
seta cg_thirdpersonangle 180
seta cg_thirdpersonrange 80
-
Right, I've got everything sorted and now my non-segmented player model works in the game. Next step is to give it some animations. Here's how it looks in Blender and Tremulous.
(http://imgur.com/8keoP.png)
Now imagine how much simpler it must be to animate a model like this instead of the horrific mess that is segmented models (http://imgur.com/iY1zj.png). :P
-
individual figures would be nice the rigging is too simple.....I know how easy it would be to do that also and it would'ant take much time.
-
I'd say it. But I will let you find it yourself.
-
There is a way to get md5 working in Tremulous, but it requires a skilled coder. You *can* actually rip the md5 code out of XreaL and put it into Tremulous without any issues(I actually asked Tr3B if this is possible). You just need to know what you're doing.
-
Soon, there will be no Self-Ass-Kicking while running. ;)
-
Odin - There is a way to get md5 working in Tremulous, but it requires a skilled coder. You *can* actually rip the md5 code out of XreaL and put it into Tremulous without any issues(I actually asked Tr3B if this is possible). You just need to know what you're doing.
Sadly I'm not a coder, so I can't do it. I'm not going to ask any coders to do it just yet either. I've seen a lot of posts on forums where people ask coders to implement new technologies, but are unable to provide the models/texures/sounds that that technology would need to function in the game. Coders are understandably wary of investing their time and skills in something that might turn out to be a waste of time. I don't want to be one of those annoying types, so I'm going to wait and see if I can get everything needed first. I've got the mesh and the armature sorted, I just need some animations.
-
I've been having a bit of trouble understanding the animation.cfg. I've imported the legs model and I've been comparing it's animations to what it says in animation.cfg. It's ok up to frame 90, when it jumps to what looks like frame 153, crouching walk. I'm guessing this is because the md3 leg model didn't have any poses saved for all the TORSO_ stuff and when Blender imported the md3 it ignored the empty frames, leading to frame 153 ending up at 90. Does this sound about right?
-
I've done some checking and the import script does appear to drop un-animated frames. It also starts counting from 1, where the game starts from 0. This leaves the torso/arm animations pretty much untouched apart from being out by one, but it really messes up the leg animations.
I've gone through the animations as they appear on the imported models and made this list.
Legs Torso
start end start end
BOTH_DEATH1 1 29 1 29
BOTH_DEAD1 30 / 30 /
BOTH_DEATH2 31 59 31 59
BOTH_DEAD2 60 / 60 /
BOTH_DEATH3 61 89 61 89
BOTH_DEAD3 90 / 90 /
TORSO_GESTURE / / 91 130
TORSO_ATTACK / / 131 136
TORSO_ATTACK2 / / 137 142
TORSO_DROP / / 143 147
TORSO_RAISE / / 148 151
TORSO_STAND / / 152 /
TORSO_STAND2 / / 153 /
LEGS_WALKCR 91 98
LEGS_WALK 99 110
LEGS_RUN 111 119
LEGS_BACK 120 129
LEGS_SWIM 130 139
LEGS_JUMP 140 147
LEGS_LAND 148 /
LEGS_JUMPB 149 156
LEGS_LANDB 157 /
LEGS_IDLE 158 167
LEGS_IDLECR 168 177
LEGS_TURN 178 184
Now if I need to remind myself what a game animation looks like I can refer to this list, instead of trying to use animation.cfg.