Jump to content

toadstorm

Members
  • Content count

    420
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    26

toadstorm last won the day on June 28

toadstorm had the most liked content!

Community Reputation

312 Excellent

About toadstorm

  • Rank
    Illusionist

Contact Methods

  • Website URL
    http://www.toadstorm.com

Personal Information

  • Name
    Henry
  • Location
    San Jose, CA

Recent Profile Visitors

5,658 profile views
  1. How to use RBD constraints in DOP?

    https://www.tokeru.com/cgwiki/index.php?title=ConstraintNetworks
  2. Using attributes as parameter

    I'm not exactly sure what you're getting at with the Thickness Ramp. That's for spine profiles, and you're not using one of those. If you were extruding faces along a curve and wanted to control the extrusion thickness over that length, that's the control you'd use. If you *are* trying to use this to drive extrusion inset along a spline, you can just draw that ramp and then enable use of a Thickness Attribute, and pass along your attribute like before. In the file you sent me, all you need to do is set the Local Control > Inset Scale attribute to "inset". inset_by_attribute_2.hip
  3. Using attributes as parameter

    Here's a quick example... not sure if this is exactly what you're looking for. I'm just building a ramped attribute and using that as the inset mask attribute. inset_by_attribute.hip
  4. CopyStamp texture path not working

    There were a few little things wrong in your approach. First, don't copy stamp. Copy stamping is dead. Second, you need to create a string attribute for the Material SOP to override... Redshift is dumb and their texture sampler doesn't have an actual parameter for the texture path that you can override, so you have to instead manually create a spare parameter on the Material Builder, and then channel reference the RS Texture Sampler to follow that attribute. Then you can tell the Material SOP to override that value, after the copies are made. The override is meant to apply to the finished objects; you don't need to do anything before the copy operation other than create your range of random texture values. Here's your file back with the changes made. Wall_paper_02_toadstorm.hip
  5. Automate File Naming Convention?

    Throw this in your Python Source Editor and run it: import hou import os fbx_rops = [f for f in hou.root().allSubChildren() if f.type().name() == "rop_fbx"] if fbx_rops: for rop in fbx_rops: outparm = rop.parm("sopoutput") if "_fixed" not in outparm.eval(): basepath = os.path.splitext(outparm.unexpandedString())[0] newpath = basepath + "_fixed.fbx" outparm.set(newpath)
  6. Vellum sim on part of KineFX skeleton

    It's hard to say exactly what's going wrong without seeing a file, but my guess is that you're not properly applying the orientations of your vellum sim back to the transforms of your skeleton. When you run the Vellum simulation, assuming you're using a constraint type like "String" that supports orientation, the p@orient value of your input points needs to match the KineFX joints. You can do this pretty quickly by converting your 3@transform attribute (this is in world space and common to all KineFX joints): p@orient = qconvert(3@transform); Then feed this into your Vellum String configuration and simulate. I'm using Pins to keep some of the original joints attached to their animation. The p@orient attribute will update during the simulation. To turn these results into something useful post-sim, we have to take this computed orientation and convert it back into the 3@transform attribute. You start with a default matrix, make sure its scale matches that of the original, then rotate it to match the orientation of your simulated points: // convert world space orient quaternion (from vellum) back to transform matrix vector scale = cracktransform(0, 0, 2, 0, 3@transform); matrix3 xform = ident(); scale(xform, scale); matrix3 rot = qconvert(p@orient); 3@transform = xform * rot; Now that that's done, you can connect your skeleton into the Bone Deform SOP and it ought to work. I'm attaching an example HIP file... you'll have to load your own FBX, define a clip name and pick new pin numbers on the Vellum Constraint. vellumcat.hip
  7. Make an HDA out of the relevant assets, then load that HDA into your other scenes.
  8. Redshift rendering Zdepth

    There's nothing wrong with your depth pass... it's just that the depth is being displayed in scene units, so the pixel value of the furthest objects is about 11 (the background is 4000). If you turn the exposure slider all the way down, you should be able to see values. Or just take a look at the RGBA values in the monitor as you mouse over the pixels.
  9. The easiest way to do this is probably via Copy to Points. Just object merge your Object B into a network, define the point you want as a point group, then Copy to Points to that point group. Your line will automatically align its local +Z axis to the point normal of your template mesh.
  10. how to create voronoi morph

    This would be a MOPs way to do it... less VEX but a few more nodes involved to get the scale fake working as intended. If you could guarantee an equal number of chunks on both sides of the equation, it'd be easier to blend transforms from A to B via MOPs Apply Attributes, but it's hard to guarantee chunk counts with voronoi. voronoi_morph.hip
  11. You can use a Transform VOP to transform from space:current (camera space) to space:world or space:object, then use the result for your P.y lookup.
  12. MOPs Plus

    Sorry about the repost... I realized this is probably the more appropriate forum for a commercial tool. I've just released MOPs Plus into early access. This is an add-on to the existing MOPs toolset that adds some new convenient SOP toys for typography, collision geometry, randomizing or switching textures, and a few other tricks. It also adds MOPsDOPs, an extension of the MOPs toolset into simulations that allows you to use familiar tools to manipulate RBDs, Vellum, and POPs. Since it's in early access, if you use the coupon code MOPSPLUSEA at checkout, you'll get a 25% discount. You can find more details about the plugin here: https://motionoperators.com/info/mopsplus/ Feel free to hit me up with any questions at all! Thanks to everyone who's helped me test and refine so far.
  13. MOPs Plus

    Hi everyone! I've just released MOPs Plus into early access. This is an add-on to the existing MOPs toolset that adds some new convenient SOP toys for typography, collision geometry, randomizing or switching textures, and a few other tricks. It also adds MOPsDOPs, an extension of the MOPs toolset into simulations. Since it's in early access, if you use the coupon code MOPSPLUSEA at checkout, you'll get a 25% discount. You can find more details about the plugin here: https://motionoperators.com/info/mopsplus/ Feel free to hit me up with any questions at all! Thanks to everyone who's helped me test and refine so far.
  14. Offset time on Copy to Points

    Try setting your frame intrinsic to @Frame-@startFrame instead, and use "set" in place of "add".
  15. Offset time on Copy to Points

    Not sure just by glancing at your network, but it looks like your startFrame attribute is an int. Try changing it to a float? Also, the viewport will never show time offset sequences correctly. Make sure you render or unpack to get a proper preview.
×