Yunus Balcioglu

animatrix_

About Me

Senior FX Technical Director @ Industrial Light & Magic | Feature film credits include The Lord of the Rings: The Rings of Power, Marvel's Eternals, Star Wars: The Rise of Skywalker, X-Men: Dark Phoenix, X-Men: Apocalypse, Aquaman, Alien: Covenant, Pirates of the Caribbean, Justice League and many m...  more
専門知識
Technical Director
業界:
Film/TV

Connect

LOCATION
Singapore, Singapore
ウェブサイト

Houdini Engine

ADVANCED
プロシージャルワークフロー  | Digital Assets  | Mantra  | Pyro FX  | Fluids  | 説明  | VEX  | Python
INTERMEDIATE
Realtime FX

Availability

Not Specified

チュートリアル

obj-image Advanced
Pragmatic VEX: Volume 1
obj-image Advanced
Pragmatic VEX: Volume 1

My Talks

obj-image HUG
Retiming Ocean Spectra & The Pragmatic Approach to Solving Technical Problems in VFX
obj-image HIVE
Face Peeling Using KineFX

Recent Forum Posts

Supercharged H20 extension (TouchDesigner Style) 2024年11月20日9:54

Xr_Blood
animatrix_
Xr_Blood
tpetrick 特佩特里克
Houdini has a script hook for external drag/drop, but currently only file path data is supported.

To use the script hook add a Python script named externaldragdrop.py to the Houdini script path, for example ~/houdini16.5/scripts/externaldragdrop.py. The script should define a function called dropAccept which takes a single parameter. Every time a drop event occurs on the main Houdini application it will call the dropAccept function with a list of file path(s) that were dropped onto Houdini. The function can return True to block the drop event from continuing on to Houdini, or False to indicate that Houdini should handle the drop event itself.

An example drop handler script that ignores .hip file drops and creates Font SOPs with the contents of the incoming files:

import hou
import os

def dropAccept(file_list):
    if len(file_list) == 1 and os.path.splitext(file_list[0])[1] == ".hip":
        return False

    for filename in file_list:
        with open(filename) as f:
            contents = f.read()

        obj = hou.node("/obj")
        geo = obj.createNode("geo", "geo1", False, False)
        font = geo.createNode("font")
        font.parm("text").set(contents[:20])

    return True

If the data in the drag/drop event contains arbitary text or binary data instead of file paths the script hook won't be invoked. This is something that would need to be fixed on our end - I can look into fixing that if necessary.

I saw a post on the forum where SideFX staff member tpetrick wrote.

Ok using that script, I get the drag and drop but it only seems to work on the 3d viewport. You manage to get it working using the regular network editor? I think this might require more to get it working for any network editor.

Yes, the Network Editor in the main panel supports this by default. You can modify it to drag and drop files into the Network Editor and print the file paths.
Now I have to press a shortcut to switch to the Network Editor in the main panel to drag and drop files, then switch back to the Supercharged Network Editor to work.

Oh ok I see where the confusion is. I was testing using another floating network editor. So it's not that it doesn't work on the overlay network editor, but that it doesn't work on floating panels, which the overlay network editor also is. So this has to be added by SideFX to work. That would be a good RFE.

Supercharged H20 extension (TouchDesigner Style) 2024年11月20日9:17

Xr_Blood
tpetrick 特佩特里克
Houdini has a script hook for external drag/drop, but currently only file path data is supported.

To use the script hook add a Python script named externaldragdrop.py to the Houdini script path, for example ~/houdini16.5/scripts/externaldragdrop.py. The script should define a function called dropAccept which takes a single parameter. Every time a drop event occurs on the main Houdini application it will call the dropAccept function with a list of file path(s) that were dropped onto Houdini. The function can return True to block the drop event from continuing on to Houdini, or False to indicate that Houdini should handle the drop event itself.

An example drop handler script that ignores .hip file drops and creates Font SOPs with the contents of the incoming files:

import hou
import os

def dropAccept(file_list):
    if len(file_list) == 1 and os.path.splitext(file_list[0])[1] == ".hip":
        return False

    for filename in file_list:
        with open(filename) as f:
            contents = f.read()

        obj = hou.node("/obj")
        geo = obj.createNode("geo", "geo1", False, False)
        font = geo.createNode("font")
        font.parm("text").set(contents[:20])

    return True

If the data in the drag/drop event contains arbitary text or binary data instead of file paths the script hook won't be invoked. This is something that would need to be fixed on our end - I can look into fixing that if necessary.

I saw a post on the forum where SideFX staff member tpetrick wrote.

Ok using that script, I get the drag and drop but it only seems to work on the 3d viewport. You manage to get it working using the regular network editor? I think this might require more to get it working for any network editor.

Supercharged H20 extension (TouchDesigner Style) 2024年11月20日6:42

Xr_Blood
animatrix_
Xr_Blood
Image Not Found

Can the shortcut keys for shelftool also be modified in the hotkeys.csv file?

Those can be modified using the standard hotkey editor but the upcoming version allows you to do the same using the hotkeys.csv like so:

sh:shelftoolname

which can call any existing shelf tool.

Thank you for your response; the functionality is very powerful. I would greatly appreciate it if you could let me know once the issue with the drag-and-drop feature for external events is resolved.

I tried drag and drop using the regular network editor but I don't see anything happen. Are you using some custom scripts?

I tried this script but that doesn't seem to do anything when I drag images onto the regular network editor:
https://www.sidefx.com/tutorials/houdini-script-drag-and-drop-file/ [www.sidefx.com]

There isn't anything that should prevent the overlay network editor to bypass drag and drop. I didn't disable it.