Gallery

SpaceMonkey Final

Hello, Truly enjoying this tutorial, thank you cgcookie and Kent! I did not have a sculpt of human head laying around so I used the blender monkey. Also played a bit with cycles and shaders as I try learn the program. For me the biggest challenges sculpting were: - viewport performance, enabling VBO's in USER PREFERENCE made a HUGE DIFFERENCE. - sculpt performance. Made a little script(below) that decimates and optimizes mesh. - hotkeys I would like to ask tutor the following: - If i have SMOOTH STROKE(lazy stroke/mouse) enabled and i hold Shift(for Smooth brush) then annoyingly smooth stroke is enabled there as well. I really like how in ZB as it's treated as separate brush with its own properties. Ideally i would like SHIFT+LEFT CLICK to trigger both SMOOTH BRUSH as well as custom python script (that toggles) but as I experimented, i failed to trigger two actions with same hotkey. Is that even possible? - this would be most elegant solution. What are the alternatives? Modal python script? (would that not be too slow) - Similar to ZB is there a way to create pie_menu(or any other type) for BRUSH SELECTION instead of relying only on hotkeys or going to menu all the time? Sharing some scripts: #// SmoothStroke (lazymouse) toggle for active brush (make an OP with it and bind to hotkey - e.g L like in ZB): bpy.context.tool_settings.sculpt.brush.use_smooth_stroke= not bpy.context.tool_settings.sculpt.brush.use_smooth_stroke #// Decimate and optimize mesh script import bpy class nwDecimate(bpy.types.Operator): """Tooltip Sculpt Decimate""" bl_idname = "nw.decimate" bl_label = "nw Decimate Mesh" def invoke(self, context, abc): print ("Decimating") bpy.ops.ed.undo_push(message="Add an undo step *function may be moved*") if( bpy.context.sculpt_object.use_dynamic_topology_sculpting): bpy.ops.sculpt.dynamic_topology_toggle() bpy.ops.object.modifier_add(type='DECIMATE') bpy.context.object.modifiers["Decimate"].ratio = 0.7 bpy.context.object.modifiers["Decimate"].use_collapse_triangulate = True bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Decimate") if(not bpy.context.sculpt_object.use_dynamic_topology_sculpting): bpy.ops.sculpt.dynamic_topology_toggle() bpy.ops.sculpt.optimize() return {'FINISHED'} def register(): bpy.utils.register_class(nwDecimate) def unregister(): bpy.utils.unregister_class(nwDecimate) if __name__ == "__main__": register()
0 Comments
Add a Comment