Commit 2a8d0fcc003cef8d9e8eb6d0c5212ef8ae87b58a

Authored by gtaaas
1 parent d5e23927
Exists in master

corrigido movimentos de mãos individuais

.gitignore
1   -*.avi
2 1 *~
  2 +*.avi
  3 +*.blend
  4 +*.blend1
  5 +*.mp4
3 6 *.pyc
  7 +textures/
4 8 __pycache__
5   -*.mp4
... ...
NewFormat_Json
1 1 '{"userId": 4,"rightHand": ["circular","perpendicular","horario",0.6,1,"conf_20","Ori_4","Pa_6"],"leftHand":["pontual","conf_10","Ori_3","Pa_3"],"facialExp": "Exp_6","signName":"Novis"}'
  2 +
  3 + '{"userId": 4,"rightHand": ["pontual","conf_20","Ori_4","Pa_6"],"leftHand":["circular","perpendicular","horario",0.6,1,"conf_20","Ori_4","Pa_6"],"facialExp": "Exp_6","signName":"pontual_direita"}'
  4 +
  5 +
  6 + '{"userId": 4,"rightHand": ["semicircular","perpendicular","horario",0.6,0.5,"conf_20","Ori_4","Pa_6"],"leftHand":["pontual","conf_10","Ori_3","Pa_3"],"facialExp": "Exp_6","signName":"SemiCircular"}'
... ...
avatar_Hozana_wikiLibras.blend
No preview for this file type
libras.py
1 1 # -*- coding: UTF-8 -*-
2 2 import sys
  3 +sys.path.append('/home/gtaaas/wikilibras/wikilibras-core')
3 4 import json
4 5 import lbsObjects
5 6 import util
6 7  
7   -def circular_or_semiCircular(hand,pose,orientation,direction,radius,laps,intensity,initialFrame = 15):
  8 +
  9 +def circular_or_semiCircular(hand,pose,orientation,direction,radius,laps,intensity = 5,initialFrame = 15):
8 10 center = pose.location.x,pose.location.y,pose.location.z
9 11 if(orientation == 'perpendicular'):
10 12 if(direction == 'horario'):
... ... @@ -18,33 +20,60 @@ def circular_or_semiCircular(hand,pose,orientation,direction,radius,laps,intensi
18 20 endFrame = hand.rotationCircular(center,radius,2,1,0,pose,0,laps,intensity,initialFrame)
19 21 return endFrame
20 22  
  23 +def get_endFrame(json_input):
  24 + endsFrame = []
  25 + if(json_input["rightHand"][0] == "circular" or json_input["rightHand"][0] == "semicircular"):
  26 + endsFrame.append(int(json_input["rightHand"][4]*8*5+15))
  27 + if(json_input["leftHand"][0] == "circular" or json_input["leftHand"][0] == "semicircular"):
  28 + endsFrame.append(int(json_input["leftHand"][4]*8*5+15))
  29 + return(max(endsFrame))
21 30  
22 31 #Configurações gerais
23 32 json_input = json.loads(sys.argv[5]) # Load jason
24 33 util.outconf()
25 34 handPosFrame = {'loc':[15],'rot':[15]}
26 35 armature = lbsObjects.Armadura('Armature.001')
27   -initialFrame,endFrame = 18,25
  36 +initialFrame,endFrame = 18,get_endFrame(json_input)
28 37  
29 38 #Initial Pose
30 39 lbsObjects.Pose({'loc':[0], 'rot':[0]}, armature) #Set the default pose
31 40  
32 41 #ConfHandRight
33 42 if(json_input["rightHand"] != []):
34   - handRight = lbsObjects.MaoDireita(json_input["rightHand"][-3:], handPosFrame, armature)
35   - if(json_input["rightHand"][0] == "circular"):
36   - orientation,direction,radius,laps = json_input["rightHand"][1:5]
37   - pose = armature.pose.bones['ik_FK.R']
38   - endFrame = circular_or_semiCircular(handRight,pose,orientation,direction,radius,laps,5)
39   - handRight.genConf({'loc':[endFrame],'rot':[endFrame]})
40   - handRight.genOri({'loc':[endFrame],'rot':[endFrame]})
  43 + movRight = json_input["rightHand"][0]
  44 + pose = armature.pose.bones['ik_FK.R']
  45 + if(movRight == "pontual"):
  46 + handRight = lbsObjects.MaoDireita(json_input["rightHand"][-3:],{'loc':[15,endFrame],'rot':[15,endFrame]}, armature)
  47 + else:
  48 + handRight = lbsObjects.MaoDireita(json_input["rightHand"][-3:],handPosFrame, armature)
  49 + if(movRight == "circular" or movRight == "semicircular"):
  50 + orientation,direction,radius,laps = json_input["rightHand"][1:5]
  51 + endFrame = circular_or_semiCircular(handRight,pose,orientation,direction,radius,laps,5)
  52 + handRight.genConf({'loc':[endFrame],'rot':[endFrame]})
  53 + handRight.genOri({'loc':[endFrame],'rot':[endFrame]})
  54 + elif(json_input["rightHand"][0] == "retilineo"):
  55 + pass
41 56  
42 57 #ConfLeftRight
43 58 if(json_input["leftHand"] != []):
44   - handLeft = lbsObjects.MaoEsquerda(json_input["leftHand"][-3:], handPosFrame, armature)
  59 + movLeft = json_input["leftHand"][0]
  60 + pose = armature.pose.bones['ik_FK.L']
  61 + if(movLeft == "pontual"):
  62 + handLeft = lbsObjects.MaoEsquerda(json_input["leftHand"][-3:], {'loc':[15,endFrame],'rot':[15,endFrame]}, armature)
  63 + else:
  64 + handLeft = lbsObjects.MaoEsquerda(json_input["leftHand"][-3:], handPosFrame, armature)
  65 + if(movLeft == "circular" or movLeft == "semicircular"):
  66 + orientation,direction,radius,laps = json_input["leftHand"][1:5]
  67 + endFrame = circular_or_semiCircular(handRight,pose,orientation,direction,radius,laps,5)
  68 + handLeft.genConf({'loc':[endFrame],'rot':[endFrame]})
  69 + handLeft.genOri({'loc':[endFrame],'rot':[endFrame]})
  70 + elif(json_input["leftHand"][0] == "retilineo"):
  71 + pass
  72 +
  73 +if(json_input["facialExp"] != []):
  74 + #confFace
  75 + lbsObjects.Face(json_input["facialExp"], armature, endFrame) # Set face
45 76  
46   -#confFace
47   -lbsObjects.Face(json_input["facialExp"], armature, endFrame) # Set face
48 77 #confPoseEnd
49 78 lbsObjects.Pose({'loc':[1,endFrame+20],'rot':[1,endFrame+20]},armature) # Set the final pose
50 79  
... ...
util.py
  1 +# -*- coding: UTF-8 -*-
  2 +
1 3 import bpy
2 4 import math as m
3 5 import subprocess as sub
  6 +import sys
  7 +sys.path.append("./")
4 8  
5 9 bones = ["BnMao.R", "BnMao.L"]
6 10 def sizeRadius(value):
... ... @@ -12,8 +16,6 @@ def sizeRadius(value):
12 16 else:
13 17 return 0.3
14 18  
15   -# 1600 x 1200 -> 00:01:25.158198
16   -# 640 x 480 -> 00:00:41.590239
17 19 def outconf():
18 20 bpy.context.scene.render.resolution_x = 640
19 21 bpy.context.scene.render.resolution_y = 480
... ... @@ -64,10 +66,11 @@ def get_calculo_mov(radius,orientation,sense):
64 66 '''
65 67  
66 68 def render_sign(userId,signName,beginFrame,endFrame):
67   - bpy.context.scene.render.filepath = "//"+ str(userId)+ "//"+ signName + "_"
  69 + bpy.context.scene.render.filepath = "//Users//"+ str(userId)+ "//"+ signName + "_"
68 70 bpy.context.scene.frame_start = beginFrame
69 71 bpy.context.scene.frame_end = endFrame
70 72 bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "")
  73 +
71 74 bpy.ops.wm.quit_blender()
72 75  
73 76 """
... ...