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
libras.py
... ... @@ -65,45 +65,7 @@ def faceConfiguration(handParam, positionFrames, bones):
65 65 # Função responsável por setar a configuração da face
66 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 70 #------------------ Configurações------------------------------
109 71  
... ...
moves.py
1 1 # -*- coding: UTF-8 -*-
2 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 23 def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPosition, laps, frameJump = 5, initialFrame = 18, turn = None):
5 24 sqrt22 = radius * (math.sqrt(2) / 2)
6 25 rad2 = (radius/2)
... ...
util.py
... ... @@ -32,39 +32,22 @@ def render_sign(userId, signName, beginFrame, endFrame):
32 32 bpy.context.scene.frame_end = endFrame
33 33 bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "")
34 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 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))
... ...