Model Rotation (Registration Point)


#1

In Blender, I moved the registration point, or center of the object from the geometric center to near the bottom on my hour hand, but when I import it and rotate it with the model editor, it appears that the center of rotation remains at the geometric center. Has this feature not been implemented yet, or am I missing something?


#2

The origin,hmm did u apply location rotation and scale before you exported it?


#3

Ah, I bet that’s it…

EDIT:
Nope, I went back and applied location, rotation and scale and exported it again, it’s still rotating about the geometric center, probably the center of the bounding box, because what I did was import an SVG and extruded and beveled it, so when it came in the object was in the +X, +Y quadrant, and the center of the object was at the grid center. I went into edit and moved it to where the hour hand needs to rotate, then applied location, rotation and scale. I think at this point models rotate about the bounding box’s center and that’s it. If that’s the case I smell a Worklist suggestion to add reading the registration point from the load model code.


#4

I remember that we had this problem in SL as well. I made some clocks (not as nice as yours), and solved the problem by making a texture with the beginning of the hand at the centre radiating out to the edge. I then rotated the texture, which was mostly alpha except for the hand. You could rotate the model with the texture on it. I believe alpha textures work in High Fidelity, as evidenced by the leaf textures that Judas used on his trees.

I am sure you are already aware of this. The problem came up with doors as well. The solution was to either cut them so half the door was invisible and the “hinge” would be at the centre, or to attach a second invisible prim that acted as the hinge and contained the script to move the door.

Both solutions worked, but it would be nice if we could designate the origin point and have the model move based on that. I would think joints in an avatar work that way.

There may be a scripting solution down the road that would let you create a .bvh animation or embed an animation in .fbx to move the hands of the clock, but to move them precisely without losing time over time might be tricky. Or perhaps you could just make your hour and minute hands, rig them, and then animate them. Once again, I am not sure how precisely you could time the movements to make it work well as a clock.

It occurs to me as well that moving pieces of a model might be impossible right now because we cannot group or link pieces to make a whole.

Alpha days. It will be interesting to see how the developers address and solve these issues.


#5

Have you thought about rigging the hands and running them with an animation?


#6

@Vivienne
You’re correct that I knew about the texture trick, and I know the path cutting trick as well. It was funny, because I was really green with Photoshop back then, and didn’t realize you could put guides at the dead center of the image so one could properly center the clock hand image. Some of my early clocks had clock hands that drifted a bit off center…lol. I eventually figured out guides and that problem went away. As a matter of fact, all of my analog clocks and watches without exception used rotating textures as opposed to rotating prims because you didn’t have to worry about local rotation vs global. My very very first clock actually had prim hands, and worked great until you rotated it because the hands were rotating based on the sim’s global co-ordinates vs the object’s local co-ordinates.

The path cut method is useful for doors and such, I used it on a book, and the pendulum of my grandfather clocks, but it’s not particularly useful for clock hands because path cutting a prim effectively moves the registration point from the center of the object to the extreme edge of the object. For a clock hand, you don’t want the registration point at the extreme edge because it would cut off the clock hand texture below the rotational point. Look at a picture of a clock hand and you’ll see the rotational point is near, but not at the edge of the object. I suppose that issue could be solved by having an upper and lower portion to the clock hand and then you could rotate both, but again, we don’t have path cutting abilities for 3D models and there’s no such thing as prims in HF anyway, just imported models and voxels.

So, path cutting wouldn’t really work even if we had it, and rotating textures (which I honestly don’t know how to do yet, or rotate a model either at this point, which I need to know), is old school “Johan Laurasia” from SL. I’d really like to have full three dimensional clock hands like we do in the real world, and do a local rotation on them.

@Judas
Yeah, the idea of rigging them did occur to me, but animations are out because you can’t feed a rotational value to an animation and have it rotate the hand a specific number of degrees. The only work around there would to be a have a separate animations that rotated the hands to a specific point, and every minute fire off a new animation, but that’s a nightmare because minute hands rotate 6 degrees per minute, so you’d need 60 different animations, and hour hands are worse because they only rotate 1/2 of a degree per minute, so you’d need 120 for the hour hand and 60 for the minute hand. Even though it would only have to be done once, I have no desire to create 180 different animations. It would have to be more like a joint that can rotated a specific amount (if that’s possible, I don’t know joints that well).

So at the end of the day, rotating textures is out, although would be sufficient for now to make things work, that’s how all my SL clocks work. If so, do we have the ability to rotate textures at this point?

Path cutting is out, that’s prim stuff, and we don’t have prims.

Rigging and using animations is out because that’s just way too much work. Even just rigging it is too much work. You can’t seriously expect someone to have to rig an clock hand or pendulum, or book for something as simple as moving a registration point. 3D modeling software gives you the ability to move the registration point specifically so you can move the rotational point of the object. I mean it’s literally a 2 second job to tab into edit in Blender and grab all the vertices and slide the object to where you need it to be and done. No riggging, no animation, no joint rotation, no muss no fuss.

I can most certainly understand that if we don’t have these abilities at this point because we’re still in an Alpha state, and stuff like keeping the world from exploding takes precedent over less world ending stuff like registration points, but we’re definitely going to need model importing to take registration points into consideration. Maybe when we move to a different format than fbx we’ll see HF have the ability to recognize registration points. In the mean time, I’m going to head over to the work list and make a suggestion that model importing recognize registration points so simple rotations like doors, clock hands, pendulums, books, and gobs of other stuff I can’t think of off hand can be rotated easily without having to rig the object. I’d also like to see a proper edit window similar to the one in SL. Not one that would give us stuff like path cut and hollow and such, but something that would let us type in literal values for rotation, position and scale, and gives us proper grips as well so we could drag, rotate and on a specific axis. Instead of a worklist suggestion for that I think I’m going to tackle the edit window myself in JavaScript. I’ve been meaning to learn how to move scale and rotate objects via scripting anyways so that I could do just that. I’ll have to dig into EditModels.js script to get an idea how to specify a model and go from there.

Edit. It did occur to me that it could be done with one animation… one that rotates the hand fully, and you could rotate the hand using first frame/last frame, but again, that would involve rigging, which is more work than necessary for simple rotations. We have object rotation functions… they’re useless at this point for anything other than object rotation about the bounding box center, which is ALOT of stuff.