Obscure question regarding a robot I'm working on.
tj_1ca9500b
Posts: 2,057
Hey!
I've been taking a stab at building a 'retro' robot of sorts for Daz Studio that is sort of a homage to 50's sci-fi, although it's more of a true robot than a man in a robot suit. I'm actually fairly far along already, with a few motors and assocated gearing placed internally on the arms and hip joints I've designed so far.
Anyways, one of the things I'm focusing on is having working gears that rotate with the joint movement. 4/1 ratio on the gears to keep the math simple, so 'pairing up' the morphs to move in unison, with 4 revolutions to 1, shouldn't be that hard to do, from what I've read. I've personally never attempted to pair two morphs before, but the instructions I've read seem to indicate it's not all that hard, as people do similar with car steering wheels vs front wheels, etc.
So my question is related to how I'm putting together the robot. Right now, I'm just parenting the various limbs/parts manually using a tree structure, as opposed to building a single figure. Using the Joint Editor, it's pretty easy to 'zero in' the pivot points, and it's working quite well. Of course, this means that we aren't talking a single figure, rather an assortment of parts in a 'tree' structure, but I don't want the parts to deform as they move, I want them to be fully rigid. It's pretty easy to rename x/y/z controls to appropriately descriptive titles, and to 'lock' parameters that normally shouldn't be adjusted once the limbs have been placed. It's also pretty easy to 'limit' the range of motion for the parameters, so that you don't have elbows embedding inside of shoulders and such.
Most of the time the gearing won't be fully visible, so it should be fairly easy to hide the parts that aren't visible to keep unnecessary raytracing to a minimum. I'm thinking that people might want to use semi-transparent materials occasionally as the limb shell material, which would make the gearing visible, plus I'm planning on including a few removable access panels into the design. This would be useful for say animation purposes.
I also want to encourage disassembly to a degree, say if someone wants to work with an arm separated from the rest of the robot, on a separate workbench in a repair/maintenance type of scene, or maybe if someone wanted to show a robot assembly line or something.
Wiring may prove to be a bit of a challenge, but I'm not that far along yet. Thinking along the lines of Molex connectors for the joints, with separate male/female connectors when disassembled, or maybe a kludge along those lines. The wiring will be mostly fixed to the shell, and passing through the fairly rigid pivot point to get to the central power source and such. As I noted, the joint interactions will be the challenging part to work out wiring wise.
I suppose I could create a 'Landmate' style implementation of this idea in the future, for those that are familiar with the Landmate concept from Appleseed, but one thing at a time...
Anyways, kack to my question:
Are there significant downsides to the 'tree' approach with multiple parts as opposed to a siingle model that I may be missing? Most figures I've seen are based on a single .obj in most cases, with various morphs applied, but I'm not seeing any particular upside to that in this particular instance. Fitting clothing to said robot, if someone wanted to do that, would be one downside I can think of, but as a metal automaton I don't see people dressing him up a lot. Scaling translating to sub-tree items on the heirarchy tree could be another, for those that want to tweak things, but as the parts need to stay 'rounded' for rotation purposes, individual x/y/z scaling might be problematic in any case.
On the flipside, modding for example a limb part in say Hexagon, in order to stretch an arm length without deforming the pivot point, might be easier if the parts are separated already. Also, I want to make it easier to swap out say an elbow for a weapons attachment, or feet for treads, or to allow people to design their own attachments to use with this robot. Moddability is something that I want to encourage with this robot.
Thoughts? Suggestions?

Comments
When I made my cars (see my store link in my banner below) after all the pieces were made, each piece was merged with other pieces so that they all formed the larger parts that needed to move. Then all the pieces were selected and I exported the model as an OBJ. In Daz Studio the model was imported via the Figure setup Tab instead of importing each piece one by one. In that tab you can set up the skeleton of the figure so that DS knows what is connected to what. This will create for you a single figure that has moving parts but none of the parts can be sperated from the model. Using the Joint editor, you will fine tune the skeleton so that all the center and end point are what they need to be and limits for each. With the node weight map brush, you can tell DS to fill all the done weights to 100% which will mean nothing distorts and it all moves mechanically. Setting it up this way (very basic rundown) means that you dont have 1000 props in the scene tab, you can set up as many controller dials as you need and have them control the whole model, all my cars have thier front wheels connected to the steering wheels, and in the surface tab, it will be listed as one entry with all its surfaces. In short, its a much cleaner and more professional looking for what you are doing. Btw, you can also have individual props that load up to a specific joint on the model. Those props have to be loaded in one at a time first but when you save them, Ds can remeber what its parented to if you want it to.
Well written and very helpful.
You the best.
One of my big goals here is end user self moddability. I.E. the ability of others to easily modify body parts, or add their own. Just want to make that clear. By 'unifying' the mesh into a single .obj, or even a small subset of .objs, from my perspective that limits people's ability to mod parts on their own more than a bit. Sure, they may still be able to to it with some work, but the level of skill requied will be a bit higher for such endeavors, not to mention the increased time investment required for such efforts.
I've worked with a number of .obj based models over the years, and modifying them is often a challenge when dealing with unified .objs. Plus, Hexagon sometimes 'loses' material zones, by unifying them into a single default when you start adding/welding polygons and such, which is more than a bit of a pain to rectify, particularly if there are a lot of material zones on the model, some of which may be particularly intricate. By subdividing things into individual parts, this should make it easier to work around said issue as there will be less material zones polygons to reassign to the zones for each part when this does happen.
The downside of course will be keeping an eye on the pivot points, and finding a way to ensure that the rotational center of a body part is where it should be when it is re-imported from say Hexagon. I'd like to keep the need to use and guesstimate the slider values for the Joint Editor dials to a minimum, but still allow for a lot of flexibility.
Again, I just wanted to make that clear.
I'm also not looking to release a bunch of addons for this particular robot myself, although I may put together a few as the whim strikes if this particular effort goes well. My goal here is for people that are just getting their feet wet with Daz and Hexagon, which is now also free, to be able to put together a few attachments and such on their own, without too much hassle, for those that might be interested in such things. I want to encourage creativity from others, and make it as easy as I can for them to explore their own ideas as far as this particular model is concerned. This will admittedly be a small subset of users, but then I do this stuff for the enjoyment and my own curiosity, not so much for fame and popularity.
That's my thought process anyways.
https://www.daz3d.com/creating-content-for-daz-studio
Did you get that tutorial? If not, I recommend it. That one shows some pretty complex mechanical rigs with ERC, like the last one he does, it's a landing gear opening and closing on a plane. Lots of moving parts, even goes into how to finetune different parts with keyframing.
I've probably looked at that before, but it's been a bit. When I get to the point of synchronizing gear movements with a single morph, I'll take a look at it again. Still need to build some parts... Thanks for the link!
YOu can still do what you want and make it a figure as a base with addon parts. It would require you to create ghost bones and have the parts parented to the ghost bones so that they move in place and then it would still allow for kit bashing the robot parts or creating addons. But somehting has to be the base one way or another. Either way, setting up Pose Controls to make it do what you want is really easy once you know what you are doing. For that I would highly recommend DarkEdgeDesign's tutorial cause he really knows his stuff.
@Mattymanx
Today I was pondering using 'groups' to provide 'attachment points' that people could drag the relevant parts to once they've modified them to their liking. The idea here being that the groups would 'lock in' the rotation points and limits, and the parts would just 'follow' the group parameters and be 'nested' inside of their relevant sub-groups, as you'd use the 'group' control to do the rotations and such instead of the item. And naming the groups appropriately, such as 'Shoulder Twist' and such. Essentially similar to how people parent swords and such to hands. I was thinking that said 'tree' might be able to be saved as a single figure, and you'd just parent the parts to said figure in the relevant zones. This sounds very similar to the 'ghost bones' that you've suggested.
The 'advantage' I'm seeing here is that the pivot point would be tied to the group parameter and not the part itself, so as long as the 'children' parts were positioned appropriately to the 'zero' point for that particular limb/bone/body part when re-parented, well then people should just be able to drag and go. The other option would be to have 'poses' for each limb part that would reposition the limb part inside of the 'group bone' where it needs to be, but I'm hoping that I can just have the 'loose' parts export to Hexagon from the proper position so that when they are finally 'parented' to the 'ghost figure' they just drop in place. Then people would just add the 'loose' arm piece' to the scene, send it to Hexagon, modify it, re-import it from hexagon and then parent it to the arm group it belongs to and go from there.
So you woudn't 'lose' the rotational limits, rotation points and such every time you export the relevant part to Hexagon, at least that's the thought process here.
Anyways, once the 'parent' group structure is laid out, I'm guessing that I could just create a 'rigging framework' by exporting just the nested groups, hence 'unifying' the model structure into a more 'expected' format.
As a side note, I have a Genesis male figure that I've been using as a 'guide' to target my rotation points to. My original plan was to create a 'man in a robot suit' suit, but this idea morphed into a 'geared' robot, so it's no longer a wearable suit. But it still will 'conform' to typical Genesis human dimensions, as an amorphized robot of sorts. I bring this up as the 'bone' layout may end up being almost identical to a Genesis 1/2/3/8 Male figure.
Are we talking along the same lines here?
It's nice to see another kitbash fan by the way. I am making a set now, with kitbashing in mind as well. I am making it all seperate parts, but grouped and parented coherently. If someone wants to use it as is, great. But I also don't want to handcuff people that want to remove a wall, or remove some boards, or anything else they might want to do. That always frustrated me in daz studio, when like a set was only one or two OBJ, and you couldn't just hide anything that was blocking the camera easily for example.
Just chipping in....
If you do go with the single figure approach you can use wearable presets to customise the robot as long as the bit you are hiding corresponds with a bone in the skeleton. I've done something similar with a mech, see image below. Each weapon option is a preset that hides the original weapons bones. Bear in mind you can always mix and match - have the core figure as a single figure and then add extras as props...
Just chipping in....
If you do go with the single figure approach you can use wearable presets to customise the robot as long as the bit you are hiding corresponds with a bone in the skeleton. I've done something similar with a mech, see image below. Each weapon option is a preset that hides the original weapons bones. Bear in mind you can always mix and match - have the core figure as a single figure and then add extras as props...
I recently, for a Christmas present to a few friends, made a 'robot' that was an homage to a toy that I had during childhood.
The method that I used was to create each of the various 'parts' separately with each having a different object group, finally merging them into one large obj file, then rigged them in the 'tree' method as arms, hands, etc, that allowed me to assign rotations and such to the final duf file.
Tedious, but the results do work.
tj_1ca9500b,
You may want to test both methods on a less complicated test model before you go any further. It will be easier to complete the model if you know how your are going to accomplish the steps ahead first.
@TheKD
Kitbashing, yes... I've been there often enough, trying to tear rooms apart so that I can merge them with other rooms, creating new walls/partitions and such in the 'newly blended structure. As you say, it sucks when rooms are just a single .obj or maybe a small handful. Sure, you can use the Geometry Editor to hide polygons and such, and then sneak in a new wall via a primitive, but it's MUCH easier if each wall is just a separate item, so that you can just hide the walls you don't need, and/or rescale and re-use them as needed..
When furniture is welded to a wall, though, that is particularly annoying...Also when everything is unified into a single texture map...
I think you may be my 'target audience' for this little project. I'm sidetracked at the moment, but will get back to it soon enough.
Again, my main goal hear is end user ease of moddability, for those following this thread, The easier it is for the end user to work with each separate component individually, for modding purposes and also for scene flexibility, the better!