View Full Version : 3D Zaku Kai
tetsujin
16th Aug 2006, 18:04
So I've been going through "Blender for the faint-hearted" trying to get to the stage where I could do this... There's still a lot of stuff I don't know how to do (like re-planing a surface after its points are no longer co-planar... See that edge down the middle of the front skirt? I guess I could do it as a boolean op but then how do I get the points to be where I want them to be in the other dimensions?) but after the first four tutorials I felt ready to take the plunge and start building things.
In the case of this project, it's relatively easy since I started by designing the thing as rigorously as I could using 2-d orthographic drawings on graph paper. So a lot of this wasn't "modeling" so much as "typing in coordinates" - though going through the tutorials was a big help, as before that I wouldn't have known how to type in coordinates, manipulate a mesh in the ways needed in order to get to that stage, etc.
So far I've done a lot of the relatively simple parts - boxy parts, parts that are easy to form from primitives (like the shoulder and elbow) and so on. I think the forearms are pretty much the last parts that'll be that simple (as the main parts of the forearms could be
tetsujin
24th Aug 2006, 23:58
A few updates to the mesh since the last post.
I took a crack at making the left shoulder armor by slicing, scaling, and proportionally editing an icosphere. I'm not really happy with it so far (it has some concavities from the proportional edits) so I'm thinking about how I should re-do it. I suppose I could just build the entire mesh for that section by plugging in numbers and connecting points... But I'd like to learn a better way to do it.
I built the backpack, or a rough version of it, anyway. I haven't got all the concavities right around where the thrusters will be, yet - nor am I entirely sure how they ought to be. :)
I also made a first draft of the rear skirt. There are two aspects of making the rear skirt with were challenging to me.
First, the whole thing should be more or less uniform thickness but there's a bend near the top of it. I don't quite know how to make a bend like that without disrupting the uniformity of one part of the mesh or the other. (Short of busting out the calculator and using slope calculations to determine exactly where each point should be numerically...)
Second, the back face of the lower part of the skirt has a curved cross-section which terminates in an angled planar cut at the top near the bend. I edited some points near where the curve ends at the top, but in the process I think I disrupted that surface. (The edges that form the length of the rear skirt are no longer parallel to each other) It's frustrating to come so far on a part and then come to the conclusion that I'm better off tossing the entire thing. I'll probably try realigning the points at the bottom of the skirt by hand later.
Various stuff that's the same on both sides has been duplicated for the other side.
Added right skirt with grenade rack and grenades.
Added a head - it's not really accurate to the lineart but it fits the measurements I laid out for the part I want to build.
Added an early version of the cockpit hatch area.
I'm really looking forward to finishing off the rear skirt armors. It'll lend some sense of "wholeness" to the area.
(EDIT): Took image off of first post and copied it here so it'd be easier to manage the thread's thumbnail...
Doble
25th Aug 2006, 04:15
Hey cool, its starting to take shape, keep it up!
Toragh1
25th Aug 2006, 04:20
Zaku monkey:flippy:
Lookin good!
HudsonWaltfeld
25th Aug 2006, 04:30
Lookin good cant wait to see more.
StarSlayer
25th Aug 2006, 04:55
Good start ill like to see her done! back in the day i made a RX-79[G] from 8th MS(one of my faves cuz its basic and not fanboy looking with angel wings and crap) on CAD looked pretty cool.
daibaka
25th Aug 2006, 10:31
Yeah! The Zion invasion of SFM begins! Can't wait to see how this develops. Checked out your site and if you stick to the same standards as you applied there, this is going to be good!
tetsujin
25th Aug 2006, 14:30
Zaku monkey:flippy:
Well, this (http://www.mahq.net/mecha/gundam/skullheart/ms-06ms.htm) is the true Zaku Monkey... :)
Checked out your site and if you stick to the same standards as you applied there, this is going to be good!
Thanks! Having worked out those plans ahead of time certainly makes this project easier - at some point, though, I've got to figure out how some of this stuff would be best done if I hadn't already made scale plans to work from... I feel like that's the part of the process I'm not getting - once you've made a moderately complex mesh with a bunch of vertices, how do you edit it while preserving relationships (planar faces, convex compound curves, etc.) you've established?
vf-1msx
25th Aug 2006, 16:10
nice work :thumb:
I love gundam
tetsujin
9th Sep 2006, 01:10
Updates:
Still got a monkey head (gotta do something about that)
Roughed out the legs and feet.
Various tweaks to the arms
Gave the chest edges a larger chamfer.
In the process of creating the leg pods I discovered that my plans for the legs, when rendered in 3-D, didn't look right. :( They looked fine in side view, front view, back view, etc., but in 3-D or in top view they looked too squashed... So I monkeyed around with the legs and feet in Blender to try and come up with something aethetically pleasing and not too far from my original plans. It's rather frustrating to find that my leg plans were so flawed, as I'd had quite a lot of confidence in them. I think they could still use more refinement - when that process is over I'll most likely copy the design changes I made in Blender back to my paper plans, and then hopefully I'll have something I can actually build and be pleased with.
I guess that's a good thing, since one of the reasons I'm making this model in Blender is so I can check my design and make sure it looks right before I actually build it. But any time I find a flaw in a piece of this work, especially in a piece I'd felt very sure of before the discovery, it's a frustrating process. But it's all for the best in the end, I guess.
Also, when I re-did the chest block I found again how phenomenally frustrating it was trying to create those chest vents while keeping the various planes of the chest, well, planar. It's stupid and obnoxious, I've tried using operations that should retain the planar nature of the surfaces as they're subdivided (for instance, subdivide a surface, then select one of the original vertices of one of the new edges, do cursor-to-selection, then select an adjacent vertex that was created by the subdivision - then scale: when three points are colinear, scaling one relative to one of the other two should keep all three in line with each other. In Blender this apparently isn't the case. Maybe it's a precision error, I don't know. But I'm working with a design that has a lot of flat surfaces and I can't keep them flat! So to avoid this problem, the chest vents are now a separate object which happens to intersect the surface of the chest block. The chamfer around where the shoulder meets the chest I cloned from my other chest block and stitched in - and that seemed to work well enough.
After the frustration of making the shoulder armor from a sphere, I made the leg pods using a subsurf modifier - that's worked out pretty well. The leg pod only has about 25 vertices before the subsurf, so it's farily easy to manipulate.
SDGreywolf
9th Sep 2006, 02:44
Launch the mechs for "Armored Monkey Attack".
Strike hard, strike fast and leave no bananna stalk un-blemished.
tetsujin
18th Sep 2006, 21:48
I decided I'd had rather enough of the monkey head, so at last I've rid myself of it. The overall shape of the head still needs some fine-tuning so I've not yet put a lot of detail onto this one. (The head is subsurf'ed and the eye area cut out with a Boolean - so if I need to change the shape of the head I then need to redo the boolean op - so it's a bit cumbersome)
I also added hands. They're not completely done yet (still missing the wrist-plate and a bunch of little details) but I think they came out really well.
I'm working on rigging the thing, still - one problem I'm facing now is that the bone I added for elbow deflection control messes up the control of the upper arm a bit - the spherical shoulder joint is only supposed to hinge on one axis, but when the elbow is deflected away from its neutral orientation, suddenly that "lateral extension" axis is turning, too - it's not supposed to work that way. I'm still trying to figure out how to improve that.
Polycount is gradually shooting into the stratosphere. I think now it's upward of 50000.
(EDIT): Added a new shoulder armor with spikes, and knee joints. As always, the latest updates are on the project page (http://1-4-4.home.comcast.net/models/Projects/1_100_Zaku_Kai/Blender_model_1.html)...
HudsonWaltfeld
18th Sep 2006, 22:03
its lookin real good, good to see the mokey head gone. the hands are purty as well, can;t wait to see it animated. Keep up the good work.
tetsujin
7th Feb 2007, 04:17
I'm feeling rather determined to finish rigging the model - it's a bit difficult, however, as I still don't know anything about animating the rigged model so I don't know, for instance, what will be the best way to rig the feet.
My big victory recently was rigging the kneecap so that it moves properly in relation to the knee joint - it's supposed to lie closer to the knee block when the knee is bent, so that it helps give the impression that there's a continuous structure from the upper leg to the lower leg.
I've made various small changes and improvements since last time, and I textured the left shoulder a bit in order to learn how to do it.
I made the attached image while trying to find out if my Zaku Kai model would be able to assume the "kneeling pose" that's expected of new MG kits. I expected that it wouldn't but I wanted to try. (The proportions were chosen for aesthetics, not functionality, so the lower leg is a bit long for this kind of thing.) The message is meant to be taken in the same vein as "Real Daleks Don't Climb Stairs".
Infinity238
7th Feb 2007, 05:01
Zakus would never kneel on the battlefeild anyway.
vf-1msx
7th Feb 2007, 16:30
nice
keep it up
tetsujin
13th Feb 2007, 21:50
It occurred to me that the model would look a lot more tangible if it were shown in an environment, and if the lighting were part of that environment. It's primitive at this point - just playing around with it, really. Soylent Green provided courtesy of MakeHuman. I haven't messed with lighting options a lot in Blender before so getting the ceiling lamps to work the way I wanted took a bit of experimentation.
The rigging work is mostly done at this point: the right hand isn't rigged yet (mainly because any time I try to parent a finger to a bone on the right hand, it loses its transformation - something to do with the way I mirrored it from the left hand, I think) and the feet aren't rigged yet, and the skirts and the cables around the waist aren't rigged yet. But with it done to the extent that it is, I can fiddle around with it and produce poses like this one, at least. (I think I need to remake the cables anyway - they were made by extruding a curve along a curve and converting to a mesh: but the result is all twisted up in places because I had a hard time controlling the roll angle on the curve.)
From here there's still a bunch of detail I need to add, of course, as well as the whole texturing process. I've attempted a couple textures so far but I'm not really pleased with the ones I've made, so I'll keep trying, I guess. :)
Dallidas
13th Feb 2007, 23:06
looks great! i always wanted to tackle a mech
what problems are you having with keeping faces planar? also, when doing pipes, use a spline and bezier circle. much easier.
tetsujin
14th Feb 2007, 02:03
what problems are you having with keeping faces planar?
The basic problem is finding ways to modify a moderately complicated, boxy mesh, while preserving the planar nature of planes. For instance, if I wanted to change the slope of one face of the chest block, it'd be a bit of a problem because moving those vertices would affect all the neighboring planes. As I've gotten the hang of Blender a little I've found ways of dealing with that problem - aligning the view to the plane before editing it, or just zooming in really close and aligning vertices manually.
also, when doing pipes, use a spline and bezier circle. much easier.
I did the tubes quite a while ago, but it's only recently that I converted them to meshes so I could create vertex groups for deformation. Originally I made the tubes as Paths, and for whatever reason controlling the tilt on those has been pretty difficult. I have no idea what was causing the problem, actually - I just took the original curve (a "Path") that I used to create the leg cables, and created a NURBS version, and a Bezier version, and another Path version - I even gave the new Path the exact same coordinates as my original, twisted curve, and none of the new curves came out twisted. Maybe I was running an older version of Blender when I made the original curves, and hit some bug with the handling of curves. It's the only explanation I can think of for why these curves in my blend file simply cannot be untwisted. Check out the screencap: from left to right they're NURBS, Bezier, Path, and old (twisted) Path. All the tilt angles have been cleared on all four curves, and a square used as the BevOb.
At the moment I'm playing around with Taper Objects in order to get the ribbing pattern on the cables - it works pretty well but in order to have the notches show up reliably I need to turn the curve resolution up pretty high - the vertices of the generated mesh have to fall right on the relevant points or the ribbing pattern may be diminished or not show up at all. I may need to find an alternate solution if I want to have a reasonable polycount on those cables.
Dallidas
14th Feb 2007, 02:14
i see, well there is always the split function( y button) that will seperate the chosen vertices from the rest of the mesh.
as to your notches, I would convert the curve to a mesh, select the loop of faces i want. the press shift+s-> cursor to selection. then extrude it (E) then scale it in and use the bevel script(not the built in one) on the edges
tetsujin
2nd Mar 2007, 23:14
Not really much of an update to the model as a whole - though I am finally getting back to work on those upper arms (they've been completely untouched since the monkey-head days!) and tinkering with some improved detail on the shoulder.
When I build the physical model of this thing, I have a very specific idea of how I want to construct the shoulder. I have some spherical joints I've been building for another project, so my plan is to reuse those but redress them for this project. I'm taking some design cues from the recently released MG Hi-Nu gundam, hence the new "minus mold" detail I've just added to the center (disc) part of the shoulder.
When I went to the mesh in order to make the existing shoulder sphere mesh match the part I was building, I ran into a slight problem: I had to cut the center part of the sphere so it would be 6mm thick front-to-back (or 60cm, if you think of this as a giant robot rather than a model of one) - but the vertices I had for my sphere didn't quite line up with that cut - so you can see in the early version of the mesh there are some polys that are effectively wasted.
And - enlightenment! I finally come to understand the failings of Boolean operations as a solution to the problem of combining objects. In this case, it's clear that when the minus mold mesh is simply slapped onto the side of the sphere mesh, the contour where the two meet just makes it way too obvious that these things are polygonal and not smooth. I quickly realized that increasing the resolution of the sphere surface would have limited benefit - what I really needed was to stitch the two meshes together on the correct boundary. I started the process by setting the cursor at the center of the sphere and manually rotating points about the cursor in order to make them line up with the edges of the "minus mold" - but soon I realized the job could be done much more efficiently by just cutting out the sphere verts from the region, getting one vert lined up with the minus mold, aligning the viewport to the top of the minus mold, and doing a spin extrusion. Then I just stitched up the resulting set of vertices, merged the two objects, and merged vertices from the minus mold to ones at the sphere boundary - and I had a complete part.
After that, I wanted to move the "wasted" edge loop inward a bit, so it wouldn't be wasted any more. I did pretty much the same thing - got one vert where I wanted it, spin-extruded it from a front view, and then merged the wasted verts to the new ones. Since the new edge loop overlapped the minus mold, I got rid of the verts in that area - and as a result I actually wound up with fewer polys than I started with, but a better mesh.
I'm still getting the hang of how to take advantage of specific viewpoints in order to constrain my operations. I feel like it's an important lesson - it's proven to be the answer to a lot of my early questions about how to do things in Blender while retaining relationships that are fundamental to the meshes I'm working on. (Things like making sure a sphere stays spherical when I add vertices to it, or that a conic section stays conical when I move its vertices to stitch it to the rest of the mesh...)
As a side note - I've decided to host a class on Blender at Tekkoshocon, an upcoming anime con. It should be interesting. I feel like I know enough Blender at this point to get people up and running - even if I still have no skill with textures and animation and not much skill with armatures, I can teach basic stuff like view control and mesh stitching. I went to a workshop at Otakon about using 3DS Max and it taught me less than that - but the experience of getting my hands on the software and having a bit of a guided tour helped to get me past the initial intimidation factor - and led to me giving Blender an earnest try. So I guess we'll see how it goes. Small victories like this one with the shoulder demonstrate that I'm still learning myself - but also make me feel more confident in my ability to help people dive in themselves.
Nice, I'm a big sucker for mechs/mecha and other big war gear :)
tetsujin
16th Mar 2007, 00:23
I feel like my level of confidence with Blender has been increasing rapidly of late - things which would have previously been very difficult for me are getting much easier. It's pretty exciting. It's helped me get past the intimidation factors that were keeping me from adding various missing details - for fear that I'd wind up destroying that work by deciding to make a change to the underlying form it's attached to.
Still, Blender did give me some trouble. The raised bars on the front of the chest I initially tried to make by aligning the view to the chest plane there, adding a plane, and manipulating it to get the desired shape - but there were two problems there. First, align-to-view wasn't getting me a good enough match (possibly because faces in the F-Gon there aren't exactly coplanar) - and second, I couldn't take advantage of constraining actions to the local or global axes to manipulate the size and shape of the plane - I had to edit it by hand. I could manage that way by eyeballing it or turning on "draw edge angles" and trying to get it to 90 degrees on the corners - but I found it easier to just create the raised bars as separate objects, align the view to the chest plane, add copies of the objects in that orientation, and then join them to the chest block mesh and stitch them in. I did similarly for the ones on the side of the chest.
The thruster nozzles on the shoulder armor had to be placed manually, because the shoulder armor is still subsurf'ed and so I can't align to it. Plus Blender, as far as I can tell, doesn't provide a way to mirror an object on a global axis (grrr...) so I had to fiddle with the rotation numbers of the second one to get it to match the orientation of the first. That's always a hassle - I should write a script that does it. Probably at script level I'd be able to express the object scale and rotation as a matrix, rather than per-axis rotations, right? That'd make it a lot easier to transform the things. I had to do the same drone procedure to manually re-rotate all 34 parts of the left hand to make the right hand - it was a real hassle, but it was the only way to get past my earlier problem with the left hand - which was that I could parent the whole thing to the wrist ball and mirror it by mirroring the wrist ball - but then as soon as I'd try parenting things to bones they'd lose their orientation and get f'd up. Big bag of no fun.
As I was adding details to the backpack I decided it was time to bevel some edges of it - the "Bevel Center" script didn't do a good job of it because of all the coplanar edges coming out of all the corners - it tries to side-bevel all of those and creates nasty little notches in the beveled edge. Maybe there's a newer version of the script that fixes that. Anyway, to side-step the problem I bevelled those edges manually.
Also, I finally remade the waist cables, and bound them to an armature so I can pose the chest and the cables will move appropriately! (Well, they sometimes dip through other solid parts - I don't really know how to fix that) It was a bunch of work to make the new waist cable meshes but it was well worth it. Previously I'd used a curve with bevel and taper curves to create the ridged cable shape. (The snout cables still use that method - and the leg cables are mesh objects that were created with that method) - but in order to get the effect decently the resolution on the curves had to be turned up way too high. The new cables I created by first making an object representing the "dip" between segments - made a whole bunch of copies of it, and gave them all "follow curve" constraints with different offsets. Unfortunately, from there I couldn't simply join the objects or turn off the constraints and have them stay put - so I had to create more copies of the "dip" object, move them to the same locations as the constrained copies, and manually rotate them to match the constrained objects - then I merged and stitched them and I had my waist cable. The new cable only has 48 quad faces per segment, as opposed to probably six to eight times that number for the curve/bevel/taper method.
I also started the process of detailing the soles of the feet - it feels good to have laid out that detail in a way that looks good to me, as the foot's always been one of the more difficult puzzles for me in making the design work. The lineart for the sole of the foot makes the foot look very short, front-to-back, and so I was worried everything would look stretched out since my foot design is longer - but while working on the sole detail I tweaked the proportions of the sole a bit and got a pretty good effect, I think. I still need to work out how to put a useful armature on the feet (and skirts, for that matter - it'd be great if there's some way I could make the skirts automatically move out of the way of the legs...) and do some animation.
I think the next big project for me with this mesh is to change the legs from being subsurf objects to regular meshes - but in such a way that they don't have a bajillion vertices. I'm thinking of giving the new Retopo feature a spin. (I almost submitted a bug report to say the grab tool was mysteriously and bizarrely broken - before I realized Retopo was on! :) ) I really want to get those thruster details and such onto the legs, they look way too bare without it. I also want to make the leg meshes much cleaner and more efficient.
tetsujin
22nd Mar 2007, 17:25
So previously the lower legs of the Zaku were modeled using subsurf - one subsurf'ed object for the core of the lower leg and the fringe at the bottom, and one for the big pod - and then two non-subsurfed meshes for the "thruster covers" on the side and back of the leg. The subsurf method was great for me as a way of generating a smooth curved surface with a reasonable level of precision - but when it came time to deal with things like the inset leg thrusters and such, I was totally lost. Plus there were areas, such as the border between the leg and the leg pod, which I wanted to define with a fair level of precision - but I found it difficult to precisely control the contour of the intersection of the two objects.
So at this point I've decided to keep the original subsurf'ed leg meshes around for reference and refinement, but I've also replaced them with a new version, made with the retopo tool and some basic mesh editing to clean up the details. The result is that the lower leg meshes that previously took up over 7000 polys per leg (they were level 3 subsurfed - probably overkill. At level 2 they're closer to 1500 polys), now take only 850. The polycount of the retopo version will likely climb as I clean up various details and enhance the curves in certain areas, and add depth to areas that are currently lacking it - such as the thruster covers and the fringe at the bottom of the leg, both of which are currently infinitely thin poly sheets - and ensure that the curved countours don't look too chunky. But apart from having a lower polycount than the subsurfed versions, the retopo meshes have been improved in a few ways:
Symmetry has been improved by manually copying vertices from one side to the other.
Contour of pod's meeting with the lower leg has been improved
New mesh incorporates details missing from subsurf version, such as inset thrusters, raised greebles, etc.The refinement process has gone back and forth between the retopo and subsurf versions a bit - when I refined the intersection between the pod and the leg, for instance, I made changes to the subsurf to attempt to match that - and then retopo'ed some vertices to match the altered subsurf mesh, etc.
tetsujin
29th Feb 2008, 21:09
So I haven't been pursuing this CG model very aggressively lately - mostly I've been trying to build its physical counterpart, but using the CG model for reference and experimentation.
Presently, I'm trying to work out how posable the model can be, how posable I can make it, without altering its basic design or otherwise doing anything that I wouldn't be able to do in the physical model.
Posability is always kind of tough with these designs because they weren't designed with it in mind. Usually with the Zakus, the armor skirt around the hips is a big problem, because it gets in the way of the movement of the legs. The proportions of the legs (specifically, the length of the upper leg relative to the lower leg) and the size of the feet also makes posing difficult. Still, the problem can be solved with some creative joint placement. In the case of this particular Zaku, the midsection is supposed to be a flexible mechanism covered by a cloth cover - that makes things a little easier. But I won't be able to make the midsection flexible on the physical model, so I'm experimenting with how posable the midsection can be as a rigid piece.
When Bandai makes a Zaku kit these days they aim for a high level of posability - in particular the new MG Zaku v2.0 can kneel down quite low, and as a result that pose is used in all kinds of advertisements and such for the model. So I wanted to see, for the sake of curiosity, how close my Zaku could come to that kind of pose. Mine is more limited in terms of how far it can bend at the knee and how much flexibility it can get at the ankle - its feet are bigger so where they end up can have a big impact on what kind of poses the legs can take. For the raised leg, a lot of the posability of the MG Zaku v2.0 comes from the fact that it can get its skirt armor out of the way of the leg - opening up a gap through which the leg can travel. I've done similarly with my Zaku, though the results don't quite measure up to what the MG kit can achieve.
From that experiment I worked out a plan for jointing the midsection - the belly part will have a ball joint at its base - and will also be able to slide up or down relative to the hip part in order to get more clearance.
I also tried a dynamic pose - the right hand is supposed to be holding a Heat Hawk, the Zaku's tomahawk-like weapon, the idea is that it's charging toward the viewer. I found it tough to get a good running pose - the leg that's crossing forward can't bend enough to get a lot of clearance between the foot and the ground.
One of these days I need to get back to learning Blender - I am still largely clueless about applying textures or animating the model... The Zaku has a functional skeleton now, but it's tough to use IK with it because of oddities in how I had to joint it to control things like elbow deflection... One of these days I want to clean up the skeleton a bit and animate a proper walk cycle for it...
DerekDRP
29th Feb 2008, 22:06
Very cool robot reminds me of a city of hero's toon
tetsujin
27th May 2008, 17:37
Not a huge update but I've been changing various things, trying to improve the areas of the mesh which were in need of attention. (Those following the thread will remember that this is my first Blender project - I learned 3-D modeling and the application as I built the model - most of the parts have been re-made a couple times since I started but some parts are still very old and not done very well...
I picked up the "The Essential Blender" and I've found it very helpful. I was a bit hesitant to buy any Blender books knowing how much the interface and such changed from 2.3 to 2.4 - and with 2.4.6 having just come out, a book based on 2.4.4 seemed maybe a little short-sighted - but it's been very useful so far.
Here's my first foray into animation - It's not much - just spinning the camera around the model. But that was enough to introduce me to the timeline and IPO window and get the basic idea of setting keys and such...
One of the problems I'll have to face before I can animate a walk cycle is that when the Zaku is in its standing pose, the leg armature is actually "bent backwards" at the knee. This is because the knee joint itself is at the back of the leg (Since the leg parts are solid and don't deform, putting the knee joint at the back of the leg gives the maximum clearance for movement...) I know enough about iterative solvers to know basically why the IK solver can't deal with this - it seems that to make the hip-to-ankle distance shorter, the leg should bend farther forward - but it can't. I could change the Zaku's "neutral pose" so that the knee is bent forward a bit - but then I'm worried that it wouldn't ever go back to that "locked knee" pose (maybe it wouldn't have to in IK - maybe that's just something I could do with FK...)
I don't know if there's a way to deal with this - maybe by creating a second, simpler armature for the leg that tells the real armature approximately where to be, or if there's some other approach to solving this kind of problem gracefully...
Starship
27th May 2008, 18:18
I canīt help you on this, but I must say the modelling is well done. The colors donīt have the metallic appearence, but I believe it will be addressed latter. :)
Keep doing the great work.
Mach Crit
27th May 2008, 19:02
Wow. Color me impressed. You've learned blender quite well. Very nice battlesuit (gundam? Heavy Gear?).
tetsujin
27th May 2008, 19:17
I canīt help you on this, but I must say the modelling is well done. The colors donīt have the metallic appearence, but I believe it will be addressed latter. :)
Keep doing the great work.
Well, most of the metal is painted - you wouldn't really see a lot of metallic gloss on a well-maintained tank, for instance. Only a few areas (like the joints and thrusters) are bare metals - the materials there have a bit more specular behavior... But yeah, the whole thing is in need of texture painting - or at the very least a bit more work given to the basic color-materials currently used for rendering... I think the drabs give more spec than they maybe should...
Mach Crit: This is the Zaku Kai from Gundam 0080. The red area on the chest is the cockpit hatch, so the machine stands around 17.5m tall.
I'm also working on a physical model - that's pretty slow going, though! :D
Mach Crit
28th May 2008, 14:26
I am curious about something. You have the mech posed (poseable?). Do you have the bones built in for posing? If so, is the mesh all one object or are there different objects for each part of the mech (head, upper torso, lower torso, each upper leg, lower leg, arm, wrist, etc)?
tetsujin
28th May 2008, 17:06
Different components are different objects. I have considered merging the objects and using vertex groups to bind different parts to the bones (it would make it a lot easier to create a second Zaku, for instance) but for now it's much more useful to have them as separate objects: I can continue to use mirror, subsurf, and edgesplit modifiers just on the parts of the mesh that need them, for instance.... I can take advantage of each object's local axes when editing things, etc. The lower legs started out being 2 different objects (the "pod" and the core of the leg) but as I got more comfortable with the design I'd settled on (and more eager to refine the detail of the legs) I re-topo'ed the lower legs to create a new mesh, incorporating both objects and new detail as well.
The object granularity gets pretty fine in some areas of the model - the hands, for instance, are constructed like mannequin hands you might see in an art store - spherical knuckles and more-or-less cylindrical finger segments connecting them - each knuckle and each finger segment is presently a separate object. The hands are in need of an overhaul, though - I never really finished them properly and I'm sure I could do a better job of them now...
But, yeah, the whole thing's rigged. The cables on the waist and legs flex and everything...
Mach Crit
28th May 2008, 22:57
I would be interested in some screenshots of the rigging if you could spare the time. I am going to try and animate one of my mechs (I won't threadjack, just look for my Mech project thread). It would be neat to see how you worked that up.
tetsujin
28th May 2008, 23:56
(I won't threadjack, just look for my Mech project thread)
By all means, feel free to put links to your work in this thread. That kind of thing would have to get really excessive before it would start to bother me. At this level, it's not an annoyance but rather a handy shortcut. :D I generally love to talk shop.
My model's armature is separated into a few layers - there's the main layers, containing bones that I would directly control to pose the model, and there's the secondary stuff, containing bones that mostly work via IK without my interaction. (For instance, the bones which work the pistons in the legs, or make the kneecaps move with the knee joint, or the ones that cause the leg and waist cables to flex...) I'm just showing the layers that I control myself.
Here's a basic tour:
Starting at the hips, there's three bones in sort of an inverted T formation - the one sticking up is the root of the whole body armature, it'll move everything except the feet.
The two bones sticking out to the side are for the double-hip-joint (a feature I no longer use, and will likely remove from the design) - basically in order to try to give the legs more flexibility I added an extra joint there, rooted at the middle of the hip, which would allow the hip joint to actually swing forward or downward as necessary to clear the skirts - but I've since come up with other means to improve the leg mobility, methods that will be easier to build into the physical model...
At the root of the hip joint there are two bones coming out: one controls the direction the leg points the other controls its rotation. Normally you don't need two separate bones for that, but this is one of the ways I found to control the joint's deflection in an IK chain (though IK in the legs doesn't work so good right now) - I'll explain more about this approach when I describe the arm bones...
The upper leg bone isn't directly attached to the knee bone - this is partially because I wanted the leg's rotation axis at the hip to be off-center (but still parallel to the leg's vertical direction, for convenience) The rest of the leg is pretty self-explanatory, I think. The lower leg has an an IK constraint pointed at one of the bones in the foot.
Each foot has four bones - the front bone, which controls the main part of the foot, the heel bone, which allows the heel to lift up, and the IK target for the leg, which is a child of the heel bone - plus a fourth bone aligned vertically near the front of the foot - this fourth bone is used to extend and retract the cleats built into the foot.
In the midsection:
The waist design is a bit peculiar - in the reference design, the belly part is a flexible covering over a bunch of hidden mechanisms. That would be easy to do in Blender - but I'm also using the Blender model as a reference for building a physical model in which I don't want to use a flexible part there. So the belly is a rigid part, and must be lifted up before it can be tilted or turned... There's a bone in the belly itself which is used for that. The bone for the upper chest has its root near the front of the chest - this is because I'm experimenting with putting another joint there, between the chest and the belly part... There's also another bone in front of the armature root, sitting on its own - this is used to tilt the hips forward independently of the belly or skirts, providing more mobility...
The arms:
The shoulders are double-jointed - there's a joint which is used to swing the entire shoulder joint forward, giving more reach and helping the arm to clear the body for various poses. (There's only so much you can do with an impractical design like this! :D) At the shoulder itself, there are three bones coming out: The first, pointed up, is used to move the armor layer to give more range for certain poses. The second, pointed outward, is used to twist the arm and control elbow deflection. The third, pointed downward, is used to control the arm's lateral extension. (forward extension is controlled by the bone at the shoulder strut)
One of the reasons there's a separate bone for twisting the arm is because the shoulder joint itself does not twist with the arm - but part of the shoulder joint does move for lateral extension. There's probably a way I could get that behavior with a simpler control armature plus an extra bone with a "copy rotation" constraint controlling the shoulder joint itself - one of these days I'll update the armature for that...
The joint at the elbow used to be centered right on that elbow disc - that gave about 80 degrees of elbow movement - I recently changed it to a double-joint...
The arm has IK, though I don't use it much so far... And it'll now have the same problems as the leg IK, since the arm now hyperextends, too. The rest of the hand armature is pretty straightforward I think... A bone for each segment of each finger, FK only...
Mach Crit
29th May 2008, 03:11
Holy cow, that's really good information. It's always nice to see someone willing to go into depth on how something works. Did you learn all this from the book (Blender Essentials) or are you coming from another 3D modelling background as well?
tetsujin
29th May 2008, 04:06
Holy cow, that's really good information. It's always nice to see someone willing to go into depth on how something works. Did you learn all this from the book (Blender Essentials) or are you coming from another 3D modelling background as well?
I just got Blender Essentials a few days ago, used that to learn the animation controls. Before that I got started with the "Blender for the Faint-Hearted" tutorials here and picking up other information wherever I could, figuring out other stuff on my own...
The rigging stuff was all gleaned from various sources. In particular foot rigging confounded me for a while, until I found some good tutorials online for it, took a look at the Mancandy rig, etc...
My only other modeling background is with plastic models. Certainly having already drawn up orthographic plans for the Zaku helped when it came to learning Blender and making the mesh.
tetsujin
30th May 2008, 00:32
One of the reasons there's a separate bone for twisting the arm is because the shoulder joint itself does not twist with the arm - but part of the shoulder joint does move for lateral extension. There's probably a way I could get that behavior with a simpler control armature plus an extra bone with a "copy rotation" constraint controlling the shoulder joint itself - one of these days I'll update the armature for that...
I'm presently experimenting with such a change. I couldn't work out how to do it with copy rotation, track to, locked track, etc. constraints so I just used an IK constraint. The bone structure was changed as follows:
Previously:
"Shoulder Strut" bone (limited to Y rotation, child of "Shoulder Extend" bone), "Humerus" bone (limited to X rotation, providing lateral extension), and "Shoulder Twist" bone (limited to X rotation, providing twisting of the upper arm relative to the shoulder sphere)
New version:
"Humerus" bone is now a child of the "Shoulder Extend" and the original "Shoulder Strut" and "Shoulder Twist" bones are erased. "Humerus" bone now supports posing on all three axes. Created a new pair of bones to control the shoulder strut and inner part of the shoulder joint, which target an empty object whose parent is the Humerus bone. Each part of the bone chain can rotate on one axis only (Y axis for the strut bone, X axis for the shoulder joint bone) Once set up I moved the new bones to a normally-invisible bone layer along with the other stuff I don't operate directly...
So the Humerus bone can be moved more naturally, and the IK chain for the shoulder strut and shoulder joint automatically track to the empty (within their constraints)
I'm not completely sure that I'll stick with the new rig - the thing is, the old rig reflects the physical structure of the shoulder joint, while the new rig (while more convenient) doesn't. The Zaku's shoulder, as I've designed it, has three separate joints providing the three axes of movement - the first controls the rotation of the shoulder strut itself, the second is the spherical shoulder hinge which provides the lateral extension, and the third is the upper arm joint, which rotates the upper arm relative to the shoulder sphere.
Using the new rig, the upper arm can be rotated freely and the other two joints will adjust to match its pose. This works and is convenient but it means that when the upper arm is laterally extended such that it's in-line with the shoulder strut, two of the joints (the shoulder strut rotator and the humerus rotator) are on the same axis, and so the rotation of the shoulder joint is non-deterministic. Any animation of the shoulder joint straight through that line would, therefore, result in the shoulder joint's rotation suddenly changing in the middle of the path, or else briefly failing to match the position of the upper arm...
If the Zaku's arm were really constructed the way I designed it, then what would really happen is that the arm would operate the three actuators independently to move from one position to the other... The arm wouldn't be physically capable of making that sweep (180 degrees about the global Y axis at the shoulder) - it would either need to follow a different path, or stop at the lateral position long enough to rotate the shoulder joint by 180 degrees... I think the old armature design might lend itself better to animating how the arm would really move in those kinds of situations...
Of course, there are physical constraints (the outer armor around the shoulders, even that knob on the shoulder joint itself) that prevent full lateral extension - so maybe it doesn't really matter...
tetsujin
2nd Jun 2008, 17:08
Last night I took a crack at making the Zaku walk:
My Second Blender Animation (http://scope-eye.net/?p=136)
(link includes SWF version of animation - alternately there's the MPEG version attached here. Both are OpenGL renders)
Haven't got the arms swinging, and I'm not really feeling the weight... (And how would you like to sit in that cockpit for a few hours? :D) but I think it's pretty good so far.
Ran into a couple interesting problems with IK - parts of the armature that are on IK chains I don't directly control sometimes wind up in funky positions - I have to grab something, or toggle layer visibility, to get them to recalculate their IK solutions and snap back to a reasonable position... Plus there's the basic problem with the Zaku's legs, the fact that their neutral pose is bent backwards (the knees should be "locked" for standing poses, and this locked position is kind of the most natural for editing) - I solved that by posing the leg into a bent position before turning IK on - and I had problems with the legs twisting or intersecting the foot - so I tweaked the IK target and the manual pose a few places in the cycle to try to fix that...
You can only just barely see it in this animation - but with each stride, just before the foot hits the ground, the retractable cleats in the foot extend - they then retract again when the foot lifts. I'm not sure it really makes sense to repeatedly extend and retract the cleats like that, but it seemed kind of neat so I did it. :D It might just make more sense to retract the cleats only when the Zaku's going to be on terrain it doesn't want to punch holes in, like the floor of a hangar bay or when in gym class.
I had a lot of trouble with mesh editing when I first started, but now I'm generally pretty comfortable, when I see something that needs to change, diving in and taking a crack at it. I know how to model things (not that I'm an expert or anything), I know how to fix things when I mess up, and I know how to recover when I can't fix it... With animation, I'm back at the beginning again. It's interesting to go through the learning process again, it reminds me of why things were difficult when I started modeling, what kinds of challenges I was up against.
Mach Crit
2nd Jun 2008, 18:50
Very nice heavy walk. I imagine it's easier with a more humanoid mech. I am going to be trying same with my Marauder (link to mech project in sig). Haven't found a good chicken leg rig tuturial yet... So far, I just have the mech rotation about the z-axis for showing off the details...
By the way, how did you get from Blender to MPEG? I haven't studied enough to "Save animation as MPEG" Or anything else for that matter...
tetsujin
2nd Jun 2008, 19:24
Very nice heavy walk. I imagine it's easier with a more humanoid mech. I am going to be trying same with my Marauder (link to mech project in sig). Haven't found a good chicken leg rig tuturial yet... So far, I just have the mech rotation about the z-axis for showing off the details...
Setting up a basic rig for a chicken leg shouldn't be too tough - so long as your neutral pose bends in a way that is easy for the IK solver to understand, it should IK quite well. Typically chicken-walker types have close to a 90 degree bend at the "knee", so it should be pretty simple to rig it up. If I have some time tonight I'll throw something together.
(EDIT): Of course, in some ways your design (this one (http://www.scifi-meshes.com/forums/3d-wips/39045-mech-progress.html), right?) can be treated almost as a humanoid leg anyway. The forward-joint part of the leg is very prominent while the reverse-joint section is very short. You could almost imagine it as though it's a humanoid in a kind of half-squatting pose - and think of the two segments of the lower leg as simply a more versatile (and stretchable) equivalent of the human lower leg...
(EDIT again): Though I guess that thread also has the Marauder in there, which is more of a regular reverse-joint kind of dealie...
As for the walking sequence itself - obviously that would be somewhat different from a humanoid walking sequence but I'm not sure what the details would be. I would go for the same basic keyframes, though - contact, crossing, etc.
For IK the main thing (at least, to the extent of my knowledge) is that you want the foot to be a separate, free-floating piece of armature, so that when you pose it, you can put the foot somewhere, and it'll stay put until you move it - and then meanwhile the leg IK will track the leg to the foot and hopefully match up.
By the way, how did you get from Blender to MPEG? I haven't studied enough to "Save animation as MPEG" Or anything else for that matter...I first rendered the animation within Blender (using the "Anim" button to do the full render that I used for the spin - and using ctrl-clicking on the 3-d window's render button to do the GL render I used for the walk cycle) - then located the uncompressed AVI file it generated, and from the command-line used ffmpeg to convert it to the various formats. I haven't had any luck so far with using Blender's other video output options (they just flat-out fail for some reason) but for these little clips the way I'm doing it now is comfortable enough...
The exact command line I used was like this:
ffmpeg -i source.avi -b 800 dest.mpeg (or .swf)
The -b 800 is important because ffmpeg defaults to 200 kps which is pretty lousy quality...
Mach Crit
3rd Jun 2008, 13:52
Thanks. I'll have to try that as well. I actually rendered a 500 frame animation of my mech rotating. I have 500 .TGA files that would need to be made into a movie of some sort. Prolly should have rendered as jpeg or something else. Hmm, there is an uncompressed AVI somewhere? (drags out search button...)
I have been reading an re-reading the Intro to Blender Animation, a very good book. It has a complete tutorial on modeling and complex animation for a character. Unfortunately, it is not mechanical in the least (odd, animation is easier if the thing is not mechanical...), but I am sure the rules apply. Also, the animated mesh is one object and I am looking at around 60 objects.
tetsujin
3rd Jun 2008, 15:17
I have been reading an re-reading the Intro to Blender Animation, a very good book. It has a complete tutorial on modeling and complex animation for a character. Unfortunately, it is not mechanical in the least (odd, animation is easier if the thing is not mechanical...), but I am sure the rules apply. Also, the animated mesh is one object and I am looking at around 60 objects.
That was one of the problems I ran into when I started rigging the Zaku - all the tutorials seemed to be for squishy characters with skinning for vertex deformations. Not so much was about machines...
I guess a lot of the same principles apply, but with machines it's important to have the bones' axes match the axes of the part - a slight error in a bone roll angle is very noticeable with something mechanical... In my case there's also the problem of mechanical constraints - the skirt armors should move to avoid the leg, the leg should move so it doesn't intersect the foot, etc. - I'm still not entirely sure how to handle that.
Mach Crit
3rd Jun 2008, 16:42
I would go with tracking constraints on the skirt armor. You would have the skirt track the leg and when the leg approached some point on the skirt, the skirt would move with the leg. I guess you would need to do the opposite until the leg no longer affected the skirt.
You could restrict the skirt to a 30 degree range about the X-axis, say (where X is across the width of the body). It would have a tracking constraint on the leg. When the leg was moving away from the skirt, the angle restriction would prevent the skirt from following the leg. When the leg approached the skirt, the skirt would move away from the leg. I know this is probably easier to say than to implement.
By the way, somewhere in the blender wiki there is a nice tutorial on animating a mechanical joint which also has a piston between the 2 parts, and a rig on some tubing from the piston to a cylinder on the contraption. The tutorial describes how to get one half of the piston to follow and slide into other half with a tracking constraint. It then shows how to rig the tube to flex as the piston moves (the connection at one end of the tube is on the moving arm). I have the link stored at home, so I can't remember it here.
tetsujin
3rd Jun 2008, 18:00
I would go with tracking constraints on the skirt armor. You would have the skirt track the leg and when the leg approached some point on the skirt, the skirt would move with the leg. I guess you would need to do the opposite until the leg no longer affected the skirt.
You could restrict the skirt to a 30 degree range about the X-axis, say (where X is across the width of the body). It would have a tracking constraint on the leg. When the leg was moving away from the skirt, the angle restriction would prevent the skirt from following the leg. When the leg approached the skirt, the skirt would move away from the leg. I know this is probably easier to say than to implement.
(My rigging conventions: X axis is always the primary axis of movement for a bone - so X axis of rotating the skirt swings it forward/back, Y axis twists along the length of the skirt bone, which points downward along the length of the skirt)
Well, I do have something like that on the front skirts - I'm actually using it in the walking animation. But it was a bit more complicated than just tracking the leg... I don't remember why, exactly, it's been a while since I did it... I think I was trying to get it to avoid not only the leg, but the knee, too - but only avoid the knee if the knee was close enough to make contact with the skirts. So there's an armature of three bones that moves with each leg - one bone tracks the skirt, two more IK to a bone that moves with the knee, and the skirt tracks the last bone in that IK chain... Kind of my best crack at saying, "Here's point A, here's point B, rotate forward enough to clear both of them." It works pretty well, but there are still cases where it moves the skirt too much or not enough. I think I maybe didn't tweak it properly to keep up with other changes to the mesh and armature...
The other thing is that sometimes it's better for the skirts to turn on the Y axis, or a combination of X and Y, in order to avoid the leg. It just looks a lot nicer. In the walk cycle the central front skirts are just doing their automatic X-axis thing, but the outer front skirts are manually animated to do just a bit of X and Y to dodge the leg when it's forward...
It seems pretty complex to get really good avoidance behavior in the skirts using IK and tracking - that's why a physical basis for calculating the skirt positions would be real nice...
By the way, somewhere in the blender wiki there is a nice tutorial on animating a mechanical joint which also has a piston between the 2 parts, and a rig on some tubing from the piston to a cylinder on the contraption. The tutorial describes how to get one half of the piston to follow and slide into other half with a tracking constraint. It then shows how to rig the tube to flex as the piston moves (the connection at one end of the tube is on the moving arm).
Yeah, I looked at that a long time ago. For some reason it didn't really work right for me. I think when I initially tried it I had some problem getting the armature in the tutorial to behave properly in 3 dimensions. I remember when I tried using tracking constraints to operate the pistons in the Zaku's legs - for some reason the two parts of the piston wound up twisting relative to each other. For a regular cylindrical piston this wouldn't be a big deal, but the Zaku has double-pistons in the leg... Going off-axis is way too easy to spot...
Even now, though, I don't really have a good grasp of the use of track-to and locked-track. There are places where I could use tracking constraints and I use IK instead, mostly 'cause I don't know how to get the locked aspects of the tracking constraints to work the way I want...
tetsujin
13th Jun 2008, 18:31
The previous walk cycle had a couple problems - mainly I'd overestimated how much hip movement was necessary to make the raised leg clear the ground (with the bulk of the legs and especially the feet, plus the fact that the knee can only bend 130 degrees or so, it's not really a design that's well-suited to walking. But it works.) - plus I'd mistakenly erased one of the actions from one of my keyframes, and as a result the left leg would intersect the foot during the stride... Plus various things with the arms - they didn't move, the right hand wasn't closed around the grenade it's carrying, etc. So I took some time to refine the walk cycle. I did a proper render this time - turns out my computer at work can render about ten times faster than my home machine, so I was able to experiment with a few trial renders.
My effort to refine the walk cycle also led to some changes to the armature this time around. I added pole targets for the leg IK chains (which actually were kind of a pain to use, because Blender's pole targets align the bone's X axis to the pole target - and all my leg bones' X axes point sideways, because I use the X axis to mean the "primary direction of movement" for any joint... Plus, for some reason, the pole targets for left and right legs both need to be to the left of the foot they're attached to. If I put the right leg's pole target off to the right, the right leg turns itself backwards... Clearly, the Blender developers expected people to use the bone's Z axis for the knee joint and have the X axis point forward, so the pole target could be in front of the leg. I'm not looking forward to the prospect of rolling all my armature bones by 90 degrees, and having to completely re-do all my poses and animations... But at any rate, the pole targets now work and they do a lot of good - the way the Zaku leg is designed, it really has to be aligned to the same direction as the foot.
The other change to the armature was I moved the ankle joint down and forward so that when the leg bends forward, it'll clear the top part of the foot more reliably. This took some experimentation to get right (which is annoying, because every time I edited the armature I'd have to go back to pose mode, clear the pose, turn off IK in the legs, re-parent the legs to the leg bones, then turn IK back on and scrub the timeline to see the result) and the resulting joint isn't in the place where, structurally speaking, the ankle joint would appear to be. But for the sake of animation it works quite nicely.
There's some kind of problem at the beginning and/or end of the walk cycle - I think the starting pose is appearing twice in the sequence, or something - there's a little pause there when the right leg is forward... Well, I'll fix that next time around. :D
See the video here (http://scope-eye.net/?p=137) (Flash) or in the attachment (MPEG4 codec)
Powered by vBulletin™ Version 4.1.3 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.