@@ -346,6 +346,8 @@ def generate_rig(context, metarig):
346
346
ui_imports = rig_ui_template .UI_IMPORTS .copy ()
347
347
ui_utilities = rig_ui_template .UI_UTILITIES .copy ()
348
348
ui_register = rig_ui_template .UI_REGISTER .copy ()
349
+ ui_register_drivers = []
350
+ ui_register_props = []
349
351
noparent_bones = []
350
352
for rig in rigs :
351
353
# Go into editmode in the rig armature
@@ -363,6 +365,10 @@ def generate_rig(context, metarig):
363
365
ui_utilities += scripts ['utilities' ]
364
366
if 'register' in scripts :
365
367
ui_register += scripts ['register' ]
368
+ if 'register_drivers' in scripts :
369
+ ui_register_drivers += scripts ['register_drivers' ]
370
+ if 'register_props' in scripts :
371
+ ui_register_props += scripts ['register_props' ]
366
372
if 'noparent_bones' in scripts :
367
373
noparent_bones += scripts ['noparent_bones' ]
368
374
elif scripts is not None :
@@ -505,13 +511,25 @@ def generate_rig(context, metarig):
505
511
for s in ui_scripts :
506
512
script .write ("\n " + s .replace ("\n " , "\n " ) + "\n " )
507
513
script .write (rig_ui_template .layers_ui (vis_layers , layer_layout ))
514
+
508
515
script .write ("\n def register():\n " )
509
516
ui_register = OrderedDict .fromkeys (ui_register )
510
517
for s in ui_register :
511
518
script .write (" bpy.utils.register_class(" + s + ");\n " )
519
+ ui_register_drivers = OrderedDict .fromkeys (ui_register_drivers )
520
+ for s in ui_register_drivers :
521
+ script .write (" bpy.app.driver_namespace['" + s + "'] = " + s + "\n " )
522
+ ui_register_props = OrderedDict .fromkeys (ui_register_props )
523
+ for s in ui_register_props :
524
+ script .write (" bpy.types.%s = %s\n " % (* s ,))
525
+
512
526
script .write ("\n def unregister():\n " )
527
+ for s in ui_register_props :
528
+ script .write (" del bpy.types.%s\n " % s [0 ])
513
529
for s in ui_register :
514
530
script .write (" bpy.utils.unregister_class(" + s + ");\n " )
531
+ for s in ui_register_drivers :
532
+ script .write (" del bpy.app.driver_namespace['" + s + "']\n " )
515
533
script .write ("\n register()\n " )
516
534
script .use_module = True
517
535
0 commit comments