in fairmotion/tasks/motion_graph/motion_graph.py [0:0]
def create_motion_by_following(self, nodes):
motion = velocity.MotionWithVelocity(skel=self.skel, fps=self.fps)
for i in range(len(nodes) - 1):
n1 = nodes[i]
n2 = nodes[i + 1]
nodes_inbetween = nx.shortest_path(self.graph, n1, n2)
range_nodes = (
range(len(nodes_inbetween))
if i == len(nodes) - 2
else range(len(nodes_inbetween) - 1)
)
for j in range_nodes:
n = nodes_inbetween[j]
motion_idx = self.graph.nodes[n]["motion_idx"]
frame_start = self.graph.nodes[n]["frame_start"]
frame_end = self.graph.nodes[n]["frame_end"]
if self.motions[motion_idx] is None:
self.load_motion_at_idx(
motion_idx, self.motion_files[motion_idx]
)
m = motion_ops.cut(
self.motions[motion_idx],
frame_start,
frame_end + self.frames_blend,
)
motion = motion_ops.append_and_blend(
motion, m, blend_length=self.blend_length,
)
return motion