[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1192] trunk/py/scripts/addons/ animation_rotobezier.py: Feature request by jpbouza: keyframing tilt and bevel (optional)
Daniel Salazar
zanqdo at gmail.com
Tue Nov 23 21:12:42 CET 2010
Revision: 1192
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=1192
Author: zanqdo
Date: 2010-11-23 21:12:42 +0100 (Tue, 23 Nov 2010)
Log Message:
-----------
Feature request by jpbouza: keyframing tilt and bevel (optional)
Modified Paths:
--------------
trunk/py/scripts/addons/animation_rotobezier.py
Modified: trunk/py/scripts/addons/animation_rotobezier.py
===================================================================
--- trunk/py/scripts/addons/animation_rotobezier.py 2010-11-23 12:57:31 UTC (rev 1191)
+++ trunk/py/scripts/addons/animation_rotobezier.py 2010-11-23 20:12:42 UTC (rev 1192)
@@ -19,10 +19,10 @@
bl_addon_info = {
'name': 'RotoBezier',
'author': 'Daniel Salazar <zanqdo at gmail.com>',
- 'version': (0, 6),
+ 'version': (0, 7),
'blender': (2, 5, 5),
'api': 33232,
- 'location': 'Select a Curve: Toolbar > RotoBezier panel',
+ 'location': 'Select a Curve: Properties > Curve > RotoBezier panel',
'description': 'Allows animation of bezier curves for rotoscoping',
'warning': 'Currently adding new CVs to an already animated curve isn\'t safe',
'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/'\
@@ -41,12 +41,33 @@
Rev 0.4 moved from curve properties to toolbar
Rev 0.5 added pass index property
Rev 0.6 re-arranged UI
+Rev 0.7 Adding options for what properties to keyframe
-------------------------------------------------------------------------'''
-
import bpy
+from bpy.props import *
+
#
+# Property Definitions
+#
+bpy.types.WindowManager.key_points = BoolProperty(
+ name="Points",
+ description="Insert keyframes on points",
+ default=True)
+
+bpy.types.WindowManager.key_bevel = BoolProperty(
+ name="Bevel",
+ description="Insert keyframes on bevel",
+ default=False)
+
+bpy.types.WindowManager.key_tilt = BoolProperty(
+ name="Tilt",
+ description="Insert keyframes on tilt",
+ default=False)
+
+
+#
# GUI (Panel)
#
class VIEW3D_PT_rotobezier(bpy.types.Panel):
@@ -60,7 +81,7 @@
def poll(self, context):
if context.active_object:
return context.active_object.type == 'CURVE'
-
+
# draw the gui
def draw(self, context):
layout = self.layout
@@ -69,6 +90,11 @@
col.label(text="Keyframing:")
row = col.row()
+ row.prop(context.window_manager, "key_points")
+ row.prop(context.window_manager, "key_bevel")
+ row.prop(context.window_manager, "key_tilt")
+
+ row = col.row()
row.operator('curve.insert_keyframe_rotobezier')
row.operator('curve.delete_keyframe_rotobezier')
row = layout.row()
@@ -99,7 +125,8 @@
bl_idname = 'curve.insert_keyframe_rotobezier'
bl_description = 'Insert a RotoBezier Keyframe'
bl_options = {'REGISTER', 'UNDO'}
-
+
+
# on mouse up:
def invoke(self, context, event):
@@ -109,10 +136,9 @@
def execute(op, context):
-
-
+
Obj = context.active_object
-
+
if Obj.type == 'CURVE':
Mode = False
if context.mode != 'OBJECT':
@@ -122,9 +148,14 @@
for Splines in Data.splines:
for CVs in Splines.bezier_points:
- CVs.keyframe_insert('co')
- CVs.keyframe_insert('handle_left')
- CVs.keyframe_insert('handle_right')
+ if context.window_manager.key_points:
+ CVs.keyframe_insert('co')
+ CVs.keyframe_insert('handle_left')
+ CVs.keyframe_insert('handle_right')
+ if context.window_manager.key_bevel:
+ CVs.keyframe_insert('radius')
+ if context.window_manager.key_tilt:
+ CVs.keyframe_insert('tilt')
if Mode:
bpy.ops.object.editmode_toggle()
@@ -138,7 +169,8 @@
bl_idname = 'curve.delete_keyframe_rotobezier'
bl_description = 'Delete a RotoBezier Keyframe'
bl_options = {'REGISTER', 'UNDO'}
-
+
+
# on mouse up:
def invoke(self, context, event):
@@ -148,7 +180,7 @@
def execute(op, context):
-
+
Obj = context.active_object
if Obj.type == 'CURVE':
@@ -160,9 +192,14 @@
for Splines in Data.splines:
for CVs in Splines.bezier_points:
- CVs.keyframe_delete('co')
- CVs.keyframe_delete('handle_left')
- CVs.keyframe_delete('handle_right')
+ if context.window_manager.key_points:
+ CVs.keyframe_delete('co')
+ CVs.keyframe_delete('handle_left')
+ CVs.keyframe_delete('handle_right')
+ if context.window_manager.key_bevel:
+ CVs.keyframe_delete('radius')
+ if context.window_manager.key_tilt:
+ CVs.keyframe_delete('tilt')
if Mode:
bpy.ops.object.editmode_toggle()
More information about the Bf-extensions-cvs
mailing list