Wiggle bones (a jiggle bone implementation for 2.8)

Any update on the collision?
Already love the addon, but simple collision volumes would help a lot!

If it’s too hard to get it to work properly, could you add the old bugged version back in as an option?

Thanks for all the great work!

3 Likes

@shteeve I made a similiar addon this year. Send me a quick PM if you want to discuss a collaboration. If your goals are the same, I would be happy to contribute to your project.

6 Likes

can jiggle bones do this?? does not seem so :frowning:

2 Likes

Thank you so much for this super useful addon. I have used it without encountering any problems for my Card Deck Theatre (WebGL) project, to wiggle te bells of the Joker’s hat. It would be great if you could update the addon for Blender 2.9. Is this in your planning?

Hi @shteeve

This is such a great addon tbh. I know you’re working to get it up to snuff and all but I think it’s safe to say a LOT of people would love for this addon to grow. And I for one would pay a reasonable price.

Can’t wait for collisions and updates. Thanks!

4 Likes

thanks! in my spare time i’ve been trying a variety of different things. i keep getting bits and pieces of promising results, but then there’ll be an annoying roadblock. that said nobody would love to get a more robust physics solution than me! :slight_smile:

4 Likes

Thank you! It is very nice add on! Can I download this add on for Blender 2.79?

It seems that when both the projectile addon and wiggle bones addon is active it causes blender to crash , I’ve already contacted the dev of the other addon about it think you could look into this form your side?

haven’t heard of projectile, i’ll have to look into it. quick thought, see if “lock interface” in the render menu is active. i know checking that tends to help with weird depsgraph conflicts that can cause crashes when rendering, might also help here too?

also, in my spare time i’ve been working on a ground-up rewrite of wiggle bones to address a number of issues with the original. hopefully at some point i’ll have a demo that can be tested to see if it addresses your specific issue.

12 Likes

You have no idea how excited I am to have witnessed what you have shown here today…

3 Likes

i’m actually impressed how well this works. multiple dense mesh colliders? wiggle 2 don’t care, apparently!

13 Likes

Astounding!!

Quick question regarding this collision setup you have here, are you able to set up the “radius” of the collision capsule (I assume it’s probably capsule shaped anyway) to adjust how far away the bone needs to be for a collision to register?

in this implementation, all physics/collisions are calculated on the tips of the bones. however each bone has a user defineable collision radius which can be dialed in to help reduce geometry intersections. because bones are always going to be an imperfect representation of the geometry they’re driving, this felt like a reasonable compromise.

there is also an approach i’d been considering that approximates the bone capsule collisions you mentioned. if it ends up being viable, i may include both options.

right now the collisions are actually more stable than the core physics loop, which is the main thing i need to sort before an initial release.

4 Likes

@shteeve

What does deltarot means?
I’m trying to learn your codes.

Hello @shteeve !

Just wanted to say that this is a really good add-on and works like a charm, but i have a recommendation for you to implement (or if there’s a workaround i’ll be glad to hear and learn), seems like the bones aren’t reacting to Force Fields in Blender, tried a lot but nothing works so far, how can it be done? Or maybe you can try to add it as a new feature?

1 Like

i wanted to be able to use force fields but it appears python doesn’t expose any ability to sample the fields. i’m assuming they’re only for internal physics systems like particles. if anyone knows differently i’d be happy to be proven wrong!

(gravity is accessible because it’s a consistent force vector)

the current script is a pretty big mess of grafted on and abandoned functionality, hence why i’ve been cleaning up with a rewrite. deltarot is delta rotation (amount of rotation change between frames)

1 Like

b.jiggle_spring = Vector(b.jiggle_spring)+vec+deltarot #input force

in this code, I’ve set deltarot as 0, and I could see no difference,
but I could see the rotational force between the frames is muted when I’ve set vec as 0.

I’ve asked this because, I could only understand ‘vec’ was only playing a role as rotational change between frames.

And thank you so much for the reply and for your wonderful add-on.

i’d have to dive deeper to remind myself on that particular implementation, but vec should be input translation (ie from keyframes) and likewise deltarot is input rotation from keyframing. is it possible you haven’t keyed any rotation on the bone in testing? the idea is if you animated a bone rotating, it would gather some momentum from that rotation and jiggle as a result. but all of these things were pretty ad hoc and not physically correct. i’m making efforts in my updated version to maintain a more unified approach to the physics which is easier to manage.

1 Like