import bpy
import mathutils
import math

keynames=[]
keyvalues=[]
modelname="Alien"
eyel=bpy.data.objects["MP_Unimorph_Eye_L"]
eyer=bpy.data.objects["MP_Unimorph_Eye_R"]
obj=bpy.data.objects["MP_Unimorph"]
#f = open(bpy.path.abspath("//Unimorph_Base_Model.txt"), 'a')
f = open("D:\\BY_SPECTRE\\MP_Unimorph\\Unimorph_Base_Model.txt", 'a')
#obj.location = ( 4, 0, 0 )
#obj.rotation_euler.x= (0,0,0)  # Note that you need to use radians rather than angles here

#print (round(obj.location.x,3))
#print (round(math.degrees(obj.rotation_euler.x),3))

#write model name
f.write (modelname+'\n')
#write morphs
for i in range(0,len(obj.data.shape_keys.key_blocks)):
    if obj.data.shape_keys.key_blocks[i].value!=0.0:
        keynames.append(obj.data.shape_keys.key_blocks[i].name)
        keyvalues.append(round(obj.data.shape_keys.key_blocks[i].value,3))
#f.write ('keys=')
f.write (str(keynames).replace('[','').replace(']',''))
f.write ('\n')
#f.write ('values=')
f.write (str(keyvalues).replace('[','').replace(']',''))
f.write ('\n')

#write skin textures
#bpy.path.basename(bpy.context.blend_data.filepath)
f.write (bpy.path.basename(bpy.data.images["Skin_Base"].filepath))
f.write ('\n')

#write eye textures
f.write (bpy.path.basename(bpy.data.images["Eye_Texture"].filepath))
f.write ('\n')

#write Eye_L location
f.write (str(round(eyel.location.x,3))+", ")
f.write (str(round(eyel.location.y,3))+", ")
f.write (str(round(eyel.location.z,3)))
f.write ('\n')
#write Eye_L Rotation
f.write (str(round(eyel.rotation_euler.x,3))+", ")
f.write (str(round(eyel.rotation_euler.y,3))+", ")
f.write (str(round(eyel.rotation_euler.z,3)))
f.write ('\n')

#write Eye_R location
f.write (str(round(eyer.location.x,3))+", ")
f.write (str(round(eyer.location.y,3))+", ")
f.write (str(round(eyer.location.z,3)))
f.write ('\n')
#write Eye_R Rotation
f.write (str(round(eyer.rotation_euler.x,3))+", ")
f.write (str(round(eyer.rotation_euler.y,3))+", ")
f.write (str(round(eyer.rotation_euler.z,3)))
f.write ('\n')

#write Teeth_Top location
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Top"].location.x,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Top"].location.y,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Top"].location.z,3)))
f.write ('\n')
#write Teeth_Bottom location
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Bottom"].location.x,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Bottom"].location.y,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Teeth_Bottom"].location.z,3)))
f.write ('\n')
#write Tongue location
f.write (str(round(bpy.data.objects["MP_Unimorph_Tongue"].location.x,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Tongue"].location.y,3))+", ")
f.write (str(round(bpy.data.objects["MP_Unimorph_Tongue"].location.z,3)))
f.write ('\n')
#write eyes morphs
#keynames=[]
#keyvalues=[]
#for i in range(0,len(eyel.data.shape_keys.key_blocks)):
#    if eyel.data.shape_keys.key_blocks[i].value!=0.0:
#        keynames.append(eye.data.shape_keys.key_blocks[i].name)
#        keyvalues.append(round(eye.data.shape_keys.key_blocks[i].value,3))
##f.write ('keys=')
#f.write (str(keynames).replace('[','').replace(']',''))
#f.write ('\n')
##f.write ('values=')
#f.write (str(keyvalues).replace('[','').replace(']',''))
#write layers
#lr=[]
#layers=bpy.context.scene.layers
#for i in layers:
#    lr.append(layers[i])
#f.write (str(lr).replace('[','').replace(']','')+'\n')
f.write ('<<<')
f.write ('\n')
f.close() 