~ubuntu-branches/ubuntu/trusty/blender/trusty

« back to all changes in this revision

Viewing changes to release/scripts/addons/rigify/rigs/palm.py

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-03-06 12:08:47 UTC
  • mfrom: (1.5.1) (14.1.8 experimental)
  • Revision ID: package-import@ubuntu.com-20130306120847-frjfaryb2zrotwcg
Tags: 2.66a-1ubuntu1
* Resynchronize with Debian (LP: #1076930, #1089256, #1052743, #999024,
  #1122888, #1147084)
* debian/control:
  - Lower build-depends on libavcodec-dev since we're not
    doing the libav9 transition in Ubuntu yet

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
# <pep8 compliant>
20
20
 
 
21
import re
 
22
from math import cos, pi
 
23
 
21
24
import bpy
22
 
from math import cos, pi
23
 
from rigify.utils import MetarigError
24
 
from rigify.utils import copy_bone
25
 
from rigify.utils import strip_org, deformer
26
 
from rigify.utils import create_widget
27
 
import re
 
25
 
 
26
from ..utils import MetarigError
 
27
from ..utils import copy_bone
 
28
from ..utils import strip_org, deformer
 
29
from ..utils import create_widget
28
30
 
29
31
 
30
32
def bone_siblings(obj, bone):
160
162
            mod = w.modifiers.new("subsurf", 'SUBSURF')
161
163
            mod.levels = 2
162
164
 
163
 
    @classmethod
164
 
    def add_parameters(self, group):
165
 
        """ Add the parameters of this rig type to the
166
 
            RigifyParameters PropertyGroup
167
 
 
168
 
        """
169
 
        items = [('X', 'X', ''), ('Z', 'Z', '')]
170
 
        group.palm_rotation_axis = bpy.props.EnumProperty(items=items, name="Palm Rotation Axis", default='X')
171
 
 
172
 
    @classmethod
173
 
    def parameters_ui(self, layout, obj, bone):
174
 
        """ Create the ui for the rig parameters.
175
 
 
176
 
        """
177
 
        params = obj.pose.bones[bone].rigify_parameters[0]
178
 
 
179
 
        r = layout.row()
180
 
        r.label(text="Primary rotation axis:")
181
 
        r.prop(params, "palm_rotation_axis", text="")
182
 
 
183
 
    @classmethod
184
 
    def create_sample(self, obj):
185
 
        # generated by rigify.utils.write_metarig
186
 
        bpy.ops.object.mode_set(mode='EDIT')
187
 
        arm = obj.data
188
 
 
189
 
        bones = {}
190
 
 
191
 
        bone = arm.edit_bones.new('palm.parent')
192
 
        bone.head[:] = 0.0000, 0.0000, 0.0000
193
 
        bone.tail[:] = 0.0577, 0.0000, -0.0000
194
 
        bone.roll = 3.1416
195
 
        bone.use_connect = False
196
 
        bones['palm.parent'] = bone.name
197
 
        bone = arm.edit_bones.new('palm.04')
198
 
        bone.head[:] = 0.0577, 0.0315, -0.0000
199
 
        bone.tail[:] = 0.1627, 0.0315, -0.0000
200
 
        bone.roll = 3.1416
201
 
        bone.use_connect = False
202
 
        bone.parent = arm.edit_bones[bones['palm.parent']]
203
 
        bones['palm.04'] = bone.name
204
 
        bone = arm.edit_bones.new('palm.03')
205
 
        bone.head[:] = 0.0577, 0.0105, -0.0000
206
 
        bone.tail[:] = 0.1627, 0.0105, -0.0000
207
 
        bone.roll = 3.1416
208
 
        bone.use_connect = False
209
 
        bone.parent = arm.edit_bones[bones['palm.parent']]
210
 
        bones['palm.03'] = bone.name
211
 
        bone = arm.edit_bones.new('palm.02')
212
 
        bone.head[:] = 0.0577, -0.0105, -0.0000
213
 
        bone.tail[:] = 0.1627, -0.0105, -0.0000
214
 
        bone.roll = 3.1416
215
 
        bone.use_connect = False
216
 
        bone.parent = arm.edit_bones[bones['palm.parent']]
217
 
        bones['palm.02'] = bone.name
218
 
        bone = arm.edit_bones.new('palm.01')
219
 
        bone.head[:] = 0.0577, -0.0315, -0.0000
220
 
        bone.tail[:] = 0.1627, -0.0315, -0.0000
221
 
        bone.roll = 3.1416
222
 
        bone.use_connect = False
223
 
        bone.parent = arm.edit_bones[bones['palm.parent']]
224
 
        bones['palm.01'] = bone.name
225
 
 
226
 
        bpy.ops.object.mode_set(mode='OBJECT')
227
 
        pbone = obj.pose.bones[bones['palm.parent']]
228
 
        pbone.rigify_type = ''
229
 
        pbone.lock_location = (False, False, False)
230
 
        pbone.lock_rotation = (False, False, False)
231
 
        pbone.lock_rotation_w = False
232
 
        pbone.lock_scale = (False, False, False)
233
 
        pbone.rotation_mode = 'QUATERNION'
234
 
        pbone = obj.pose.bones[bones['palm.04']]
235
 
        pbone.rigify_type = ''
236
 
        pbone.lock_location = (False, False, False)
237
 
        pbone.lock_rotation = (False, True, True)
238
 
        pbone.lock_rotation_w = False
239
 
        pbone.lock_scale = (False, False, False)
240
 
        pbone.rotation_mode = 'YXZ'
241
 
        pbone = obj.pose.bones[bones['palm.03']]
242
 
        pbone.rigify_type = ''
243
 
        pbone.lock_location = (False, False, False)
244
 
        pbone.lock_rotation = (False, True, True)
245
 
        pbone.lock_rotation_w = False
246
 
        pbone.lock_scale = (False, False, False)
247
 
        pbone.rotation_mode = 'YXZ'
248
 
        pbone = obj.pose.bones[bones['palm.02']]
249
 
        pbone.rigify_type = ''
250
 
        pbone.lock_location = (False, False, False)
251
 
        pbone.lock_rotation = (False, True, True)
252
 
        pbone.lock_rotation_w = False
253
 
        pbone.lock_scale = (False, False, False)
254
 
        pbone.rotation_mode = 'YXZ'
255
 
        pbone = obj.pose.bones[bones['palm.01']]
256
 
        pbone.rigify_type = 'palm'
257
 
        pbone.lock_location = (False, False, False)
258
 
        pbone.lock_rotation = (False, True, True)
259
 
        pbone.lock_rotation_w = False
260
 
        pbone.lock_scale = (False, False, False)
261
 
        pbone.rotation_mode = 'YXZ'
262
 
        pbone.rigify_parameters.add()
263
 
 
264
 
        bpy.ops.object.mode_set(mode='EDIT')
265
 
        for bone in arm.edit_bones:
266
 
            bone.select = False
267
 
            bone.select_head = False
268
 
            bone.select_tail = False
269
 
        for b in bones:
270
 
            bone = arm.edit_bones[bones[b]]
271
 
            bone.select = True
272
 
            bone.select_head = True
273
 
            bone.select_tail = True
274
 
            arm.edit_bones.active = bone
 
165
 
 
166
def add_parameters(params):
 
167
    """ Add the parameters of this rig type to the
 
168
        RigifyParameters PropertyGroup
 
169
 
 
170
    """
 
171
    items = [('X', 'X', ''), ('Z', 'Z', '')]
 
172
    params.palm_rotation_axis = bpy.props.EnumProperty(items=items, name="Palm Rotation Axis", default='X')
 
173
 
 
174
 
 
175
def parameters_ui(layout, params):
 
176
    """ Create the ui for the rig parameters.
 
177
 
 
178
    """
 
179
    r = layout.row()
 
180
    r.label(text="Primary rotation axis:")
 
181
    r.prop(params, "palm_rotation_axis", text="")
 
182
 
 
183
 
 
184
def create_sample(obj):
 
185
    # generated by rigify.utils.write_metarig
 
186
    bpy.ops.object.mode_set(mode='EDIT')
 
187
    arm = obj.data
 
188
 
 
189
    bones = {}
 
190
 
 
191
    bone = arm.edit_bones.new('palm.parent')
 
192
    bone.head[:] = 0.0000, 0.0000, 0.0000
 
193
    bone.tail[:] = 0.0577, 0.0000, -0.0000
 
194
    bone.roll = 3.1416
 
195
    bone.use_connect = False
 
196
    bones['palm.parent'] = bone.name
 
197
    bone = arm.edit_bones.new('palm.04')
 
198
    bone.head[:] = 0.0577, 0.0315, -0.0000
 
199
    bone.tail[:] = 0.1627, 0.0315, -0.0000
 
200
    bone.roll = 3.1416
 
201
    bone.use_connect = False
 
202
    bone.parent = arm.edit_bones[bones['palm.parent']]
 
203
    bones['palm.04'] = bone.name
 
204
    bone = arm.edit_bones.new('palm.03')
 
205
    bone.head[:] = 0.0577, 0.0105, -0.0000
 
206
    bone.tail[:] = 0.1627, 0.0105, -0.0000
 
207
    bone.roll = 3.1416
 
208
    bone.use_connect = False
 
209
    bone.parent = arm.edit_bones[bones['palm.parent']]
 
210
    bones['palm.03'] = bone.name
 
211
    bone = arm.edit_bones.new('palm.02')
 
212
    bone.head[:] = 0.0577, -0.0105, -0.0000
 
213
    bone.tail[:] = 0.1627, -0.0105, -0.0000
 
214
    bone.roll = 3.1416
 
215
    bone.use_connect = False
 
216
    bone.parent = arm.edit_bones[bones['palm.parent']]
 
217
    bones['palm.02'] = bone.name
 
218
    bone = arm.edit_bones.new('palm.01')
 
219
    bone.head[:] = 0.0577, -0.0315, -0.0000
 
220
    bone.tail[:] = 0.1627, -0.0315, -0.0000
 
221
    bone.roll = 3.1416
 
222
    bone.use_connect = False
 
223
    bone.parent = arm.edit_bones[bones['palm.parent']]
 
224
    bones['palm.01'] = bone.name
 
225
 
 
226
    bpy.ops.object.mode_set(mode='OBJECT')
 
227
    pbone = obj.pose.bones[bones['palm.parent']]
 
228
    pbone.rigify_type = ''
 
229
    pbone.lock_location = (False, False, False)
 
230
    pbone.lock_rotation = (False, False, False)
 
231
    pbone.lock_rotation_w = False
 
232
    pbone.lock_scale = (False, False, False)
 
233
    pbone.rotation_mode = 'QUATERNION'
 
234
    pbone = obj.pose.bones[bones['palm.04']]
 
235
    pbone.rigify_type = ''
 
236
    pbone.lock_location = (False, False, False)
 
237
    pbone.lock_rotation = (False, True, True)
 
238
    pbone.lock_rotation_w = False
 
239
    pbone.lock_scale = (False, False, False)
 
240
    pbone.rotation_mode = 'YXZ'
 
241
    pbone = obj.pose.bones[bones['palm.03']]
 
242
    pbone.rigify_type = ''
 
243
    pbone.lock_location = (False, False, False)
 
244
    pbone.lock_rotation = (False, True, True)
 
245
    pbone.lock_rotation_w = False
 
246
    pbone.lock_scale = (False, False, False)
 
247
    pbone.rotation_mode = 'YXZ'
 
248
    pbone = obj.pose.bones[bones['palm.02']]
 
249
    pbone.rigify_type = ''
 
250
    pbone.lock_location = (False, False, False)
 
251
    pbone.lock_rotation = (False, True, True)
 
252
    pbone.lock_rotation_w = False
 
253
    pbone.lock_scale = (False, False, False)
 
254
    pbone.rotation_mode = 'YXZ'
 
255
    pbone = obj.pose.bones[bones['palm.01']]
 
256
    pbone.rigify_type = 'palm'
 
257
    pbone.lock_location = (False, False, False)
 
258
    pbone.lock_rotation = (False, True, True)
 
259
    pbone.lock_rotation_w = False
 
260
    pbone.lock_scale = (False, False, False)
 
261
    pbone.rotation_mode = 'YXZ'
 
262
 
 
263
    bpy.ops.object.mode_set(mode='EDIT')
 
264
    for bone in arm.edit_bones:
 
265
        bone.select = False
 
266
        bone.select_head = False
 
267
        bone.select_tail = False
 
268
    for b in bones:
 
269
        bone = arm.edit_bones[bones[b]]
 
270
        bone.select = True
 
271
        bone.select_head = True
 
272
        bone.select_tail = True
 
273
        arm.edit_bones.active = bone