Commit e3816f8975e438010030ef3baccc1a827d7966b7

Authored by gtaaas
1 parent c35d34ad
Exists in master

Adiciona movimento Retilineo

Showing 2 changed files with 33 additions and 28 deletions   Show diff stats
@@ -3,8 +3,6 @@ @@ -3,8 +3,6 @@
3 # importa modulos do Python 3 # importa modulos do Python
4 import sys 4 import sys
5 import os 5 import os
6 -  
7 -  
8 # insere o diretorio atual no path 6 # insere o diretorio atual no path
9 # permite que o código seja executado de qualquer diretório, possibilitando acesso aos modulos locais 7 # permite que o código seja executado de qualquer diretório, possibilitando acesso aos modulos locais
10 sys.path.append(os.getcwd()) 8 sys.path.append(os.getcwd())
@@ -12,7 +10,6 @@ sys.path.append(os.getcwd()) @@ -12,7 +10,6 @@ sys.path.append(os.getcwd())
12 # importa modulos nativos do Blender e Python 10 # importa modulos nativos do Blender e Python
13 import bpy 11 import bpy
14 import json 12 import json
15 -  
16 # importa modulos locais 13 # importa modulos locais
17 import util 14 import util
18 import moves 15 import moves
@@ -34,6 +31,8 @@ util.outconf() @@ -34,6 +31,8 @@ util.outconf()
34 31
35 # define a posição dos keyframes 32 # define a posição dos keyframes
36 hands_default_frames = [15,18] 33 hands_default_frames = [15,18]
  34 +# define a posição dos keyframes
  35 +hands_frames_retilineo = [30,33]
37 36
38 # Carrega o objeto presente no avatar 37 # Carrega o objeto presente no avatar
39 armature = bpy.context.scene.objects.get('Armature.001') 38 armature = bpy.context.scene.objects.get('Armature.001')
@@ -70,35 +69,42 @@ def faceConfiguration(handParam, positionFrames, bones): @@ -70,35 +69,42 @@ def faceConfiguration(handParam, positionFrames, bones):
70 def get_endFrame(): 69 def get_endFrame():
71 endsFrame = [18] 70 endsFrame = [18]
72 if(json_input["rightHand"] != []): 71 if(json_input["rightHand"] != []):
73 - if(json_input["rightHand"][0] == "circular" or json_input["rightHand"][0] == "semicircular"):  
74 - endsFrame.append(int(json_input["rightHand"][4]*8*5+15)) 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))
75 if(json_input["leftHand"] != []): 78 if(json_input["leftHand"] != []):
76 - if(json_input["leftHand"][0] == "circular" or json_input["leftHand"][0] == "semicircular"):  
77 - endsFrame.append(int(json_input["leftHand"][4]*8*5+15)) 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))
78 return(max(endsFrame)) 85 return(max(endsFrame))
79 86
80 initialFrame, endFrame = 15, get_endFrame() 87 initialFrame, endFrame = 15, get_endFrame()
81 88
82 -def circular_or_semiCircular(pose, orientation, direction, radius, laps, intensity = 10, initialFrame = 18): 89 +def circular_or_semiCircular(pose, orientation, direction, radius, laps, intensity = 5, initialFrame = 18, turn = None):
83 center = pose.location.x, pose.location.y, pose.location.z 90 center = pose.location.x, pose.location.y, pose.location.z
84 if(orientation == 'perpendicular'): 91 if(orientation == 'perpendicular'):
85 if(direction == 'horario'): 92 if(direction == 'horario'):
86 - endFrame = moves.locationCircular(center, radius, 1, 0, 2, pose, 0, laps, intensity, initialFrame) 93 + endFrame = moves.locationCircular(center, radius, 1, 0, 2, pose, 0, laps, intensity, initialFrame,turn)
87 else: 94 else:
88 - endFrame = moves.locationCircular(center, radius, 0, 1, 2, pose, 0, laps, intensity, initialFrame) 95 + endFrame = moves.locationCircular(center, radius, 0, 1, 2, pose, 0, laps, intensity, initialFrame,turn)
89 elif(orientation == 'paralelo'): 96 elif(orientation == 'paralelo'):
90 if(direction == 'horario'): 97 if(direction == 'horario'):
91 - endFrame = moves.locationCircular(center, radius, 1, 2, 0, pose, 0, laps, intensity, initialFrame) 98 + endFrame = moves.locationCircular(center, radius, 1, 2, 0, pose, 0, laps, intensity, initialFrame,turn)
92 else: 99 else:
93 - endFrame = moves.locationCircular(center, radius, 2, 1, 0, pose, 0, laps, intensity, initialFrame) 100 + endFrame = moves.locationCircular(center, radius, 2, 1, 0, pose, 0, laps, intensity, initialFrame,turn)
94 elif(orientation == 'plano'): 101 elif(orientation == 'plano'):
95 if(direction == 'horario'): 102 if(direction == 'horario'):
96 - endFrame = moves.locationCircular(center, radius, 2, 0, 1, pose, 0, laps, intensity, initialFrame) 103 + endFrame = moves.locationCircular(center, radius, 2, 0, 1, pose, 0, laps, intensity, initialFrame,turn)
97 else: 104 else:
98 - endFrame = moves.locationCircular(center, radius, 0, 2, 1, pose, 0, laps, intensity, initialFrame) 105 + endFrame = moves.locationCircular(center, radius, 0, 2, 1, pose, 0, laps, intensity, initialFrame,turn)
99 return endFrame 106 return endFrame
100 107
101 -  
102 #------------------ Configurações------------------------------ 108 #------------------ Configurações------------------------------
103 109
104 #Função que inicia a configuração de ambas as mãos 110 #Função que inicia a configuração de ambas as mãos
@@ -123,8 +129,9 @@ def configureHands(): @@ -123,8 +129,9 @@ def configureHands():
123 endFrame = circular_or_semiCircular(pose, orientation, direction, radius, laps, 5) 129 endFrame = circular_or_semiCircular(pose, orientation, direction, radius, laps, 5)
124 generationConfigurations(actions[i], json_input[hands[i]][-3:], [endFrame], bones_[i]) 130 generationConfigurations(actions[i], json_input[hands[i]][-3:], [endFrame], bones_[i])
125 elif(json_input[hands[i]][0] == "retilineo"): 131 elif(json_input[hands[i]][0] == "retilineo"):
126 - pass  
127 - 132 + generationConfigurations(actions[i], json_input[hands[i]][-6:-3], hands_default_frames, bones_[i])
  133 + generationConfigurations(actions[i], json_input[hands[i]][-3:],hands_frames_retilineo, bones_[i])
  134 +
128 # Função que inicia a configuração da face 135 # Função que inicia a configuração da face
129 def configureFace(): 136 def configureFace():
130 global endFrame 137 global endFrame
@@ -133,11 +140,9 @@ def configureFace(): @@ -133,11 +140,9 @@ def configureFace():
133 faceConfiguration(json_input["facialExp"], [endFrame/4], util.faceBonesConf) 140 faceConfiguration(json_input["facialExp"], [endFrame/4], util.faceBonesConf)
134 141
135 # Default Pose 142 # Default Pose
136 - 143 +print(endFrame)
137 poseDefault([1, endFrame+15], util.allBones) 144 poseDefault([1, endFrame+15], util.allBones)
138 configureHands() 145 configureHands()
139 configureFace() 146 configureFace()
140 147
141 -  
142 -  
143 -util.render_sign(json_input["userId"], json_input["signName"], 1, endFrame + 25) 148 +util.render_sign(json_input["userId"], json_input["signName"], 1, endFrame + 25)
144 \ No newline at end of file 149 \ No newline at end of file
1 # -*- coding: UTF-8 -*- 1 # -*- coding: UTF-8 -*-
2 import math 2 import math
3 3
4 -def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPosition, laps, frameJump = 10, initialFrame = 18, turn = None): 4 +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) 5 sqrt22 = radius * (math.sqrt(2) / 2)
6 rad2 = (radius/2) 6 rad2 = (radius/2)
7 currentFrame = initialFrame 7 currentFrame = initialFrame
@@ -70,8 +70,8 @@ def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPositi @@ -70,8 +70,8 @@ def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPositi
70 pose.location[k_axis] = center[k_axis] + rad2 70 pose.location[k_axis] = center[k_axis] + rad2
71 elif(turn == -1): 71 elif(turn == -1):
72 pose.location[i_axis] = center[i_axis] - sqrt22 72 pose.location[i_axis] = center[i_axis] - sqrt22
73 - pose.location[j_axis] = center[j_axis] - ray2  
74 - pose.location[k_axis] = center[k_axis] - ray2 73 + pose.location[j_axis] = center[j_axis] - rad2
  74 + pose.location[k_axis] = center[k_axis] - rad2
75 pose.keyframe_insert(frame = currentFrame, index = -1, data_path = 'location') 75 pose.keyframe_insert(frame = currentFrame, index = -1, data_path = 'location')
76 currentFrame += frameJump 76 currentFrame += frameJump
77 77
@@ -94,12 +94,12 @@ def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPositi @@ -94,12 +94,12 @@ def locationCircular(center, radius, i_axis, j_axis, k_axis, pose, initialPositi
94 pose.location[k_axis] = center[k_axis] 94 pose.location[k_axis] = center[k_axis]
95 if(turn == 1): 95 if(turn == 1):
96 pose.location[i_axis] = center[i_axis] + sqrt22 96 pose.location[i_axis] = center[i_axis] + sqrt22
97 - pose.location[j_axis] = center[j_axis] - ray2  
98 - pose.location[k_axis] = center[k_axis] + ray2 97 + pose.location[j_axis] = center[j_axis] - rad2
  98 + pose.location[k_axis] = center[k_axis] + rad2
99 elif(turn == -1): 99 elif(turn == -1):
100 pose.location[i_axis] = center[i_axis] + sqrt22 100 pose.location[i_axis] = center[i_axis] + sqrt22
101 - pose.location[j_axis] = center[j_axis] - ray2  
102 - pose.location[k_axis] = center[k_axis] - ray2 101 + pose.location[j_axis] = center[j_axis] - rad2
  102 + pose.location[k_axis] = center[k_axis] - rad2
103 pose.keyframe_insert(frame = currentFrame, index = -1, data_path = 'location') 103 pose.keyframe_insert(frame = currentFrame, index = -1, data_path = 'location')
104 currentFrame += frameJump 104 currentFrame += frameJump
105 currentFrame -= frameJump 105 currentFrame -= frameJump