user: Describe GreasePencilHookModifier(Modifier) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GreasePencilHookModifier(Modifier)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Modifier`](bpy.types.Modifier.html#bpy.types.Modifier "bpy.types.Modifier")

*class* bpy.types.GreasePencilHookModifier(*Modifier*)
:   Hook modifier to modify the location of stroke points

    center
    :   Type:
        :   float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    custom_curve
    :   Custom curve to apply effect

        Type:
        :   [`CurveMapping`](bpy.types.CurveMapping.html#bpy.types.CurveMapping "bpy.types.CurveMapping"), (readonly)

    falloff_radius
    :   If not zero, the distance from the hook where influence ends

        Type:
        :   float in [0, inf], default 0.0

    falloff_type
    :   Type:
        :   enum in [`'NONE'`, `'CURVE'`, `'SMOOTH'`, `'SPHERE'`, `'ROOT'`, `'INVERSE_SQUARE'`, `'SHARP'`, `'LINEAR'`, `'CONSTANT'`], default `'SMOOTH'`

    invert_layer_filter
    :   Invert layer filter

        Type:
        :   boolean, default False

    invert_layer_pass_filter
    :   Invert layer pass filter

        Type:
        :   boolean, default False

    invert_material_filter
    :   Invert material filter

        Type:
        :   boolean, default False

    invert_material_pass_filter
    :   Invert material pass filter

        Type:
        :   boolean, default False

    invert_vertex_group
    :   Invert vertex group weights

        Type:
        :   boolean, default False

    layer_pass_filter
    :   Layer pass filter

        Type:
        :   int in [0, 100], default 0

    material_filter
    :   Material used for filtering

        Type:
        :   [`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material")

    material_pass_filter
    :   Material pass

        Type:
        :   int in [0, 100], default 0

    matrix_inverse
    :   Reverse the transformation between this object and its target

        Type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf], default ((1.0, 0.0, 0.0, 0.0), (0.0, 1.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0), (0.0, 0.0, 0.0, 1.0))

    object
    :   Parent Object for hook, also recalculates and clears offset

        Type:
        :   [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

    open_falloff_panel
    :   Type:
        :   boolean, default False

    open_influence_panel
    :   Type:
        :   boolean, default False

    strength
    :   Relative force of the hook

        Type:
        :   float in [0, 1], default 0.5

    subtarget
    :   Name of Parent Bone for hook (if applicable), also recalculates and clears offset

        Type:
        :   string, default “”, (never None)

    tree_node_filter
    :   Layer name

        Type:
        :   string, default “”, (never None)

    use_custom_curve
    :   Use a custom curve to define a factor along the strokes

        Type:
        :   boolean, default False

    use_falloff_uniform
    :   Compensate for non-uniform object scale

        Type:
        :   boolean, default False

    use_layer_group_filter
    :   Filter by layer group name

        Type:
        :   boolean, default False

    use_layer_pass_filter
    :   Use layer pass filter

        Type:
        :   boolean, default False

    use_material_pass_filter
    :   Use material pass filter

        Type:
        :   boolean, default False

    vertex_group_name
    :   Vertex group name for modulating the deform

        Type:
        :   string, default “”, (never None)

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type