[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2552] trunk/py/scripts/addons/ io_export_after_effects.py: changed convert_name().

Bartek Skorupa bartekskorupa at bartekskorupa.com
Tue Nov 1 09:43:05 CET 2011


Revision: 2552
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2552
Author:   bartekskorupa
Date:     2011-11-01 08:43:04 +0000 (Tue, 01 Nov 2011)
Log Message:
-----------
changed convert_name(). Prevent errors in AE when user inputs invalid chars

Modified Paths:
--------------
    trunk/py/scripts/addons/io_export_after_effects.py

Modified: trunk/py/scripts/addons/io_export_after_effects.py
===================================================================
--- trunk/py/scripts/addons/io_export_after_effects.py	2011-10-30 10:56:20 UTC (rev 2551)
+++ trunk/py/scripts/addons/io_export_after_effects.py	2011-11-01 08:43:04 UTC (rev 2552)
@@ -21,7 +21,7 @@
     'name': 'Export: Adobe After Effects (.jsx)',
     'description': 'Export selected cameras, objects & bundles to Adobe After Effects CS3 and above',
     'author': 'Bartek Skorupa',
-    'version': (0, 55),
+    'version': (0, 56),
     'blender': (2, 6, 0),
     'api': 41098,
     'location': 'File > Export > Adobe After Effects (.jsx)',
@@ -69,10 +69,10 @@
     for ob in obs:
         if ob.type == 'CAMERA':
             cameras.append(ob)
-            cams_names.append(convert_name(ob, prefix))
+            cams_names.append(convert_name(False, ob, prefix))
         else:
             nulls.append(ob)
-            nulls_names.append(convert_name(ob, prefix))
+            nulls_names.append(convert_name(False, ob, prefix))
 
     selection = {
         'cameras': cameras,
@@ -85,14 +85,22 @@
 
 
 # convert names of objects to avoid errors in AE. Add user specified prefix
-def convert_name(ob, prefix):
-    ob_name = ob.name
-    for c in (" ", ".", ",", "-", "=", "+", "*"):
-        ob_name = ob_name.replace(c, "_")
+def convert_name(is_comp, ob, prefix):
+    if is_comp:
+        ob_name = ob + prefix
+        ob_name = ob_name.replace('"', "_")
+    else:
+        ob_name = ob.name + prefix
 
-    return prefix + ob_name
+        if ob_name[0].isdigit():
+            ob_name = "_" + ob_name
+            
+        ob_name = bpy.path.clean_name(ob_name)
+        ob_name = ob_name.replace("-", "_")
 
+    return ob_name
 
+
 # get object's blender's location and rotation and return AE's Position and Rotation/Orientation
 # this function will be called for every object for every frame
 def convert_pos_rot_matrix(matrix, width, height, aspect, x_rot_correction=False):
@@ -320,7 +328,7 @@
                             #convert the position into AE space
                             ae_pos_rot = convert_pos_rot_matrix(matrix, data['width'], data['height'], data['aspect'], x_rot_correction=False)
                             #get the name of the tracker
-                            name_ae = convert_name(track, prefix)
+                            name_ae = convert_name(False, track, prefix)
                             #write JS script for this Bundle
                             jsx_file.write('var %s = newComp.layers.addNull();\n' % name_ae)
                             jsx_file.write('%s.threeDLayer = true;\n' % name_ae)
@@ -343,6 +351,7 @@
 def main(file, context, export_bundles, comp_name, prefix):
     data = get_comp_data(context)
     selection = get_selected(context, prefix)
+    comp_name = convert_name(True, comp_name, "")
     write_jsx_file(file, data, selection, export_bundles, comp_name, prefix)
     print ("\nExport to After Effects Completed")
     return {'FINISHED'}



More information about the Bf-extensions-cvs mailing list