jasperges / pose-thumbnails

Blender add-on that adds thumbnails to a pose library.
GNU General Public License v2.0
67 stars 11 forks source link

doesn't work on 2.79 Linux #49

Closed gitnob closed 6 years ago

gitnob commented 6 years ago

Thanks for this great addon (idea). I couldn't get it to run under Linux.

It doesn't show me any thumbnail creation options, complains about wrong registration property, and some more errors. Although I can see the thumbnail panel, I can't get it to work properly and I'm not a noob. I unfortunately gave up trying to install it.

jasperges commented 6 years ago

Thanks for your interest!

Are you using Blender 2.79, 2.79a or 2.79b? Can you give the exact error message? For the error message you can run blender from the terminal and then the message will be printed there so you can copy and paste it.

Also how did you install the add-on?

I use Linux (Fedora) myself and it works fine. At the Blender Studio they also use Linux if I'm not mistaken.

gitnob commented 6 years ago

There are a lot of different things that happen. I installed the pose-thumbnails directory under scripts/addons in the blender config area. I used and tried 2.79a, 2.78c. Same behaviour (without getting a weird drop-down menu entry for my pose library which was called PLB-Armature and was shown with strange symbols).

The main error that arises was that one: ----- snip ---- TypeError: PointerProperty(...) expected an RNA type, failed with: RuntimeError: , missing bl_rna attribute from 'RNAMetaPropGroup' instance (may not be registered)

Exception in module register(): '/home/norbert/.config/blender/2.79/scripts/addons/pose_thumbnails/init.py' Traceback (most recent call last): File "/usr/local/blender-2.79a-linux-glibc219-x86_64/2.79/scripts/modules/addon_utils.py", line 350, in enable mod.register() File "/home/norbert/.config/blender/2.79/scripts/addons/pose_thumbnails/init.py", line 47, in register core.register() File "/home/norbert/.config/blender/2.79/scripts/addons/pose_thumbnails/core.py", line 730, in register bpy.utils.register_class(cls) ValueError: bpy_struct "PoselibUiSettings" registration error: options could not register ---- snip ----

and then :

---- snip ---- Traceback (most recent call last): File "/home/norbert/.config/blender/2.79/scripts/addons/pose_thumbnails/core.py", line 686, in poll addon_prefs = prefs.for_addon(context) File "/home/norbert/.config/blender/2.79/scripts/addons/pose_thumbnails/prefs.py", line 17, in for_addon return context.user_preferences.addons[package].preferences KeyError: 'bpy_prop_collection[key]: key "pose_thumbnails" not found'

location: :-1 ---- snip ----

Anyway, as I said. It doesn't work out of the box as expected. Any idea what I could try next?

gitnob commented 6 years ago

Found two bugs/issues.

One, regarding PoselibUiSettings: there is a missing update function declaration in the "options" property. I just declared an update function returning None.

def test_none_returner(self,context):
    return None
class PoselibUiSettings(bpy.types.PropertyGroup):
    """A collection property for all the UI related settings"""
    active = bpy.props.EnumProperty(
        items=get_pose_thumbnails,
        update=update_pose
    )
    options = bpy.props.PointerProperty(
        type=PoselibThumbnailsOptions,
        update=test_none_returner
    )

Two, the classes in the creation module weren't declared. Just checked this by adding a "print(cls)" statement into the registration loop of the core module. Thus I added another "creation.register()" and "creation.unregister()" statement into the init module.

Now things seem nearly to work. But there is still a problem when I try to choose the pose library from the dropdow list with an already correctly declared new poselib. The name would not show up although it's already in the list and if I have chossen the poselib. Don't know why...

BTW, are you a PHP programmer? You are using final "," just before the closing ")" of a list declaration. It's not a problem, but disturbing.

jasperges commented 6 years ago

Thanks for letting me know. I will look at hopefully next week. There are other pressing matters I have to attend to at the moment.

No, I'm not a PHP programmer. The reason I add the extra "," is because it makes for cleaner diffs when I need to add an extra line later on. Then only the added line is different, not the lines before, because of the added ",". I only do this when the arguments are on separate lines.