tamte
raincole
R and E do toggle flags, but the way they work is completely different from what CGWiki describes. R activates a "flag toggle mode" and I have to click the node after.
I believe by default they should work on selected nodes, if not just make sure Preferences/NetworkEditor/FlagHotkeysWorkOnSelectedNodes is checked
also to toggle between 2 nodes, just select 2 nodes and hit R repeatedly, it will swap display flag between them
or T for render flag
flags that can be set on multiple nodes simultaneously like template E or bypass Q will toggle them on all selected nodes together
Not sure what's up but it doesn't work in H21 for me. It deselects right after first "R" is pressed press. "T" shortcut jumps between 2 selected nodes though.
Preferences/NetworkEditor/FlagHotkeysWorkOnSelectedNodes is checked for me. Maybe a bug?
As workaround, i've used a snippet by lex.ikoon:
1. Example:
https://lex.ikoon.cz/network-editor-remember-the-previously-flagged-node-and-unflag-to-it/ [
lex.ikoon.cz]
2. Code snippet:
https://lex.ikoon.cz/network_parm/ [
lex.ikoon.cz]
and placed it inside custom
NetworkViewMenu.xmlthat lives at
C:\Users\<USERNAME>\Documents\houdini21.0Here's how full thing looks like:
<?xml version="1.0" encoding="UTF-8"?>
<mainMenu>
<menuBar>
<subMenu id="custom_network_tools">
<modifyItem>
<insertAfter>help_menu</insertAfter>
</modifyItem>
<label>Custom</label>
<scriptItem id="toggle_node_flags">
<label>Toggle Render/Display Flag</label>
<scriptCode><![CDATA[
import hou
selected = hou.selectedNodes()
if len(selected) == 2:
node_a, node_b = selected[0], selected[1]
if node_a.isRenderFlagSet():
node_b.setRenderFlag(True)
try: node_b.setDisplayFlag(True)
except: pass
else:
node_a.setRenderFlag(True)
try: node_a.setDisplayFlag(True)
except: pass
elif len(selected) == 1:
current_node = selected[0]
last_path = hou.getenv("LAST_FLAGGED_NODE", "")
if current_node.isRenderFlagSet() and last_path:
last_node = hou.node(last_path)
if last_node:
last_node.setRenderFlag(True)
try: last_node.setDisplayFlag(True)
except: pass
else:
parent = current_node.parent()
flagged_nodes = [n for n in parent.children() if n.isRenderFlagSet()]
if flagged_nodes:
hou.putenv("LAST_FLAGGED_NODE", flagged_nodes[0].path())
current_node.setRenderFlag(True)
try: current_node.setDisplayFlag(True)
except: pass
]]></scriptCode>
</scriptItem>
</subMenu>
</menuBar>
</mainMenu>
Once Houdini started it will appear under "Custom" menu in Network editor.
Then Edit -> Hotkeys -> search for "Toggle Render/Display" -> add shortcut.
Then select 2 nodes and press shortcut.
Reference:
- custom menus:
https://www.sidefx.com/docs/houdini/basics/config_menus.html [
www.sidefx.com]