In the first tutorial I presented a simple script and in this one I improved it with a way to create lines with a number of points, to use pressurization and coloring according to these points.
I added comments in the source code to make it easier to understand.
Here is the result obtained for nineteen points:
This is the source code:
import bpy
import random
#this is a for lines with N poins
N = 19
# this is default python script from the first tutorial
gpencil_data = bpy.data.grease_pencils.new("GPencil")
gpencil = bpy.data.objects.new(gpencil_data.name, gpencil_data)
bpy.context.collection.objects.link(gpencil)
gp_layer = gpencil_data.layers.new("lines")
gp_frame = gp_layer.frames.new(bpy.context.scene.frame_current)
gp_stroke = gp_frame.strokes.new()
gp_stroke.points.add(count=N)
# let's create a new material for pencil stroke
gp_material_001 = bpy.data.materials.new(name="Grease pencil material 001")
# if you want to use Nodes
gp_material_001.use_nodes = True
#this will add a diffuse color for this material
gp_material_001.diffuse_color = (0.0, 0.0, 0.0, 1)
# create a new material for this grease pencil
bpy.data.materials.create_gpencil_data(gp_material_001)
# add the material to the grese pencil defined like gpencil
gpencil.data.materials.append(gp_material_001)
for i in range (N):
rand1 = random.randint(-3, 3)
rand2 = random.randint(-3, 3)
rand_size = random.randint(70, 76)
gp_stroke.line_width = rand_size
gp_stroke.points[i].co = (rand1,rand2,rand1)
gp_stroke.points[i].co = (rand2,rand1,rand2)
#this will create a random pressure
rand_pressure = random.randint(-3, 3) * 3
#create random color for Red Green and Blue
rand_color_R = random.randint(0, 1)
rand_color_G = random.randint(0, 1)
rand_color_B = random.randint(0, 1)
# set the pressure
gp_stroke.points[i].pressure = rand_pressure
# set the color RGB with transparency 1
gp_stroke.points[i].vertex_color = (rand_color_R,rand_color_G,rand_color_B, 1)