Commit 28995370fafb6225df3c0f4b6e52d11a376f0a03
1 parent
e3816f89
Exists in
master
Modificações na pose orientação da mão direita do avatar
Showing
4 changed files
with
38 additions
and
74 deletions
Show diff stats
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)) | ... | ... |