Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

11 Good

About jujoje

  • Rank

Personal Information

  • Name
  • Location
  1. Muscles, and how to get them...

    It might be worth exporting just the skin as an alembic. Wrt to connecting the muscles, the general idea is that you attatch it to the points. I've attached a quick example which uses the agent node to load the skeleton transforms as points and uses the rivet node to attach the muscle to those points. Basically we prep the points by: 1) Load the joints from the fbx using the agent node 2) Rename the joints to something more reasonable and get rid of points we don't need. The joint name is in the @agenttransformname attribute. 3) Create a @N and @up attribute from the quaternion provided by the agent node. 4) Create a group from each @agenttransformname attribute using the partition node. Then we have our points with groups and orientation. We can then simply use the rivet SOP to fetch the correct point and use it to attach the muscle. There are probably better ways of doing this (CHOPs and/or Python), but this was seems pretty straightforward and direct. Hope that helps dino.zip
  2. Muscles, and how to get them...

    mm.. I think the safest option would, as you say, be to bake out the skin deformation before exporting the fbx (been a while since I looked at exporting fbx's). Should fix most weirdness hopefully
  3. Muscles, and how to get them...

    Iirc exporting locators from Maya was a bit iffy (I don't have Maya in front of me but I vaguely recall there being issues). Off the top of my head there are two ways to get info out from Maya: 1. Constraint some geo to the rig and export it as an alembic. Then in Houdini you can simply load that geo (or alternately load in its transforms) and parent muscle handles to that. 2. Export an FBX and load it in using the agent node. You can then unpack the agent rig using the agent unpack to get the skeleton transforms as points. Kinda leaning towards 2 myself; you get points with an orient and a bone names which are all pretty handy.
  4. Export multiple OBJs

    Glad it worked! TBH it hadn't occurred to me to try using bundles in object merges until I read your question; was pleasantly surprised when it did what I'd hoped it would That's a much simpler way of doing it
  5. Export multiple OBJs

    Could you use bundles? bundles.hiplc
  6. Also it takes point groups / expressions. E.g.: // Set Cd @Cd=0; // pcfind float radius = ch("radius"); int maxpoints = ch("max_points"); // Mask string string mask = "@P[0]>0.5"; int pointcloud[] = pcfind(1, mask, "P", @P, radius, maxpoints); foreach( int point ; pointcloud){ @Cd = {0,1,0} ; } Will only look at the points whose x position is greater than 0.5 pcfind_mask.hiplc
  7. From my understanding the Pc find is a convenient way to iterate over a point cloud; it returns an array of the points and then, typically, you run those points through a foreach. This is roughly equivalent to doing a pc open and using a while loop to iterate over the points. Which makes your code/vop network much shorter and cleaner
  8. Use pcfind and a foreach? So something like: //Set color to black @Cd = 0; // Pc find float radius = ch("radius"); int maxpoints = ch("max_points"); int pointcloud[] = pcfind(1, "P", @P, radius, maxpoints); foreach( int point ; pointcloud){ @Cd = {0,1,0} ; } I think that's what you were looking for... pcfind_example.hiplc
  9. Pyro Shader in houdini 16

    Have a look in /mat rather than /shop. SHOPs are heading towards depreciation so you should probably err towards /mat and material networks when creating new shaders.
  10. Not sure about 1, but on the FEM front: 2. There are a few attributes to control FEM; the relevent ones for making it follow an animation are tagetP, targetv, targetstiffness and targetdamping. There is also pintoanimation, which would be the logical choice, but from what I hear it's giving some weird results at the moment, so I'd try the target attributes first. For a list of all the attributes check out this page in the docs: http://www.sidefx.com/docs/houdini15.5/nodes/dop/finiteelementsolver 3. I'm thinking that some combination of targeting the skin to the collision geometry might work. From my doomed attempt to create a FEM muscle system I discovered that the soft body constraint is broken with FEM (or was last time I checked), which is kinda annoying as that would have been the obvious choice. That said FEM appears to be both a lot more stable and faster these days, so could prove really powerful for rigging. Just wish I had more time to look into it myself at the moment. Be curious to hear how you go!
  11. Bake texture ROP outputs black...

    Just to say you're not going mad I've been having a look at baking textures out in 15.5 and if I add displacement everything goes black. Prior to adding displacement, everything was just dandy with mantra spitting out diffuse, spec etc. On the subject of baking , I can't seem to write out ptex files either (rat, tga etc using UDIMs are fine), so wondering whether I'm doing anything wrong. Shall hopefully post a .hip later...
  12. My laptop is so not going to handle the scene and away from workstation so can't check your scene, but remember having the same issue with trees from speedtree. I came to the same conclusion as Marty with pretty much the same solution; ended up creating an LOD on the trees and rendering the leaves as points when they're a ways off and blending which fixed the problem (well not so much fix as workaround...).
  13. Houdini 15.5

    Awesome update The modelling tool improvements in particular are much appreciated (it was a long wait for the bevel, but totally worth it)!
  14. Dry Lights

    Really stunning work
  15. Hi everyone, Having a look at stylesheets and having a bit of difficulty with them, and was hoping someone could point me in the right direction What I’m looking to do is bind the intrinsic:indexorder at one level and then use this value to randomise an attribute at a lower (group) level. This should be relatively straightforward if I'm understanding this paragraph from the docs right: Higher target levels in a targeting hierarchy can also bind the value of attributes at that level. You can then make those bound data available as arguments to the CVEX script. So I’ve got a sop object containing 7 packed objects. Inside those packed objects is a primitive attribute, @tag, which I want to control a material parameter (basecolor). SOP Level Geometry - Target (Packed Objects) Bind id here (intrinsic:indexorder) - Subtarget (Prim Group, e.g. @tag=tank) Apply override using id from higher level Since an example is probably better than my explanation, I’ve attached an example scene. The scene has got two stylesheets, one using the path attribute, which works fine and one is attempting to use the @tag attribute, which doesn't. The stylesheet ui looks like this: I’m relatively certain I’m missing something obvious (style sheets being an exciting new world), but can’t seem to work out what it is (I keep moving the bind around to no avail...). odforce_packed_example.hiplc