Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Houdini: Add null node as output indicator when using TAB search #4834

Merged

Conversation

BigRoy
Copy link
Collaborator

@BigRoy BigRoy commented Apr 12, 2023

Changelog Description

Add visual NULL node as indicator as to what the output will be.

With this PR when adding a Creator instance inside a SOP or COP2 context it now adds a null node as a placeholder for the selection instead of the actual selection.

The null in SOPs:

afbeelding

The publish instance then uses that node instead of 'selection':

afbeelding

This then now also allows to create the placeholder OUT node without having any selection to begin with.

Filter per creator in what node type categories it's shown

Additionally this PR now implements filtering per Creator to decide where it is shown, for example:

  • Create Point Cache shows in ROP + SOP context, not in COP2, LOPs, etc. since it's irrelevant there.
  • Create Composite shows in ROP + COP2 context, not in SOP, etc. since it's irrelevant there.
  • Create Camera (ABC) shows in ROP + OBJ context, not in others since it's irrelevant there.

Add use selection support to Create Composite

Create Composite creator didn't use the selection previously at all - it now does.


Tl;DR

  1. Allow a creator plug-in to specify where it's shown for TAB search completion.
  2. Add a feature where if generated in a SOP or COP2 context to add a null node as placeholder.

Additional info

Here's a screen capture of this PR's functionality:

houdini_tab_create_with_null_node_and_filtering.mp4

This is an enhancement to the feature added in #4831

Testing notes:

  1. Launch Houdini
  2. Create relevant publish instances using the TAB menu in the different use cases, e.g. in OBJ, SOP, COP2, ROP networks, etc.

…e in COP2 or SOP network when generated there
@BigRoy BigRoy added type: enhancement Enhancements to existing functionality host: Houdini community contribution labels Apr 12, 2023
@BigRoy BigRoy requested a review from antirotor April 12, 2023 13:22
@ynbot ynbot added the size/XS Denotes a PR changes 0-99 lines, ignoring general files label Apr 12, 2023
@moonyuet
Copy link
Member

moonyuet commented Apr 20, 2023

i did some testings. They all works as expected. I do have one comment on the point cache and vdb creators although it isn't neccessary at all.
Is it possible to also remove the null node with "out_{family_name}Main" when user deleting the instance through the rubbish bin button?
When I test it and try to delete instance with the button, it seems the null node is still there.

2023-04-20.15-02-11.mp4

@BigRoy
Copy link
Collaborator Author

BigRoy commented Apr 20, 2023

i did some testings. They all works as expected. I do have one comment on the point cache and vdb creators although it isn't neccessary at all. Is it possible to also remove the null node with "out_{family_name}Main" when user deleting the instance through the rubbish bin button? When I test it and try to delete instance with the button, it seems the null node is still there.

This is one of the reasons I wasn't too sure about this feature. Cleaning it up correctly means we'd need to track that this node was created by that creator and link it to the ROP node, etc. Not impossible, but with quite a few lines of code doable. For example we could add a parameter "created_by" on the null that is itself also linked to the ROP node and then find it through that. However, what if the user still has the ROP node but had changed the SOP path manually to something different than that null. Do we still want to remove it?

I've discussed it with our Lead Houdini FX artist and he said that he'd prefer the null to remain. For him it's more 'convenience' that the node gets created than really being a required part of the ROP node. As such to him it's just a regular null in his network - it just clarifies that a link is being generated to that.

If the feature that the null gets created to begin with is considered like a nice great idea. I'd say let's merge it like this and discuss maybe tweaking it later?

@moonyuet
Copy link
Member

i did some testings. They all works as expected. I do have one comment on the point cache and vdb creators although it isn't neccessary at all. Is it possible to also remove the null node with "out_{family_name}Main" when user deleting the instance through the rubbish bin button? When I test it and try to delete instance with the button, it seems the null node is still there.

This is one of the reasons I wasn't too sure about this feature. Cleaning it up correctly means we'd need to track that this node was created by that creator and link it to the ROP node, etc. Not impossible, but with quite a few lines of code doable. For example we could add a parameter "created_by" on the null that is itself also linked to the ROP node and then find it through that. However, what if the user still has the ROP node but had changed the SOP path manually to something different than that null. Do we still want to remove it?

I've discussed it with our Lead Houdini FX artist and he said that he'd prefer the null to remain. For him it's more 'convenience' that the node gets created than really being a required part of the ROP node. As such to him it's just a regular null in his network - it just clarifies that a link is being generated to that.

If the feature that the null gets created to begin with is considered like a nice great idea. I'd say let's merge it like this and discuss maybe tweaking it later?

I see your point and I agree let's get it merge and adjust later if there's issue.

moonyuet
moonyuet previously approved these changes Apr 20, 2023
@moonyuet moonyuet dismissed their stale review April 20, 2023 10:31

the creator of this PR still works on updating the code

@BigRoy
Copy link
Collaborator Author

BigRoy commented Apr 20, 2023

Tweaked code a bit based on some notes by @fabiaserra - please do one more test run @moonyuet

@BigRoy
Copy link
Collaborator Author

BigRoy commented Apr 21, 2023

Ready to merge @antirotor ?

@antirotor antirotor merged commit 2636c66 into ynput:develop May 3, 2023
@ynbot ynbot added this to the next-patch milestone May 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
community contribution host: Houdini size/XS Denotes a PR changes 0-99 lines, ignoring general files type: enhancement Enhancements to existing functionality
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants