[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4019] trunk/py/scripts/addons/ io_import_scene_mhx.py: MHX importer: the idea to use rna props did not pan out, because it lead to errors when a saved blend file with an mh character was reloaded .

Thomas Larsson thomas_larsson_01 at hotmail.com
Fri Nov 30 06:44:18 CET 2012


Revision: 4019
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4019
Author:   thomasl
Date:     2012-11-30 05:44:17 +0000 (Fri, 30 Nov 2012)
Log Message:
-----------
MHX importer: the idea to use rna props did not pan out, because it lead to errors when a saved blend file with an mh character was reloaded. Fixed that.

Modified Paths:
--------------
    trunk/py/scripts/addons/io_import_scene_mhx.py

Modified: trunk/py/scripts/addons/io_import_scene_mhx.py
===================================================================
--- trunk/py/scripts/addons/io_import_scene_mhx.py	2012-11-28 17:42:03 UTC (rev 4018)
+++ trunk/py/scripts/addons/io_import_scene_mhx.py	2012-11-30 05:44:17 UTC (rev 4019)
@@ -2166,7 +2166,7 @@
     
     if string.startswith(("Mha", "Mhf", "Mhs", "Mhh", "Mhv", "Mhc")):
         name = string.replace("-","_")
-        return name, name
+        return name, '["%s"]' % name
     elif string[0] == "_":
         return None,None
     else:
@@ -2190,6 +2190,11 @@
         exec(expr, glbals, lcals)
         
 
+def defNewProp(name, proptype, rest):
+    expr = 'bpy.types.Object.%s = %sProperty(%s)' % (name, proptype, rest)
+    print(expr)
+    exec(expr)
+
         
 def setProperty(args, var, glbals, lcals):
     global theProperty
@@ -3890,7 +3895,7 @@
     layout.separator()
     for prop in props:
         row = layout.split(0.85)
-        row.prop(rig, prop, text=prop[3:])
+        row.prop(rig, '["%s"]' % prop, text=prop[3:])
         row.operator("mhx.pose_pin_expression", text="", icon='UNPINNED').data = (prefix + ";" + prop)
     return
 
@@ -4394,7 +4399,7 @@
         ob = context.object
         layout = self.layout
         for prop in props:
-            layout.prop(ob, prop, text=prop[3:])
+            layout.prop(ob, '["%s"]' % prop, text=prop[3:])
 
         layout.separator()
         row = layout.row()
@@ -4402,14 +4407,14 @@
         row.label("Right")
         for prop in lrProps:
             row = layout.row()
-            row.prop(ob, prop+"_L", text=prop[3:])
-            row.prop(ob, prop+"_R", text=prop[3:])
+            row.prop(ob, '["%s"]' % (prop+"_L"), text=prop[3:])
+            row.prop(ob, '["%s"]' % (prop+"_R"), text=prop[3:])
 
         if faceProps:
             layout.separator()
             layout.label("Face shapes")
             for prop in faceProps:
-                layout.prop(ob, prop, text=prop[3:])
+                layout.prop(ob, '["%s"]' % prop, text=prop[3:])
 
             layout.separator()
             row = layout.row()
@@ -4417,8 +4422,8 @@
             row.label("Right")
             for prop in lrFaceProps:
                 row = layout.row()
-                row.prop(ob, prop+"_L", text=prop[3:])
-                row.prop(ob, prop+"_R", text=prop[3:])
+                row.prop(ob, '["%s"]' % (prop+"_L"), text=prop[3:])
+                row.prop(ob, '["%s"]' % (prop+"_R"), text=prop[3:])
      
         return
 
@@ -4448,7 +4453,7 @@
         props.sort()
         for prop in props:
             if prop[0:3] == "Mhh": 
-                layout.prop(ob, prop, text="Hide %s" % prop[3:])
+                layout.prop(ob, '["%s"]' % prop, text="Hide %s" % prop[3:])
         layout.separator()
         layout.operator("mhx.update_textures")
         layout.separator()
@@ -4486,6 +4491,7 @@
         for ob in context.scene.objects:
             if ob.select and ob != rig:
                 prop = "Mhh%s" % ob.name        
+                defNewProp(prop, "Bool", "default=False")
                 rig[prop] = False        
                 addHider(ob, "hide", rig, prop)
                 addHider(ob, "hide_render", rig, prop)



More information about the Bf-extensions-cvs mailing list