Rotating an object's axis

Is it possible to rotate an object’s axis?

My object is an arachnid cyber egg thing and the legs are positioned diagonally when seen on the top view. The closest I got to the desired rotation is putting myself in front view, then using the 4/6 keys I rotate the view to face the legs and do the rotation then. This makes for a good rotation on keyframes, but the “tween” twists the legs.

The best thing for me would be to rotate the leg’s axis 45º, then using the double XKEY or ZKEY press when rotating.

Can this be done? If so, how?

I think I found a solution, but either we’re needing an extra feature or there is a better way to do it.

I’m going around the problem by entering edit mode, and rotating all vertices to match what I want.

This will take a lot of work, since after that I’ll have to remake all parents/childs, and reposition all objects.

It would be great to have an option under the transform box to Grab Axis, and Rotate Axis. Is anybody on the dev-team reading this? :wink:

If you’re trying to do animation you should consider creating an armature for the creature. It would work better for tweaking the model too.

Another way to rotate the legs may be to select a pivot point in the 3d-view by clicking the left mouse button, then hit the “.” key to set rotation/scaling around that pivot point. The pivot point should be close to the joint for that leg. Now in one of the views you can rotate around the pivot until you are satisfied with results…

A picture of you model and indication of problem area in it might help someone figure out what to do with it.

Ah, you posted before my response! Any how, if your leg is a separate mesh and it has a parent, you can bypass selection of all vertices in edit mode. Select a point for the pivot as in my earlier message, hit the “Center Cursor” button in EditButtons. Now you can rotate the leg in object mode.

At first I thought you wanted the local axis of some object realigned. For that you need to use a Python script. But, I don’t think that’s your problem, it sounds like it’s just a rigging issue.

Try out my mini-tute for rigging arms and legs (at the bottom):

If you want to prevent bones rolling when animating, you mainly have to bind the joints at half flex (i.e. in editmode, legs should be half bent) and when they are at half flex, you should reset the bone roll values with ctrl-n.

In pink you can see the actual object’s axis.

The green axis is something I drew on top of the screenshot to display some approximation to the axis I desire.

This green axis would allow me to rotate the leg around the X axis only, resulting in the correct motion. But the way I have it now, to raise/lower the leg, blender has to rotate around X and Y axis, and the leg twists between keyframes because of this.

In 3DS Max, there’s an “affect pivot only” feature, that’s what I’m looking for. I guess I’ll really have to use that editmode workaround.

Uh, wouldn’t it be easier to create an empty, align it the way you need it and make it the parent of the leg? You could use it as a handle for the leg then…

Your best bet (a kind of workaround) is to use the ‘Axis orientation Copy’ Script that’s included in Blender 2.34. You can find it in the Object->Scripts menu. This lets you copy the axis rotation from one object to another.

That’s a nice one, broken. I never stop learning…

Yeah, it’s quite a new one, and unfortunately these Python scripts are hardly documented. Hopefully some work will be done on that before 2.35 though.

sounds like a quite straight workaround, broken. damn it’s exactly what i’m looking for. it’s a shame that i keep stalling on these little things that aren’t very obvious in blender. my new website is already a couple of months overdue because of this :frowning:

my thanks to thoro as well. that was a very good suggestion too.