Multi-Axis control, is it possible?

JD_MortalJD_Mortal Posts: 760

EDIT: Read this thread backwards... People have helped me try to find resolution, the first few posts are no longer relevant. However, the topic issue, though modified, is still the same.

====================================================

I know I have a hard time getting these odd thoughts out for others to understand, so don't chew-off my head if I am saying something that should be basic understanding.

Here is my issue. I am working on my dynamic furniture thing... (Old topic)...

I setup a test-object, imported it fine, played with bones and rigging, and got it to function as desired. However, it's horribly ugly to look at in the editor and lacks simplicity in function. It is way more complex than it needs to be, for this simple demo item with no sub-components.

I turned the model into a character, or whatever the word is that they use for rigged things. (Anything-else would not actually let me set weights, or the bones would just move without altering the object, or they would alter the object while you contorted it, but it would return to a normal undeformed object the second you let-go of the modifying handle.)

Now, there is one parent bone (hip), and one child bone (width). The whole left half of the dresser is weighted to the (hip), and the whole right half is weighted to the (width). If I scale the object, or the (hip), the whole unit scales as desired. The (width), I locked and hid all controls except (x-translation), so you can only make the dresser wider or narrower. (Function 100% of desire.)

What is not desired is the ability that I can scale the parent-object, or the first bone, which is redundant. Then the only way to alter the width is to select the (width) bone, if you even realize it is there... (Not everyone keeps the tree-view for the scene open, and it isn't easy to navigate to the bone component, as it hides in the drop-down list in other views.) The bone also alters the objects "shell form", making the object look larger than it is, as the bone protrudes beyond the object and has a bounding-box that doesn't make sense to the action it is doing, when you select it.

This is why I asked, "Scale weight without bones... Axis-lock control, is it possible?"

Because what I actually need it to do is "Scale proportionally", with the normal scale tool... But not on each individual axis... Instead, I want it to scale the translation (Say X for width), which is just the right-side. As opposed to scaling the right-side, making it a large fat drawer which would deform the object, as would scaling only in one direction, which would alter the "feet" and "overhangs", which is the detail I am trying to retain.

If I need a bone, other than the invisible one that the object has, that is fine. However, I can't figure-out how to do this with just one bone. It will not let me alter the weighting of the parent bone. (Which makes it a redundant bone, as it does exactly what the object-bone (the invisible one), which is scale and rotate and translate, which makes confusing counter-modifications to the object. Actually I think that is part of the source of some issues I get with rotations. Saw one example when I aligned a child-bone to the parent, and it flips the parent bone 180-deg, when it is a value close to 0, but not 0, and not 1 or -1... or any value higher. Results in an imploding model.)

I searched google, but all I get are "human rigging" things that do not apply to "solid objects", and "simple rigging", like making a door open, or a car-wheel rotate left and right. (That is why I ended-up with two bones, in addition to the model parent, and unused controls. Adding a control bone would just be adding to the complexity, and I can't add one without first having a bone, and only having one bone doesn't let you control any actual weighting, as far as I have figured-out from the online examples.)

No other way to ask this, other than HELP, PLEASE!

This place needs live-chat, or IRC or something...

This will get a lot more complex as I add drawers and attach components... But I am trying to reduce this core component to the least complex, unbloated form that I can.

Dynamic1.jpg
1854 x 784 - 305K
Post edited by JD_Mortal on

Comments

  • JD_MortalJD_Mortal Posts: 760

    Update...

    Why is there no "X translate" mapping? For that matter, why is there no "X scale" mapping?

    This is giving me issues now that I have gotten deeper into it. Mapping faces to one bone, removes them from another, instead of adding them to the bone.

    Eg, I can't have one bone scale the X, and another scale the Y of two overlapping corners. Never saw that issue before, in rigging. One point should have the ability to be altered by multiple bones, that is kind-of what rigging was designed for.

    I also keep having "deleted bones", still showing "bone-frames" (The white object markers, like in the picture.) When there are no bones there.

    The cursor constantly jumping to 0,0,0 doesn't help when painting weights.

    Last issue, adding a bone after deleting one, then adding "General mapping", makes my object disappear.

    Is it me doing something wrong, or is just the way DAZ functions?

    I guess I have to use another program to do rigging. Then it looks like this thing is going to have to have hundreds of bones, all spaghetti-strung, just to do simple constrained deformations. Tutorials from the year 2000 are not helping. The only ones I can find tell you how to use all the auto-functions, which are useless unless you already have a perfect model that is human.

    I tried Child-bones, Sister bones, Control-bones... But none have the ability to bind on X,Y,Z translate, and binding to rotation on those axis, does nothing when you rotate... It just rotates the bone!

  • JD_MortalJD_Mortal Posts: 760
    edited August 2015

    I found-out what I need, but I am not sure DAZ does it.

    It seems DAZ only focuses on "bones" for manipulation, when I need simple "Group" manipulations, with group-linking. (Bones are designed for rotation manipulation, not translation. Groups are designed for all-axis manipulations.)

    EG, If you look at the top-down, I need the LEFT as a group, and the RIGHT as another group. Then I need the FRONT as a group, and the BACK as a group. All having the same single object structure. I need the LEFT to translate LEFT/RIGHT of the RIGHT, and also the ability to translate the FRONT, to the FRONT/BACK of the BACK. Thus, it can expand wide, or long, but remain undistorted. With bones, doing that same act, creates a diamond or a deformed kite shape... altering "translations", which bones were not designed to do. However, it does the same with scale, on just one axis, which is the same thing as translation on one axis, with weighting.

    So... Is there a manipulator where I can manipulate "groups" within an object, using a control-bone, I imagine? (But I need one bone to alter multiple groups, as corners on a square would be A,B,C,D (AB = FRONT) (BC = RIGHT), (CD = BACK), (DA = LEFT)...

    A    B

    D    C 

    So (BC translate would result in this... X-translate)

    A                    B

    D                    C

    (AB translate would result in this... Z-translate)

    A    B

     

     

    D    C

    Post edited by JD_Mortal on
  • I'm not quite clear what you are trying to do - it sounds as if a morph ought to be able to cover it.

  • JD_MortalJD_Mortal Posts: 760
    edited August 2015

    I'm not quite clear what you are trying to do - it sounds as if a morph ought to be able to cover it.

    A morph, I believe, would just scale everything from one shape to another. Unless I can just morph a single surface, and have that morph value alter another morph value, then I don't think morphing will work.

    This, for instance, is for a dresser. The dresser has trim and feet and drawers that can't be deformed by scaling. (Made larger, proportionally, as a whole.) They need specific X-translations on only certain parts to maintain thier shape. There may be three drawers in the middle, and each would have to then self-morph or link-morph, 33.33333333%, each, to maintain fitting into the face of the drawer. This is why I was trying to use bones, because I thought I could link three bones to the X-translation of a parent, but each having been pre-adjusted to 1/3 scale for 3 drawers, 1/2 scale for 2... etc...

    I think this would end-up with me having to make hundreds of variations, which is what I was trying to avoid doing. (One morph for each potential deformation, and HOPE they all stack and morph correctly.) Because someone might want it taller, or wider, or deeper, or taller,wider and deeper.)

    Where do I find information on morphing?

    (EDIT: Added a D-Former... It just horribly disfigures the model.)

    Post edited by JD_Mortal on
  • JD_MortalJD_Mortal Posts: 760
    edited August 2015

    This may be a better example...

    Picture a door, with a door-handle and trim.

    I need to make the door wider, without deforming the trim or the door-handle. Normally done by making the width-polygons longer, just in the middle line of the door, not all the width-polygons, which would just deform the whole door. (Scale X would deform. But it would be wider! Transforming only the midline polygons, running up the height of the door, would expand the middle to make the door wider. In the photo above, I did just that, by pulling the left, to the left, which stretched-out the center without disturbing the scale of anything on the left.)

    I may just have to go back to programming an external program that just spits-out the final object to import into DAZ. I would rather not have to mess with all that unique format stuff, for a simple thing that every 3D program does naturally. I am still looking for a selection-box tool, so I don't have to spend hours trying to rotate and manipulate my objects just to select everything I need, and still end-up not selecting things because they just can't be seen, to be selected.

    Post edited by JD_Mortal on
  • A morph iss tored as deltas - changes in position. For linear changes, which your scales are (everything is moving a long a straight line, to different extents) a morph is perfect - setting one morph doesn't conflict with another, the deltas for each are just added together. For your door you'd select everything you want to move in the modeller (or with a weight-mapped DForm) and translate it - exactly as the bone is doing, but without the complexity of rigging the item in DS.

  • JD_MortalJD_Mortal Posts: 760

    Where is the information on morphs? The only thing I can find leads to the d-former tool, which is old documentation that does not even work. (Seems they added some goofy top-thing to control it, instead of the documentation which states "adjust the scale to deform", which does nothing. Now, you have to scale-up the invisible top-tool, and manipulate the top rotation and transform to deform it, in addition to setting the deform bubble.)

    Perhaps the door example was a little too directly simple. That was just for a visualization. As I said, this is a dresser, which may have 2 or three drawers in the middle. The drawers would each have thier own linked modifications, just as a hat and a belt would, on a model. If I morph the dresser, from one prefab form to another, the holes for the drawers will be scaling, not selectively expanding along the isolated midsections. Again, this is 3D, where as a door is essentially 2D, just as the test above was. (With only one dimension, I can get this to work. My issue is getting that second dimension, and tween dimensions.)

    I am sure I am going at this all wrong.

    In any editor, you would simply select the end, or middle, and pull it to manipulate it. That is what I am trying to do here. (Like I said, standard stuff that all 3D programs do.) I am just trying to remove the mouse and make a slider to manipulate it that way, somehow with groups, which DAZ does not seem to do, only bones.

    I will expunge this topic and make another one, with better live examples. Like I said, I have a hard time explaining what I am visualizing when all these programs make-up words for common things, trying to sound technical and use exotic methods that replace standard common manipulations, when standard manipulations worked fine. (It isn't helping that my bones keep flipping 180-deg when aligned to 0 alignment, and completely deforming the object. Looks like anti-gimbal code that is not used correctly. The whole project becoming a mess when removing bones, stopping further additional bones from working, or weighting, is another hindrance. I could have found the solution, but because it failed to work, I would never know... Then there is the issue of weighting only PAINTING and not UNPAINTING on some modifiers, which forces me to have to start all over from the beginning when I mess-up and accidentally paint something, and SHIFT or ALT or CTRL doesn't unpaint the painted weights, or the paint just stops working and I can't manipulate anything.)

  • JD_MortalJD_Mortal Posts: 760
    edited August 2015

    I am trying to play with the RIGID NODES and those settings, trying to make groups of them that way... But I can't figure-out how to get them to actually work... Altering the object does not obey the rigidity nodes and set groups... (Not intuitive at all. Everything has a specific series of steps that are specific to each individual instance, and requires ten steps for something that should be a simple selection and "Lock", or setting.)

    I'll find some hack to make it work. There are little key-words and accuracies within the scattered documentation, once you filter through the bloat-fill-in stuff that is irrelevant to the desire trying to be achieved.

    You have already helped a lot... Kind-of... Thank-you.

    I think the initial answer to the original question is simply NO, that is beyond DAZ's limits. It is either all get manipulated, or nothing gets manipulated, group isolated per-axis manipulation, by locking or group, is a pipe-dream. (EG, X-translate modifies groups A+B, Y-translate modifies groups B+C, normally done with group manipulation or bones and weighting. Since they always have 100% weighting, bones are overkill to the simple function of grouping and translation of linked groups.)

    Post edited by JD_Mortal on
  • The DForms haven't chnaged, beyond the addition of weight-map support (which when used replaces the field). The field controls what is deformed, the base determines the centre point for rotation and scaling, and the changes to the DForm node itself relative to the base determine what changes are made to the affected geometry.

    If the changes can be made with scaling or translation in your modeller then a morph will very likely do the job - make the changes to your base geometry (the one you imported into DS) and export as OBJ. Select your model in DS, go to Edit>Object>Morph Loader Pro, click Select Files and select the new shape or shapes (make sure you use the same scaling and axis preset in Morph Loader as you used in the OBJ import dialogue). Click Accept and test the results. If they work you can get a little fancier setting the paths to the morphs, but let's make sure the basic idea will fly first.

  • JD_MortalJD_Mortal Posts: 760

    I am looking into the morph idea... That seems like the best path forward.

    I have to redesign the component a little, but I will post results as soon as I have something more concrete.

    The alterations I need will be having individual stacked morphs, but limiting the design in the process. Unless DAZ wants to create expander-nodes for me, or I can figure-out how to group and modify group translations in relation to one another...

    In the end, I will be using this to make...

    Picture-frames, Dressers, Cabinets, Beds, Tables, Chairs, Couches, Houses, Buildings... Etc... One form, nearly infinate sizes (not scales), and infinate variations with the attachment mods. (Earings and socks for your chair, in the shape of seat-cussions, feet, backings and chair-arms.)

  • JD_MortalJD_Mortal Posts: 760
    edited August 2015

    Morphs don't seem to have enough documentation to use, for me. Looking at how they act, I still need to deform the object using bones, and re-rigging, to get the bones to do the other translation, causes invalid matching or results in the same output results, or worse, as in the video below. (Morphing is great for simple forms or matched forms, but try morphing a crab into a human, and it doesn't work. The width-adjustment is the crab, the depth adjustment is a frog, the height adjustment is a human. The end result is an amoeba, not a frog-crab-human. Since the original weighted skeletons can not do what the morph combination is being asked to do. Adding the deltas results in an additive stacking form of modification, similar to scale, bringing me around full circle to the primary issue.)

    Uploaded a video of the specific issue... Hopefully someone can see what I am doing wrong.

    http://youtu.be/C5aowWwSESU

    Figured-out why the object becomes unselectable... Happens when you turn it into a figure, from a standard object. Once you add bones, which are required, that first bone (the first visible bone), needs to be bound to a "selectable group", AKA, the faces... That should be automatic, as well as adding that first bone (the second one, the first visible one), in the "Convert to Figure" process. No, make us guess... (Things like this are interrupting workflow to zero, making this program a poor choice for anything related to rendering, posing, or editing to be usable for posing and rendering... or creation of any kind.)

    Post edited by JD_Mortal on
  • JD_MortalJD_Mortal Posts: 760

    Is there a way to link one bone value to another?

    If I change the value of bone-A can I make it make bone-B move that same value? (Not sure how to link bone-values here... or if it is possible.)

  • Richard HaseltineRichard Haseltine Posts: 100,841
    edited August 2015

    The resizing you discuss in the opening of the video is exactly the sort of thing a morph can do, and do better than using a bone.

    You have to covnert your prop to a figure before adding a bone because that's what a figure is - an item with bones. A single node item, such as a "prop", does not have bones. It has nothing to do with what the item is, it's purely a matter of function.

    Crab to frog to human would not be possible in a single figure. At most you might manage frog to human, since they have the same gross bone configuration, but you'd need a lot of shape and rigging adjustment, not to mention new UVs, so it really wouldn't be practical.

    The root is not a bone - it's container for all of the bones. The thing you refer to as an invisible bone is the item's centre point.

    As far as I know general weights use a single map - I'm not sure why all the other maps are appearing in the list. Translation is not weight mapped directly, and scale is controlled by a single map even with TriAx.

    I'm afraid I don't have half-an-hour to go through the rest of the video, hopefully someone with more available time will be able to. What i will do is model a quick "dresser" and a length morph to show the way it can be made to work.

    Create the model - I used modo, simply adding 2.5cm slices around the edges, insetting the front and side panels and extruding 2.5 cm feet. I exported this as a base shape OBJ

    Create the scaled shape - I selected the end polygons, with symmetry, and translated them in so that the inner panels changed size but the structural sections remained at 2.5 cm. A more complex shape might require more fiddling. I also exported this as OBJ

    Import into DS - I imported the Base Shape OBJ using the modo preset to get my prop.

    Import the morph - I used Edit>Object>Morph Loader Pro to select by scaled shape, set the preset to modo, and adjust the path for the morph by right-clicking, Create..., and entering Shaping

    Test - I clicked the gear icon on the new slider and adjusted the limits, then I duplicated the item twice - the back example is the base, the middle is at 100%, and the fron is at 250% - as you can see the width of the elements is preserved. I could have added similar morphs for depth and height and they would not have interfered with each other.

    00 Base mesh in modo.JPG
    1120 x 846 - 53K
    02 Selected ends.JPG
    1045 x 714 - 57K
    03 Moved in.JPG
    1043 x 781 - 59K
    04 Imported.JPG
    1342 x 671 - 57K
    05 Load morph.JPG
    1147 x 722 - 84K
    06 Applied.JPG
    1521 x 900 - 91K
    Post edited by Richard Haseltine on
  • JD_MortalJD_Mortal Posts: 760

    xD

    I just came back to say that I figured-out how to get the morph to do what I wanted... Then read your post... (Took me three hours to figure out all of that, moments before you posted.)

    Though, my version was still a little more complex, the end-results were visually and functionally similar. (Though my end result morphed with the result of sliding my model across the screen while it morphed.)

    This will give me enough to "get going" with the simplified dynamic morphing version. Better than what I was about to start creating with only one axis doing the true-scaling. (Honestly, I could have lived with that, but I would rather have had this resulting output to begin with.)

    Now comes the real challenge... Seeing if I can get the mapping to remain "fixed", through the morph-adjustment. If the image stretches, that is one of the major things I am trying to avoid. If I can get it to display as a "Projected map", or "Fixed-mapping", then I am fine.

    After this, I will tackle the add-on components, which would/will require this base-component to have bones anyways, as I am unsure if DAZ has a node-alignment for ROOT. I think you have to select an actual target bone to attach a compound component to another model. Don't quote me on that... Or them... as there is no public documentation I can find, but rumors are there is some possible potential info in a pay-tutorial, but that is just a rumor. xD

    Thank-you SOOOOO MUCH. You have no idea how many hours of frustration you saved me, kicking me around in the correct path. As for the video, it will be removed soon, as I answered many of my own questions and issues that came-up while creating the video. (Though I did figure-out how to recreate the 180-degree flipping bone issue. Just had to add one more bone and it starts to do that with all bones.)

    Don't get me wrong... I LOVE DAZ. For all the things it does right, it does them great. However, people only come here for help, as a last resort, as we are all artists and googlers, when we are at our wits-end. This community, for the best part, handles that well. As humans, as peers, as equals, as people who have walked in our shoes, as unseen friends with mutual interests.

    However, it is always that 2% that comes to bite everyone in the ASCII.

    I am guilty of it too... I have five hammers, two are new... Scattered around my house, somewhere. Three of them are semi-functional, and there is an emergency rock outside, which I always forget about until I leave the house in frustration and trip over it. Yet, still, there are two perfectly functioning hammers somewhere in the house, buried in drop-down lists, which do exactly what I want... But I just can't find them.

    I found one... That's enough. Time to start building stuff... Until I can't find the five screw-drivers I have, when I have to screw something down, after it has gotten screwed-up on it's own.

    P.S. Sorry for the TLDR content... Happens when I have hours that I can't work, and have to vent between experimenting and researching, when I should be creating.

  • DS doesn't have many shaders that use projection mapping. For 3Delight it is possible to do it with the Shader Mixer (and probably with Shader Builder) but I've not yet looked at the possibilities for Iray.

Sign In or Register to comment.