Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


tagosaku last won the day on January 3 2021

tagosaku had the most liked content!

Personal Information

  • Name
    tagosaku sky

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

tagosaku's Achievements


Newbie (1/14)

  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges



  1. Hi, I am studying how to make OnCreated.py by exporting codes with asCode. So far, I understood a procedure: 1 Create a new folder and create some parameters inside of the folder in edit parameter interface on a node. 2 Use findFolder() to take a new folder tab, and write out a python code with as Code. 3 Create actual a xxx_OnCreated.py that either imports or copy&paste the #2 written code. Questions are : 1 Can we export multi folder tabs at once as one master code? 2 Can we export expressions existing in a default parameter AND new folder tabs together, instead of separately? (I know I can manually add this code into OnCreated.py later.. ) I think a problem is that, if we export all folders and parameters including default param&folders, onCreated.py will get error due to the default one including. That makes this procedures difficult. # export new folder and its parameters. Let's say exportTab.py node = hou.node("/out/geometry1") ptg = node.parmTemplateGroup() folder = ptg.findFolder("NewFolder1") with open('f:/exportTab.py','w') as f: f.write( folder.asCode(function_name='createTab') ) ## Questions are ## I want to export NewFolder1 and NewFolder2 and NewFolder3 together and do f.write ## I want to export an expression together, for instance, "/obj/geo1/out_render" in Geometry1 > SOP Path param here, and do f.write. ## I could manually paste later like a node.parm('soppath').set('/obj/geo1/out_render') but ideally export together here.. #Then Let's say this is , Geoemetry_OnCreated.py, and try to attach the exported folder tab and parameters import exportTab node = kwargs['node'] ptg = node.parmTemplateGroup() defaultFolder = hou.FolderParmTemplate('default', 'Default', parm_templates=ptg.entriesWithoutFolders()) for p in ptg.entriesWithoutFolders(): ptg.remove(p) ptg.append(defaultFolder) ht = exportTab.createTab() ptg.append(ht) node.setParmTemplateGroup(ptg) Maybe my explanation is confusing, but I hope the code and screenshot help to show what I try to do. In other words, in conclusion, with the screenshot, how to export multi tabs&param (#1) and expression(#2:sorry it's empty,,) ? Thanks!
  2. Because default MPlay sucks, many post productions have own flipbook tools. Anyway, yes, definitely no push to do it for you, and I'll keep searching resources. Thanks
  3. Thank you so much, Romain. I think this is for openGL rendering in rop, not flipbook, isn't it? I mean this script is still really useful to study the whole logic, but not execute flipbook and save it as jpg sequence ?!?
  4. Hi, I am a senior Houdini artist, but a intermediate about python script. I am looking for flipbook tool because original one is so inconvenient that every time we need to type file name and saving path. Thus, I wonder if we have the following tool: 1 click a shelf tool. 2 pop up a custom UI. 3 type rez, frame range, and automatically create a default image file name and its path in the UI, based on hip file. 4 click a button and start playblast and save the image seq. 5 Ideally it has option to save mp4 with ffmpeg. (I have no idea how to plugin this external software!! ) I cannot make such a tool from full scratch, but am capable to customize it. So far, I found useful article, and can read it but don't know, for instance, I can create a custom UI but don't know how to link those values to actual flipbook parameters. I really appreciate if you have python shelf scripts for 5 steps, or more hints to create the tool.
  5. Hi, I have a basic question about connection in popnet. There are 2 ways to connect nodes, parallel or serial connections, and I wonder how exactly these methods are different each other and how we decide to choose them. Obviously when we use multi pop_source nodes, we have to use a merge node. On the other hands, do we have any other specific situations we have to or should not use merge nodes?? popvop and sopsolver nodes also have multi input options as well, which I guess the same deal. If someone demonstrate how we decide to choose parallel or serial connections, it would be great. My guess is that if we use only ONE pop_source node, parallel or serial does not matter. However, if we use multi pop_source nodes, it should be important. The force/velocity operation nodes would not matter how they are connected as screen capture's sim results. Do they make sense?
  6. Hi, I am having a question about collider type option in vdb projection nondivergent SOP. A basic method is working well, and I try to use input2's optional collider VDB slot with collider type. I am expecting projection of non-divergence should happen only outside of collider or get influence of collider's velocity. However, it's nothing happen or getting error. I am guessing input2 should have a certain format to plug in object. If anyone knows how to use that feature properly, I would appreciate it, thanks!
  7. >> tamagochy Does it include the both of object MB and cam MB ?
  8. dleonhardt, thank you so much! That's very unique method!! I never expect to use loop block, instead of using VEX/python.
  9. Hi, I am looking for how to bake camera motion blur in SOP level. For instance, there is a spark or simple pop sim. After siming, I can create spline sparks with trail SOP as baked motion blur looking. However, I am not sure how to bake camera motion blur on the top. I guess we will use NDC transform which I know how to do it, but also still need $F+1's camera and $-1's camera's positions to calculate differences. If anyone knows how to bake camMB to spark/spline trails, I appreciate it, thank you.
  10. Hi! I have a question about VDB vel. Let's say there is a a "cached VDB" sdf and vel where vel exists only around surface. Then I try to fill out vel inside. If you have a good idea, let me know, thanks!! (sorry, I uploaded the same pic by mistake, and cannot get rid of that...)
  11. Hi, I am trying to figure out how to use VDB Project Non-Divergent > Collider Type. I am expecting input1's vel will react/bend against Input2 volume. So far it's possibly working with Collider Type > Bounding Box. However, when using Collider Type > static VDB and Dynamic VDB, there is no change in input1's vel field. Also, I am not sure what volume name should select in Collider Type > Collider. It would be surface or vel ?? If anyone knows how to use static/dynamic VDB collider with input2 properly, I appreciate that, thanks ! Hi,
  12. Jael, That's perfect!, thanks! ! SideFX should write it on that document. Just in case, I am pasting all the commands here for everyone.: networkeditor.TopInOutColorTag_15: networkeditor.TopInOutColorTag_16: networkeditor.TopInOutColorTag_17: networkeditor.TopInOutColorTag_18: networkeditor.TopInOutColorTag_19: networkeditor.TopInOutColorTag_2: networkeditor.TopInOutColorTag_3: networkeditor.TopInOutColorTag_4: networkeditor.TopInOutColorTag_5: networkeditor.TopInOutColorTag_6: networkeditor.TopInOutColorTag_7: networkeditor.TopInOutColorTag_8: networkeditor.TopInOutColorTag_9: networkeditor.TopInOutColor_0: networkeditor.TopInOutColor_1: networkeditor.TopInOutColor_10: networkeditor.TopInOutColor_11: networkeditor.TopInOutColor_12: networkeditor.TopInOutColor_13: networkeditor.TopInOutColor_14: networkeditor.TopInOutColor_15: networkeditor.TopInOutColor_16: networkeditor.TopInOutColor_17: networkeditor.TopInOutColor_18: networkeditor.TopInOutColor_19: networkeditor.TopInOutColor_2: networkeditor.TopInOutColor_3: networkeditor.TopInOutColor_4: networkeditor.TopInOutColor_5: networkeditor.TopInOutColor_6: networkeditor.TopInOutColor_7: networkeditor.TopInOutColor_8: networkeditor.TopInOutColor_9: networkeditor.allowdiveintohdas: 1 networkeditor.allowdroponwire: 1 networkeditor.autoscroll: 1 networkeditor.badge64bit: normal networkeditor.badgechilderror: large networkeditor.badgecomment: normal networkeditor.badgeconstraints: normal networkeditor.badgedynamictop: normal networkeditor.badgeerror: large networkeditor.badgehastakedata: hide networkeditor.badgehdalocked: normal networkeditor.badgehdaunlocked: normal networkeditor.badgekinematics: hide networkeditor.badgelopdebug: normal networkeditor.badgeloppopulationmask: normal networkeditor.badgelopunloadedpayloads: normal networkeditor.badgemessage: normal networkeditor.badgeneedscook: hide networkeditor.badgenodehasdata: hide networkeditor.badgenodelocked: normal networkeditor.badgenodeunload: normal networkeditor.badgenotcompilable: hide networkeditor.badgetimedep: normal networkeditor.badgevexcache: normal networkeditor.badgewarning: normal networkeditor.connectorsnapradius: 0.700000 networkeditor.copypathstoclipboard: 1 networkeditor.dimunusednodes: 0 networkeditor.distancefordrag: 0.050000 networkeditor.doautomovenodes: 1 networkeditor.dosnapping: 1 networkeditor.flagsallowpreselect: 1 networkeditor.gridsnapping: 1 networkeditor.maxflyoutscale: 10000.000000 networkeditor.maxnameheight: 0.000000 networkeditor.maxnamewidth: 10000.000000 networkeditor.maxtaskgraphrows: 20 networkeditor.maxworkitemsperrow: 10 networkeditor.minnameheight: 0.000000 networkeditor.shakesensitivity: 1.000000 networkeditor.showanimations: 1 networkeditor.showcancelledworkitems: 1 networkeditor.showcookedworkitems: 1 networkeditor.showcookingworkitems: 1 networkeditor.showdirtyworkitems: 1 networkeditor.showfailedworkitems: 1 networkeditor.showloplayercolor: 1 networkeditor.shownodeshapes: 1 networkeditor.shownodetypes: 1 networkeditor.showpartitionworkitems: 1 networkeditor.showpreviews: 1 networkeditor.showprompttext: 1 networkeditor.showsimpleshape: 0 networkeditor.showstackedlook: 1 networkeditor.showstaticworkitems: 1 networkeditor.showtaskgraph: 1 networkeditor.showvopinoutlabels: 0 networkeditor.snapradius: 0.100000 networkeditor.solohighlightedworkitems: 0 networkeditor.taskgraphlimitrows: 1 networkeditor.textbadgecomment: truncated networkeditor.textbadgecontextoptiondeps: selected_full networkeditor.textbadgedescriptiveparm: truncated networkeditor.textbadgedetailid: hide networkeditor.textbadgelayercount: truncated networkeditor.textbadgeloplastmodifiedprim: truncated networkeditor.textbadgeoutputforview: truncated networkeditor.transientinfo: 1 networkeditor.wirefadefactor: 1.000000 notify.echohotkey: 1 notify.echohotkey.val: 1 notify.errors.location: 0 notify.helptip.location: 0 notify.helptip.menu: 0 notify.location.menu: 0 notify.timelimit.duration: 5 notify.timelimit.enable: 1 notify.timelimit.val: 5 notify.timelimited.val: 1 objcache.clear.val: objcache.memory.val: Always objcache.memory.val: Always objcache.memorylimit.val: 153600 objcache.memorylimit.val: 153600 objects.folderflipping.val: 1 objects.folderflipping.val: 1 objects.highlight.val: 1 objects.highlight.val: 1 objects.keepPos.val: 2 objects.keepPos.val: 2 objects.keepPosMoving.val: 2 objects.keepPosMoving.val: 2 objects.kinoverride.val: 0 objects.kinoverride.val: 0 objects.linkchanneleditor.val: 1 objects.linkchanneleditor.val: 1 objects.linkchopviewer.val: 0 objects.linkchopviewer.val: 0 objects.openchanneleditor.val: 1 objects.openchanneleditor.val: 1 objects.overwriteanim.val: 0 objects.overwriteanim.val: 0 objects.pickingmenu.val: 0 objects.pickingmenu.val: 0 objects.selectsubnet.val: 0 objects.selectsubnet.val: 0 objsop.switch.val: offsetzoomdefault.val: 1 ok.val: oldtumble.val: 3 open.val: openShell: openState: 1 orientation.val: Y Up parmdialog.embedviseditor.val: 1 parmdialog.embedviseditor.val: 1 perfmon.rampprefs.val: 0 0.45 0.82 0.08 1 0 0.4 0.9 0.45 0 1 0 0.75 0.8 0 0 1 0 pl.pathbehaviour.val: 0 pl.showAll.val: 0 pl.showHidden.val: 0 playbar: point_percent.val: project.history.menu: 0 radial_edit.act: radial_pin.val: 0 radialmenu.val: 24 radials_manage.act: ramp_color_schemes.val: 0 render.activerenderers.val: Mantra render.edit.menu: 0 render.preview.menu: 0 render.showallrops.val: 1 render.showallrops.val: 1 render.start.menu: 0 rendererListVscroll: resmgr.autosave.desk.val: 0 resmgr.pathbehaviour.val: 0 resmgr.showall.val: 0 resmgr.showhidden.val: 0 save.asset.menu: 0 saveastype.menu: 0 saveviewcmds.val: 2 scripting.exprlanguage: hscript scripting.exprlanguage.menu: hscript scrollstyle.val: 0 selector.areaselvisible.val: 0 selector.areaselvisible.val: 0 selector.fullloops.val: 0 selector.fullloops.val: 0 selector.geopickdistance.val: 5 selector.geopickdistance.val: 5 selector.useexisting.val: 1 selector.useexisting.val: 1 sendAnonymousStats: 0 setpivottumbledefault.val: 1 shelf: showCurrentSimMenu.val: 1 showmenu.val: 1 side_help.val: 0 simcreatenew.val: simenable.val: 1 simenabletoggle.val: simresetlist.menu: 0 smoothLines: 1 smoothlines.val: 1 sopcache.level.val: 1 sopcache.level.val: 1 sopcache.memory.val: Never sopcache.memory.val: Never sopcache.memorylimit.val: 1024 sopcache.memorylimit.val: 1024 sopcache.unload.val: Flag sopcache.unload.val: Flag sopstates.exportcookselectiontype.val: 0 sopstates.exportcookselectiontype.val: 0 startupPage: 0 states.bones.autoenablecplane.val: 0 states.bones.autoenablecplane.val: 0 states.curve.autoenablecplane.val: 0 states.curve.autoenablecplane.val: 0 states.objcurve.autoenablecplane.val: 0 states.objcurve.autoenablecplane.val: 0 states.path.autoenablecplane.val: 0 states.path.autoenablecplane.val: 0 status: Successfully loaded toolBox_v083_dateStamp.hip statusbar: take.autoincludeassets.val: 0 take.autoincludeassets.val: 0 takecreate.val: takemenu.val: 0 tiles.perfstats.val: 1 tiles.perfstats.val: 1 timeStampToAskAboutAnonymousStats: -1 toggleSideHelp.val: tools.createincontext.val: 0 tools.createincontext.val: 0 tools.maxhistory.val: 6 tools.maxhistory.val: 6 tools.opnamespacefilter.val: 1 tools.opnamespacefilter.val: 1 tools.secure.val: 1 tools.secure.val: 1 tools.sopviewmode.val: 1 tools.sopviewmode.val: 1 trees.displayicons.val: 1 trees.displayiconsbydefault.val: 1 ui.bright.val: 1 ui.contrast.val: 1 ui.editor.paren: 1 ui.editor.paren: 1 ui.editor.syntax: 1 ui.editor.syntax: 1 ui.editor.toolbar: 1 ui.editor.toolbar: 1 ui.gamma.val: 1 ui.parm.external: 0 ui.parm.external: 0 ui.parm.help: 1 ui.parm.help: 1 ui.parm.paren: 1 ui.parm.paren: 1 ui.parm.syntax: 1 ui.parm.syntax: 1 ui.saturation.val: 1 ui.textport.help: 1 ui.textport.help: 1 ui.textport.paren: 1 ui.textport.paren: 1 ui.textport.syntax: 1 ui.textport.syntax: 1 undo.menu: 0 undomemlimit.val: 100000 unlock.asset.menu: 0 up.val: updatemode.menu: 0 viewport.allowadaptivesubd.val: 1 viewport.altkeyviewcontrols.val: 1 viewport.autosetviewpivotonselection.val: 0 viewport.defaulthoming.val: 0 viewport.delayinactive.val: 0 viewport.directeddollydefault.val: 1 viewport.lightpasscolorbuffertype.val: 0 viewport.locatecomponents.val: 1 viewport.offsetzoomdefault.val: 1 viewport.oldtumble.val: 3 viewport.orientation.val: Y Up viewport.scrollstyle.val: 0 viewport.setpivottumbledefault.val: 1 viewport.wire_toggle.menu: Wireframe viewport.wiretoggle.val: Wireframe Ghost wiretoggle.val: Wireframe Ghost
  13. I am learning python, and found hou.setPreference is very useful. However, I cannot find what exact names and values we can write in hou.setPreference(XXX,XX). Do we have that info/list in sidefx document pages? So far, I only found some in odForce, not from sidefx: hou.setPreference("general.autosaveinterval.val", "15") hou.setPreference("general.autosaveinc.val", "2") hou.appendSessionModuleSource('''hou.hscript("autosave on")''') Or ideally Sidefx implements a feature that houdini can monitor what a user change parameters in UI, and automatically generate python code in python window? (I know we can drag and drop a parameter to python winodw to generate parm's path, but more convinient way ^^.)
  14. HI, I am learning python script. So far, I can execute python code by clicking a custom button, and it sets parameters of today(string) and switch(integer). I wonder how we can automatically execute that python code. For instance, when I select the node SOP, or houdini accesses node network from somewhere as need, these parameter values are automatically calculated or updated. Question 1 When I directly write python code in the parameter like second screenshot, it works for integer but not strings. Why did not the string work? Question 2 Let's say I have 20 parameters, and ideally I want to control all the parameters from one master python script in the code parameter, instead of writing python code each parameter 20 times. Then I was thinking : code parameter{string) > Callback script > exec(kwargs['node'].parm('code').eval()) However, auto-execution happens only when I change code's strings. And this is not what I am looking for. Execution should happen when I select the node or Houdini access it during node network calculation. If anyone knows how I should change, it would be appreciated. Thanks!
  15. yeah, that's funny, but we can still isolate and manipulate their particles, then it's ok
  • Create New...