H15 - multi object edit

   7176   21   1
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Right now In Houdini editing two or more poly-meshes belonging to different Objects (gonna capitalize this from now on so that we know I'm referring to the Houdini entity, not to what's commonly used for) is impossible and this would be a big problem if I were to try to model a complex object with multiple parts, some of them moving.

In Softimage and probably in any software that has some kind of history while also allowing for multiple objects editing, some operators are created for each object corresponding to the operation performed.
Wouldn't this be possible to implement in Houdini?
Having two Objects selected and going into a component mode would simply leave the network view at scene level or dive inside the first selected object, I'm sure some optimal solution can be found.

Of course this change will also have to take into account that the Parameters window has to be able to show nodes belonging to multiple Objects. For example, if I apply a Bevel to some edges of meshes belonging to their correspondent Objects, the Parameters window will have to show both bevels - changing one parameter will reflect in both bevels. Therefore in the node name box instead of polybevel1 you'd see (just an example) polybevel or whatever is appropriate for the current Houdini naming syntax/convention.
This would be a massive modeling and viewport workflow improvement IMO.

As an unrelated side-note - we need an additional option for the geometry extract command similar to XSI: one that extracts and keeps the extracted geom onto the original mesh and one that doesn't. Right now I have to go back to the original and delete what I've extracted and to top it off, there's no selection memory… hopefully “just yet”.

Another one - is there a disconnect edges command in Houdini?
If the term is not self-explanatory I'll get into more details.
User Avatar
Member
388 posts
Joined: Nov. 2010
Offline
McNistor
Right now In Houdini editing two or more poly-meshes belonging to different Objects (gonna capitalize this from now on so that we know I'm referring to the Houdini entity, not to what's commonly used for) is impossible and this would be a big problem if I were to try to model a complex object with multiple parts, some of them moving.

Funny I was thinking today of posting exactly this question. This is one reason why I switched from max to softimage years ago. This saves soooo much time.
User Avatar
Member
381 posts
Joined: Dec. 2006
Offline
What is wrong with merging those into new OBJ and work in there?
It gives you more freedom than any other app, you can branch original objects etc.

As an unrelated side-note - we need an additional option for the geometry extract command similar to XSI: one that extracts and keeps the extracted geom onto the original mesh and one that doesn't. Right now I have to go back to the original and delete what I've extracted and to top it off, there's no selection memory… hopefully “just yet”.

Not sure what you meant with this? Can you explain?
User Avatar
Member
1755 posts
Joined: March 2014
Offline
OneBigTree
Funny I was thinking today of posting exactly this question. This is one reason why I switched from max to softimage years ago. This saves soooo much time.

Yeah but at least in Max, IIRC, you can add a shared modifier (is that how it's called? can't remember that well it's that long since I haven't worked with it) named EditMesh/Poly (again, IIRC) which you'd bake (collapse?) onto each object after you'd be finished with the editing.

SreckoM
What is wrong with merging those into new OBJ and work in there?

Not wrong no, limiting. If I have objects that belong to different parts (say a piston, or robotic limb or whatever) which are part of a system/rig, I want to have the option to edit their geometry w/o messing with anything else.

SreckoM
As an unrelated side-note - we need an additional option for the geometry extract command similar to XSI: one that extracts and keeps the extracted geom onto the original mesh and one that doesn't. Right now I have to go back to the original and delete what I've extracted and to top it off, there's no selection memory… hopefully “just yet”.

Not sure what you meant with this? Can you explain?

When you go to the toolbar Modify>Extract to extract part of a mesh (a multitude of faces) from an Object (A) it creates another Object (B) with a mesh which is the face selection from (A). Right now this command leaves the original faces from which I've extracted (B). I want this command to have a sibling, one that also creates a delete (or blast) on (A) for the extracted faces.
User Avatar
Member
678 posts
Joined: July 2005
Offline
McNistor
When you go to the toolbar Modify>Extract to extract part of a mesh (a multitude of faces) from an Object (A) it creates another Object (B) with a mesh which is the face selection from (A). Right now this command leaves the original faces from which I've extracted (B). I want this command to have a sibling, one that also creates a delete (or blast) on (A) for the extracted faces.

It shouldn't be a problem to modify the tool so when you have pressed some additional modifier key (CTRL?) it will extract AND remove this part from original geo.

Create new shelf tool and put there this code:

print (kwargs)
#or
print (kwargs)


Then execute the tool once with CTRL (or ALT) pressed and once without it and check output in console, do you see what it prints? Use it to modify behavior of Extract tool. Consider this as a learning experience . Give me a sign if you need more help.
User Avatar
Member
1755 posts
Joined: March 2014
Offline
mantragora, my Python is very rusty… oh wait, I don't know Python at all

It outputs true or false when ctrl/alt is or respectively isn't pressed.

Thanks for your willingness to help, but as you surely know, you can lead a horse to water but you can't make it drink and this horse is not thirsty at all

Will surely dive into Python at some point when switching to Houdini (if ever) for all my 3d needs, not before modeling/interaction is further improved for sure.
Hell, I might play with this even sooner if I find myself extremely bored in the near future.
However, this is a feature that should be “included in the box”, especially since apparently it's very easy to add.
User Avatar
Member
678 posts
Joined: July 2005
Offline
Create new tool and paste this code into it:

import toolutils
import soptoolutils

def McNistorWishComeTrue(sop, merge_sop):
if kwargs:
blast_sop = sop.parent().createNode('blast', ‘blast_extracted_geometry’)
blast_sop.setInput(0, sop)
blast_sop.setSelected(1)
blast_sop.setRenderFlag(1)
blast_sop.setDisplayFlag(1)
expression = ‘{0}{1}{2}’.format('chs(“', blast_sop.relativePathTo(merge_sop), ‘/group1”)’)
blast_sop.parm('group').setExpression(expression)

activepane = toolutils.activePane(kwargs)
if activepane.type() != hou.paneTabType.SceneViewer:
raise hou.Error(“This tool cannot run in the current pane”)

scene_viewer = toolutils.sceneViewer()
nodetypename = “delete”

# Obtain a geometry selection
geo_types = (hou.geometryType.Primitives, )
selection = scene_viewer.selectGeometry(
“Select the primitives to extract and press Enter to complete”,
geometry_types = geo_types,
allow_obj_sel = True)
# The following will raise an exception if nothing was selected.
if len(selection.nodes()) == 0:
raise hou.Error(“Nothing was selected.”)

# Create a new SOP container with the merged geometry
container = soptoolutils.createSopNodeContainer(scene_viewer, “extract_object1”)
merge_sop = selection.mergedNode(container, nodetypename, True, True)

# Turn back on the display flag for merged nodes
for sop in selection.nodes():
sop.parent().setDisplayFlag(True)

McNistorWishComeTrue(sop, merge_sop)

# Change our viewer to the new object
scene_viewer.setPwd(merge_sop.parent())
merge_sop.setDisplayFlag(True)
merge_sop.setRenderFlag(True)
merge_sop.setHighlightFlag(True)
merge_sop.setCurrent(True, True)
merge_sop.moveToGoodPosition()
toolutils.homeToSelectionNetworkEditorsFor(merge_sop)
scene_viewer.enterCurrentNodeState()


Use CTRL to also blast. Should mostly do what you want.
User Avatar
Member
8080 posts
Joined: July 2005
Offline
McNistor
As an unrelated side-note - we need an additional option for the geometry extract command similar to XSI: one that extracts and keeps the extracted geom onto the original mesh and one that doesn't.

On the horizontal toolbar directly above the viewport, there's an icon menu on the far right. The “Keep Original Objects” option controls this and any geometry operation that needs to merge in geometry from other objects.
User Avatar
Member
388 posts
Joined: Nov. 2010
Offline
The point of being able to edit multiple objects at once is that you don't have to do a special setup for it, write a script, build a tool or anything like it. The point is to save time not generate more work.
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Thanks mantragora. Hopefully we'll see this on a shelf in a future version.

That's right OneBigTree.
User Avatar
Member
388 posts
Joined: Nov. 2010
Offline
SreckoM
What is wrong with merging those into new OBJ and work in there?
It gives you more freedom than any other app, you can branch original objects etc.


I can do this in XSI as well, but it is not the same workflow. The purpose is different. I want my objects separate at all times. imagine two rigged characters and you want to adjust the eyebrows to be the same height. Any Rigger will kill you if you merge them, and so will the animator
User Avatar
Member
678 posts
Joined: July 2005
Offline
McNistor
Thanks mantragora. Hopefully we'll see this on a shelf in a future version.

I hope not, because I just assumed many things here without checking things, so I know for sure that it can be broken easily. Don't count that I will tell you how

But as I said, it should mostly do what you want.
Edited by - Feb. 9, 2015 17:45:17
User Avatar
Member
1755 posts
Joined: March 2014
Offline
I was not referring to this exact code that you provided, but a tool written by SESI obviously that achieves this.
Now please hope that you will
User Avatar
Member
678 posts
Joined: July 2005
Offline
McNistor
I was not referring to this exact code that you provided, but a tool written by SESI obviously that achieves this.
Now please hope that you will

Most of the code is from original tool, I just added couple things.

But yeah, anything that makes you (Softies) happy will be nice to see. (Of course beside Softimage like selections )
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Right

As far as edge disconnecting goes, nobody knows how to achieve this or even what I'm talking about? I'll post a gif if necessary, but I'd rather not if it can be helped.
User Avatar
Member
381 posts
Joined: Dec. 2006
Offline
Yeah I know what are you talking about, like riping of vertices in Blender. I do not think there is something like that in Houdini.
User Avatar
Member
392 posts
Joined: Nov. 2008
Offline
Edge Cusp
Edited by - Feb. 9, 2015 16:23:38

Attachments:
edge_cusp.gif (501.5 KB)

User Avatar
Staff
2540 posts
Joined: July 2005
Online
Doing a quick google search, it looks like disconnecting edges or the disconnect components in Soft is equivalent to un-welding, un-fusing points or making unique points.

This can be achieved by selecting your points, edges or primitive faces, then tab>fuse and choose the unique option.

“disconnect faces” or “unique points”, both are the same thing.
There's at least one school like the old school!
User Avatar
Member
678 posts
Joined: July 2005
Offline
pezetko
Edge Cusp

What are you using to record those gifs? I see some kind of timeline unfolding on the bottom edge.
User Avatar
Member
392 posts
Joined: Nov. 2008
Offline
ScreenToGif
http://screentogif.codeplex.com/ [screentogif.codeplex.com]

Yes that time line is feature that could be added, compression made it a little bit ugly but it's still functional (to show where is the start and the end).
  • Quick Links