Created
May 22, 2015 22:48
-
-
Save qiuwch/7b9ef11e4f706ff65c9a to your computer and use it in GitHub Desktop.
Snippets to control human model of makehuman
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## | |
| bpy.data.objects | |
| py.data.objects.keys() | |
| # List all objects | |
| # ['Camera', 'CustomShapes', 'GZM_Ball025', 'GZM_Breast_L', 'GZM_Breast_R', 'GZM_Circle025', 'GZM_CircleChest', 'GZM_CircleHips', 'GZM_CircleSpine', 'GZM_CrownHips', 'GZM_Cube025', 'GZM_FaceHead', 'GZM_FaceJaw', 'GZM_Foot', 'GZM_FootIK', 'GZM_Gaze', 'GZM_Hand', 'GZM_HandIK', 'GZM_Head', 'GZM_Jaw', 'GZM_Knuckle', 'GZM_LoLid', 'GZM_Master', 'GZM_Neck', 'GZM_RevFoot', 'GZM_RevToe', 'GZM_Root', 'GZM_Shoulder', 'GZM_Toe', 'GZM_Tongue', 'GZM_UpLid', 'Human', 'Human:Body', 'Human:HighPolyEyes', 'Human:jeans01', 'Human:mhair02', 'Human:Shirt01', 'Human:tongue01', 'Sun'] | |
| human = bpy.data.objects['Human'] | |
| light = bpy.data.objects['Sun'] | |
| human.pose | |
| type(human.pose) # bpy.types.Pose # diff of bpy.types and bpy_types?? | |
| type(human) # bpy_types.Object | |
| type(light) # bpy_types.Object | |
| bones = human.pose.bones | |
| type(bones) # bpy_prop_collection | |
| bones.keys() | |
| # ['master', 'ankle.L', 'hand.ik.R', 'hand.ik.L', 'ankle.R', 'foot.ik.R', 'toe.rev.R', 'foot.rev.R', 'ankle.ik.R', 'knee.pt.ik.R', 'foot.pt.ik.R', 'foot.ik.L', 'toe.rev.L', 'foot.rev.L', 'ankle.ik.L', 'knee.pt.ik.L', 'foot.pt.ik.L', 'root', 'spine', 'spine-1', 'chest', 'chest-1', 'clavicle.R', 'deltoid.R', 'arm_base.R', 'DEF-deltoid.R', 'elbow.pt.ik.R', 'DEF-scapula.R', 'clavicle.L', 'deltoid.L', 'arm_base.L', 'DEF-deltoid.L', 'elbow.pt.ik.L', 'DEF-scapula.L', 'breast.L', 'breast.R', 'DEF-trapezius2.L', 'DEF-trapezius2.R', 'neck', 'DEF-platysma.L', 'DEF-platysma.R', 'DEF-trapezius1.R', 'head', 'gaze_parent', 'gaze', 'jaw', | |
| # Pick a visible bone and animate it | |
| bone = bones['upper_arm.L'] | |
| type(bone) # bpy_types.PoseBone | |
| type(bone.bone) # bpy_types.Bone | |
| # Blender how to select an object | |
| bone.name # upper_arm.L | |
| bone.basename # upper_arm | |
| # Set active object | |
| bpy.context.scene.objects.active # only active object, not active bone | |
| bpy.context.selected_pose_bones # (read-only) | |
| bpy.context.active_pose_bone # (read-only) | |
| # The selected series | |
| # How to change mode? | |
| bpy.context.mode # (read-only) | |
| bpy.ops.pose | |
| bpy.ops.object.mode_set(mode='POSE') | |
| bpy.context.object.data.bones.keys() | |
| thebone=bpy.context.object.data.bones['upper_arm.L'] | |
| type(thebone) | |
| ## | |
| action=bpy.data.actions['DemoAction'] | |
| bpy.ops.object.mode_set(mode='POSE') | |
| thebone=bpy.context.object.pose.bones['upper_arm.L'] | |
| action=bpy.data.actions['ArmatureAction'] | |
| # KEYFRAME ON BONE | |
| bpy.ops.object.mode_set(mode='POSE') | |
| thebone=bpy.context.object.pose.bones['B3'] | |
| thebone.rotation_euler=(-30.0,0.0,0.0) | |
| thebone.keyframe_insert(data_path='rotation_euler',frame=10) | |
| thebone.rotation_euler=(0.0,0.0,0.0) | |
| thebone.keyframe_insert(data_path='rotation_euler',frame=20) | |
| ## Control render with python code | |
| # Get the object of render | |
| bpy.ops.render.render() # invoke selected render | |
| # How to check the rendered output | |
| # Output path is configured in blender option | |
| # The rendering can not be stopped, much worse then running the GUI | |
| ## Load and retarget manually | |
| import makewalk | |
| makewalk.retarget.loadRetargetSimplify(bpy.context, '/Users/qiuwch/Dropbox/Workspace/LocoMotion/MotionCapture/bvh_files/cmuconvert-daz-01-09/01/01_01.bvh') | |
| ## How to run code from editor, super tricky... | |
| sc = bpy.data.texts['Injection']; exec(sc.as_string()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment