Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/rigify
diff options
context:
space:
mode:
authorNathan Vegdahl <cessen@cessen.com>2013-02-16 12:12:03 +0400
committerNathan Vegdahl <cessen@cessen.com>2013-02-16 12:12:03 +0400
commitfa8c52897eda889aa4864f31546a2394435bbd92 (patch)
treece7c4ae14a452ff63032d705ae20d1df462dc17f /rigify
parent420260c2a713bd7729f31da1f95c3fbb064dba42 (diff)
Rigify: removed "from rigfy import X" statements where possible.
This makes it much easier for e.g. someone to branch Rigify for custom purposes, since there won't be weird name conflicts. Also changed from using __import__() for dynamic imports to using importlib.import_module(). This simplifies the code and should be more robust. Finally, misc pep8 cleanups.
Diffstat (limited to 'rigify')
-rw-r--r--rigify/__init__.py70
-rw-r--r--rigify/generate.py16
-rw-r--r--rigify/metarig_menu.py1
-rw-r--r--rigify/rig_lists.py83
-rw-r--r--rigify/rigs/basic/copy.py7
-rw-r--r--rigify/rigs/basic/copy_chain.py11
-rw-r--r--rigify/rigs/biped/arm/deform.py12
-rw-r--r--rigify/rigs/biped/arm/fk.py13
-rw-r--r--rigify/rigs/biped/arm/ik.py16
-rw-r--r--rigify/rigs/biped/leg/deform.py12
-rw-r--r--rigify/rigs/biped/leg/fk.py15
-rw-r--r--rigify/rigs/biped/leg/ik.py16
-rw-r--r--rigify/rigs/finger.py16
-rw-r--r--rigify/rigs/misc/delta.py10
-rw-r--r--rigify/rigs/neck_short.py12
-rw-r--r--rigify/rigs/palm.py14
-rw-r--r--rigify/rigs/spine.py10
-rw-r--r--rigify/ui.py13
-rw-r--r--rigify/utils.py27
19 files changed, 205 insertions, 169 deletions
diff --git a/rigify/__init__.py b/rigify/__init__.py
index 1ee7d8d8..2520ffcc 100644
--- a/rigify/__init__.py
+++ b/rigify/__init__.py
@@ -38,73 +38,11 @@ if "bpy" in locals():
imp.reload(ui)
imp.reload(utils)
imp.reload(metarig_menu)
+ imp.reload(rig_lists)
else:
- from . import generate, ui, utils, metarig_menu
+ from . import utils, rig_lists, generate, ui, metarig_menu
import bpy
-import os
-
-
-def get_rig_list(path):
- """ Recursively searches for rig types, and returns a list.
- """
- rigs = []
- MODULE_DIR = os.path.dirname(__file__)
- RIG_DIR_ABS = os.path.join(MODULE_DIR, utils.RIG_DIR)
- SEARCH_DIR_ABS = os.path.join(RIG_DIR_ABS, path)
- files = os.listdir(SEARCH_DIR_ABS)
- files.sort()
-
- for f in files:
- is_dir = os.path.isdir(os.path.join(SEARCH_DIR_ABS, f)) # Whether the file is a directory
- if f[0] in {".", "_"}:
- pass
- elif f.count(".") >= 2 or (is_dir and "." in f):
- print("Warning: %r, filename contains a '.', skipping" % os.path.join(SEARCH_DIR_ABS, f))
- else:
- if is_dir:
- # Check directories
- module_name = os.path.join(path, f).replace(os.sep, ".")
- try:
- rig = utils.get_rig_type(module_name)
- except ImportError as e:
- print("Rigify: " + str(e))
- else:
- # Check if it's a rig itself
- if not hasattr(rig, "Rig"):
- # Check for sub-rigs
- ls = get_rig_list(os.path.join(path, f, "")) # "" adds a final slash
- rigs.extend(["%s.%s" % (f, l) for l in ls])
- else:
- rigs += [f]
-
- elif f.endswith(".py"):
- # Check straight-up python files
- t = f[:-3]
- module_name = os.path.join(path, t).replace(os.sep, ".")
- try:
- utils.get_rig_type(module_name).Rig
- except (ImportError, AttributeError):
- pass
- else:
- rigs += [t]
- rigs.sort()
- return rigs
-
-
-rig_list = get_rig_list("")
-
-
-collection_list = []
-for r in rig_list:
- a = r.split(".")
- if len(a) >= 2 and a[0] not in collection_list:
- collection_list += [a[0]]
-
-
-col_enum_list = [("All", "All", ""), ("None", "None", "")]
-for c in collection_list:
- col_enum_list += [(c, c, "")]
class RigifyName(bpy.types.PropertyGroup):
@@ -136,12 +74,12 @@ def register():
bpy.types.Armature.rigify_layers = bpy.props.CollectionProperty(type=RigifyArmatureLayer)
IDStore = bpy.types.WindowManager
- IDStore.rigify_collection = bpy.props.EnumProperty(items=col_enum_list, default="All", name="Rigify Active Collection", description="The selected rig collection")
+ IDStore.rigify_collection = bpy.props.EnumProperty(items=rig_lists.col_enum_list, default="All", name="Rigify Active Collection", description="The selected rig collection")
IDStore.rigify_types = bpy.props.CollectionProperty(type=RigifyName)
IDStore.rigify_active_type = bpy.props.IntProperty(name="Rigify Active Type", description="The selected rig type")
# Add rig parameters
- for rig in rig_list:
+ for rig in rig_lists.rig_list:
r = utils.get_rig_type(rig).Rig
try:
r.add_parameters(RigifyParameters)
diff --git a/rigify/generate.py b/rigify/generate.py
index 89f89b71..69c8863b 100644
--- a/rigify/generate.py
+++ b/rigify/generate.py
@@ -24,14 +24,14 @@ import time
import traceback
import sys
from rna_prop_ui import rna_idprop_ui_prop_get
-from rigify.utils import MetarigError, new_bone, get_rig_type
-from rigify.utils import ORG_PREFIX, MCH_PREFIX, DEF_PREFIX, WGT_PREFIX, ROOT_NAME, make_original_name
-from rigify.utils import RIG_DIR
-from rigify.utils import create_root_widget
-from rigify.utils import random_id
-from rigify.utils import copy_attributes
-from rigify.rig_ui_template import UI_SLIDERS, layers_ui, UI_REGISTER
-from rigify import rigs
+
+from .utils import MetarigError, new_bone, get_rig_type
+from .utils import ORG_PREFIX, MCH_PREFIX, DEF_PREFIX, WGT_PREFIX, ROOT_NAME, make_original_name
+from .utils import RIG_DIR
+from .utils import create_root_widget
+from .utils import random_id
+from .utils import copy_attributes
+from .rig_ui_template import UI_SLIDERS, layers_ui, UI_REGISTER
RIG_MODULE = "rigs"
ORG_LAYER = [n == 31 for n in range(0, 32)] # Armature layer that original bones should be moved to.
diff --git a/rigify/metarig_menu.py b/rigify/metarig_menu.py
index 58826903..20225e10 100644
--- a/rigify/metarig_menu.py
+++ b/rigify/metarig_menu.py
@@ -22,6 +22,7 @@ import os
from string import capwords
import bpy
+
from . import utils
diff --git a/rigify/rig_lists.py b/rigify/rig_lists.py
new file mode 100644
index 00000000..c8c56310
--- /dev/null
+++ b/rigify/rig_lists.py
@@ -0,0 +1,83 @@
+#====================== BEGIN GPL LICENSE BLOCK ======================
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+#======================= END GPL LICENSE BLOCK ========================
+
+import os
+
+from . import utils
+
+
+def get_rig_list(path):
+ """ Recursively searches for rig types, and returns a list.
+ """
+ rigs = []
+ MODULE_DIR = os.path.dirname(__file__)
+ RIG_DIR_ABS = os.path.join(MODULE_DIR, utils.RIG_DIR)
+ SEARCH_DIR_ABS = os.path.join(RIG_DIR_ABS, path)
+ files = os.listdir(SEARCH_DIR_ABS)
+ files.sort()
+
+ for f in files:
+ is_dir = os.path.isdir(os.path.join(SEARCH_DIR_ABS, f)) # Whether the file is a directory
+ if f[0] in {".", "_"}:
+ pass
+ elif f.count(".") >= 2 or (is_dir and "." in f):
+ print("Warning: %r, filename contains a '.', skipping" % os.path.join(SEARCH_DIR_ABS, f))
+ else:
+ if is_dir:
+ # Check directories
+ module_name = os.path.join(path, f).replace(os.sep, ".")
+ try:
+ rig = utils.get_rig_type(module_name)
+ except ImportError as e:
+ print("Rigify: " + str(e))
+ else:
+ # Check if it's a rig itself
+ if not hasattr(rig, "Rig"):
+ # Check for sub-rigs
+ ls = get_rig_list(os.path.join(path, f, "")) # "" adds a final slash
+ rigs.extend(["%s.%s" % (f, l) for l in ls])
+ else:
+ rigs += [f]
+
+ elif f.endswith(".py"):
+ # Check straight-up python files
+ t = f[:-3]
+ module_name = os.path.join(path, t).replace(os.sep, ".")
+ try:
+ utils.get_rig_type(module_name).Rig
+ except (ImportError, AttributeError):
+ pass
+ else:
+ rigs += [t]
+ rigs.sort()
+ return rigs
+
+
+def get_collection_list(rig_list):
+ collection_list = []
+ for r in rig_list:
+ a = r.split(".")
+ if len(a) >= 2 and a[0] not in collection_list:
+ collection_list += [a[0]]
+ return collection_list
+
+
+# Public variables
+rig_list = get_rig_list("")
+collection_list = get_collection_list(rig_list)
+col_enum_list = [("All", "All", ""), ("None", "None", "")] + [(c, c, "") for c in collection_list]
diff --git a/rigify/rigs/basic/copy.py b/rigify/rigs/basic/copy.py
index be04830b..9deb0e11 100644
--- a/rigify/rigs/basic/copy.py
+++ b/rigify/rigs/basic/copy.py
@@ -19,9 +19,10 @@
# <pep8 compliant>
import bpy
-from rigify.utils import copy_bone
-from rigify.utils import strip_org, make_deformer_name
-from rigify.utils import create_bone_widget
+
+from ...utils import copy_bone
+from ...utils import strip_org, make_deformer_name
+from ...utils import create_bone_widget
class Rig:
diff --git a/rigify/rigs/basic/copy_chain.py b/rigify/rigs/basic/copy_chain.py
index 4b4f0c85..a56e65c3 100644
--- a/rigify/rigs/basic/copy_chain.py
+++ b/rigify/rigs/basic/copy_chain.py
@@ -19,11 +19,12 @@
# <pep8 compliant>
import bpy
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_deformer_name
-from rigify.utils import create_bone_widget
+
+from ...utils import MetarigError
+from ...utils import copy_bone
+from ...utils import connected_children_names
+from ...utils import strip_org, make_deformer_name
+from ...utils import create_bone_widget
class Rig:
diff --git a/rigify/rigs/biped/arm/deform.py b/rigify/rigs/biped/arm/deform.py
index 4ed2cc47..ad6d8634 100644
--- a/rigify/rigs/biped/arm/deform.py
+++ b/rigify/rigs/biped/arm/deform.py
@@ -18,13 +18,15 @@
# <pep8 compliant>
-import bpy
from math import acos
+
+import bpy
from mathutils import Vector, Matrix
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone, put_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name, make_deformer_name
+
+from ....utils import MetarigError
+from ....utils import copy_bone, put_bone
+from ....utils import connected_children_names
+from ....utils import strip_org, make_mechanism_name, make_deformer_name
def align_roll(obj, bone1, bone2):
diff --git a/rigify/rigs/biped/arm/fk.py b/rigify/rigs/biped/arm/fk.py
index 77031227..e27e8541 100644
--- a/rigify/rigs/biped/arm/fk.py
+++ b/rigify/rigs/biped/arm/fk.py
@@ -19,14 +19,15 @@
# <pep8 compliant>
import bpy
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name
-from rigify.utils import get_layers
-from rigify.utils import create_widget, create_limb_widget
from rna_prop_ui import rna_idprop_ui_prop_get
+from ....utils import MetarigError
+from ....utils import copy_bone
+from ....utils import connected_children_names
+from ....utils import strip_org, make_mechanism_name
+from ....utils import get_layers
+from ....utils import create_widget, create_limb_widget
+
class Rig:
""" An FK arm rig, with hinge switch.
diff --git a/rigify/rigs/biped/arm/ik.py b/rigify/rigs/biped/arm/ik.py
index 31383b54..50ae72a9 100644
--- a/rigify/rigs/biped/arm/ik.py
+++ b/rigify/rigs/biped/arm/ik.py
@@ -18,15 +18,17 @@
# <pep8 compliant>
-import bpy
-from mathutils import Vector
from math import pi, acos
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name, insert_before_lr
-from rigify.utils import create_widget, create_line_widget, create_sphere_widget
+
+import bpy
from rna_prop_ui import rna_idprop_ui_prop_get
+from mathutils import Vector
+
+from ....utils import MetarigError
+from ....utils import copy_bone
+from ....utils import connected_children_names
+from ....utils import strip_org, make_mechanism_name, insert_before_lr
+from ....utils import create_widget, create_line_widget, create_sphere_widget
def angle_on_plane(plane, vec1, vec2):
diff --git a/rigify/rigs/biped/leg/deform.py b/rigify/rigs/biped/leg/deform.py
index 76f751f1..0d0bb2a7 100644
--- a/rigify/rigs/biped/leg/deform.py
+++ b/rigify/rigs/biped/leg/deform.py
@@ -18,13 +18,15 @@
# <pep8 compliant>
-import bpy
from math import acos
+
+import bpy
from mathutils import Vector, Matrix
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone, put_bone
-from rigify.utils import connected_children_names, has_connected_children
-from rigify.utils import strip_org, make_mechanism_name, make_deformer_name
+
+from ....utils import MetarigError
+from ....utils import copy_bone, put_bone
+from ....utils import connected_children_names, has_connected_children
+from ....utils import strip_org, make_mechanism_name, make_deformer_name
def align_roll(obj, bone1, bone2):
diff --git a/rigify/rigs/biped/leg/fk.py b/rigify/rigs/biped/leg/fk.py
index 3d776cb7..497c110d 100644
--- a/rigify/rigs/biped/leg/fk.py
+++ b/rigify/rigs/biped/leg/fk.py
@@ -19,14 +19,15 @@
# <pep8 compliant>
import bpy
-from mathutils import Vector
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import connected_children_names, has_connected_children
-from rigify.utils import strip_org, make_mechanism_name
-from rigify.utils import get_layers
-from rigify.utils import create_widget, create_limb_widget
from rna_prop_ui import rna_idprop_ui_prop_get
+from mathutils import Vector
+
+from ....utils import MetarigError
+from ....utils import copy_bone
+from ....utils import connected_children_names, has_connected_children
+from ....utils import strip_org, make_mechanism_name
+from ....utils import get_layers
+from ....utils import create_widget, create_limb_widget
class Rig:
diff --git a/rigify/rigs/biped/leg/ik.py b/rigify/rigs/biped/leg/ik.py
index 7d01a602..98f4a3eb 100644
--- a/rigify/rigs/biped/leg/ik.py
+++ b/rigify/rigs/biped/leg/ik.py
@@ -18,15 +18,17 @@
# <pep8 compliant>
-import bpy
-from mathutils import Vector
from math import pi, acos
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone, flip_bone, put_bone
-from rigify.utils import connected_children_names, has_connected_children
-from rigify.utils import strip_org, make_mechanism_name, insert_before_lr
-from rigify.utils import create_widget, create_line_widget, create_sphere_widget, create_circle_widget
+
+import bpy
from rna_prop_ui import rna_idprop_ui_prop_get
+from mathutils import Vector
+
+from ....utils import MetarigError
+from ....utils import copy_bone, flip_bone, put_bone
+from ....utils import connected_children_names, has_connected_children
+from ....utils import strip_org, make_mechanism_name, insert_before_lr
+from ....utils import create_widget, create_line_widget, create_sphere_widget, create_circle_widget
def align_x_axis(obj, bone, vec):
diff --git a/rigify/rigs/finger.py b/rigify/rigs/finger.py
index 15e1bbac..ff2fc560 100644
--- a/rigify/rigs/finger.py
+++ b/rigify/rigs/finger.py
@@ -18,15 +18,17 @@
# <pep8 compliant>
+import re
+
import bpy
-from mathutils import Vector
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name, make_deformer_name
-from rigify.utils import create_widget, create_limb_widget
from rna_prop_ui import rna_idprop_ui_prop_get
-import re
+from mathutils import Vector
+
+from ..utils import MetarigError
+from ..utils import copy_bone
+from ..utils import connected_children_names
+from ..utils import strip_org, make_mechanism_name, make_deformer_name
+from ..utils import create_widget, create_limb_widget
class Rig:
diff --git a/rigify/rigs/misc/delta.py b/rigify/rigs/misc/delta.py
index d13f7d4e..873515d8 100644
--- a/rigify/rigs/misc/delta.py
+++ b/rigify/rigs/misc/delta.py
@@ -18,11 +18,13 @@
# <pep8 compliant>
-import bpy
from math import acos
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import org_name, make_mechanism_name
+
+import bpy
+
+from ...utils import MetarigError
+from ...utils import copy_bone
+from ...utils import org_name, make_mechanism_name
class Rig:
diff --git a/rigify/rigs/neck_short.py b/rigify/rigs/neck_short.py
index a94b3cef..f7814a0c 100644
--- a/rigify/rigs/neck_short.py
+++ b/rigify/rigs/neck_short.py
@@ -19,13 +19,15 @@
# <pep8 compliant>
import bpy
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone, new_bone, put_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name, make_deformer_name
-from rigify.utils import obj_to_bone, create_circle_widget
from rna_prop_ui import rna_idprop_ui_prop_get
+from ..utils import MetarigError
+from ..utils import copy_bone, new_bone, put_bone
+from ..utils import connected_children_names
+from ..utils import strip_org, make_mechanism_name, make_deformer_name
+from ..utils import obj_to_bone, create_circle_widget
+
+
script1 = """
head_neck = ["%s", "%s"]
"""
diff --git a/rigify/rigs/palm.py b/rigify/rigs/palm.py
index f055dffb..acef0529 100644
--- a/rigify/rigs/palm.py
+++ b/rigify/rigs/palm.py
@@ -18,13 +18,15 @@
# <pep8 compliant>
-import bpy
-from math import cos, pi
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone
-from rigify.utils import strip_org, deformer
-from rigify.utils import create_widget
import re
+from math import cos, pi
+
+import bpy
+
+from ..utils import MetarigError
+from ..utils import copy_bone
+from ..utils import strip_org, deformer
+from ..utils import create_widget
def bone_siblings(obj, bone):
diff --git a/rigify/rigs/spine.py b/rigify/rigs/spine.py
index 56888c8a..332c6f43 100644
--- a/rigify/rigs/spine.py
+++ b/rigify/rigs/spine.py
@@ -26,13 +26,13 @@ from math import floor
import bpy
from mathutils import Vector
-from rigify.utils import MetarigError
-from rigify.utils import copy_bone, new_bone, flip_bone, put_bone
-from rigify.utils import connected_children_names
-from rigify.utils import strip_org, make_mechanism_name, make_deformer_name
-from rigify.utils import obj_to_bone, create_circle_widget, create_compass_widget
from rna_prop_ui import rna_idprop_ui_prop_get
+from ..utils import MetarigError
+from ..utils import copy_bone, new_bone, flip_bone, put_bone
+from ..utils import connected_children_names
+from ..utils import strip_org, make_mechanism_name, make_deformer_name
+from ..utils import obj_to_bone, create_circle_widget, create_compass_widget
script = """
main = "%s"
diff --git a/rigify/ui.py b/rigify/ui.py
index 946b1e70..40121cdc 100644
--- a/rigify/ui.py
+++ b/rigify/ui.py
@@ -18,13 +18,12 @@
# <pep8 compliant>
-# test comment
-
import bpy
from bpy.props import StringProperty
-import rigify
-from rigify.utils import get_rig_type
-from rigify import generate
+
+from .utils import get_rig_type
+from . import rig_lists
+from . import generate
class DATA_PT_rigify_buttons(bpy.types.Panel):
@@ -59,7 +58,7 @@ class DATA_PT_rigify_buttons(bpy.types.Panel):
for i in range(0, len(id_store.rigify_types)):
id_store.rigify_types.remove(0)
- for r in rigify.rig_list:
+ for r in rig_lists.rig_list:
# collection = r.split('.')[0] # UNUSED
if collection_name == "All":
a = id_store.rigify_types.add()
@@ -159,7 +158,7 @@ class BONE_PT_rigify_buttons(bpy.types.Panel):
for i in range(0, len(id_store.rigify_types)):
id_store.rigify_types.remove(0)
- for r in rigify.rig_list:
+ for r in rig_lists.rig_list:
# collection = r.split('.')[0] # UNUSED
if collection_name == "All":
a = id_store.rigify_types.add()
diff --git a/rigify/utils.py b/rigify/utils.py
index 3e23e3a4..de27b37c 100644
--- a/rigify/utils.py
+++ b/rigify/utils.py
@@ -20,6 +20,7 @@
import bpy
import imp
+import importlib
import random
import time
from mathutils import Vector
@@ -266,16 +267,16 @@ def create_widget(rig, bone_name, bone_transform_name=None):
"""
if bone_transform_name == None:
bone_transform_name = bone_name
-
+
obj_name = WGT_PREFIX + bone_name
scene = bpy.context.scene
-
+
# Check if it already exists in the scene
if obj_name in scene.objects:
# Move object to bone position, in case it changed
obj = scene.objects[obj_name]
obj_to_bone(obj, rig, bone_transform_name)
-
+
return None
else:
# Delete object if it exists in blend data but not scene data.
@@ -284,7 +285,7 @@ def create_widget(rig, bone_name, bone_transform_name=None):
if obj_name in bpy.data.objects:
bpy.data.objects[obj_name].user_clear()
bpy.data.objects.remove(bpy.data.objects[obj_name])
-
+
# Create mesh object
mesh = bpy.data.meshes.new(obj_name)
obj = bpy.data.objects.new(obj_name, mesh)
@@ -413,23 +414,17 @@ def copy_attributes(a, b):
def get_rig_type(rig_type):
""" Fetches a rig module by name, and returns it.
"""
- #print("%s.%s.%s" % (__package__,RIG_DIR,rig_type))
- name="%s.%s.%s" % (MODULE_NAME, RIG_DIR, rig_type)
- submod = __import__(name)
- for c in (name.split("."))[1:]:
- submod = getattr(submod, c)
+ name = ".%s.%s" % (RIG_DIR, rig_type)
+ submod = importlib.import_module(name, package=MODULE_NAME)
imp.reload(submod)
return submod
-def get_metarig_module(metarig):
+def get_metarig_module(metarig_name):
""" Fetches a rig module by name, and returns it.
"""
- #print("%s.%s.%s" % (__package__,METARIG_DIR,metarig))
- name="%s.%s.%s" % (MODULE_NAME, METARIG_DIR, metarig)
- submod = __import__(name)
- for c in (name.split("."))[1:]:
- submod = getattr(submod, c)
+ name = ".%s.%s" % (METARIG_DIR, metarig_name)
+ submod = importlib.import_module(name, package=MODULE_NAME)
imp.reload(submod)
return submod
@@ -500,7 +495,7 @@ def write_metarig(obj, layers=False, func_name="create"):
generating the real rig with rigify.
"""
code = []
-
+
code.append("import bpy\n")
code.append("def %s(obj):" % func_name)