Commit 28995370fafb6225df3c0f4b6e52d11a376f0a03

Authored by gtaaas
1 parent e3816f89
Exists in master

Modificações na pose orientação da mão direita do avatar

avatar_Hozana_wikiLibras.blend
No preview for this file type
@@ -65,45 +65,7 @@ def faceConfiguration(handParam, positionFrames, bones): @@ -65,45 +65,7 @@ def faceConfiguration(handParam, positionFrames, bones):
65 # Função responsável por setar a configuração da face 65 # Função responsável por setar a configuração da face
66 setPose([7], handParam, positionFrames, bones) 66 setPose([7], handParam, positionFrames, bones)
67 67
68 -# Função que recupera o frame final do movimento  
69 -def get_endFrame():  
70 - endsFrame = [18]  
71 - if(json_input["rightHand"] != []):  
72 - if(json_input["rightHand"][0] == "circular"):  
73 - endsFrame.append(int(json_input["rightHand"][4]*8*5+18))  
74 - elif(json_input["rightHand"][0] == "semicircular"):  
75 - endsFrame.append(int(json_input["rightHand"][4]*5*5+18))  
76 - elif(json_input["rightHand"][0] == "retilineo"):  
77 - endsFrame.append(max(hands_frames_retilineo))  
78 - if(json_input["leftHand"] != []):  
79 - if(json_input["leftHand"][0] == "circular"):  
80 - endsFrame.append(int(json_input["leftHand"][4]*8*5+18))  
81 - elif(json_input["leftHand"][0] == "semicircular"):  
82 - endsFrame.append(int(json_input["rightHand"][4]*5*5+18))  
83 - elif(json_input["rightHand"][0] == "retilineo"):  
84 - endsFrame.append(max(hands_frames_retilineo))  
85 - return(max(endsFrame))  
86 -  
87 -initialFrame, endFrame = 15, get_endFrame()  
88 -  
89 -def circular_or_semiCircular(pose, orientation, direction, radius, laps, intensity = 5, initialFrame = 18, turn = None):  
90 - center = pose.location.x, pose.location.y, pose.location.z  
91 - if(orientation == 'perpendicular'):  
92 - if(direction == 'horario'):  
93 - endFrame = moves.locationCircular(center, radius, 1, 0, 2, pose, 0, laps, intensity, initialFrame,turn)  
94 - else:  
95 - endFrame = moves.locationCircular(center, radius, 0, 1, 2, pose, 0, laps, intensity, initialFrame,turn)  
96 - elif(orientation == 'paralelo'):  
97 - if(direction == 'horario'):  
98 - endFrame = moves.locationCircular(center, radius, 1, 2, 0, pose, 0, laps, intensity, initialFrame,turn)  
99 - else:  
100 - endFrame = moves.locationCircular(center, radius, 2, 1, 0, pose, 0, laps, intensity, initialFrame,turn)  
101 - elif(orientation == 'plano'):  
102 - if(direction == 'horario'):  
103 - endFrame = moves.locationCircular(center, radius, 2, 0, 1, pose, 0, laps, intensity, initialFrame,turn)  
104 - else:  
105 - endFrame = moves.locationCircular(center, radius, 0, 2, 1, pose, 0, laps, intensity, initialFrame,turn)  
106 - return endFrame 68 +initialFrame, endFrame = 15, util.get_endFrame(json_input,hands_frames_retilineo)
107 69
108 #------------------ Configurações------------------------------ 70 #------------------ Configurações------------------------------
109 71
1 # -*- coding: UTF-8 -*- 1 # -*- coding: UTF-8 -*-
2 import math 2 import math
3 3
  4 +def circular_or_semiCircular(pose, orientation, direction, radius, laps, intensity = 5, initialFrame = 18, turn = None):
  5 + center = pose.location.x, pose.location.y, pose.location.z
  6 + if(orientation == 'perpendicular'):
  7 + if(direction == 'horario'):
  8 + endFrame = moves.locationCircular(center, radius, 1, 0, 2, pose, 0, laps, intensity, initialFrame,turn)
  9 + else:
  10 + endFrame = moves.locationCircular(center, radius, 0, 1, 2, pose, 0, laps, intensity, initialFrame,turn)
  11 + elif(orientation == 'paralelo'):
  12 + if(direction == 'horario'):
  13 + endFrame = moves.locationCircular(center, radius, 1, 2, 0, pose, 0, laps, intensity, initialFrame,turn)
  14 + else:
  15 + endFrame = moves.locationCircular(center, radius, 2, 1, 0, pose, 0, laps, intensity, initialFrame,turn)
  16 + elif(orientation == 'plano'):
  17 + if(direction == 'horario'):
  18 + endFrame = moves.locationCircular(center, radius, 2, 0, 1, pose, 0, laps, intensity, initialFrame,turn)
  19 + else:
  20 + endFrame = moves.locationCircular(center, radius, 0, 2, 1, pose, 0, laps, intensity, initialFrame,turn)
  21 + return endFrame
  22 +
4 def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPosition, laps, frameJump = 5, initialFrame = 18, turn = None): 23 def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPosition, laps, frameJump = 5, initialFrame = 18, turn = None):
5 sqrt22 = radius * (math.sqrt(2) / 2) 24 sqrt22 = radius * (math.sqrt(2) / 2)
6 rad2 = (radius/2) 25 rad2 = (radius/2)
@@ -32,39 +32,22 @@ def render_sign(userId, signName, beginFrame, endFrame): @@ -32,39 +32,22 @@ def render_sign(userId, signName, beginFrame, endFrame):
32 bpy.context.scene.frame_end = endFrame 32 bpy.context.scene.frame_end = endFrame
33 bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "") 33 bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "")
34 bpy.ops.wm.quit_blender() 34 bpy.ops.wm.quit_blender()
35 -  
36 -"""  
37 -def flip(frame, lado):  
38 - print ("flipou Frame: " + str(frame) + " BONE: " + str(bones[lado]))  
39 - for i in range(0, 4, 1):  
40 - bpy.Object.Get("Armature.001").getAction().getChannelIpo(bones[lado]).getCurves()[i][frame]*=-1  
41 -  
42 -def fixRots(lado):  
43 - keyFrames = bpy.Object.Get("Armature.001").getAction().getFrameNumbers()  
44 - rotFrames = [[]]  
45 - status = [True] * (len(keyFrames) + 1)  
46 -  
47 - for i in range(0, len(keyFrames), 1):  
48 - bpy.Set('curframe', keyFrames[i])  
49 - rotFrames[-1] = bpy.Object.Get("Armature.001").getPose().bones[bones[lado]].quat.toEuler()  
50 - rotFrames.append( [] )  
51 -  
52 - rotFrames.remove([])  
53 -  
54 - for k in range(1, len(keyFrames), 1):  
55 - for i in range(0, 3, 1):  
56 - if (math.fabs(rotFrames[k][i] - rotFrames[k-1][i])) > 180 :  
57 - status[k] = False  
58 -  
59 - print (status[0:len(status)-1])  
60 -  
61 - for k in range(1, len(keyFrames), 1):  
62 - if status[k] == False:  
63 - flip(keyFrames[k], lado)  
64 - if status[k+1] == True:  
65 - status[k+1] = False  
66 - else:  
67 - status[k+1] = True  
68 35
69 - print (status[0:len(status)-1])  
70 -"""  
71 \ No newline at end of file 36 \ No newline at end of file
  37 +# Função que recupera o frame final do movimento
  38 +def get_endFrame(json_input,hands_frames_retilineo):
  39 + endsFrame = [18]
  40 + if(json_input["rightHand"] != []):
  41 + if(json_input["rightHand"][0] == "circular"):
  42 + endsFrame.append(int(json_input["rightHand"][4]*8*5+18))
  43 + elif(json_input["rightHand"][0] == "semicircular"):
  44 + endsFrame.append(int(json_input["rightHand"][4]*5*5+18))
  45 + elif(json_input["rightHand"][0] == "retilineo"):
  46 + endsFrame.append(max(hands_frames_retilineo))
  47 + if(json_input["leftHand"] != []):
  48 + if(json_input["leftHand"][0] == "circular"):
  49 + endsFrame.append(int(json_input["leftHand"][4]*8*5+18))
  50 + elif(json_input["leftHand"][0] == "semicircular"):
  51 + endsFrame.append(int(json_input["rightHand"][4]*5*5+18))
  52 + elif(json_input["rightHand"][0] == "retilineo"):
  53 + endsFrame.append(max(hands_frames_retilineo))
  54 + return(max(endsFrame))