Results 1 to 10 of 10

Thread: Trilobite Legs

  1. #1
    Registered User nickej's Avatar
    Join Date
    Feb 2003
    Location
    Rhode Island
    Posts
    162

    Trilobite Legs

    I've been asking a ton of questions on the support area of this site, trying to figure out how to best set up the animation for the legs of this critter, so I thought I ought to share the progress. I've set up a series of expressions that allow me to vary the extreme-poses of all the joints, affecting all the segments simultaneously. This lets me make sure that the legs do not intersect one another even if the creature curls up somewhat. These are controlled by sliders. I've also got a separate conrol that lets me control the speed of the leg motion. Finally, I can affect the little limbs along the central groove using keyframe animation if I need to animate the thing eating something. Now all I need to do is work out the textures....

    In the meantime here is a quick test of the legs in motion.

    By the way, the test render is of the low-poly version. The final version will be a sub-d with extensive normal-mapping and some Sasquatch hairy-bits along the edges of the gill-legs.
    Attached Images Attached Images

  2. #2
    Member sammael's Avatar
    Join Date
    Mar 2003
    Location
    Melbourne, Australia
    Posts
    1,653
    Hey thats cool, nice work. Just a thought on normal mapping, i would use displacement instead for a highpolly model unless you plan to put it in a game. Youll get better interaction with your lighting that way. normal mapping will reduce render times but may look wrong in the context of your animation if thats what your planning...

  3. #3
    Registered User nickej's Avatar
    Join Date
    Feb 2003
    Location
    Rhode Island
    Posts
    162
    Oooops...that's what I get for posting at 2 AM. You're right, of course. I tried normalmapping but found pretty much what you mentioned. I've gotten much better results using normal *displacement* from a ZBrush-generated high-poly version. Here's a test with just a color map and displacement applied. There's a little weirdness down by the edge of the gill-ridges (at bottom), caused by the way LW 7.5 handles UVs in subD objects, but considering the fact that the things are going to be moving all the time, I don't know if there's any point in either upgrading in the middle of the project or screwing with the UVs for days.
    Attached Images Attached Images

  4. #4
    everything looks great, great job on getting the movement of the legs working properly. keep the updates coming.
    -Brian

    www.bhm3d.com

    2.0 GHZ DP G5
    1.5GB of RAM
    9600 Pro

  5. #5
    King of Trentonia trentonia's Avatar
    Join Date
    Feb 2003
    Location
    Rocket City
    Posts
    352
    You could probably also use it for a centipede or millipede. Care to share more details on how you did it?

    trentonia
    With velocity expressed in furlongs per fortnight, it is essential that the basic application be applicable to the end item requirement.

  6. #6
    Registered User nickej's Avatar
    Join Date
    Feb 2003
    Location
    Rhode Island
    Posts
    162
    Glad to.
    The setup is pretty straightforward, but somewhat labor intensive. I'm sure that bunches of it could be managed by an LScript, but I'm ignorant of the subject.

    Like a centipede, the trilobite is made up of identical segments (with somewhat different sizes adding some complexity). Because of that, I could use the same bone setup for each segment. Since this creature had eleven segments, I set up my scene to contain 55 frames (54 frames + the "0"th frame), because 11 goes into 55 evenly.

    I animated one complete walk cycle for one segment over exactly 55 frames. If you're certain that there is no way your legs can overlap and intersect each other, you can set up the rest of the segments now, if not, well I'll go into that later in this explanation.

    To set up the rest of the segments, you can copy the motion curves from each individual bone and then paste them into the appropriate motion graphs for all the other identical bones in all the rest of the segments, ie, "Bone 1" of 1st segment's motion graphs get pasted into "Bone 1" of Seg 2, Seg 3, Seg 4, etc. This is the sort of thing that I'm sure could be handled by an LScript, but I'd have no idea how.
    What I did to get the segments to work together was to place every active bone under the control of Cyclist, which is available under the Motion Options panel. To do this, I added a null to the scene to serve as a speed control and arbitrarily assigned its Y axis as the parameter I'd use for the control. For the first segment (the one I'd animated) the settings I used were initially "Cycle frames from 0 to 54", Cycle Controller was the Null I'd just added, and the parameter setting was "Position Y". Leaving the other parameters alone, what this does is to set things up so the legs go through a complete cycle of the animation every time the null travels 1 meter upward. I then went on to attach Cyclist to all the other bones in the model, with the following alteration. For segment 2, the setting was "Cycle Frames from -4 to 49", for segment 3, "Cycle frames from -9 to 44", etc. This puts the motion of segment 2 five frames out of phase with segment 1, but it will always remain synchronized. I offset the cycle by five frames because of the 55 frames of the animation and the eleven segments of the creature divided evenly into that number, ensuring that as I offest each segment's cycle by the same amount, by the time I got to the last segment, it would be five frames out of phase with the first segment, lending a pleasing, cyclical look.

    All that's needed then to animate the legs is to open the graph editor for the "Positon Y" parameter of the governing null, and set it so that it goes upward at an appropriate speed for your motion. In this case, each meter upward equals one cycle of leg motion, and I thought that about one cycle per second looked good, but really any speed is OK. It can speed up and slow down and never get out of phase. If you have a walking creature on a flat suface, you can parent this null to the creature's body and use a forward motion parameter to make the legs move an appropriate amount to the creature's walk. My creature is free-swimming in some strong currents, so I've elected to keep the null controlled by keyframes.

    If you have legs that can intersect one another, the situation gets more complicated. You have to able to interactively affect the maximum flexion of each joint so that you can make sure the legs don't intersect at any point in their animation cycle. For convenience, this adjustment has to affect all the analogous bones in all the segments at once. What I did to solve that was to set up a system of nulls and expressions for each active bone in the first segment and then apply the resulting expressions to the rest of the bones. Since each bone only moved in one axis, I used three nulls, called "Bend Min", "Bend Max" ,and "Bend Regulator" (this will become clear in a moment). I copied the motion curve from the bone and applied it to two of the nulls "Bend Min", and "Bend Max". BUT, while the motion curves for the bones were in recording angles of deviation, I manually assigned the same numbers in meters to each keyframe of the graph on the null, and transposed the curves into "Position Y" parameters. In other words, "114.2 degrees at frame 20" on the bone would become "114.2 meters at frame 20" on the null. I then squished and pulled these keyframes so that one of the keyframes, "Bend Max", was a bit beyond the bend I'd already assigned to the bone, and the other, "Bend Min" was quite a way less than the bend I'd assigned. I don't think the degrees-to-meters translation was strictly necessary, but it kept things in nice, round numbers that I could mentally picture.

    Then things got tough.

    I want into the Expression Builder and invoked "Value Cross Fader(Type A)" (under "Utility functions") I assigned "Bend Regulator"'s Y Axis as the Mix Slider, the range as 0 to 100, "Bend Min, Position Y" channel as the InputA, and "Bend Max, Position Y" channel as the InputB. I assigned this expression (saved under an approporiate name) to the original bone channel, and created a slider to govern the Y Position of the "Bend Regulator" null. I also assigned this expression to each of the analogous bones on all the segments all the way down the body.
    The result of this is that, by mocving the slider, I can cross-fade between two smooth curves with widely divergent numbers attached, meaning that I can have each leg swing, say, 10 degrees or 90 degrees, while still keeping smooth in and out curves on the keyframes, unlike using a "Clamp" function.
    One expression for each active bone, three nulls, Cyclist....as I said, it was a lot of manual labor, probably easily automated with an LScript, but it gives me a great deal of control with very little subsequent labor when it comes to animation.....
    Attached Images Attached Images

  7. #7
    Registered User nickej's Avatar
    Join Date
    Feb 2003
    Location
    Rhode Island
    Posts
    162
    Here's another update and render.
    After tweaking the leg-setup (and finding little errors where I'd assigned the wrong expression to a joint, etc.) I've added the anennae and cerci (basically antennae at the tail end) along with IK rigs to control them. I visualize them as like lobster antennae--stiff and whip-like. There's no evidence for their existence, except that there are some (other) species of trilobite that have such antennae, shrimp seem to have them as well, and I thought they looked cool.

    Here's a saved preview render of one of the tests I did on the rigging. Not animation per se, just a test.
    Attached Images Attached Images

  8. #8
    Registered User Pamela G. Juust's Avatar
    Join Date
    Jan 2006
    Location
    Estonia
    Posts
    130
    Its an old thread, but I just wanted to hop in and say thanks for your explanation of the leg setup. I'm doing some trilobites of my own and this setup works really well for those legs : )

  9. #9
    inside the beltway Riff_Masteroff's Avatar
    Join Date
    Mar 2003
    Location
    Arlington, VA, US
    Posts
    634
    Oh my . . . Trilobites (three lobes). Fantastic creatures. As a kid I was given a few small fossils of them. They are plentiful, Trilobite fossils can be bought on Ebay for as low as $10. And also as a kid, horseshoe crabs would wash up frequently on the beach. I thought they were dead and I was sad. Only recently I learned that the crabs needed to molt to grow and that those were their carapace shells . . . cast off for my wonderment.

    Lately I had not intended to use LW to visualize. But I would like to use a simplified version of their basic curves as a real-life woodworking motif. I used to use a double curve, now I intend a triple curve. Over and over, something to recognize my input. Subtle variation a plenty. Something like missim's housefly. Better than copying Ancanthus leaves or Fleur De Lis motifs. No Grinling Gibbons am I.

    btw: I have no intention of carving the legs or tail . . . . just the body shape . . . stylized.

    Click image for larger version. 

Name:	022413s.jpg 
Views:	98 
Size:	86.1 KB 
ID:	116879Click image for larger version. 

Name:	032708f.jpg 
Views:	106 
Size:	28.0 KB 
ID:	116880Click image for larger version. 

Name:	Phacops.jpg 
Views:	184 
Size:	819.4 KB 
ID:	116881

  10. #10
    Well,the creature is a good concept.
    remote render--Fox renderfarm
    (http://www.foxrenderfarm.com)
    2,000 servers,each has 2 Intel Xeon E5645 processors,24-64GB RAM.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •