Jump to content
[[Template core/front/profile/profileHeader is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Posts posted by hindukush


  1. I had good results in a mix of noise and vellum drape.But i get some pinned points here and there even if there is no point pinned in the configure cloth.Any idea?

    Could be nice to add even more fine wavy details but i should use a low res geo to sim and than switch to hi res.

     

    tentacolo_model_1.JPG

    tentacolo_model_2.JPG

    tentacolo_model_3.JPG


  2. Hello, 

    i just did start the sape topic today, and didn't see this one, i will merge my post:-)

    I am searching some procedural way to acheive some details for the tail of a jellyfish like those in the attached image. With noises i get an effect wich is not exactly matching the reference. 

    I would like to have a more natural look in the small wrinkles, in the reference wrinkle is thinner while going to the center of the tail.

    I did also tested some "reaction diffusion technique" but the result is not similar to this species of jellyfish,even if is not bad in not ok, maybe there is some reaction diffusion setup wich result in a shape more similar to wrinkles and less "spongy"?:-)

    tail_details.JPG

    tail_noise.JPG

    tail_reaction.JPG


  3. Hello!

    I am searching some procedural way to acheive some details for the tail of a jellyfish like those in the attached image. With noises i get an effect wich is not exactly matching the reference. 

    I would like to have a more natural look in the small wrinkles, in the reference wrinkle is thinner while going to the center of the tail.

    I did also tested some "reaction diffusion technique" but the result is not similar to this species of jellyfish,even if is not bad in not ok, maybe there is some reaction diffusion setup wich result in a shape more similar to wrinkles and less "spongy"?:-)

    Appreciate any suggestion in any direction, thanks alot!

    Carlotail_details.thumb.JPG.29db959faa71c10cfcfb827cdc7b9120.JPGtail_noise.thumb.JPG.18feed1d160f1f1fb77df1e0dc5527fc.JPGtail_reaction.thumb.JPG.952c827944c92d29839ddb10340792e7.JPG


  4. Hello!

    I need to do a fluid vortex inside a wc, i was wondering wich approach you would suggest.

    I was thinking to a mix of curve force and attraction field from the wc mesh, but maybe there is some more interesting way.

    Thanks!

    H. 


  5. Hello everyone!

    I'm doing a rain set up,i was exploring the flip way.Can somenone check the scene attached and tell me if is super slow and maybe why?there are really just few particles but it is slower than calculating a big water splash with milions of points...for sure i miss something:-)

    Thanks alot!

    C.

    FLIP_RAIN.hip


  6. 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


  7. 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.


  8. 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.


  9. 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

     

     


  10. 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


  11. 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


  12. 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:-)


  13. 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]

  14. 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)

×