Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. i'm not even sure if i fully understood your question...but just reading the last line...if you want to select the internal edges...then why not select all the borders (damn easy)...then 'invert'...voila....?
  3. Today
  4. Please see screenshots attached. After running a Voronoi Fracture, I use the original shape's points as the first group, and try to intersect with a second one. The problem is, whenever one of the fractured pieces' points land on the same position as the original corner points, I can't separate them anymore. In this case, in the same position are points 7 and 15, but both of them get unselected when I group combine. Is this SOP solely based on Position attribute? I'm trying to find a way to always extract only the 'internal' curves, any ideas? Thanks in advance.
  5. hindie.exe seems more logical to me...? (I'm on Apprentice tho)
  6. are you using the correct desktop short cut? when I upgraded from apprentice to Indie this week it installed the desktop shortcut but it was wrong one. it should be Houdini.exe
  7. Yesterday
  8. Hi MrScienceOfficer, A very thank you for your advice. Factually your string concatenation is just simply clearly efficient. But as well,as you said, primarily i've just typed naturally the "Hscript version"... That's why i've tried the point #2 : Encapsuling the string in a var.... Then i had this doubt about a "bug" on the command opfullpath...Probably the summoning of the string using a concat() is stronger than just a call string ? It probably sets the string screwing it into the function rather than assigning it...Dunno ^^ Then thank you twice ! (I'll try some other string injection...and i'll let you know if i find something working...). Now i can continue my tests ! Bye, See ya ! Bests, alr + + +
  9. create rig from RBD objects

    So I was able to use the RBDtoFBX from the Game Dev Toolset shelf to export my baked sim from Houdini into Maya. Then I was able to use this python script in Maya to automatically convert each object piece into a bone and have it auto skinned. import maya.cmds as mc def bakeToSkeleton(): #Set up selection selection = mc.ls(sl = True) mc.select(cl=True) jointList = [] locList = [] duplicateList = [] rootJoint = "rootJoint" #Create and attach Skeleton to meshes if mc.objExists("rootJoint")==False: rootJoint = "rootJoint" mc.joint(n=rootJoint, p=(0, 0, 0)) mc.select(cl=True) for selected in selection: if "|" in selected: nice_name = selected.split("|") nice_name = nice_name[1] else: nice_name = selected locName = nice_name + "_Loc" jointName = nice_name + "_joint" mc.joint(n=jointName, p=(0, 0, 0)) mc.parent(jointName, rootJoint) mc.spaceLocator(n=locName, p=(0, 0, 0)) mc.pointConstraint(selected,locName) mc.orientConstraint(selected,locName) mc.scaleConstraint(selected,locName) locList.append(locName) jointList.append(jointName) mc.select(cl=True) #Bake Animation to joints and remove constraints animStartTime = mc.playbackOptions(q=True, minTime=True) animEndTime = mc.playbackOptions(q=True, maxTime=True) currentFrame = animStartTime while(currentFrame <= animEndTime): i = 0 while(i < len(locList)): currentT = mc.getAttr(locList[i] + ".translate") currentR = mc.getAttr(locList[i] + ".rotate") currentS = mc.getAttr(locList[i] + ".scale") mc.setKeyframe(jointList[i], at = "translateX", v = currentT[0][0]) mc.setKeyframe(jointList[i], at = "translateY", v = currentT[0][1]) mc.setKeyframe(jointList[i], at = "translateZ", v = currentT[0][2]) mc.setKeyframe(jointList[i], at = "rotateX", v = currentR[0][0]) mc.setKeyframe(jointList[i], at = "rotateY", v = currentR[0][1]) mc.setKeyframe(jointList[i], at = "rotateZ", v = currentR[0][2]) mc.setKeyframe(jointList[i], at = "scaleX", v = currentS[0][0]) mc.setKeyframe(jointList[i], at = "scaleY", v = currentS[0][1]) mc.setKeyframe(jointList[i], at = "scaleZ", v = currentS[0][2]) i += 1 mc.currentTime(currentFrame, e = True) currentFrame += 1 #Duplicate and attach mesh to joints i = 0 while i<len(selection): if "|" in selection[i]: nice_dup_name = selection[i].split("|") nice_dup_name = nice_dup_name[1] else: nice_dup_name = selection[i] dupName = nice_dup_name + "_baked" #mc.duplicate(selection[i], n= dupName) shapes = mc.listRelatives(selection[i], s = True) tmp = mc.instance(shapes[0]) mc.duplicate(tmp, n=dupName) mc.delete(tmp) mc.parent(dupName, world = True) mc.makeIdentity(apply = True) duplicateList.append(dupName) mc.select(dupName, jointList[i]) mc.skinCluster(toSelectedBones=True) i+=1 #Collect and clean up scene for i in locList: mc.delete(i) mc.group("rootJoint", duplicateList, n="Baked Simulation Contents") mc.setAttr("Baked_Simulation_Contents.sz",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.sy",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.sx",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.tz",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.ty",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.tx",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.rz",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.ry",keyable = False,lock=True, channelBox = False) mc.setAttr("Baked_Simulation_Contents.rx",keyable = False,lock=True, channelBox = False) for i in selection: mc.hide(i) print i print "Baked Animation To Skeleton Conversion Done" bakeToSkeleton()
  10. int primCount = detailintrinsic(concat("op:", opfullpath("../myInputedGeo")), "primitivecount"); // or just int primCount = detailintrinsic("op:../myInputedGeo", "primitivecount"); opfullpath is a VEX function (as well as an hscript function), your attempting to call the hscript version(by putting it in backticks), int primCount = detailintrinsic("op:`opfullpath("../myInputedGeo")`", "primitivecount"); either version should work though I recommend the VEX version as it's much easier to debug. Looking at your post again point #2 is correct and should work, unless I'm not seeing how it's different from my version (which works for me).
  11. The Cube

    Thanks for looking into this, I'll take a look tonight!
  12. Hi @ll, Firstly, enchanted to meet you all. I was testing the VEX function “opfullpath” in a simple way : // Getting the intrinsinc detail “numprim” via the function “detailintrinsinc”. Houdini Version : Nodes : one polygon Mesh(@opinput0) + attrWrangler. Detail intrinsinc signature is : detailintrinsic(string geometry, string intrinsic) Thus #1 : string geometry must be the path to Geometry Thus #2 : the command “in theory” could be : int primCount = detailintrinsinc( “op:`opfullpath(“../myInputedGeo”)`”,”primitivecount”); printf(“prim count : %g \n”, primCount); // to display. Saddly it doesn’t work… But : op:`opfullpath(“../myInputedGeo”)` is NOT a string it generes a string Thus #3 : command could be : string fullpath = `opfullpath(“../myInputedGeo”)`; int primCount = detailintrinsinc( fullpath,”primitivecount”); printf(“prim count : %g \n”, primCount); // to display. Saddly it doesn’t work… So it’s really hard to me to spot the worry…..because if you use the “lazzy” signature : detailintrinsinc(int opinput, string intrinsinc); It works but it has really really less power than using a path as the code will just look a the input0 of the wrangler’s entry rather than all over the scene to get its info. Probably a syntax error from me ? So if any body could help, you will be welcome please !!!. Bests, alr + + + pathtogeo-v004.hipnc
  13. Parenting at geometry level

    This is not particularly parametric, a template or procedural so probably useless! But here's a vex driven cube wrap using hierarchical matrices. Might be a little help... parenting_cube_example.hipnc
  14. Hi, I'm creating some tools in digital assets and I just want to know how to create a button to pop up the "preview window" on a specific node. I guess it's possible to do it within the callback script function in python... but I don't know python enough. If someone can help, it would be appreciated, thx !
  15. MiG-23 DPRK Combat Plane & Various ammo

    Thanks! I haven't tried any USAF planes yet. I was looking into modeling the Pavelow or the F-35 in the future.
  16. MiG-23 DPRK Combat Plane & Various ammo

    Thanks! I'll try and get seomthing together within the next couple of months. This was a mixture of procedural and traditional modeling, more traditional modeling though.
  17. MiG-23 DPRK Combat Plane & Various ammo

    Thanks! Not sure if we have the wings swept back in Unity. If not I'll try and get one from Substance.
  18. ¿what exactly does VDB renormalize SDF?

    ¿what exactly does VDB renormalize SDF... and VDB analysis? i think the documentation is very poorly explained on general, explanation on some nodes sounds even "etherical" or "mystical", because is not very well explained, in past versions they had direct links to help files related to that node, why they removed that? i think the best improvement to this sofware could be a better documentation... for example, in php.net, you have that great option where users can post examples of the code related to that function at the bottom, i think something like that could be great in this sofwtare. http://php.net/manual/en/function.array-combine.php
  19. Fellow is currently looking for a Houdini artist starting Monday, 11/27, for a project that will likely run through the end of the year. This project will require on site work at our LA studio. Please email me at emma@fellowla.com for more details. Thanks! Emma Nylander Producer // FELLOW
  20. Glowing Material not affecting other objects

    Thank you so much! I got it and it works fine now
  21. The Cube

    i think the detail (cuts) on the "heights" (which is also found in the "valleys") is just simple voronoi lines (couldnt figure out a clean way in my scene so I eyeballed it) cube_v002.hipnc
  22. Controlled FLIP tornado (whirlpool)

    I have. But the suction force pushes the particles forward a little, increases speed and changes the shape. But I need to create a shape that is in the picture. Also the whirlpool should appear and rotate slowly
  23. Oh nice, I got it working! Attached the solution. I placed another Meta Import Node, set it to Fetch Feedback and append after the Sphere before getting it inside the loop. The Block End was then set to Feedback Each Iteration.
  24. Hello everyone, how would one accomplish something like this? Given a sphere with many points scattered on its surface, how should a For Each Point Loop be setup to have every iteration boolean a cube out of the surface of the sphere, but always use the resulting geometry of the first iteration for the next boolean? The expected result is a sphere with many holes. What I get instead is a sphere that has been indeed booleanized, but since all results 'overlap' without Single Pass checked, it still looks like a full sphere (see example attached). This is a simplified version of one issue I'm having with a project. I hope I could explain this properly. Has anyone an idea? Thanks in advance!
  25. Hello guys, I had a 2 months education license which expired today.I already had an indie license valid until sep 2018. After Education license expired ,houdini starts in non-comercial (apprentice mode). How can I fix this? I am running on windows 10 version 16.0.705. Even after upgrade and redeem houdini 16.5 licences ,houdini start in apprentice mode. Tks for support.
  26. If you want to achieve that in VOP just subtract NextPointPosition and P, normalize result, and connect result to N. NextPointPosition you will get with ImportPointAttribute node whre you will feed in ptnum increased by one. Thath increment you will do for all points except last one. Anyway you didnt defined where last point normal should point to. Suppose you want last point normal to point to zero point then you can use conditional to detect such case (in example it is pointvop2) CustomNormals.hip edit: @MrScienceOfficer, you were faster I didnt see you already reply
  27. defining normal direction with wrangles

    PolyFrame works well in this situation, just change the tangent to 'N'. A vex solution would look like if (@ptnum != npoints(0)-1) @N = @P - point(0, "P", @ptnum+1); else @N = point(0, "P", @ptnum-1) - @P; @N = normalize(@N); . This handles the case of the last point by inverting the vector towards the previous point.
  1. Load more activity