Jump to content

Simple attempt to get animation and DOPs to work


rich_lord

Recommended Posts

I made this video along time ago in Maya, and am trying to come up with ways I can make this sort of thing more dynamically in Houdini

I`m really struggling to reproduce similar motion in Houdini. The lack of motor constraints is a big problem.

As a test, I thought I could simply make a cube and use a SOPsolver to rotate it 5 degrees each frame to see if it could handle the change in geometry well.

I got a really strange, unexpected result so either this is a terrible idea, or i`m misunderstanding something.

I tried all the different rigid body engines and got odd results out of all of them.

Here`s my super simple test setup. If you turn on collision geometry, you can see its scaling and doing all sorts of wired things.

Help! (thankyou)

AnimationAndPhysics.hipnc

Edited by rich_lord
Link to comment
Share on other sites

Guest mantragora

Here`s my super simple test setup. If you turn on collision geometry, you can see its scaling and doing all sorts of wired things.

It works better if you attach the file. ;)

Link to comment
Share on other sites

I think the multisolver is screwing things up because it's making the collision geometry no longer match the actual geometry? (I suck at DOPs) Taking it out and rotating it within the box object itself fixes it for me. For that type of animation, you'll want to turn on "Use Deforming Geometry" on the RBD Object DOP node (which I did *not* do in the attached .hipnc). Note that you you're simulating a 1 meter cubed box.

AnimationAndPhysicsFixed.hipnc

Link to comment
Share on other sites

I think the multisolver is screwing things up because it's making the collision geometry no longer match the actual geometry? (I suck at DOPs) Taking it out and rotating it within the box object itself fixes it for me. For that type of animation, you'll want to turn on "Use Deforming Geometry" on the RBD Object DOP node (which I did *not* do in the attached .hipnc). Note that you you're simulating a 1 meter cubed box.

Thanks for the idea edward. I tried that method. Rotating the object at SOP level before I bring it into DOPs, getting rid of the multisolver and checking Use Deforming Geometry, but the motion im getting is still very odd. The object travels down one of the axis in a very unexpected way.

This could be just because i`m abusing the system a little bit I guess. Using SOPs to animate the geometry and then throwing a different collision hull at the RDBSolver every frame probably would be a little unpredictable. Still, I was hoping it would work better than it does...

Maybe I should stick to animating the DOP geometry with forces, but that seems very tricky to setup for precise control.

Link to comment
Share on other sites

I think the multisolver is screwing things up because it's making the collision geometry no longer match the actual geometry? (I suck at DOPs) Taking it out and rotating it within the box object itself fixes it for me. For that type of animation, you'll want to turn on "Use Deforming Geometry" on the RBD Object DOP node (which I did *not* do in the attached .hipnc). Note that you you're simulating a 1 meter cubed box.

Thanks for the idea edward. I tried that method. Rotating the object at SOP level before I bring it into DOPs, getting rid of the multisolver and checking Use Deforming Geometry, but the motion im getting is still very odd. The object travels down one of the axis in a very unexpected way.

This could be just because i`m abusing the system a little bit I guess. Using SOPs to animate the geometry and then throwing a different collision hull at the RDBSolver every frame probably would be a little unpredictable. Still, I was hoping it would work better than it does...

Maybe I should stick to animating the DOP geometry with forces, but that seems very tricky to setup for precise control.

Link to comment
Share on other sites

Unexpected how? As I mentioned, you have 1 metre cubed box whereas the objects you have in the video are about 1/20th times the size.

Here's a scene that shows an object i'm rotating at SOP level with a $FF expression, then bringing into DOPs with the Use Deforming Geometry flag checked.

It way it slides along is what I wouldn't expect. It looks like its being pulled along by something. But then I guess this is a strange thing to give a physics solver. I could be expecting the wrong thing.

I thought I would be able to give the cube more friction and it would almost stick to the floor and push itself over, but it doesn't no matter high high I have friction set.

AnimationAndPhysicsSlide.hipnc

Link to comment
Share on other sites

Guest mantragora

I don't have working solution but there are couple things I noticed.

This is for last file:

1. You don't need StaticSolver for groundplane.

2. Turn on "Show Collision Guide Geometry" and look how your collision field behaves. From the start it doesn't match your rotated box, and then thru rest of the simulation it fluctuates. It doesn't rotate with your geo. Probably you need to revert to "Ray Intersect" collision method for situations like this.

This is for your first post:

3. You can plug RBDSolved directly to second Multisolver input, just like SopSolver, instead of have it plugged after your RBDObject and into first Multisolver input.

Link to comment
Share on other sites

Guest mantragora

Something like this ?

If you need to animate something it's better to do this in DOPS. You collision field thanks to this doesn't have to be generated each frame from scratch, it just rotates with your gemoetry. There are couple nodes that can be used for this. One is RBDState DOP. If you set some parameters on RBDObject DOP they are only initial values. With RBDState you can update them each frame. Another is Motion DOP.

Never mind.

johnm put a nice example two posts below.

Edited by mantragora
Link to comment
Share on other sites

i guess computing velocity of the rotating cube at sop level would be an option and use it to drive the cube.

something like this, just need to constrain few things with rbd state for predictable behavior.

post-6162-134020160968_thumb.jpg

Edited by vectorblur
Link to comment
Share on other sites

the key thing is to set the RBDSolver to use Point Velocity to compute collisions instead of Volume velocity (or nothing)...

If you look at the attached file and display the collision volume in the AutoDop network, in wireframe, you'll notice that box_B slides away as you describe. From what I can tell, the volume representation of the collision geometry is behaving almost like a tractor tread and propelling the box along in the direction opposite to its rotation.

Also, increasing the Rotational Stiffness had an impact on how much box_A was able to roll.

-j

...attached file this time...

rotating_box.hipnc

Edited by johnm
Link to comment
Share on other sites

Thanks for all your help - ive learnt alot from it already!

3. You can plug RBDSolved directly to second Multisolver input, just like SopSolver, instead of have it plugged after your RBDObject and into first Multisolver input.

Hi mantragora - Aha - I see. I did have that connected incorrectly. Once I fixed that, my collision geometry stopped behaving oddly.

johnm - Im not sure how its working, I need to read up on the point velocity, but it looks very solid. The problem I noticed was that it acts oddly when involved with collisions with other objects. I put a cube in its path, and the rotational stiffness parameter prevented realistic gravity from acting on it. Lowering it improved the situation. Thanks for your input - really helped me understand a few DOP tricks im going to need.

mantragora + vectorblur - Ive tried both the motionDOP and RBDState examples. They work well in collisons. Seems to be the way DOPS wants me to add animaion. Theres lots of nice RBD motion I get with these methods. The motion DOP creates freakouts pretty easily though, like in the attached file. Not sure what is causing that.

So now I need to create a way to use either the Motion DOP or RBDState node to add an angular velocity to my rigid body ALONG the angle its currently traveling. Do RBDs have a forward vector or anything similar that I can use to find this?

AnimationAndPhysicsMotionDOPfreakout.hipnc

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...