From 5da257ab5d6cfb0c2e2a3aa44a2dfa3b776901e0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 6 Dec 2011 17:40:39 +0000 Subject: minor edits - remove check if sensor width exists for chan files - tag nuke chan files to be pep8 - remove unused import --- io_anim_nuke_chan/__init__.py | 12 +++++++----- io_anim_nuke_chan/export_nuke_chan.py | 26 +++++++++++--------------- io_anim_nuke_chan/import_nuke_chan.py | 25 +++++++++++-------------- 3 files changed, 29 insertions(+), 34 deletions(-) (limited to 'io_anim_nuke_chan') diff --git a/io_anim_nuke_chan/__init__.py b/io_anim_nuke_chan/__init__.py index 142fb4c7..4a267b02 100644 --- a/io_anim_nuke_chan/__init__.py +++ b/io_anim_nuke_chan/__init__.py @@ -16,6 +16,8 @@ # # ##### END GPL LICENSE BLOCK ##### +# + bl_info = { "name": "Nuke Animation Format (.chan)", "author": "Michael Krupa", @@ -50,7 +52,7 @@ from bpy.props import (StringProperty, EnumProperty) # property shared by both operators -rot_ord = EnumProperty( +rotation_order = EnumProperty( name="Rotation order", description="Choose the export rotation order", items=(('XYZ', "XYZ", "XYZ"), @@ -73,7 +75,7 @@ class ImportChan(Operator, ImportHelper): filter_glob = StringProperty(default="*.chan", options={'HIDDEN'}) - rot_ord = rot_ord + rotation_order = rotation_order z_up = BoolProperty( name="Make Z up", description="Switch the Y and Z axis", @@ -88,7 +90,7 @@ class ImportChan(Operator, ImportHelper): return import_nuke_chan.read_chan(context, self.filepath, self.z_up, - self.rot_ord) + self.rotation_order) class ExportChan(Operator, ExportHelper): @@ -103,7 +105,7 @@ class ExportChan(Operator, ExportHelper): name="Make Y up", description="Switch the Y and Z axis", default=True) - rot_ord = rot_ord + rotation_order = rotation_order @classmethod def poll(cls, context): @@ -114,7 +116,7 @@ class ExportChan(Operator, ExportHelper): return export_nuke_chan.save_chan(context, self.filepath, self.y_up, - self.rot_ord) + self.rotation_order) def menu_func_import(self, context): diff --git a/io_anim_nuke_chan/export_nuke_chan.py b/io_anim_nuke_chan/export_nuke_chan.py index 4e1cd120..bae6762a 100644 --- a/io_anim_nuke_chan/export_nuke_chan.py +++ b/io_anim_nuke_chan/export_nuke_chan.py @@ -16,6 +16,8 @@ # # ##### END GPL LICENSE BLOCK ##### +# + """ This script is an exporter to the nuke's .chan files. It takes the currently active object and writes it's transformation data into a text file with .chan extension.""" @@ -29,6 +31,7 @@ def save_chan(context, filepath, y_up, rot_ord): # get the active scene and object scene = context.scene obj = context.active_object + camera = obj.data if obj.type == 'CAMERA' else None # get the range of an animation f_start = scene.frame_start @@ -72,28 +75,21 @@ def save_chan(context, filepath, y_up, rot_ord): fw("%f\t%f\t%f\t" % (degrees(r[0]), degrees(r[1]), degrees(r[2]))) # if we have a camera, add the focal length - if obj.type == 'CAMERA': - sensor_x = 0 - sensor_y = 0 - if hasattr(obj.data, "sensor_width"): # Preserve compatibility - if obj.data.sensor_fit == 'VERTICAL': - sensor_x = obj.data.sensor_width - sensor_y = obj.data.sensor_height - else: - sensor_x = obj.data.sensor_width - sensor_y = sensor_x * res_ratio + if camera: + if camera.sensor_fit == 'VERTICAL': + sensor_x = camera.sensor_width + sensor_y = camera.sensor_height else: - sensor_x = 32 # standard blender's sensor size + sensor_x = camera.sensor_width sensor_y = sensor_x * res_ratio - - cam_lens = obj.data.lens + cam_lens = camera.lens # calculate the vertical field of view # we know the vertical size of (virtual) sensor, the focal length # of the camera so all we need to do is to feed this data to - # atan2 function whitch returns the degree (in radians) of + # atan2 function whitch returns the degree (in radians) of # an angle formed by a triangle with two legs of a given lengths - vfov = degrees(atan2(sensor_y / 2, cam_lens))*2 + vfov = degrees(atan2(sensor_y / 2, cam_lens)) * 2.0 fw("%f" % vfov) fw("\n") diff --git a/io_anim_nuke_chan/import_nuke_chan.py b/io_anim_nuke_chan/import_nuke_chan.py index ec76955d..717c3f9d 100644 --- a/io_anim_nuke_chan/import_nuke_chan.py +++ b/io_anim_nuke_chan/import_nuke_chan.py @@ -16,6 +16,8 @@ # # ##### END GPL LICENSE BLOCK ##### +# + """ This script is an importer for the nuke's .chan files""" from mathutils import Vector, Matrix, Euler @@ -27,6 +29,7 @@ def read_chan(context, filepath, z_up, rot_ord): # get the active object scene = context.scene obj = context.active_object + camera = obj.data if obj.type == 'CAMERA' else None # get the resolution (needed to calculate the camera lens) res_x = scene.render.resolution_x @@ -104,23 +107,17 @@ def read_chan(context, filepath, z_up, rot_ord): # check if the object is camera and fov data is present - if obj.type == 'CAMERA' and len(data) > 7: + if camera and len(data) > 7: v_fov = float(data[7]) - sensor_x = 0 - sensor_y = 0 - if hasattr(obj.data, "sensor_width"): # Preserve compatibility - if obj.data.sensor_fit == 'VERTICAL': - sensor_x = obj.data.sensor_width - sensor_y = obj.data.sensor_height - else: - sensor_x = obj.data.sensor_width - sensor_y = sensor_x * res_ratio + if camera.sensor_fit == 'VERTICAL': + sensor_x = camera.sensor_width + sensor_y = camera.sensor_height else: - sensor_x = 32 # standard blender's sensor size + sensor_x = camera.sensor_width sensor_y = sensor_x * res_ratio - lenslen = ((sensor_y / 2.0) / tan(radians(v_fov / 2.0))) - obj.data.lens = lenslen - obj.data.keyframe_insert("lens") + + camera.lens = ((sensor_y / 2.0) / tan(radians(v_fov / 2.0))) + camera.keyframe_insert("lens") filehandle.close() return {'FINISHED'} -- cgit v1.2.3