Set 3D anchor point?

jersmi's picture

Is there a way to set anchor point for the Kineme 3D plugins? I'm just getting started with these tools...

cwright's picture
anchors away!

What's an anchor point?

(asking seriously -- I've used 3d modellers cumulatively for less than 20 minutes of my life, and have next to no idea what sort of operations they provide)

Currently, there's probably not a way to set one...

psonice's picture
anchor = origin?

I've never heard of an anchor point too, and I've done 3d for years. I'm guessing it's the origin though, as that's a really important thing to have and be able to set.

E.g. if you're making an animatable character from parts, you would add a leg. When the leg rotates, you want it to rotate from the top, not the middle.

Normally though, the origin is set in the modeling software, and you use whatever you set there. There's normally an option to move it in the scene tools though as you do want to change it quite often (sometimes you even need to animate the origin for complex motion).

cwright's picture
if so

If that's the case, then the Translate and Rotate patches (not inputs!) can be used to position items in space.

psonice's picture
Translate + rotate the origin?

Translate + rotate alone aren't always enough, you need control over the origin (same as with 2d in QC). I've yet to try kineme 3d so no idea if this is possible in the current version (need more time :/ )

As a quick example: say you make a square wheel and want to animate it. You could rotate it about the centre, but it wouldn't travel along the ground realistically, and translating it would be a real pain to figure out.

A better way to animate would be to rotate it 90 degrees around one corner of the square that's resting on the ground, so it ends up with the next flat side at the bottom. Then, you change the origin to the next corner, and rotate 90 degrees around that. Keep doing it, and you have a realistic animated square wheel.

Another extremely useful concept from 3d is object hierarchies. With this, you have one object as a parent of another, and if the parent moves or rotates, the child follows. Origin points are extremely important for this too. With such hierarchies, you effectively get forward kinematic animation for free.. say you make a body, if you rotate the upper leg, the rest of the leg follows, and the lower leg can then be rotated independently. The foot follows in the same way.

cwright's picture
scenegraph

with heirarchies, you essentially enter scenegraph territory -- this is important for forward and inverse kinematics, as well as skeletal animation (though these are all intra-object, as in a single object getting operated on) -- scenegraphs are usually used for extra-object stuff (multiple objects, and how they're oriented relative to each other in the heirarchy.

there is, of course, next to no provision for this in kineme3d -- I haven't yet found a good paradigm for this in QC yet (ParticleTools attempts to abstract scenes away, but I find its use somewhat cumbersome -- perhaps it the only way though)

gtoledo3's picture
After reading psonice's

After reading psonice's discourse... it probably would be kind of cool if the kineme3D rotation patch had rotation origin, because you could definitely get more "bang" out of it. That being said, you actually COULD use the 3D transform patch... but the concept of it being integrated into the loader/render chain makes it pretty straightforward...

I was thinking about this, this morning when messing with the iterator loading... maybe the renderer could have a structure input for multi-object 3D files instead/or in addition to, the ability to load over an iterator? By default it would just load structure element"0", and then you could go to settings... and as you "add", it would load the next element in the structure, and also pull up another set of x/y/z rotations/translations/color/scale options, etc..., so that each "piece" could have different settings if desired? I know that could result in a "monster" sized render patch... but it seems like the positives would outweigh the negatives if it's possible to pull off.

That's probably atypical for 3D stuff, but kinda makes sense to me within the QC paradigm.

jersmi's picture
yes, these are the issues

I have a 3D object that i started rotating, but it only rotes from the center and I want it to rotate around another coordinate. so the translate tool works i think.

i am pretty new to 3D software, so I'm still learning the quirks and terms. :) i have a friend making some 3D structures in Cinema 4D for a project. I'd love to control and animate the structures with Kineme 3D tools, but i may be pressed for time.

For ex., i have a 3D object created in cinema 4D. So far .dfx is the only file type that works for me and all the objects had to be combined into one in Cinema 4D before exporting. First the file was exported as a 3ds file-- this file (as well as all subsequent 3ds files exported from Cinema 4D then dropped into QC) crashed QC when plugging the Loader into the 3D Object Renderer. Then with the same C4D file exported as .obj, QC slowed to a crawl and the object would not show up. (thinking about it, the object may have been positioned in relation to the screen in such a way that i could fix, although i checked normalize and center, but still QC was moving sloowww with spinning beach balls.) the files i tried contained multiple objects-- is this part of the problem? how do i use the "output objects" output?

Actually, the simple 3d structure i'm working with i want to make "grow". it's a tree-ish object, with branches and "nodes" (spheres, actually) at the joints. is there a way in QC to remove/add faces/verteces, etc. in order, in realtime? I guess this question also brings up hierarchies, ie, growing structures parented to one, then moved around, morphed, etc.

jersmi's picture
George is addressing some of my ?'s

Glad to know I'm on the right track. :)

gtoledo3's picture
http://usa.autodesk.com/adsk/

http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=6839916

This is the link to the autodesk page where they have the download for the FBX file convertor. I find that .fbx (and also at Chris's suggestion) are quick to load with Kineme3D... md2's can be particularly quick as well. For many things, obj. files and 3ds can be fine, but it seems not so much with complex/large files. I have various 3D modeling apps that don't create fbx files, but I tend to convert as a matter of course when using with the Kineme3D.

yanomano's picture
Anchor point

Anchor point is the term used in Adobe After Effects and in a lot of compositing softwares

jersmi's picture
yes, After Effects

Yes, After Effects is where I get the term. Since i'm new to 3D i didn't know the term "origin". Same idea as the Anchor Position patch, only with Z-axis.

I see that using scale and translate patches to achieve shifting the anchor point-- i mean origin :) -- is a little awkward.

usefuldesign.au's picture
anchors v origin

In 3d/CAD software a file has only one origin: (0,0,[0]). While the Adobe uses anchor points in various ways in various apps, I know at least one 3D app uses Anchor points for each object.

In blender the pink dot (I don't know what they call it but it's an anchor point) determines the operation location for object modifiers eg. mirror. Selecting an axis then mirrors the object in this axis thru the anchor point. In 'edit' mode the object can be translated against the anchor point. In object mode the anchor always travels with the object.

3DKineme objects could be defined with the first point in the structure as an anchor for reference in later transformations? (helping to keep it in desired position during transformation)

Michael Neely's picture
anchors v origin

Anchor points are a 2D reference. In most 3D packages, the "center" or "pivot point" of the model or group is the point around which it can be rotated in Local space, in contrast to the origin, which is the center of World space. The origin is an un-moveable place in the World and doesn't belong to a model or group. The center, or pivot point, belongs to the model or group and can be altered for different effects on the transforms of each model or group independently. Similar behavior can be replicated in QC with the 3D Transform patch and sprites placed within. The transformations of the 3D patch are passed to the children in the hierarchy, the sprites. In addition, each sprite has it's own local values that can be animated within the hierarchy. Fun.

usefuldesign.au's picture
Pink dot = Pivot Point

Thanks, that's the words.

jersmi's picture
thanks for the clear distinction

the concept makes sense, just a kind of terminology. re: Kineme 3D, do any 3d object filetypes save "center" or "pivot point" info with the file that would be available? thinking QC, it would be cool to be able to assign it to a structure member in a 3D object when more than one object exists, something like that... here i guess i'm thinking scene graph again...

cwright's picture
does?

If you don't have Center or Normalize enabled, Kineme3D will load the objects in their in-file positions (not necessarily at the origin). If you load a multi-object file (again, with center and normalize unchecked), you'll get an output structure of objects all at their locations relative to each other. Thus, each object has its own implicit origin. Not quite scenegraph, but close.

jersmi's picture
testing

what about x,y,z inputs to change the reference point referred to by the Center/Normalize functions? wouldn't this be the Center or Pivot Point?

right now i'm using george t's growing.qtz to test my file. his patch works just as he described (and i see i have to re-organize the objects in the 3D program-- looks like it draws in the order the objects were created). next i want the same multi-object to start growing from the tip of another copy (etc.). i guess i'm getting to know the tools-- so far all i can do is fudge the x/y/z location with the Object Translate tool. it takes a good while to get it to rotate around an edge and a good while longer to get it to "grow" from a precise place in space in relation to a duplicate.

cwright's picture
...

Center doesn't rely on any particular point -- it simply finds the object's bound box, and translates by the negative center point of the box. Normalize has an implicit Center operation, and then scales all points so that the bounding box is a unit cube (or smaller -- the largest height/width/depth is a unit square, others may be smaller since it preserves aspect ratio).

centering about a non-bounding box center is identical to translation from its original position (or centered position) to the desired location. Rotation is similar (but takes place around the origin, which can be cumbersome, since you have to double-translate it).

It's possible to add a rotation origin to the rotate patch. I fail to see the need for additional inputs on either translation or the loader though.

gtoledo3's picture
" next i want the same

" next i want the same multi-object to start growing from the tip of another copy (etc.)."

Personally, I don't think that it's that well suited for that. The way that this object is setup would make it extremely hard to start it anew at a different "place" on the first "rendering of the object", and I probably wouldn't want to load this object 2, 3 or more times in a single qtz, because it would start to make things crawl.

You could do the what you are saying by "biting the bullet" and loading pieces of the structure to individual 3D render patches, and use the rotation and translation controls, put those inside of 3D transform patches, or whatever.

BUT, if I really wanted to get at what you are describing and have it be a bit more of a "generative" thing (and I kind of feel like messing with this idea more, and have before to varying degrees of success)... I would take an extremely simple/smaller file size shape, that is a curve or branch or whatever, and experiment with using it in a replicate in space, or even the replicate in time patch driven by an external time source.

jersmi's picture
thanks for your patience...

i can try a few things now.

gtoledo3's picture
I think I'm going to attempt

I think I'm going to attempt some kind of "growing" thing with the parametric 3D surface patch, replicate in space with some correctly tweaked angles, and "interpolating" the amount of copies.... I think that could be a more reasonable way of "generatively" doing something like this, and having it be a bit more tweakable. Not sure how well it will work, but seems "ok" in theory at least. It might get hairy after a few "replicates" happen, hard to say...