[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1086] trunk/py/scripts/addons/ io_export_unreal_psk_psa.py: Added an option to export all action set.

John Phan darkneter at gmail.com
Sat Oct 2 02:59:20 CEST 2010


Revision: 1086
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=1086
Author:   darknet
Date:     2010-10-02 02:59:20 +0200 (Sat, 02 Oct 2010)

Log Message:
-----------
Added an option to export all action set. It will only filter out matching armature bones in in action groups names.

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

Modified: trunk/py/scripts/addons/io_export_unreal_psk_psa.py
===================================================================
--- trunk/py/scripts/addons/io_export_unreal_psk_psa.py	2010-09-26 18:03:02 UTC (rev 1085)
+++ trunk/py/scripts/addons/io_export_unreal_psk_psa.py	2010-10-02 00:59:20 UTC (rev 1086)
@@ -1,34 +1,34 @@
- #  ***** GPL LICENSE BLOCK *****
- #
- #  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 3 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, see <http://www.gnu.org/licenses/>.
- #  All rights reserved.
- #  ***** GPL LICENSE BLOCK *****
+#  ***** GPL LICENSE BLOCK *****
+#
+#  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 3 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, see <http://www.gnu.org/licenses/>.
+#  All rights reserved.
+#  ***** GPL LICENSE BLOCK *****
 
 bl_addon_info = {
-    "name": "Export Skeleletal Mesh/Animation Data",
-    "author": "Darknet/Optimus_P-Fat/Active_Trash/Sinsoft",
-    "version": (2,0),
-    "blender": (2, 5, 3),
-    "api": 31847,
-    "location": "File > Export > Skeletal Mesh/Animation Data (.psk/.psa)",
-    "description": "Export Unreal Engine (.psk)",
-    "warning": "",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
-        "Scripts/File_I-O/Unreal_psk_psa",
-    "tracker_url": "https://projects.blender.org/tracker/index.php?"\
-        "func=detail&aid=21366&group_id=153&atid=469",
-    "category": "Import/Export"}
+	"name": "Export Skeleletal Mesh/Animation Data",
+	"author": "Darknet/Optimus_P-Fat/Active_Trash/Sinsoft",
+	"version": (2,0),
+	"blender": (2, 5, 3),
+	"api": 31847,
+	"location": "File > Export > Skeletal Mesh/Animation Data (.psk/.psa)",
+	"description": "Export Unreal Engine (.psk)",
+	"warning": "",
+	"wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
+		"Scripts/File_I-O/Unreal_psk_psa",
+	"tracker_url": "https://projects.blender.org/tracker/index.php?"\
+		"func=detail&aid=21366&group_id=153&atid=469",
+	"category": "Import/Export"}
 
 """
 -- Unreal Skeletal Mesh and Animation Export (.psk  and .psa) export script v0.0.1 --<br> 
@@ -114,256 +114,256 @@
 # Generic Object->Integer mapping
 # the object must be usable as a dictionary key
 class ObjMap:
-    def __init__(self):
-        self.dict = {}
-        self.next = 0
-    def get(self, obj):
-        if obj in self.dict:
-            return self.dict[obj]
-        else:
-            id = self.next
-            self.next = self.next + 1
-            self.dict[obj] = id
-            return id
-        
-    def items(self):
-        getval = operator.itemgetter(0)
-        getkey = operator.itemgetter(1)
-        return map(getval, sorted(self.dict.items(), key=getkey))
+	def __init__(self):
+		self.dict = {}
+		self.next = 0
+	def get(self, obj):
+		if obj in self.dict:
+			return self.dict[obj]
+		else:
+			id = self.next
+			self.next = self.next + 1
+			self.dict[obj] = id
+			return id
+		
+	def items(self):
+		getval = operator.itemgetter(0)
+		getkey = operator.itemgetter(1)
+		return map(getval, sorted(self.dict.items(), key=getkey))
 
 ########################################################################
 # RG - UNREAL DATA STRUCTS - CONVERTED FROM C STRUCTS GIVEN ON UDN SITE 
 # provided here: http://udn.epicgames.com/Two/BinaryFormatSpecifications.html
 # updated UDK (Unreal Engine 3): http://udn.epicgames.com/Three/BinaryFormatSpecifications.html
 class FQuat:
-    def __init__(self): 
-        self.X = 0.0
-        self.Y = 0.0
-        self.Z = 0.0
-        self.W = 1.0
-        
-    def dump(self):
-        data = pack('ffff', self.X, self.Y, self.Z, self.W)
-        return data
-        
-    def __cmp__(self, other):
-        return cmp(self.X, other.X) \
-            or cmp(self.Y, other.Y) \
-            or cmp(self.Z, other.Z) \
-            or cmp(self.W, other.W)
-        
-    def __hash__(self):
-        return hash(self.X) ^ hash(self.Y) ^ hash(self.Z) ^ hash(self.W)
-        
-    def __str__(self):
-        return "[%f,%f,%f,%f](FQuat)" % (self.X, self.Y, self.Z, self.W)
-        
+	def __init__(self): 
+		self.X = 0.0
+		self.Y = 0.0
+		self.Z = 0.0
+		self.W = 1.0
+		
+	def dump(self):
+		data = pack('ffff', self.X, self.Y, self.Z, self.W)
+		return data
+		
+	def __cmp__(self, other):
+		return cmp(self.X, other.X) \
+			or cmp(self.Y, other.Y) \
+			or cmp(self.Z, other.Z) \
+			or cmp(self.W, other.W)
+		
+	def __hash__(self):
+		return hash(self.X) ^ hash(self.Y) ^ hash(self.Z) ^ hash(self.W)
+		
+	def __str__(self):
+		return "[%f,%f,%f,%f](FQuat)" % (self.X, self.Y, self.Z, self.W)
+		
 class FVector(object):
-    def __init__(self, X=0.0, Y=0.0, Z=0.0):
-        self.X = X
-        self.Y = Y
-        self.Z = Z
-        
-    def dump(self):
-        data = pack('fff', self.X, self.Y, self.Z)
-        return data
-        
-    def __cmp__(self, other):
-        return cmp(self.X, other.X) \
-            or cmp(self.Y, other.Y) \
-            or cmp(self.Z, other.Z)
-        
-    def _key(self):
-        return (type(self).__name__, self.X, self.Y, self.Z)
-        
-    def __hash__(self):
-        return hash(self._key())
-        
-    def __eq__(self, other):
-        if not hasattr(other, '_key'):
-            return False
-        return self._key() == other._key() 
-        
-    def dot(self, other):
-        return self.X * other.X + self.Y * other.Y + self.Z * other.Z
-    
-    def cross(self, other):
-        return FVector(self.Y * other.Z - self.Z * other.Y,
-                self.Z * other.X - self.X * other.Z,
-                self.X * other.Y - self.Y * other.X)
-                
-    def sub(self, other):
-        return FVector(self.X - other.X,
-            self.Y - other.Y,
-            self.Z - other.Z)
+	def __init__(self, X=0.0, Y=0.0, Z=0.0):
+		self.X = X
+		self.Y = Y
+		self.Z = Z
+		
+	def dump(self):
+		data = pack('fff', self.X, self.Y, self.Z)
+		return data
+		
+	def __cmp__(self, other):
+		return cmp(self.X, other.X) \
+			or cmp(self.Y, other.Y) \
+			or cmp(self.Z, other.Z)
+		
+	def _key(self):
+		return (type(self).__name__, self.X, self.Y, self.Z)
+		
+	def __hash__(self):
+		return hash(self._key())
+		
+	def __eq__(self, other):
+		if not hasattr(other, '_key'):
+			return False
+		return self._key() == other._key() 
+		
+	def dot(self, other):
+		return self.X * other.X + self.Y * other.Y + self.Z * other.Z
+	
+	def cross(self, other):
+		return FVector(self.Y * other.Z - self.Z * other.Y,
+				self.Z * other.X - self.X * other.Z,
+				self.X * other.Y - self.Y * other.X)
+				
+	def sub(self, other):
+		return FVector(self.X - other.X,
+			self.Y - other.Y,
+			self.Z - other.Z)
 
 class VJointPos:
-    def __init__(self):
-        self.Orientation = FQuat()
-        self.Position = FVector()
-        self.Length = 0.0
-        self.XSize = 0.0
-        self.YSize = 0.0
-        self.ZSize = 0.0
-        
-    def dump(self):
-        data = self.Orientation.dump() + self.Position.dump() + pack('4f', self.Length, self.XSize, self.YSize, self.ZSize)
-        return data
-            
+	def __init__(self):
+		self.Orientation = FQuat()
+		self.Position = FVector()
+		self.Length = 0.0
+		self.XSize = 0.0
+		self.YSize = 0.0
+		self.ZSize = 0.0
+		
+	def dump(self):
+		data = self.Orientation.dump() + self.Position.dump() + pack('4f', self.Length, self.XSize, self.YSize, self.ZSize)
+		return data
+			
 class AnimInfoBinary:
-    def __init__(self):
-        self.Name = "" # length=64
-        self.Group = ""    # length=64
-        self.TotalBones = 0
-        self.RootInclude = 0
-        self.KeyCompressionStyle = 0
-        self.KeyQuotum = 0
-        self.KeyPrediction = 0.0
-        self.TrackTime = 0.0
-        self.AnimRate = 0.0
-        self.StartBone = 0
-        self.FirstRawFrame = 0
-        self.NumRawFrames = 0
-        
-    def dump(self):
-        data = pack('64s64siiiifffiii', self.Name, self.Group, self.TotalBones, self.RootInclude, self.KeyCompressionStyle, self.KeyQuotum, self.KeyPrediction, self.TrackTime, self.AnimRate, self.StartBone, self.FirstRawFrame, self.NumRawFrames)
-        return data
+	def __init__(self):
+		self.Name = "" # length=64
+		self.Group = ""    # length=64
+		self.TotalBones = 0
+		self.RootInclude = 0
+		self.KeyCompressionStyle = 0
+		self.KeyQuotum = 0
+		self.KeyPrediction = 0.0
+		self.TrackTime = 0.0
+		self.AnimRate = 0.0
+		self.StartBone = 0
+		self.FirstRawFrame = 0
+		self.NumRawFrames = 0
+		
+	def dump(self):
+		data = pack('64s64siiiifffiii', self.Name, self.Group, self.TotalBones, self.RootInclude, self.KeyCompressionStyle, self.KeyQuotum, self.KeyPrediction, self.TrackTime, self.AnimRate, self.StartBone, self.FirstRawFrame, self.NumRawFrames)
+		return data
 
 class VChunkHeader:
-    def __init__(self, name, type_size):
-        self.ChunkID = name # length=20
-        self.TypeFlag = 1999801 # special value
-        self.DataSize = type_size
-        self.DataCount = 0
-        
-    def dump(self):
-        data = pack('20siii', self.ChunkID, self.TypeFlag, self.DataSize, self.DataCount)
-        return data
-        
+	def __init__(self, name, type_size):
+		self.ChunkID = name # length=20
+		self.TypeFlag = 1999801 # special value
+		self.DataSize = type_size
+		self.DataCount = 0
+		
+	def dump(self):
+		data = pack('20siii', self.ChunkID, self.TypeFlag, self.DataSize, self.DataCount)
+		return data
+		
 class VMaterial:
-    def __init__(self):
-        self.MaterialName = "" # length=64

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list