Jump to content

Search the Community

Showing results for tags 'hda'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Lounge/General chat
    • Education
    • Jobs
    • Marketplace
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
    • Tools (HDA's etc.)
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 150 results

  1. Hello, I am strugling with project management. We are in homeoffice now, so we try to figure out how to manage our assets paths. For textures and bgeos we are fine, but issue comes with hdas. We try to define their path with global variables but the instant you close the window it gets converted back to standard path string. Currently we have a python hda install system as our server is linux based and breaks all the hda paths. The issue is easier to explain with an image. Does somebody know a solution for this? Thanks
  2. Hey all. Just wondering if it's possible to create a custom HDA/OTL with the same network view container network box like the one you get when you create a Block Begin (foreach loop)? I'm creating a couple of OTLs where they “gatekeep” between any SOPs a user places inside them and the visual box around the SOPs is something I'd love to be able to recreate. Thanks, Marb
  3. Unreal Landscape Layer Issue

    Hey guys, I'm copying this post from Reddit to get more exposure. Since you guys are pros, maybe you'll know the answer: I'm having an issue with my landscape material. I've got an HDA pulling in a landscape with six layers. I've setup each layer as a material function so I can blend each function in a material based on their layer name. The problem is the material only works with three layers at a time. I can't do more. This is what it looks like with three layers as expected: Three layers with blend mode set to Opaque The shader fails when I plug in more than three. It shades in a tiny square on the terrain (not shown here), the rest of the terrain is the standard checkerboard: Six layers fail with blend type set to Opaque The only way to view all layers is to set Blend Type to Alpha Composite, however I completely lose my directional lighting: Six layers with blend type set to Alpha Composite (no directional lighting) It must be something with my layering weights.. I just can't figure this out for the life of me. Here are my layer settings: Layer Blend settings Let me know if you've run into this issue; I'm sure it's an easy fix. Thanks guys, Colby
  4. Python - Callbacks help

    Hey Guys, Still quite new to Python, hoping someone can help point me in the right direction on this that I've been grappling with for a while now. I have a simple filecache .hda that I'd like to change color if it can/can't find the cache on disk. I've been able to use hou.ui.addEventLoopCallback() to continuously track and check the file parameter to see if the cache exists, and the color changing now works as expected. Where I'm having trouble is removing the event loop when the .hda is deleted from the node graph. An error pops up because Houdini is still trying to access the deleted node. I've been trying to look for a way to use the OnDeleted event handler, or hou.nodeEventType.BeingDeleted, but no luck yet and I feel out of my depth with my limited python experience. The .hda is attached, and there's a preview of the code below. Any help would be appreciated! custom_filecache.hda ####PythonModule#### import os import hou def nodeColor(kwargs): node = kwargs["node"] def colorCallback(): filepath = node.evalParm("file") if(os.path.exists(filepath)): node.setColor(hou.Color((0.0, 0.8, 0.0))) node.setComment(filepath) node.setGenericFlag(hou.nodeFlag.DisplayComment,True) else: node.setColor(hou.Color((0.8, 0.0, 0.0))) node.setComment("File not found") node.setGenericFlag(hou.nodeFlag.DisplayComment,True) startCallback(colorCallback) #adding this code below crashes Houdini when hda is deleted #node.addEventCallback([hou.nodeEventType.BeingDeleted], endCallback(colorCallback)) def startCallback(callback): hou.ui.addEventLoopCallback(callback) def endCallback(callback): hou.ui.removeEventLoopCallback(callback) ####OnCreated#### kwargs["node"].hdaModule().nodeColor(kwargs)
  5. I'm developing some UI for pipeline tools. One of the tools is an HDAs and Setups manager, where I click on the desired HDA and it is imported into the current geo context. I spent some time reading the documentation and other created threads on how to get the current geo context path and all I've managed to do is a workaround where I have to select one or more nodes and only then can I import my HDA into the selected context. Any ideas on how to achieve this without having to select any nodes?
  6. Hi Everyone, I followed this tutorial and everything works well but there are no constraints and it just falls apart. Does anyone know how to get glue constraints to work from houdin to UE4 through the HDA? here is my network. I have tried merge, attribute transfer Thanks in advance for any help
  7. Event Handler on a HDA inside HDA

    Hi, I have an HDA (sop) that contains a different HDA (rop). The problem I have is that I need both of them to run a OnCreated event, but it seems to run only when user creates the node, not when it gets created as a part of a different hda (both have the OnCreated working, when I just create them separatelly). Does anyone have a solution for this? Thanks Martin Running: Houdini 17.5, Linux
  8. so i create a subnet with a few options in the parameter interface. outside that - i created 3 options joined by a switch. so i have 2 questions. 1) how do i create an HDA that keeps my current menu from the subnet and include that with a menu for the switch? i hope i am asking that right. 2) rather than having a slider for the switch - is there a way to create a toggle button for each option?
  9. Python Viewport NDC Transform

    Hey, I am currently building an HDA with python viewer states and I want to display an image/grid in the upper left corner of the viewport. This is what I currently use to move the grid to the current viewport postion. viewport = hou.ui.curDesktop().paneTabOfType(hou.paneTabType.SceneViewer).curViewport() cam = viewport.viewTransform() hou.parmTuple('/obj/geo1/transform1/t').set(cam.extractTranslates()) hou.parmTuple('/obj/geo1/transform1/r').set(cam.extractRotates()) I also transform the grid in the negative z direction afterwards. This results in the image beeing in the center of the viewport. But I'm not sure how I can move the image to the corner of the viewport and keep it in the correct postion when the viewport is beeing resized. Maybe with the viewport.viewportToNDCTransform() or viewport.mapToWorld() methods. But I couldnt figure out how. I found a promising vex based result here:https://youtu.be/7UuVhbTRcew?t=1890 string cam = chs("camera"); vector bb = relbbox(0,@P); vector4 crop = chp("crop"); bb.x = fit(bb.x, 0, 1, crop.x, crop.y); bb.y = fit(bb.y, 0, 1, crop.z, crop.w); bb.z = chf("zoffset"); @P = fromNDC(cam,bb); But this one requires a camera node and I'd rather have this logic in the python states if possible. Thanks
  10. Hey guys! Once again, I have to seek out your precious help ^.^ I am currently creating my own asset browser and I am working on feeding assets from Houdini into the library. So far, everything was going pretty smoothly up until I got stuck with something that seems so simple: the frameSelected() function of the hou.GeometryViewport class. When I use the Python shell inside Houdini and do this, it is working correctly: import toolutils viewer = toolutils.sceneViewer() view = viewer.curViewport() node = hou.node('/obj/geo1/DZK_Asset_Export') node.setCurrent(True,True) view.frameSelected() My section in the HDA is not. Broken down to the essential part (with hard coded selection of node as above for the sake of the example): import toolutils viewer = toolutils.sceneViewer() view = viewer.curViewport() [...] cam = obj_level.createNode('cam', 'asset_cam') node = hou.node('/obj/geo1/DZK_Asset_Export') node.setCurrent(True,True) view.frameSelected() view.saveViewToCamera(cam) view.setCamera(cam) All the other functions work as expected (lockCameraToView, saveViewToCamera, setCamera all work fine). I only have trouble with frameSelected(), even when adding the code from the shell to my script, basically hard coding selecting the correct node. After running my export process which does not frame the view, I can go to the shell and call frameSelected() and from there it works again :/ I also have sections where I first set the camera, lock the view, then try framing but it is the same result: all working, except the framing. I wonder what I am doing wrong in my code and hope you can help me out. Any pointers, comments are greatly appreciated!
  11. Hi there, I want share for free my HDA for combine and export the cache of fluid from cluster system and convert it in VDB. Download here It's a open HDA so you can edit it if you want, please let me know if you do/did it and let me know if you use it in production. It's free, but a little donation is grateful Have a nice day Matteo video demo https://youtu.be/dLj2CaWam7Q
  12. Sparse Pyro Upres H18

    Hi everyone ! I have been working on a sparse pyro upres recently and did a video to test it. You can find the hda here : https://drive.google.com/drive/folders/1H4Y0HNELDJ6lmHsM43eEI_lRgNuCEaxX?usp=sharing More details about the solver : The sparse upres solver is a deeply modified sparse pyro that allow the user to quickly upres a smoke simulation from simple inputs. The core idea for the upres is to bypass every nodes related to velocity update in the smoke solver, like the project non divergent, vel advection, collision mask, ect. and replace the upres vel field by a copy of the low resolution velocity. One can then advect any dyes needed through that vel field to create an upres. In order to keep the pipeline as simple as possible i splitted the process in 2 nodes, a 'configure_inputs' which precompute some lowres fields and normalize inputs and the upres solver itself. The sparse solver needs to match the parameters of the lowres simulation to work properly (like dissipation, flame amount, temperature diffusion, ect.). To quickly set up the upres solver i added a python script, that copy and paste all relevant parameters of a lowres pyro to the upres solver. You just need to select which pyro solver to use as reference to match the parameters. The sparse solver itself has some simples parameters like noise / random that allow the user to inject details in the lowres vel field. Noises and randomness are stored on an separated field, 'noise', to be conserved through time since vel is simply copied from the lowres. That allow the noise field to be advected by the vel and then merge with it to advect other fields like density, flames, ect. Which create a more complex pattern than a noise directly merge with the vel. Color can be added at the upres stage if the source contains a Cd and Alpha volumes. Those fields will simply be advected by the upres solver like any other fields resulting in a colored smoke. Your lowres simulation needs no color. Retime can be perform by interpolating the source and scaling parts of the upres solver. The process is automated from a tab in the sparse solver. However, it can vary if you animate the retime or set it to low (especially with flame). The upres solver does not need any modification of the velocity other than small disturbance / turbulance details. If you add strong changes in the vel field your upres dye will deviate far away from the lowres vel field. Every major modifications of the vel field like wind or buoyancy need to be added in the lowres simulation. A fake divergence can be added through the process by computing the negative gradient of the density added to the velocity. Since pressure projection has been bypassed, important amount of this 'divergence' will result in compression in the vel field creating artefacts in the smoke. However, it can be usefull to break the sharp edges of an upres smoke if needed. At last, one can force the upres to match the lowres fields by simply removing parts of the simulation which are outside the lowres smoke by taking the lowres density field as reference. If the lowres is below a threshold value, the upres smoke is multiply by amount less than 1. This can be usefull is you have strong noises and need to dissipate them to stay in the bounds of the lowres.
  13. Hi guys Im fairly new to houdini I am spawning a cube along a curve using a copy to points and a carve in a for loop, so I can spawn multiple cubes but also control their position along that curve individually. My question is how can I use a switch and a for loop so that I can also control what geo is then assigned to each iteration of the copy to points, first I spawn a cube, then I want to select a sphere, then a cube again or is a for loop not the way to do this? Any help is super appreciated! Thanks,
  14. Hi to all, given that I have very little experience with VEX and nothing with Python … I'm trying in every way to modify the Range in the Parameter Interface with a specific dynamic datum. I would like the maximum value to be insertable on the result of an “if … else” expression that I have into my network. Is it possible to create this control type? I guess so … Thanks in advance
  15. Hi, I am attempting to make an HDA for Crowd in order to try using it in Unreal. I've used Houdini Crowds a bit but I'm not a Houdini super-wiz and I know even less about setting up HDAs. I could use a little help. I have got to a point where I have an HDA which accepts Agent Definitions in one input and some points in another input. That seems to work OK (in Houdini, at least. I haven't tried Unreal yet). Now I want to 'embed' my agent definition into the HDA. Is that possible? I have tried using the 'extra files' section, but I'm certain I'm not doing it right. How can you read the embedded files? I have read the manual, and tried the following: opdef:.? opdef:../..? oplib:.? etc, etc, and many variations., but nothing seems to work. How is it done? I include my test file if you can spare a minute and set me straight. Many thanks in advance! Dan HDA_test_v03.hipnc
  16. Individual HDA (version: BETA v1.00) This is the current beta version. More feature versions will soon be released. ••••••••••••••••••••••• Finally, version 1.7.1 was released. All files were released as open source. I hope it helps you with your work https://github.com/seongcheoljeon/IndividualHDA
  17. Houdini dynamic UI

    Hello, i am currently doing a procedural circle data graph, and I am thinking of make it modular, with a int you can control the amount of types, and that will show in the editor for each unit one label, color and total number, but I don't know if that is possible. Any way to do it dynamic, or i needto create a bunch of premade slots to fill. Thanks you for reading.
  18. Yo magicians ! It's my first time using Houdini Engine, and I tested to animated the parameters of my asset, found out that it's impossible to keyframe it. I can change the values, but I can't keyframe the changes. Is there something i'm missing right there? Thanks all !
  19. Hey, I am working on a HDA that loops over an input mesh and loops over sockets and attaches the corresponding meshes to the sockets, in the next iteration of the loop, it should look at the sockets of the attached mesh and attach the corresponding meshes to it. The idea behind it is to have a gun assembly tool. Unfortunately, it crashes after the second iteration with an out of bounds error. Any idea what it causing the crash or on how to fix it, I guess it has something to do with the mesh sockets, but I can't really pin down the problem. Test_SocketLoop.hdanc
  20. Hi, I'm new here and new to Houdini so my question may be dumb. I'm building my digital assets using some python scripts and so far everything is going pretty well. However, I can't find a way to specify the "Maximum Outputs" number of my (LOP) digital asset, using the API. In fact, I'd like to see no output at all, similar to a rop_geometry SOP or a usd_rop LOP. The minimum and maximum number of inputs are easily customizable, but not the maximum number of outputs, which however is accessible in the "Basic" tab of the "Operator type properties" window. I also did some research on the HDASection and HDAOptions side, without success. Maybe I missed something. Any ideas? Thanks
  21. PythonLoader

    Hey guys, Here's my first HDA : the PythonLoader. It's a python sop node which you can use to write, save, load and execute script within Houdini. It can be very useful to test script for future shelf tools, iterate through similar nodes, load multiple files... all kind of python operation we can make in Houdini. You can save those scripts to re-use them later, modify them or even share ! Tested and working on Houdini 18, let me know if you encounter any problem with another os or Houdini version ! It's free and you can get it here : https://gumroad.com/l/UnmRE Cheers,
  22. HDA loop not updating

    Hi guys. I have a problem with one of my HDA's. I have 3 parallel loops. The first one is looking for a number of iterations to run out of points and stop by triggering Stop Condition. The second and Third loop is using a number of iterations from the first loop. Problem is that the first loop does not update when HDA is inside a loop. I have to select the first loop output and then it works. UPDATE: I thought that the problem is that the first loop is parallel to the one dependent on it, but after I added it to the flow and it is before the 2 others it is still not updating. Any way out?
  23. Executing hda python script every frame

    Hi there, I'm in the process of setting up a little viewport comment hda. All it does is changing the vcomment parameter on a selected camera. This works great for static text and variables but I haven't found a clean solution for time-dependent stuff such as $F. Since the hda python module doesn't execute every frame, I'm using a script SOP inside the hda which calls the phm function that updates the text every frame. The problem is, that this results in the HDA function executing last. So when doing flipbooks for instance, the image will be rendered before the hda function executes, thus the text lags behind by one frame ($F will show "1001" on frame 1002). Part of the problem is (I think) that the string is being evaluated inside the HDA. So the actual vcomment parm on the camera will already be "1001" instead of "$F" (which would probably evaluate correctly every frame). So if I could prevent the string from evaluating on the HDA, that would probably solve the issue. I'll try the same thing with a Python SOP instead of on the HDA's python module, but in the meantime, maybe someone has a better solution for this problem.
  24. Hi, I have encountered some odd behavior of a digital asset in UE4, could somebody please try and do the same to confirm, or maybe point at what am I doing wrong? So, first of all, my Houdini version is 18.0.348 and UE is 4.24.1 I'm quite new to all houdini_to_UE related stuff so probably it is not a bug, but my misunderstanding of some core principles. So I made an hda which has Sweep node inside and a profile curve; when I put it in the UE4 and use curve_input, it works but the resulting geometry appears squashed by one of the axes. Oddly though, if I use PolyWire instead of Sweep in my asset it works just fine.
  25. Object Propulsion

    I'm trying to recreate the effect of small pieces of dry ice propelling themselves across the surface of water. First step was to figure out the propulsion. Thought I'd post my solution in case anyone was interested. The basic approach is to take a number of points on the surface of an object and use their normals as propulsion vectors to move and rotate the object in a (somewhat) physically accurate way. The points and normals can vary over time to create more random behaviour. This can probably be incorporated into dops somehow but haven't looked at that yet. It is also entirely likely that this is trivial to do in some other way and I've wasted my time. If so, please let me know. mt__propulsion__1_0.hdalc