def test_namespace(self):
     test_joints = [self.create_joint(position=(i, i, i)) for i in range(5)]
     self.create_namespace('foo')
     dup_root = skeletonutils.duplicate_skeleton(test_joints[0], dup_namespace='foo')
     expected = [x.nodeName(stripNamespace=True) for x in skeletonutils.get_hierarchy_from_root(test_joints[0])]
     result = [x.nodeName(stripNamespace=True) for x in skeletonutils.get_hierarchy_from_root(dup_root)]
     self.assertListEqual(expected, result)
     self.assertEqual('foo', dup_root.parentNamespace())
 def test_parent(self):
     test_joints = [self.create_joint(position=(i, i, i)) for i in range(5)]
     parent_node = self.create_transform_node()
     dup_root = skeletonutils.duplicate_skeleton(test_joints[0], dup_parent=parent_node)
     expected = [x.nodeName() for x in skeletonutils.get_hierarchy_from_root(test_joints[0])]
     result = [x.nodeName() for x in skeletonutils.get_hierarchy_from_root(dup_root)]
     self.assertListEqual(expected, result)
     self.assertEqual(parent_node, dup_root.getParent())
 def test_dup_namespace(self):
     test_cube, test_joints, test_skincluster = self.create_skinned_cube()
     pm.namespace(set=':')
     self.create_namespace('foo')
     dup_cube, dup_root, dup_cluster = skinutils.duplicate_skinned_mesh_and_skeleton(
         test_cube, dup_namespace='foo')
     self.scene_nodes.extend([dup_cube, dup_root, dup_cluster])
     expected_joint_names = [
         x.nodeName(stripNamespace=True)
         for x in skelutils.get_hierarchy_from_root(test_joints[0])
     ]
     result_joint_names = [
         x.nodeName(stripNamespace=True)
         for x in skelutils.get_hierarchy_from_root(dup_root)
     ]
     self.assertListEqual(expected_joint_names, result_joint_names)
     self.assertNotEqual(test_joints, dup_cluster.influenceObjects())
     self.assertNotEqual(test_cube, dup_cube)
     self.assertEqual('foo', dup_root.parentNamespace())
Esempio n. 4
0
def duplicate_skinned_mesh_and_skeleton(skinned_mesh, dup_namespace=None, copy_skinning=True, bind_method=bind_mesh_to_joints, dup_parent=None):
    skin_cluster = get_skincluster(skinned_mesh)
    source_influences = skin_cluster.influenceObjects()
    source_skeleton_root = skelutils.get_root_joint_from_child(source_influences[0])
    if dup_namespace:
        nsutils.add_namespace_to_root(dup_namespace)
    dup_root = skelutils.duplicate_skeleton(source_skeleton_root, dup_namespace=dup_namespace, dup_parent=dup_parent)
    dup_skel = skelutils.get_hierarchy_from_root(dup_root, joints_only=True)
    dup_mesh, dup_cluster = duplicate_skinned_mesh_to_influences(skinned_mesh, dup_skel,
                                                                 copy_skinning=copy_skinning, bind_method=bind_method, dup_namespace=dup_namespace, dup_parent=dup_parent)
    return dup_mesh, dup_root, dup_cluster
 def test_default_params(self):
     test_joints = [self.create_joint(position=(i, i, i)) for i in range(5)]
     dummy_cube = self.create_cube()
     dummy_cube2 = self.create_cube()
     dummy_cube3 = self.create_cube()
     con = pm.parentConstraint(dummy_cube, test_joints[0])
     dummy_cube2.setParent(test_joints[1])
     dummy_cube3.setParent(test_joints[2])
     test_joints[4].setParent(dummy_cube3)
     expected = test_joints[0].getChildren(allDescendents=True, type='transform')
     expected.append(test_joints[0])
     expected.reverse()
     result = skeletonutils.get_hierarchy_from_root(test_joints[0])
     self.assertListEqual(expected, result)
 def test_duplicates_skeleton(self):
     test_joints = [self.create_joint(position=(i, i, i)) for i in range(5)]
     dup_root = skeletonutils.duplicate_skeleton(test_joints[0])
     expected = [x.nodeName() for x in skeletonutils.get_hierarchy_from_root(test_joints[0])[1:]]
     result = [x.nodeName() for x in skeletonutils.get_hierarchy_from_root(dup_root)[1:]]
     self.assertListEqual(expected, result)