[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3952] trunk/py/scripts/addons/ io_import_scene_unreal_psa_psk.py: SVN maintenance.

gsr b3d gsr.b3d at infernal-iceberg.com
Sun Nov 11 04:30:00 CET 2012


Revision: 3952
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3952
Author:   gsrb3d
Date:     2012-11-11 03:29:51 +0000 (Sun, 11 Nov 2012)
Log Message:
-----------
SVN maintenance.

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

Property Changed:
----------------
    trunk/py/scripts/addons/io_import_scene_unreal_psa_psk.py

Modified: trunk/py/scripts/addons/io_import_scene_unreal_psa_psk.py
===================================================================
--- trunk/py/scripts/addons/io_import_scene_unreal_psa_psk.py	2012-11-10 23:00:38 UTC (rev 3951)
+++ trunk/py/scripts/addons/io_import_scene_unreal_psa_psk.py	2012-11-11 03:29:51 UTC (rev 3952)
@@ -1,1089 +1,1089 @@
-# ##### BEGIN 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-bl_info = {
-    "name": "Import Unreal Skeleton Mesh (.psk)/Animation Set (psa)",
-    "author": "Darknet, flufy3d, camg188",
-    "version": (2, 1),
-    "blender": (2, 6, 4),
-    "location": "File > Import > Skeleton Mesh (.psk)/Animation Set (psa)",
-    "description": "Import Skeleleton Mesh/Animation Data",
-    "warning": "",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"
-        "Scripts/Import-Export/Unreal_psk_psa",
-    "tracker_url": "https://projects.blender.org/tracker/index.php?"\
-        "func=detail&aid=21366",
-    "category": "Import-Export"}
-
-"""
-Version': '2.0' ported by Darknet
-
-Unreal Tournament PSK file to Blender mesh converter V1.0
-Author: D.M. Sturgeon (camg188 at the elYsium forum), ported by Darknet
-Imports a *psk file to a new mesh
-
--No UV Texutre
--No Weight
--No Armature Bones
--No Material ID
--Export Text Log From Current Location File (Bool )
-"""
-
-import bpy
-import mathutils
-import math
-from mathutils import *
-from math import *
-from bpy.props import *
-from string import *
-from struct import *
-from math import *
-from bpy.props import *
-
-bpy.types.Scene.unrealbonesize = FloatProperty(
-    name="Bone Length",
-    description="Bone Length from head to tail distance",
-    default=1,min=0.001,max=1000)
-
-#output log in to txt file
-DEBUGLOG = False
-
-scale = 1.0
-bonesize = 1.0
-from bpy_extras.io_utils import unpack_list, unpack_face_list
-
-class md5_bone:
-    bone_index=0
-    name=""
-    bindpos=[]
-    bindmat=[]
-    origmat=[]
-    head=[]
-    tail=[]
-    scale = []
-    parent=""
-    parent_index=0
-    blenderbone=None
-    roll=0
-
-    def __init__(self):
-        self.bone_index=0
-        self.name=""
-        self.bindpos=[0.0]*3
-        self.scale=[0.0]*3
-        self.head=[0.0]*3
-        self.tail=[0.0]*3
-        self.bindmat=[None]*3  #is this how you initilize a 2d-array
-        for i in range(3): self.bindmat[i] = [0.0]*3
-        self.origmat=[None]*3  #is this how you initilize a 2d-array
-        for i in range(3): self.origmat[i] = [0.0]*3
-        self.parent=""
-        self.parent_index=0
-        self.blenderbone=None
-
-    def dump(self):
-        print ("bone index: ", self.bone_index)
-        print ("name: ", self.name)
-        print ("bind position: ", self.bindpos)
-        print ("bind translation matrix: ", self.bindmat)
-        print ("parent: ", self.parent)
-        print ("parent index: ", self.parent_index)
-        print ("blenderbone: ", self.blenderbone)
-        
-def getheadpos(pbone,bones):
-    pos_head = [0.0]*3
-
-    #pos = mathutils.Vector((x,y,z)) * pbone.origmat
-    pos = pbone.bindmat.to_translation()
-    
-    """
-    tmp_bone = pbone
-    while tmp_bone.name != tmp_bone.parent.name:
-        pos = pos * tmp_bone.parent.bindmat
-        tmp_bone = tmp_bone.parent
-    """
-    
-    pos_head[0] = pos.x
-    pos_head[1] = pos.y
-    pos_head[2] = pos.z
-    
-    return pos_head
-def gettailpos(pbone,bones):
-    pos_tail = [0.0]*3
-    ischildfound = False
-    childbone = None
-    childbonelist = []
-    for bone in bones:
-        if bone.parent.name == pbone.name:
-            ischildfound = True
-            childbone = bone
-            childbonelist.append(bone)
-            
-    if ischildfound:
-        tmp_head = [0.0]*3
-        for bone in childbonelist:
-            tmp_head[0] += bone.head[0]
-            tmp_head[1] += bone.head[1]
-            tmp_head[2] += bone.head[2]
-        tmp_head[0] /= len(childbonelist)
-        tmp_head[1] /= len(childbonelist)
-        tmp_head[2] /= len(childbonelist)
-        return tmp_head
-    else:
-        tmp_len = 0.0
-        tmp_len += (pbone.head[0] - pbone.parent.head[0])**2
-        tmp_len += (pbone.head[1] - pbone.parent.head[1])**2
-        tmp_len += (pbone.head[2] - pbone.parent.head[2])**2
-        tmp_len = tmp_len**0.5 * 0.5
-        pos_tail[0] = pbone.head[0] + tmp_len * pbone.bindmat[0][0]
-        pos_tail[1] = pbone.head[1] + tmp_len * pbone.bindmat[1][0]
-        pos_tail[2] = pbone.head[2] + tmp_len * pbone.bindmat[2][0]
-
-        
-    return pos_tail
-
-        
-        
-def pskimport(infile,importmesh,importbone,bDebugLogPSK,importmultiuvtextures):
-    global DEBUGLOG
-    DEBUGLOG = bDebugLogPSK
-    print ("--------------------------------------------------")
-    print ("---------SCRIPT EXECUTING PYTHON IMPORTER---------")
-    print ("--------------------------------------------------")
-    print (" DEBUG Log:",bDebugLogPSK)
-    print ("Importing file: ", infile)
-    
-    pskfile = open(infile,'rb')
-    if (DEBUGLOG):
-        logpath = infile.replace(".psk", ".txt")
-        print("logpath:",logpath)
-        logf = open(logpath,'w')
-        
-    def printlog(strdata):
-        if (DEBUGLOG):
-            logf.write(strdata)
-    
-    objName = infile.split('\\')[-1].split('.')[0]
-    
-    me_ob = bpy.data.meshes.new(objName)
-    print("objName:",objName)
-    printlog(("New Mesh = " + me_ob.name + "\n"))
-    #read general header
-    indata = unpack('20s3i',pskfile.read(32))
-    #not using the general header at this time
-    #================================================================================================== 
-    # vertex point
-    #================================================================================================== 
-    #read the PNTS0000 header
-    indata = unpack('20s3i',pskfile.read(32))
-    recCount = indata[3]
-    printlog(( "Nbr of PNTS0000 records: " + str(recCount) + "\n"))
-    counter = 0
-    verts = []
-    verts2 = []
-    while counter < recCount:
-        counter = counter + 1
-        indata = unpack('3f',pskfile.read(12))
-        #print(indata[0],indata[1],indata[2])
-        verts.extend([(indata[0],indata[1],indata[2])])
-        verts2.extend([(indata[0],indata[1],indata[2])])
-        #print([(indata[0],indata[1],indata[2])])
-        printlog(str(indata[0]) + "|" +str(indata[1]) + "|" +str(indata[2]) + "\n")
-        #Tmsh.vertices.append(NMesh.Vert(indata[0],indata[1],indata[2]))
-        
-    #================================================================================================== 
-    # UV
-    #================================================================================================== 
-    #read the VTXW0000 header
-    indata = unpack('20s3i',pskfile.read(32))
-    recCount = indata[3]
-    printlog( "Nbr of VTXW0000 records: " + str(recCount)+ "\n")
-    counter = 0
-    UVCoords = []
-    #UVCoords record format = [index to PNTS, U coord, v coord]
-    printlog("[index to PNTS, U coord, v coord]\n");
-    while counter < recCount:
-        counter = counter + 1
-        indata = unpack('hhffhh',pskfile.read(16))
-        UVCoords.append([indata[0],indata[2],indata[3]])
-        printlog(str(indata[0]) + "|" +str(indata[2]) + "|" +str(indata[3])+"\n")
-        #print('mat index %i',indata(4))
-        #print([indata[0],indata[2],indata[3]])
-        #print([indata[1],indata[2],indata[3]])
-        
-    #================================================================================================== 
-    # Face
-    #================================================================================================== 
-    #read the FACE0000 header
-    indata = unpack('20s3i',pskfile.read(32))
-    recCount = indata[3]
-    printlog( "Nbr of FACE0000 records: "+ str(recCount) + "\n")
-    #PSK FACE0000 fields: WdgIdx1|WdgIdx2|WdgIdx3|MatIdx|AuxMatIdx|SmthGrp
-    #associate MatIdx to an image, associate SmthGrp to a material
-    SGlist = []
-    counter = 0
-    faces = []
-    faceuv = []
-    facesmooth = []
-    #the psk values are: nWdgIdx1|WdgIdx2|WdgIdx3|MatIdx|AuxMatIdx|SmthGrp
-    printlog("nWdgIdx1|WdgIdx2|WdgIdx3|MatIdx|AuxMatIdx|SmthGrp \n")
-    while counter < recCount:
-        counter = counter + 1
-        indata = unpack('hhhbbi',pskfile.read(12))        
-        printlog(str(indata[0]) + "|" +str(indata[1]) + "|" +str(indata[2])+ "|" +str(indata[3])+ "|" +str(indata[4])+ "|" +str(indata[5]) + "\n")
-        #indata[0] = index of UVCoords
-        #UVCoords[indata[0]]=[index to PNTS, U coord, v coord]
-        #UVCoords[indata[0]][0] = index to PNTS
-        PNTSA = UVCoords[indata[2]][0]
-        PNTSB = UVCoords[indata[1]][0]
-        PNTSC = UVCoords[indata[0]][0]
-        #print(PNTSA,PNTSB,PNTSC) #face id vertex
-        #faces.extend([0,1,2,0])
-        faces.extend([(PNTSA,PNTSB,PNTSC,0)])
-        uv = []
-        u0 = UVCoords[indata[2]][1]
-        v0 = UVCoords[indata[2]][2]
-        uv.append([u0,1.0 - v0])
-        u1 = UVCoords[indata[1]][1]
-        v1 = UVCoords[indata[1]][2]
-        uv.append([u1,1.0 - v1])
-        u2 = UVCoords[indata[0]][1]
-        v2 = UVCoords[indata[0]][2]
-        uv.append([u2,1.0 - v2])
-        faceuv.append([uv,indata[3],indata[4],indata[5]])
-        
-        #print("material:",indata[3])
-        #print("UV: ",u0,v0)
-        #update the uv var of the last item in the Tmsh.faces list
-        # which is the face just added above
-        ##Tmsh.faces[-1].uv = [(u0,v0),(u1,v1),(u2,v2)]
-        #print("smooth:",indata[5])
-        #collect a list of the smoothing groups
-        facesmooth.append(indata[5])
-        #print(indata[5])

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list