Jump to content
Hash, Inc. Forums

OdinsEye2k

A:M Users 2019
  • Content Count

    724
  • Joined

  • Last visited

Community Reputation

0 Neutral

About OdinsEye2k

  • Rank
    To the Moon! (No, really, I mean it.)

Contact Methods

  • Website URL
    http://www.prism.gatech.edu/~gtg724n/
  • ICQ
    0

Previous Fields

  • Interests
    Animation (Obviously),<br>Theatre, Writing, Space Engineering, Technology and Policy,<br>Fine Beer with Good Company
  • Hardware Platform
    Windows
  • System Description
    Abit Siluro GeForce 3 Abit mobo Athlon XP 1400 512 Kingston RAM WinXP

Profile Information

  • Name
    Bjorn Cole
  • Location
    Atlanta, GA
  1. Random technical addition: I was also going to be clever and add Coriolis effect to the motions of my players (since the station would be rotated for gravity). Problem is that my designed station is too small to generate any useful gravity. At the spin rates necessary to get any decent artificial gravity, all of my poor astronauts would get horribly sick (Coriolis effect in the inner ear is a human factor to worry about when design artificial gravity through spinning).
  2. So, thanks to the help of those on the forum in reminding me of a couple of old tricks, I cooked up something for my return to animating. My problem is that I have two teams of 7 that I would like to place and move about on the inner surface of a cylinder. So, to make my life a little easier, I did the following: -Made 14 "pointer" bones for the cylinder. -Made a Constrain to Surface constraint with a separate pointer bone assigned to each player. Now, I wanted to deal with laying people out on a flat version of the cylinder's surface (just easier to think that way), and so I made up 14 nulls to place on a control grid. This control grid related the location of the null relative to its surface to the pointer bones via two Expressions: (..|..|..|..|..|..|BlueTarget1.Transform.Translate.X-..|..|..|..|..|..|Shortcut to ControlBoard.Transform.Translate.X)/88*360/2.54-180 (..|..|..|..|..|..|Shortcut to ControlBoard.Transform.Translate.Z-..|..|..|..|..|..|BlueTarget1.Transform.Translate.Z)*10 So, the end result is that when I diagram the positions of players on my 2d grid, they appear at the appropriate part of the cylinder.
  3. Spacebar does the trick. I've got kind of a neat little rig I invented just before dashing into LA this morning. I'll try and show you what I have tomorrow.
  4. Hey all, So, I'm starting back up into AM and one of the first projects I'm tackling is trying to do some kind of a zero-g thing. I've got a number of characters (currently just stick figures while I experiment with motion) within a cylindrical can. I've used the "Constrain to Surface" type constraint to ensure that they are standing on the edges of the can. I plan to manipulate the level of enforcement in order to make them able to leave the surface of the can. Anyways, using all those pointer bones is a little bit cumbersome, so I thought of trying to use Nulls with "Aim At" constraints applied to the pointer bones to make things easier. Problem is that when I move the Nulls, the location of the people does not update. The pointer bones are certainly moving, but their control is not being represented. When I reload the file, all the new position information created by the Null is properly applied to both pointer bone and to model. Is there anything I need to do to get AM to update in real time?
  5. Hey Robcat, So, how did you finally get the value to stop changing? Did you actually manage to save it? Because if we're talking saved values (and can do the trick more than once), we're talking the possibility to run differential equations in Expressions. And then real damage can be done.
  6. Cookie cutter decals will give you flat patches of hair if you do the stamps on a plane.
  7. I've got a couple of ideas for how to formulate an auto-skin feature (based on basic prototypes like shoulders and such). The problem is that I need to sling a lot of bones and apply Expressions for appropriate control (and also so I can extend the basics with my refined control concept).
  8. Hey all, I'm crossposting from the same topic on the SDK. What I'm trying to do is apply a Constraint (well, an Expression would be ideal) onto a bone inside a Pose. The RelationshipSample shows how to make a pose and rig up some properties there, but I can't figure out how to actually apply the Expression. My first attempt had me walking through pointers with this code (assuming the HModel hm comes from editing the Pose): HEulerRotateDriver *qrd = HEulerRotateDriver::New(); HFloatDriver *hfd = qrd->GetZ(); HBone *grabbone = hm->FindBone("Bone1"); HTransformProperty *tp = grabbone->GetTransform(); HRotateProperty *rp = tp->GetRotate(); rp->AddDriver(hfd); Not really sure if this is working so far ... And the other question I have is where would the Expression come into play? Or have I totally made a mess of this?
  9. Euler angles represent successive rotations about three different axes. Which axes they are, and in which order, is a matter of convention (someone makes an arbitrary choice and everyone agrees, often for an advantage stemming from the math). Real gimbal lock comes from a physical device. An old form of space measurement (the Apollo "IMU") actually used a device with three nested rings (each pivot point was one of the Euler axes) to measure the difference between the spacecraft's current pointing and an arbitrary reference. Usually the references were things like the direction to point for a rocket burn or the moon's landing site or something like that. A defect in the IMU's design allowed two of these axes to line up (just like in Euler drivers), and suddenly, the same rotation could be represented as many different sets of Euler angles! http://www.hq.nasa.gov/alsj/gimbals.html Now, there was a well-known way to avoid this by using a fourth, and redundant, axis. Even the Apollo guys knew, but since this was a race, they grabbed something that worked well enough (remember, these were the nation's finest pilots - avoiding gimbal lock wasn't a major task for them). AM's default mode is to use Quaternions to represent rotation. They have a fourth axis like the magical lock-proof IMU. To the original question, see attached. I want to make sure to explain this right. If you specify a set of Euler angles for an angle, you are fine. Euler angle -> rotation is unique in *all* circumstances. Now, if you want to solve for Euler angles from a rotation, that is when you get screwed. See what happens to the Expression-driven Bone2 when Bone1 goes to the pole. Then play with the roll handle and watch it freak out. EDIT: Well, to be honest, quaternions actually only have one axis, but four parameters. They are actually pretty complex mathematical objects. GimbalLock.zip
  10. Fair enough. Thanks for the reply.
  11. Hey, I have a simple question for curiosity's sake. Are there any plans to add smartskin capability to the WeightMover? What I mean is this - if the bone weights are interpolated linearly between neighboring points, it should be similar math/algorithm to transfer smartskin settings to neighbors from the same bones. The use for this would be to have the basic low-res envelope warped into exactly the desired shape (CP weights and fan bones get close, but I've had to use tricks to preserve volume), which would be transfered wholesale to the higher-resolution model. Let me know what you think/have thought on this question. It is more than alright to say that I am being silly and have overlooked another technique to acheive the same effect.
  12. OOOOOhhhh! Shiny! A new button just for me. Bob - Thanks a million for that - I was actually about to ship a huge project with all of that data for you to look at. And it explains why it was so darned hard for me to figure out what the heck was going on when I was trying to do the math by hand. Sneaky, man. Sneaky.
  13. Still hacking the popping problem. I added a volume preservation fan on the shoulder (helps a little), but I just decided to smartskin it into roundness (could theoretically add more). Also, I brought the joint in ever so slightly (just enough that his hands are naturally almost touching his hips - when I make the woman, her hips will violate this space). For your help folks, you now get two movies of motion: http://www.prism.gatech.edu/~gtg724n/maintest2.mov http://www.prism.gatech.edu/~gtg724n/maintest3.mov
×
×
  • Create New...