velocity mode

This commit is contained in:
christophe.seux 2025-01-31 15:43:22 +01:00
parent d11d1e0435
commit 0d8ab41c57
2 changed files with 6 additions and 19 deletions

View File

@ -89,7 +89,6 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
scn = bpy.context.scene scn = bpy.context.scene
settings = context.scene.gp_interpo_settings settings = context.scene.gp_interpo_settings
col = settings.target_collection
## Prepare context manager ## Prepare context manager
attrs = [ attrs = [
@ -107,7 +106,8 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
instance_col_mod = velocity_ob.modifiers.new('IngestCollection', 'NODES') instance_col_mod = velocity_ob.modifiers.new('IngestCollection', 'NODES')
ingest_node_group = load_datablock(RESOURCES_DIR/'nodes.blend', 'Ingest Collection', type='node_groups', link=False) ingest_node_group = load_datablock(RESOURCES_DIR/'nodes.blend', 'Ingest Collection', type='node_groups', link=False)
instance_col_mod.node_group = ingest_node_group instance_col_mod.node_group = ingest_node_group
instance_col_mod["Socket_2"] = col instance_col_mod["Socket_3"] = settings.target_object
instance_col_mod["Socket_2"] = settings.target_collection
scn.collection.objects.link(velocity_ob) scn.collection.objects.link(velocity_ob)
@ -159,32 +159,25 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
scn = context.scene scn = context.scene
cam = scn.camera cam = scn.camera
#dg = bpy.context.evaluated_depsgraph_get() #dg = bpy.context.evaluated_depsgraph_get()
col = self.settings.target_collection target_object = self.settings.target_object
target_col = self.settings.target_collection
smooth_level = self.settings.smooth_level smooth_level = self.settings.smooth_level
origin = scn.camera.matrix_world.to_translation() origin = scn.camera.matrix_world.to_translation()
plane_co, plane_no = get_gp_draw_plane(self.gp) plane_co, plane_no = get_gp_draw_plane(self.gp)
#print("interpolate_frame")
print(self.gp_matrix)
print(self.gp.matrix_world)
velocity_ob = self.velocity_ob velocity_ob = self.velocity_ob
velocity_ob.hide_set(True) velocity_ob.hide_set(True)
grid_velocity_mod = velocity_ob.modifiers.new('VelocityGrid', 'NODES') grid_velocity_mod = velocity_ob.modifiers.new('VelocityGrid', 'NODES')
grid_velocity_mod.node_group = self.velocity_node_group grid_velocity_mod.node_group = self.velocity_node_group
grid_velocity_mod["Socket_2"] = col grid_velocity_mod["Socket_8"] = target_object
grid_velocity_mod["Socket_2"] = target_col
grid_velocity_mod["Socket_4"] = self.camera grid_velocity_mod["Socket_4"] = self.camera
grid_velocity_mod["Socket_5"] = self.camera.data.angle grid_velocity_mod["Socket_5"] = self.camera.data.angle
grid_velocity_mod["Socket_6"] = self.camera.data.shift_x grid_velocity_mod["Socket_6"] = self.camera.data.shift_x
grid_velocity_mod["Socket_7"] = self.camera.data.shift_y grid_velocity_mod["Socket_7"] = self.camera.data.shift_y
#raise Exception()
# Apply velocity grid modifier # Apply velocity grid modifier
dg = bpy.context.evaluated_depsgraph_get() dg = bpy.context.evaluated_depsgraph_get()
eval_ob = velocity_ob.evaluated_get(dg) eval_ob = velocity_ob.evaluated_get(dg)
@ -195,8 +188,6 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
#scn.collection.objects.link(copy_ob) #scn.collection.objects.link(copy_ob)
velocity_ob.modifiers.remove(grid_velocity_mod) velocity_ob.modifiers.remove(grid_velocity_mod)
#velocity_ob.data = eval_data
#Create kd tree for finding nearest points #Create kd tree for finding nearest points
kd = KDTree(len(grid_ob.data.vertices)) kd = KDTree(len(grid_ob.data.vertices))
@ -209,12 +200,10 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
kd.balance() kd.balance()
#nb_strokes = len(self.gp.data.layers.active.active_frame.strokes)
bpy.ops.gpencil.paste(type='LAYER') bpy.ops.gpencil.paste(type='LAYER')
## List of newly pasted strokes (using range) ## List of newly pasted strokes (using range)
new_strokes = [s for l in self.layers for s in l.active_frame.strokes if s.select] new_strokes = [s for l in self.layers for s in l.active_frame.strokes if s.select]
#new_strokes = self.gp.data.layers.active.active_frame.strokes[-nb_strokes:]
velocity_attr = grid_ob.data.attributes["velocity"].data velocity_attr = grid_ob.data.attributes["velocity"].data
@ -247,8 +236,6 @@ class GP_OT_interpolate_stroke_velocity(GP_OT_interpolate_stroke_base):
#stroke.points.foreach_set('co', [v for p in points_2d for v in self.gp.matrix_world.inverted() @p]) #stroke.points.foreach_set('co', [v for p in points_2d for v in self.gp.matrix_world.inverted() @p])
stroke.points.update() stroke.points.update()
#velocity_ob.modifiers.remove(grid_velocity_mod)
bpy.data.meshes.remove(grid_ob.data) bpy.data.meshes.remove(grid_ob.data)
def exit(self, context, status='INFO', text=None, cancelled=False): def exit(self, context, status='INFO', text=None, cancelled=False):

Binary file not shown.