Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

3 Neutral

About Alain2131

  • Rank

Personal Information

  • Name
  • Location

Recent Profile Visitors

287 profile views
  1. Orient object along it's velocity

    Well, as for the "cube orientation vector", it doesn't exist as a rotation would exist in another package, say Maya. Not in that context. It exist only at the /Obj level (or any object subnet) As for finding the closest non-zero value for the velocity with Python, that's exactly it ! Get current value, if 0 get value at next frame until the value is not 0. .. In theory, but I can't get the geometry to recook when the frame is changed. It always give me the initial frame's attribute value. Or so I think, it keeps throwing my timeslider to astronomical values. So that didn't work. Instead, I've done something horrible. It works, but it's horrible. cinnamonMetal_orientToVel_v2.hip Since that "orientation vector" only existed at the /Obj, that's exactly what I did. Does that hack work out for you ? PleaseForgiveMeIKnowIDidSomethingHorrible
  2. Display UV island in different colours

    I was about to say "Or you could use the GameDev's UV Visualize" - but it uses the exact same technique as you described. Neat trick ! You can also display the flattened UV in the 3D view with the UV Visualize sop, which could help you with that stretching problem of yours.
  3. Orient object along it's velocity

    The popping happens at frame 13 and 49 (or anytime the cube transitions from/to not moving) - but the timewarp should fix that, thanks to the Pre/Post-Hold. But as mentioned, that's a hacky way to fix that As for getting the matrix transformation of the cube, this is pretty much what I do using maketransform But because it's based on the velocity vector to construct it, when the velocity is 0 the matrix gets squashed down. I decided that when the velocity was 0, to not do anything - thus the snapping. A way to fix that would be to find the closest velocity vector that is not 0 and use it. But I don't know how to get an attribute at another frame than the current one. There would probably be a way to do it in Python. You mentioned "[...] have the cube vectors orient along it's path." Not sure what that means. What vectors ? Do you mean the cube orientation vector ?
  4. Orient object along it's velocity

    Here's my take to it : cinnamonMetal_orientToVel.hip Unfortunately, I haven't been able to keep the first animation frame to pop and to keep the final position/orientation. Instead I used a time warp with the anim duration to keep it from popping. Is this (almost) what you wanted ?
  5. Visualise DOP forces

    Hey Atom, thanks for the answer ! This is great ! I've been able to produce the velocity field, but had not much success bringing it into DOPs. Obviously the volume source wouldn't help with wires/rigids (still tried it), but the SOP Vector Field seems about right. Unfortunately, I'm not sure how to actually apply the force. I did manage to visualize a green opaque cube the following image where the force should be with the Vector Field Visualization node, so I know it reads something, but no luck actually having the wire react. The visualizer works perfectly, even with an animated noise field. How to bring the custom field in DOPs ? Thanks ! EDIT : Forgot to mention that the SOP Vector Field has that warning " Warning wireobject1 - /obj/geo1/dopnet1/sopvectorfield1: This data is attached to an unexpected parent data. "
  6. Hello ! Is there a way to visualize the forces in a DOP simulation, much like this, but for wires ? I have a Wind Force (not the pop one), and there is no option to visualize it out of the box. There might be a way to grab the force field information at any location (locations would be a grid of points built specifically for that) and pass it down onto the points to visualize the force on the Normals or smth, but I don't know how to. Something like grabbing the result of all the forces at a location, or only a specific force, either one would be wonderful. Thanks !
  7. Maybe I should change the question a bit - Is there a way to populate Maya's Joint Orient when exporting from Houdini with FBX ?
  8. Hey guys ! I have a simple test setup - a bone in Houdini with a Pre-Transform rotation of (45, -45, 0), and then an animation on the x rotate When I export that to Maya by FBX, I would expect the Pre-Transform to transfer to the Joint Orient of the bone But it doesn't. So the animation in Maya is a mess in the three axis. Is there anything I missed ? Thanks !
  9. point deforming problem

    This technique is from the Applied Houdini Rigids 3 tutorial video from Steven Knipping. Highly recommended, any and all of his videos ! It cost money, but it is sooo worth it !
  10. Extract rotation from packed geometry to a bone (Python)

    6 months has passed. And so have I, to other matters. But then, while I was watching a SideFX's masterclass, a certain handy dandy little node called Extract Transform was briefly shown. And I thought - hey, that might be it ! What's been missing to complete the tool of this thread ! And it is ! It works ! Yay ! Works on packed geo only. Let me know if this tool is of use to you. Cheers ! RigidBody_Baker.hda rigidBody_baker_tests.hip
  11. Wire solver - rotational constraint

    Up !
  12. Hey there ! The situation is that I have a Python code (in a HDA, but in the test a simple python sop will do the trick) in which I tried to modify a certain geometry's attribute. The thing is - I can't have that geometry connected to the python sop (since the final result would be to integrate it all in an HDA). So ! I know we get a "GeometryPermissionError: Geometry is read-only." error when trying to do so with the Python node not connected to the geometry. But ! It is possible to manually modify a node's geometry attributes by locking the node (setHardLocked in python), and manually inputting the values we want in the geometry spreadsheet. The question is - can we do the same in Python ? Can we lock the geometry, and then "auto-manually" change the attributes in Python on that specific locked node ? Thanks !
  13. Wire solver - rotational constraint

    Up !
  14. Wire solver - rotational constraint

    Hey Victor, Thanks for the setup ! Unfortunately I tried something similar (instead of three points I had tried with only one), but discarded it because of the strange behavior it induces to the wire. So it doesn't fit my need, but thanks !
  15. Hey Amaya, I'm guessing that your code probably works, it's just that you can't have a point ( . ), nor a comma ( , ) in a group name. So in your setup every points of your lines must have had some non-int value, resulting in no groups created at all. Try multiplying the position by 100 and add it as an integer to your group name, or anything that eliminates the point. This is my attempt. Keep in mind that you need to set your wrangle to Run Over Detail. int ptCount = detailintrinsic(0, "pointcount"); // Get the point count // Initial attributes setup vector thePos = {0,0,0}; string groupName = ""; for(int i=0; i<ptCount; i++) { thePos = point(0, "P", i); // Get the position groupName = sprintf("group_%d", thePos[1]*100); // Create the groupName variable // For some reasons, the groups doesn't accept commas, nor points ( , . ) //printf("%d ", groupName); setpointgroup(0, groupName, i, 1); } Here's a quick scene with that code. set_group_by_Y.hip EDIT : .. Actually, here's the same scene but with your code, working. s@test = sprintf("%d", @P.y*100); // %d to have an integer s@groupname = concat("group_", @test); setpointgroup(0, @groupname, @ptnum, 1); set_group_by_Y_1.hip