Jump to content
  • Advertisement

Leroy_1981

Member
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Leroy_1981

  • Rank
    Newbie

Personal Information

  • Interests
    Programming
  1. Leroy_1981

    Tormented by skeletal animation

    Thanks for clearing that up about the inverse bind position. My previous skeletal animation system only accounted for translation when converting to bone space which is why I don't get the rotation part yet. And I went back to my old system and I realized what the actual problem was. It's understanding the rotations of #D Max bipeds. I figured out I was using the wrong base rotation values from #D Max, now I have it almost working perfect. Bones pivot on the right axis when I rotate them. I just have one more issue, the farther down the heirarchy the more vertices rotate around something other than their parent bone. The base, hips, torso, all work perfect, but all their children skew when rotated out of the rest pose. But I'll get it soon. And I'll finally be able to export animations from 3D Max instead of using a self built program to animate.
  2. Leroy_1981

    Tormented by skeletal animation

    I know but I'm still not totally sure of a few things so it makes it hard to isolate the steps and know what to expect. Does the inverse bind pose matrix just bring vertices relative to the origin or does it also rotate them to what they would be if the bone had a rotation of 0,0,0? Because it seems like 3D Studio bones are aligned down the positive X axis when their rotation is 0. So if I multiply the world space vertices by the inverse bind pose matrix what should the result look like?
  3. I had skeletal animation going in my character models but it was basic and didn't support bone weighting. It also didn't use the bone's inverse bind pose matrix at all. So bones were initialized using just position not rotation and I just fed whatever rotation values I had to to get the limbs to the desired orientation per frame. TBH I built a whole program for animating my models from scratch. But I didn't build it very well for handling adjustments in model structure. And now I want to use the animation data exported directly from 3D Studio Max. I'm 99% sure I have narrowed everything down and I'm exporting all the correct info from 3ds(Mesh vertices,bone pos, bone intial rotation,etc). And I'm also 99% I'm super close to having things working right on handling this data after it is loaded from file. But still not 100%. Thne closest I've gotten, is having it so when I rotate bones closest to the base, the children follow correctly. But if I apply rotation to children farther down the heirarchy their rotation is skewed. Their vertices don't rotate around their parent bone. So my understanding of the entire process is this: NOTE: I am only using rigid vertices right now until I get this worked out WHILE EXPORTING CHARACTER MODEL 1. Export the bone's world position at rest(bind pose) 2. Export the bone's rotation at rest 3. Convert above rotation to OpenGL coords(X/Y/Z = X/Z/-Y) 4.. Obviously export bone's parent info WHILE EXPORTING ANIMATION DATA 1. Export timestamp of Frame F 2. Export the character's position at Frame F(Leaving this at 0/0/0 for now) 3. Export each bone's current animation at Frame F, converted to OpenGL coords WHILE LOADING ABOVE DATA & ANIMATING 1. Load in all model & animation data exported above 2. Model intial setup includes 2.1 For each bone, calculate local pos(world pos-parent world pos) 2.2 Calculate bind pose and inverse bind pose matrices Bone relative matrix=matrix(bone init rot,bone local pos) Bone Bind Pose Matrix=relative matrix * parent bind pose Inverse bind pose=Inverse(Bind Pose) FrameMatrix=Bind Pose 2.3 For vertices(since I'm only using rigid weights) Multiply each world vertex by Inverse Bind Pose of parent bone and store in local verts 3. Per Frame calculations 3.1 Interpolate between frame rotations for each bone based on current time of animation., and I know this step works fine, used with previous animation system 3.2 Do the same for overall model position at Frame F but Position stays at 0/0/0 for now 3.3 Update the bone frame matrices frame relative matix(frame rot,frame pos) multiply relative matrix by parent frame matrix 3.4 Update the frame vertices(actually verts to draw) for each vert, multiply by parent bone's frame matrix Now I know there's alot of missing info and not everyone is familiar with 3D Studio Max bone rotation data, but I'll supply any extra info needed. Or if someone wants the actual file uploaded let me know please.
  4. Leroy_1981

    Plugin FPS

    Hey guys, I got an exciting project releasing any day now. The first ever First Person Shooter built entirely on a plugin architecture. Add any character, weapon, arena you want. Replace the physics engine, AI, Menu backgrounds, etc. I'm looking forward to seeing how this project evolves. A demo video can be seen at All questions or comments can be sent to leroyware@yahoo.com Enjoy!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!