Well, I've been faffing about with 3ds max for well over a year or so, and right now I'm working on building a chainsaw for an FPS skin. The body won't be too much concern; what I'm focusing on right now is the blade.
Here's what it looks like so far. The chain itself consists of the same chain link instanced about 50 times and constrained to a path, each one linked to the other. The good news is that it looks totally badass and actually spins around. The bad news is that its way too high-poly for my taste- this render alone is over 4200 polygons total. I'm trying to bump it down at least by half of that. I've looked online for tutorials on making 3D chainsaws, but haven't had any luck. I've seen chainsaws in several other games, namely Left 4 Dead 2. how do their chains work?
Replies
The poly strip in the low poly will have transparency and baked normals from the high poly, which when moving will make it almost impossible to notice that it isn't actual geometry.
Or even better, solid geo for the base shape and alpha planes for the "claws"
A little more on how i did this:
1. I make a low poly mesh
2. I copy part of the low poly chain, and stretch the uvs to cover the 0-1 range
3. I make a tiling section that matches the "bake" mesh, this is larger with some overlap to make sure bakes/AO come out right.
4. Bake the "bake" mesh, and apply to the "low". Make sure your uvs are consistent as is your smoothing on each model.
PS: You'll notice i have the uvs split up here, i wanted to use some hard edges to avoid the overly gradiated normals(so you dont get smoothing errors as the texture scrolls). So i needed to split my uvs there as well.
Now, you're ready to animate the blade by scrolling the uvs! In a game engine this would most likely be done via a shader that allows texture scrolling, should be very simple in something like UDK for instance, but dont ask me about specifics there.
The top and bottom slide, while the front rotates. Just have to make sure your bone placement is right.
Here's a rough example
Thanks for the bone animation, too. I had a feeling it involved something like that (looping animation from one tooth to the next), but wasn't sure exactly how it was done. Though like earthquake said, it does look a little snappy. Maybe if I speed it up enough it won't be noticable?
May depend on the engine you use but you get super smooth motion with unreal based stuff. Though you will have to specify that it shouldn't interpolate between the last frame and the first on the loop.
What, and alert the neighbors?
Yeah you're very much right if you want to use alpha , as you'll be doubling your diffuse texture memory by doing that, instead of just throwing in a smaller map.
However without alpha it isn't really a big deal, like you said you'll have to use an extra draw call anyway, but if you can fit it on the same sheet you'll make it easier to texture and use less texture memory, so even though you'll need two mats, you're still getting better performance keeping it on the same sheet. Unless you can use 1/2 the texture memory for the main, and 1/4th the texture memory for the chain for example by spliting them.