Jump to content
rich_lord

Simple attempt to get animation and DOPs to work

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

Share this post


Link to post
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. ;)

Share this post


Link to post
Share on other sites

It works better if you attach the file. ;)

Haha! Oops! Ive attached it now.... Thanks for pointing that out mantragora.....

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×