diff options
Diffstat (limited to 'release/scripts/import_lightwave_motion.py')
-rw-r--r-- | release/scripts/import_lightwave_motion.py | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/release/scripts/import_lightwave_motion.py b/release/scripts/import_lightwave_motion.py deleted file mode 100644 index 20c87dfd5c6..00000000000 --- a/release/scripts/import_lightwave_motion.py +++ /dev/null @@ -1,244 +0,0 @@ -#!BPY - -""" Registration info for Blender menus: <- these words are ignored -Name: 'Lightwave Motion (.mot)...' -Blender: 245 -Group: 'Import' -Tip: 'Import Loc Rot Size chanels from a Lightwave .mot file' -""" - -__author__ = "Daniel Salazar (ZanQdo)" -__url__ = ("blender", "blenderartists.org", -"e-mail: zanqdo@gmail.com") -__version__ = "16/04/08" - -__bpydoc__ = """\ -This script loads Lightwave motion files (.mot) -into the selected objects - -Usage: -Run the script with one or more objects selected (any kind) -Be sure to set the framerate correctly - -""" - -# $Id$ -# -------------------------------------------------------------------------- -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# Copyright (C) 2003, 2004: A Vanpoucke -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# ***** END GPL LICENCE BLOCK ***** -# -------------------------------------------------------------------------- - -import math as M -import Blender as B -import bpy - - -def FuncionPrincipal (Dir): - B.Window.WaitCursor(1) - ObjSelect = B.Object.GetSelected() - - if not ObjSelect: - B.Draw.PupMenu('Select one or more objects, aborting.') - return - - - SC = B.Scene.GetCurrent() - SCR = SC.getRenderingContext() - FrameRate = float(SCR.framesPerSec()) - - - # Creating new IPO - - IPO = B.Ipo.New('Object', 'LW_Motion') - - - # Creating Curves in the IPO - - LocX = IPO.addCurve("LocX") - LocX.setInterpolation("Bezier") - - LocY = IPO.addCurve("LocY") - LocX.setInterpolation("Bezier") - - LocZ = IPO.addCurve("LocZ") - LocX.setInterpolation("Bezier") - - RotX = IPO.addCurve("RotX") - LocX.setInterpolation("Bezier") - - RotY = IPO.addCurve("RotY") - LocX.setInterpolation("Bezier") - - RotZ = IPO.addCurve("RotZ") - LocX.setInterpolation("Bezier") - - ScaleX = IPO.addCurve("ScaleX") - LocX.setInterpolation("Bezier") - - ScaleY = IPO.addCurve("ScaleY") - LocX.setInterpolation("Bezier") - - ScaleZ = IPO.addCurve("ScaleZ") - LocX.setInterpolation("Bezier") - - - # Opening the mot file - - File = open (Dir, 'rU') - - - # Init flags - - CurChannel = -1 - ScaleFlag = 0 - - # Main file reading cycle - - for Line in File: - - ''' - # Number of channels in the file - - if "NumChannels" in Line: - Line = Line.split (' ') - NumChannels = int(Line[1]) - ''' - - # Current Channel Flag - - if "Channel 0" in Line: - CurChannel = 0 - - elif "Channel 1" in Line: - CurChannel = 1 - - elif "Channel 2" in Line: - CurChannel = 2 - - elif "Channel 3" in Line: - CurChannel = 3 - - elif "Channel 4" in Line: - CurChannel = 4 - - elif "Channel 5" in Line: - CurChannel = 5 - - elif "Channel 6" in Line: - CurChannel = 6 - - elif "Channel 7" in Line: - CurChannel = 7 - - elif "Channel 8" in Line: - CurChannel = 8 - - - # Getting the data and writing to IPOs - - if CurChannel == 0: - if "Key" in Line: - Line = Line.split (' ') - ValCh_0 = float (Line [3]) - TimeCh_0 = float (Line [4]) * FrameRate - LocX.addBezier ((TimeCh_0, ValCh_0)) - - if CurChannel == 1: - if "Key" in Line: - Line = Line.split (' ') - ValCh_1 = float (Line [3]) - TimeCh_1 = float (Line [4]) * FrameRate - LocZ.addBezier ((TimeCh_1, ValCh_1)) - - if CurChannel == 2: - if "Key" in Line: - Line = Line.split (' ') - ValCh_2 = float (Line [3]) - TimeCh_2 = float (Line [4]) * FrameRate - LocY.addBezier ((TimeCh_2, ValCh_2)) - - if CurChannel == 3: - if "Key" in Line: - Line = Line.split (' ') - ValCh_3 = M.degrees ( - float (Line [3]) ) / 10 - TimeCh_3 = float (Line [4]) * FrameRate - RotZ.addBezier ((TimeCh_3, ValCh_3)) - - if CurChannel == 4: - if "Key" in Line: - Line = Line.split (' ') - ValCh_4 = M.degrees ( - float (Line [3]) ) / 10 - TimeCh_4 = float (Line [4]) * FrameRate - RotX.addBezier ((TimeCh_4, ValCh_4)) - - if CurChannel == 5: - if "Key" in Line: - Line = Line.split (' ') - ValCh_5 = M.degrees ( - float (Line [3]) ) / 10 - TimeCh_5 = float (Line [4]) * FrameRate - RotY.addBezier ((TimeCh_5, ValCh_5)) - - if CurChannel == 6: - if "Key" in Line: - Line = Line.split (' ') - ValCh_6 = float (Line [3]) - TimeCh_6 = float (Line [4]) * FrameRate - ScaleX.addBezier ((TimeCh_6, ValCh_6)) - elif ScaleFlag < 3: - ScaleFlag += 1 - ScaleX.addBezier ((0, 1)) - - if CurChannel == 7: - if "Key" in Line: - Line = Line.split (' ') - ValCh_7 = float (Line [3]) - TimeCh_7 = float (Line [4]) * FrameRate - ScaleZ.addBezier ((TimeCh_7, ValCh_7)) - elif ScaleFlag < 3: - ScaleFlag += 1 - ScaleZ.addBezier ((0, 1)) - - if CurChannel == 8: - if "Key" in Line: - Line = Line.split (' ') - ValCh_8 = float (Line [3]) - TimeCh_8 = float (Line [4]) * FrameRate - ScaleY.addBezier ((TimeCh_8, ValCh_8)) - elif ScaleFlag < 3: - ScaleFlag += 1 - ScaleY.addBezier ((0, 1)) - - - # Link the IPO to all selected objects - - for ob in ObjSelect: - ob.setIpo(IPO) - - File.close() - - print '\nDone, the following motion file has been loaded:\n\n%s' % Dir - B.Window.WaitCursor(0) - -def main(): - B.Window.FileSelector(FuncionPrincipal, "Load IPO from .mot File", B.sys.makename(ext='.mot')) - -if __name__=='__main__': - main() - |