Wiggle bones (a jiggle bone implementation for 2.8)

Hi, I believe this add-on cause crash in Blender 2.93.6 when adding keyframe on object visibility

Way to reproduce: Object property → Visibility → keyframe viewpots or renders → move a frame

According to the log, the crash is caused by wiggle_bones1_5_b20.py line 834 in jiggle_post

This addon is really good, hope get fixed soon

1 Like

yup you’re right! it seems to be tied to a piece of functionality i’d been playing with in that version of the addon that automatically resets the physics if the playhead skips too many frames (ie if you’re moving the playhead somehwere new, and you don’t want jiggle physics to go nuts). if you go to the top post here, the b16 version of the addon doesn’t seem to have that crash (and should behave mostly similar, preserving all your settings and whatnot)

1 Like

Like to point out that baking is broken in Blender 3.0

Error: Python: Traceback (most recent call last):
File “C:\Users\User\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\wiggle_bones1_5_b16.py”, line 889, in execute
track.strips.new(action.name, action.frame_range[0], action)
AttributeError: ‘bpy_prop_collection’ object has no attribute ‘new’

Error: Python: Traceback (most recent call last):
File “C:\Users\User\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\wiggle_bones1_5_b20.py”, line 925, in execute
track.strips.new(action.name, action.frame_range[0], action)
AttributeError: ‘bpy_prop_collection’ object has no attribute ‘new’

odd, i can’t replicate this on my end in 3.0 with either version of the addon you posted. your error appears to be specifically in the additive bake code which puts the existing animation on the rig as strip in the NLA, and then bakes the wiggle bones on a separate animation layer. if you want that result, you can always push your existing animation into the NLA manually and then bake normally.

Hey, long time no post :smiley: Just wanted to ask about some slightly odd behaviour with wigglebones. When the bones supposed to do a fast rebound to original position with a largeish Ampliturde Translation value, the bone seems to first jump outwards before performing the rebound. I’m guessing this isn’t a bug, but rather a quirk in the design?

I’m also getting the same error in 3.0 :’(

@Toys0125
This works for me (in pose mode) :slight_smile:

I’m getting the same error in 3.0. I have a hair rig constrained to a body rig (copying transforms from the head). Is there any reason why baking wouldn’t work? I even used the pose mode “bake action” with and without visual keying. Bake wiggle also doesn’t work with each bone being set to 0.0 for every frame. Would really appreciate any insight into this issue!

Edit: I’m using version 1_5_b20 :slightly_smiling_face:

Edit2: For those of you seeking a workaround, if you have flat shading /stylized look it may be a good option to use the View > Viewport Render Animation option! This worked for me.

@shteeve

@shteeve
Hello there! I’m still a bit of a novice at Blender but I’d like to ask about viewport playback speed. After installing the add-on the playback speed for me is very slow, at about 1.8 or 2 frames per second, even though I’ve hid all other objects, simplified the scene, and simplified my mesh. Thanks again for creating this awesome add-on and I look forward to hearing from you!

hi! are you sure your model has reduced polly count? if you are beginner you are probly struggiling with high polly object … its impossible to animate high polly objects. also look into retopo.

Well, I heard of this add-on through the youtube video below, and it seemed like I had about the same amount of polys. For some reason it’s working better now, but I don’t know if that’s because I deleted all the other objects in my scene.

And now it’s back to not working again. I’m really not sure what I’m doing wrong here. My previous post says the video isn’t available even though it is, so let me try posting it again.

It’s hard to say what might actually be happening in your scene. If it’s just performance or something else breaking. Can you bake the animation ok?

Well, I tried to remove and re-install the add-on which seems to work sometimes, but I also ran into another problem. Wiggle Addon behaving strangely

Yes, I managed by tweaking the addon. I made the properties “library overrideable” by slapping override={‘LIBRARY_OVERRIDABLE’}, everywhere.

image

@shteeve , mate, if you had a proper GitHub project for this I would’ve raised a PR! Have you not considered creating one? (I have my private version where I do my things and keep track of the versions).

HTH,
Gabriel

2 Likes

haha I actually added the library override functionality on the new version I’m working on too! :wink:

I’m curious if the changes work for you in the previous versions. one of the big issues with the old system is that i was making some properties as custom properties (exposed in the UI) rather than proper data structures.

I do really need to learn GitHub for managing and allowing others to contribute! perhaps I’ll try to set something up for this new version.

6 Likes

Hello! I found your Wiggle Bones add-on from some youtube tutorial. I got some issues with it, some of answers I already found in the replies, but I got another error that nobody here had yet and I couldn’t find answer. Whenever I try to bake my animation with wiggle bones, I get this:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\wiggle_bones1_5_b20.py", line 948, in execute
    for b in bpy.context.selected_pose_bones:
TypeError: 'NoneType' object is not iterable

location: <unknown location>:-1

I don’t know anything about python and powerless everytime there is a problem with add-ons. Do you know how to fix that error? Thank you in advance

1 Like

Hi shteeve! I’ve been using your plugin for a long time now. It’s a huge time saver and a must-have. Any news on the collisions? It would be super useful if the wiggle bones plugin could do collisions with only 1 tick box checked. Current methods I know of are resource consuming or not that good-looking. Thanks!

honestly one of the main things holding it back at this point is an issue where a ‘stiff’ bone chained to a free-hanging bone can cause ever increasing motion, so I was trying to work out a stiffness solution that conserves energy better.

free hanging chain bones with collision have been working great for a while now (simple rope physics turns out to be a relatively simple algorithm). so I may just end up releasing it with the caveat that some setups still won’t work perfectly (and I’m sure people will discover others).

1 Like

I think you need to select the bones judging from the Python error.