Jump to content

hindukush

Members
  • Content count

    52
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Posts posted by hindukush


  1. Hello,

    here a scene using the proximity to drive attraction/repulsion, btw is not a good result, i got some jittering in the movement of the particles, and also some points quit the animation group and stand still, can't figure out why.

    Not implemented the minpos to follow animated mesh cos i'm searching the basic look, wich is more fluid and natural of course:-)

    Thanks alot to anybody could give a look to the scene.

    C.

     

    RAIN_SHIELD_odforce.hip


  2. Thanks Atom!

    Yes it could be really usefull!!

    But i can't menage to use it in this situation.

    Thinking to the single rain drop, it should fall as usual than slow down in proximity of a mesh, and than starting to floating around the impact point like it was pinned but with low stiffness.

    Theorically i would detect proximity, than remove from gravity group and add drag.

    Than i could maybe using something like minpos.

    But not really sure, going to try and share a .hip.

    C.


  3. Hi everybody!

    i'm stuck in an apparently easy task, i need some rain particles to be floating around a force field.

    As if they where trapped to stay at a certain distance from a moving surface.

    With pop attract or vex i can do it point to point but in this case the point number is changing.

    A little hint on how approach this situation would be great!

    Thank you so much!

    C.


  4. Hello!

    Can anybody give me a hint;-)

    I need to animate some fragments from a point in the space to their original position.

    I would like to animate them one after other so the shape starts to form from the bottom.

    I can't menage the animation per fragment, like setting random start frame for each one based on id.

    Thanks alot!

    Carlo

     

     


  5. Ty Ultraman!

    Yes i wasn't passing the name attribute after rbd sim.

    Finally i got it working using the transform pieces, plugging as template points the last output from rbd solver(the sop version), instead the simulated geo.

    thanks alot!


  6. Hi everybody,

    there is a way to switch from low res to hi res with the new rbd tool?Using with proxy geometry if i change edge details the sim changes too.

    I would like to keep the same sim and change geo after like using dop/io and transform pieces.

    No success with transform pieces, and i menaged to get translation with copy attribute by name but no rotation.

    Carlo


  7. Hi everybody,

    there is a way to switch from low res to hi res with the new rbd tool?Using with proxy geometry if i change edge details the sim changes too.

    I would like to keep the same sim and change geo after like using dop/io and transform pieces.

    No success with transform pieces, and i menaged to get translation with copy attribute by name but no rotation.

    Carlo


  8. Hi everybody i'm stuck orienting light copies to the point onto i scatter.

    Can anybody tell me what is wrong with this opiece of code?

     

    for pt in scatterGeo.points():         

                euler = pt.findPointAttrib(“N”)
                dir = hou.Vector3((0,1,0)) * hou.hmath.buildRotate(euler)
                instances.parm('rx').setAttributeValue('N ',dir[0] )

     

     

    I think there are some basic python stuff error in there:-)


  9. Maibe adding something like this?

    dirx:

    euler = hou.parmTuple("r").eval()
    dir = hou.Vector3((0,1,0)) * hou.hmath.buildRotate(euler)
    return dir[0]
    

    diry:

    euler = hou.parmTuple("r").eval()
    dir = hou.Vector3((0,1,0)) * hou.hmath.buildRotate(euler)
    return dir[1]
    

    dirz:

    euler = hou.parmTuple("r").eval()
    dir = hou.Vector3((0,1,0)) * hou.hmath.buildRotate(euler)
    return dir[2]

  10. Hi everybody,

    i'm facing issues orienting Arnold lights copy to points normal.I'm actually using this .hda (https://www.artstation.com/artwork/zA3BVd)

    But no chance to get orientation.I should get the point normal and convert to degrees for the light.

    Can anybody point me in the right direction?

    Anyone knows a better way to copy arnold lights to points?

    Thank you sooo much!

    Carlo

    The python script that is used is :

    from math import sqrt

    def destroyInstance(kwargs):
        # Define Variable
        node = kwargs['node'] 
        try:
            scatterNodePath = node.parm('scatterPath').eval()
            scatterNode = hou.node(scatterNodePath)
            scatterGeo = scatterNode.geometry()
        except: 
            hou.ui.displayMessage('I can\'t find the scatter node "' + scatterNodePath + '" !')
            exit()

        scatterNodePath = node.parm('scatterPath').eval()
        scatterNode = hou.node(scatterNodePath)
        scatterGeo = scatterNode.geometry()
        instanceName = node.parm('instanceName').eval()

        # Instance Loop
        try:
            for pt in scatterGeo.points():
                    nameInstance = instanceName + '_' + str(pt.number())
                    instances = hou.node('/obj/' + nameInstance)
                    instances.destroy()
            hou.item('/obj/networkInst').destroy()
            hou.item('/obj/networkMain').destroy()
        except: pass


    def createInstance(kwargs):
        node = kwargs['node']
        
        # Define Variable
        try:
            scatterNodePath = node.parm('scatterPath').eval()
            scatterNode = hou.node(scatterNodePath)
            scatterGeo = scatterNode.geometry()
        except: 
            hou.ui.displayMessage('I can\'t find the scatter node "' + scatterNodePath + '" !')
            exit()

        try:
            instanceNodeName = node.parm('nameNode').eval()
            test = hou.node('/obj/').createNode(instanceNodeName, "test")
            test.destroy()
        except: 
            hou.ui.displayMessage('The name of node "' + instanceNodeName + '" doesn\'t exist ! ')
            exit()

        linkPosPts = node.parm('linkPosPts').eval()
        instanceName = node.parm('instanceName').eval()
        linkAttribPt = node.parm('linkAttribPt').eval().split()
        copyPtAttribValue = node.parm('copyPtAttribValue').eval().split()
        linkParmFirstInstance = node.parm('linkParmFirstInstance').eval().split()
        revertParmValue = node.parm('revertParmValue').eval().split()
        parmList = revertParmValue + linkParmFirstInstance + copyPtAttribValue +linkAttribPt
        attribList = linkAttribPt + copyPtAttribValue

        # Instance Loop
        for pt in scatterGeo.points():
            # Create Light
            nameInstance = instanceName + '_' + str(pt.number())
            try: 
                test = hou.node('/obj/' + nameInstance).name()
                networkBoxMain = hou.node('/obj/' + 'networkMain')
                instances = hou.node('/obj/' + nameInstance)
                firstRun = 0
            except:
                # Create Node
                firstRun = 1
                instances = hou.node('/obj/').createNode(instanceNodeName, nameInstance)

            #TEST
            if nameInstance == instanceName + '_0':
                for p in parmList:
                    try:
                        instances.parm(p).eval()
                    except: 
                        hou.ui.displayMessage('The parameter "' + p + '" doesn\'t exit !')
                        if(firstRun == 1): instances.destroy()
                        exit()
                for a in attribList:
                    try:
                        pt.attribValue(a)
                    except: 
                        hou.ui.displayMessage('The Attribut "' + a + '" doesn\'t exit !')
                        if(firstRun == 1): instances.destroy()
                        exit()

            # Position Light
            if linkPosPts == 1:
                instances.parm('tx').setExpression('point("' + scatterNodePath + '", ' + str(pt.number()) + ', "' + 'P' + '", 0)')
                instances.parm('ty').setExpression('point("' + scatterNodePath + '", ' + str(pt.number()) + ', "' + 'P' + '", 1)')
                instances.parm('tz').setExpression('point("' + scatterNodePath + '", ' + str(pt.number()) + ', "' + 'P' + '", 2)')
            else :
                instances.parm('tx').deleteAllKeyframes()
                instances.parm('tx').set(pt.position()[0])
                instances.parm('ty').deleteAllKeyframes()
                instances.parm('ty').set(pt.position()[1])
                instances.parm('tz').deleteAllKeyframes()
                instances.parm('tz').set(pt.position()[2])

            # Revert parm value to default value
            for rpv in revertParmValue:
                instances.parm(rpv).deleteAllKeyframes()
                instances.parm(rpv).revertToDefaults()
            
            # Copy Points Value in Paramaters
            for cap in copyPtAttribValue:
                instances.parm(cap).deleteAllKeyframes()
                instances.parm(cap).set(pt.attribValue(cap))

            # Link Points Value in Paramaters
            for lap in linkAttribPt:
                type = scatterGeo.findPointAttrib(lap).dataType()
                if str(type) == "attribData.String" :
                    print(type)
                    instances.parm(lap).setExpression('points("' + scatterNodePath + '", ' + str(pt.number()) + ', "' + lap + '")')
                else :
                    instances.parm(lap).setExpression('point("' + scatterNodePath + '", ' + str(pt.number()) + ', "' + lap + '", 0)')
            
            if pt.number() == 0 :
                # Color Node
                instances.setColor(hou.Color((1.0, 0.72, 0)))
            else : 
                instances.setColor(hou.Color((1, 0.98, 0.67)))
                # Link Paramaters To First Instance's paramaters
                for lpfi in linkParmFirstInstance:
                    instances.parm(lpfi).setExpression('chs("/obj/' + instanceName + '_0/' + lpfi + '")')

        # NetworkBox
        networkBoxMain = hou.item('/obj/networkMain')
        networkBoxInst = hou.item('/obj/networkInst')
        try: 
            if networkBoxMain.comment() == instanceName: 
                networkBoxMain.destroy(False)
        except: pass
        try: 
            if networkBoxInst.comment() == (instanceName + "_Instance"): 
                networkBoxInst.destroy(False)
        except: pass

        networkBoxMain = hou.node('/obj/').createNetworkBox('networkMain')
        networkBoxMain.setComment(instanceName)
        networkBoxMain.setColor(hou.Color((0.98, 0.78, 0.26)))
        networkBoxMain.setMinimized(1)
        networkBoxInst = hou.node('/obj/').createNetworkBox('networkInst')
        networkBoxInst.setComment(instanceName + "_Instance")
        networkBoxInst.setColor(hou.Color((1, 0.98, 0.67)))
        networkBoxInst.setMinimized(1)

        col = round(sqrt(len(scatterGeo.points())))

        for pt in scatterGeo.points():
            nameInstance = instanceName + '_' + str(pt.number())
            i = pt.number()
            node = hou.node('/obj/' + instanceName + '_' + str(i))
            if i == 0:
                node.setPosition([.2, .8])
                networkBoxMain.addItem(node)
                networkBoxMain.addNetworkBox(networkBoxInst)

            else :
                networkBoxInst.addItem(node)
                tmpPos = [i%col*3, round((col*col-i / col)-.5)]
                node.setPosition(tmpPos)

        networkBoxInst.resize([1, 1])
        networkBoxInst.setPosition([1.5, 0])
        networkBoxMain.resize([1, 1])
        tmpPos = scatterNode.parent().position()
        tmpPos[0] += 4
        networkBoxMain.setPosition(tmpPos)
        networkBoxMain.setMinimized(0)


  11. Hi everybody,

    i'm tryng to subfracture some rbd pieces created with the rbdMaterialFracture node.

    Like the big chunks in this video.

    How can i create constraint between the subfractured fragments?I think i'm missing something about the new rbd set of tools...

    Thanks alot,

    Carlo

     

    -EDIT-  I FINALLY SWITCHED TO CLASSIC RBD INSIDE DOP NETWORK..OLD SCHOOL METHOD LOOKS LIKE WORKING......ANY SUGGESTION ABOUT RECURSIVE FRACTURING WITH THE NEW RBD SET?


  12. Hi everybody, i'm facing some weird artifacts in whitewater when increasing guided ocean particle separation to 0.01, if i use 0.02 everything works as expected.

    I did also try to play with whitewater resolution but no change in that artifact.

     

    whitewater.thumb.JPG.583e04a6e868da4d2a7003f901957a15.JPG

×