I have a biped upper arm in a master rig. I have a sub rig where the x and y rotation are separate bones (mechanical). Since bipeds wire parameters aren't really exposed AFAIK, I have a dummy object that I wired the x and y axis of these sub-objects to (works fine). Now, I attempt to orient constrain this dummy to the biped. It now moves with the biped, but has lost its wired ability to move the 2 sub rig bones.
Master Rig>>Dummy>>SubRig X n Y bone.
What is the solution to allow this since I think its having a conflict in the dummy being "the middle man" as it were. I did attempt to assign a XYZ Euler to the BipRotationlist on the biped in an attempt to bypass the dummy, however, the x/y bones will not react when I attempt to wire direct.
I also am running into this:
Per this thread:
http://forums.cgsociety.org/archive/index.php/t-892653.html
Under the "expression for <object>" box of the wire parameter where X_position (or whatever) is listed I just corrected the offset in this context:
X_Position-1.65 (or +300 or whatever)
press update and voila.
Where do I find this number to put in? I tried it a few times, but it didn't seem to match what Expose Transform gave.
Replies
regarding the offset conflict, ... they dont really conflict the last constraint overide the previous.
WHy do you need a wire and a constraint at the same time? can't you do it all at 1 times using a different setup? It seems like you're overthinking it
cant you have something like: have middle dummy to control the pos
another middle dummy to control the rotation
and finally a dummy constrained to those 2.
I cant bypass the dummy because bipeds wiring ability is limited at best.
From what I understand ....Expose TM should give you what you need
Why do you need a wire ? Cant you use a rotation script or just parenting stuff ?
Per the Transform Expose. Thats the thing, the listing it has does not correlate to fixing the offset if I plug in the numbers to the wire parameters from the other thread I linked. I also attempted freeze transform, and when I attempted to reset to frozen original transform, nothing would happen if It was constrained to something else.
I digress though. First things first. This is the most important part.
Why am I not directly connecting the lowest rig to the biped? I need to retain the local xyz rotations versus them locking to the bipeds. So I thought I had to use an intermediate step of a mid mesh so I can wire to individual axis and keep local rotation directions.
But, I have just realized I cannot. It goes into the main issue with my dummy object. Wire parameters break or do not work if I have a constrainted position, orientation, link, or a skined mesh object, the wire parameters breaks!
I know it has something to do with the Motion Transform Rotation layering system, but I tried putting a xyz euler below the constraint with wire parameters, and it still doesn't work.
Basically to boil it all down, think of a Universal joint. My dummy is the controller for that joint. I need my dummy now to be controlled by the master biped and keep the wire parameters to the rig.
Are you trying to link the biped to the rig ? Like have the l_arm_help control the orientation of the biped arm?
if so ? Why exactly do you need to do this?
After a quick look it seems like you imported an FBX from another software... what is the fbx skeleton for?
I you mean slave biped, that is simply a snapshot mesh of actual bip.
Per why I need to do this, as upper arm in real rig is two bones in exact same spot. 1 controls x and 1 controls y. This is like a universal joint versus ball joint.
A universal joint is pretty easy to setup, but it can get pretty complex if you want to introduce IK/FK switching or start driving its rotation/bending through the actions of other bones.
CAT is a little more open to this type of customization but it's still horribly buggy and I don't trust it for production use.
I really don't understand the end goal all that well so it's hard to say how the rigging should go...
Cat actually was corrupting my files so bad, max would crash trying to even open one through the merge function.
https://dl.dropboxusercontent.com/u/2904948/Tutorials/ArmRig.max
(If you rotate the shoulder helper manually right now you will see what I am after)
http://207.246.157.76/ArmRig03.zip
Edit: Forgot to upload file. Fixed.
Mr.Fred, you were correct about the Expose Transform. I didn't realize you could wire through it. I thought it was just to list variables.
Thanks for your suggestion.
Though still unsure how to make up for offsets. - or + the Expose Transform number for the local rotation doesn't align it back to 0.
Your best bet is to go full custom
But to answer your questions specifically.
Your question is a little ambiguous. Do you want the Bone Y to never rotate, or to just keep it's offset in relation to the Master.
If you just want to keep the offset there are a few ways. For constrained objects you can use "Keep Initial Offset." For wired objects you can adjust the expression to add in the offset. And for either type if you are using a list controller, just add another Euler XYZ controller at the end, and set it's rotation.
If you want it to never rotate. I would use a single bone IK chain with a swivel target, or a look at constraint with an upnode.
Im having this issue now using trans exp with the dummy constrained oriented to upper bip arm. The y bone wired to the trans exp getting its info from the dummy will only raise the y bone 90 degrees+- fromits original position, then start going in the opposite direction from the bip rig until it meets it again at the other side. In short I am only getting 180 of correct movement.
With a custom rig, I still need another rig with the ik seemngly. I attempted a hi rig from shoulder to elbow. Locked the axis for those two bones under hierarchy ik tab. Y would work, X wouldnt respond in x rotation.
I am going to try next using a variation of your idea monster and have the dummy look at the elbow joint, and using trans exp wire my two bones through there. Not sure it will make a difference as the local euler rotational info the trans exp uses should still be the same as if I used a orientation constraint
https://dl.dropboxusercontent.com/u/2904948/Tutorials/ArmRigIK_HD.max
However, I'm still getting stuck in some areas that I can seem to find the right search engine keyword for.
So here are some more Q's
Is there a way to keep the offset of a HI chain of the end bone? It will shoot the IK chain to the 0up axis if I attempt both bones (described originally above, again think universal joint) in the swivel joint of the thigh/femur.
OR
Is there a way with a HD Ik chain to expose the Ik goals as separate items in the scene? They seem locked into the bones.
Edit per Hd, I think I figured it out.. Not sure will see. I use a dummy object as a end effector, which effectively acts as an IK goal.
Edit: edit: I guess not. The effectors have to be somehow adjusted to slide and move along the joint to mimick a HI Goal., which I guess Im lost at.
I tried a pure HD chain, and used end effectors to attempt to get IK goals. However, they don't act the same as the Hi version, and thus the helpers do not work correctly.
Here is a reference file.
http://207.246.157.76/fubar.zip
(Also all 3 axis for femur are separate.
Again maybe you need to do that with wire
Second option would make the end effectors of a HD rig act the same as a Hi IK goal. Per the HD rig works perfectly, on the actual rig versus above with using another IK'ed rig.
Pass, not passed.
http://207.246.157.76/fubarHD.zip
The rigging for this is from such:
[ame="http://www.youtube.com/watch?v=OLSgqD-JWzk"]Rigging the Character - Part 2 - Foot Hierarchical Links - YouTube[/ame]
All the issues I have are because I have the X Y and Z controlled by separate bones for the femur/thigh movement.
I can't get any further on this without a good direction. No one in hangouts uses Max to animate normally, soo.. yea.
Based pn what I know you either have to learn advanced rigging concept, which might include math ...or...
You try to keep the rig as simple as possible and ask the animator to animate it the other way.
The trick isn't to rig one system that can do everything. It's to layer objects on top of the rig that isolate single axes. I didn't use anything complex, just look at constraints and HI solvers.
This example isn't perfect. If I had more time I could probably come up with something better. And it's a little wobbly because the original dummies don't point to the next bone and are not in alignment.
Anyhow here is what I have. Tried to make it easy to follow. I didn't worry about hand/foot, as those are separate IK chains and work perfectly. Its just that damn shoulder/thigh.
http://207.246.157.76/fubar01w.max
(Also thanks for your patience)
By default the Z axis will try to point up. Notice in the GIF how in the No Upnode setup the Z axis twists to point up. In the Upnode setup I set the Y axis to point to the circle Controller.
https://dl.dropboxusercontent.com/u/2904948/Tutorials/fubar01w.max
Thank you very much Monster.
I am doing a FK/Ik mix on the arm per [ame="http://www.youtube.com/watch?v=j8UVIsjskE0"]Rigging the Character - Part 12 - Arms Blending IK/FK - YouTube[/ame]
The issue is, and maybe its unsolvable using the 50/50 constraint. The lower arm gets out of alignment. The only thing I can think of that might work would be a lookat? While deleting the 50/50 constraints. Issue is Im not quite sure which bone to do this with. Possibly the arm twist, but from some tests I did, it would align to the upperarm, the wrist would still be off set. I attempted one with the pink pivot on the left side (facing back, engine imports weird).
The other one is I am trying to make a reaction controller for a Boolean. Namely,turning the elbows constraint on/off on the IK goal to choose from it and the swivel. I have a parameter set up already on the left side (again facing back). However, I see no direct way of getting the reaction manager to do 0/1. How do I plug into that Boolean operation on the IK goal via a parameter editor checkbox?
http://207.246.157.76/almostreal.zip (Max2010 format)
So, to translate, do I create a point at the axis of each fk and Ik joint? Then make them children of that joint. With the third point orientation and position constrained to those two 50/50? Then constrain the bone in question to that box?
Are you speaking about this? "IK_l_arm_elbow_control". Thats only being used as a swivel goal. Which I was just trying to figure out how to turn on/off that boolean in its options through parameters.
Or do you mean with IK elbow upnode, making on the slave rig thats looking 50/50 between the IK/FK (hidden behind the boxmeshes above), a lookat on the upper arms swivel (the joint right before the elbow - just called Bone004 for now). Have it look at its upper arm joint (since you mention the upnode is on the elbow), then having this node being a lookat node target?
Is that correct? Then where do I put the points from the script since it calls for three. Attach one to the FK elbow, one to the IK elbow. While the third is put??? Then using the plane the script creates as the lookat node for the upperarm twist on the slave mesh?
This would bring up an issue though, I have if you look at my IK control for the arm, a Reaction Manager to make the slave rigs percentile between the FK/IK change for the whole arm. How would I get this lookat node (if above is correct) to also change its percentile. Is that what the third point from the script you linked would be used for? It having the 50/50 constraint.
EDIT: Just attempted what I described above and it didn't work. Also think I found a bug with that transform script. If you make it a constraint or lookat for any other object, it starts moving in space versus local coordinates. As best probably would nee a expose transform on it to another object, but even then you would be limited to 180 degrees for the wiring.
I was able to fix it by adding a couple of point objects that have the same starting orientation as the constrained bone. Then calculating the interpolation between them in the parent space of your previous target joints, using a rotation script instead of an orientation constraint. Sorry I know that's a mouthful, but here's the file. Check out the rotation script.
https://dl.dropboxusercontent.com/u/2904948/Tutorials/almostreal01.max
Another example, here is a file that has the problem your having in the center, and the Local > Local fix on the left, and the rotation script fix on the right.
https://dl.dropboxusercontent.com/u/2904948/Tutorials/ArmTwists.max
So in other words I need a squash controller starting from the head, but have the twisting motion as a separate controller.
First Rig: Green Dummies and the purple spline (captures orientation with separate head twist)
Second Rig: The Orange points (captures position for Z, uses first rigs splines to give the squash controller a path.)
The issue is that I cant get them to line up. Yes, I could make a third rig and try to do a average between the two rigs, but rather would like to see if possible to have the second rigs path conform to the first while still having the squash in stretch controller.
Rig example:
http://207.246.157.76/headtwistnsquash.zip