user: Show practical ways to work with VertexWeightProximityModifier(Modifier) in a Blender add-on or script – include code.

assistant: # VertexWeightProximityModifier(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.VertexWeightProximityModifier(*Modifier*)
:   Set the weights of vertices in a group from a target object’s distance

    falloff_type
    :   How weights are mapped to their new values

        - `LINEAR`
          Linear – Null action.
        - `CURVE`
          Custom Curve.
        - `SHARP`
          Sharp.
        - `SMOOTH`
          Smooth.
        - `ROOT`
          Root.
        - `ICON_SPHERECURVE`
          Sphere.
        - `RANDOM`
          Random.
        - `STEP`
          Median Step – Map all values below 0.5 to 0.0, and all others to 1.0.

        Type:
        :   enum in [`'LINEAR'`, `'CURVE'`, `'SHARP'`, `'SMOOTH'`, `'ROOT'`, `'ICON_SPHERECURVE'`, `'RANDOM'`, `'STEP'`], default `'LINEAR'`

    invert_falloff
    :   Invert the resulting falloff weight

        Type:
        :   boolean, default False

    invert_mask_vertex_group
    :   Invert vertex group mask influence

        Type:
        :   boolean, default False

    map_curve
    :   Custom mapping curve

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

    mask_constant
    :   Global influence of current modifications on vgroup

        Type:
        :   float in [-inf, inf], default 1.0

    mask_tex_map_bone
    :   Which bone to take texture coordinates from

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

    mask_tex_map_object
    :   Which object to take texture coordinates from

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

    mask_tex_mapping
    :   Which texture coordinates to use for mapping

        - `LOCAL`
          Local – Use local generated coordinates.
        - `GLOBAL`
          Global – Use global coordinates.
        - `OBJECT`
          Object – Use local generated coordinates of another object.
        - `UV`
          UV – Use coordinates from a UV layer.

        Type:
        :   enum in [`'LOCAL'`, `'GLOBAL'`, `'OBJECT'`, `'UV'`], default `'LOCAL'`

    mask_tex_use_channel
    :   Which texture channel to use for masking

        Type:
        :   enum in [`'INT'`, `'RED'`, `'GREEN'`, `'BLUE'`, `'HUE'`, `'SAT'`, `'VAL'`, `'ALPHA'`], default `'INT'`

    mask_tex_uv_layer
    :   UV map name

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

    mask_texture
    :   Masking texture

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

    mask_vertex_group
    :   Masking vertex group name

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

    max_dist
    :   Distance mapping to weight 1.0

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

    min_dist
    :   Distance mapping to weight 0.0

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

    normalize
    :   Normalize the resulting weights (otherwise they are only clamped within 0.0 to 1.0 range)

        Type:
        :   boolean, default False

    proximity_geometry
    :   Use the shortest computed distance to target object’s geometry as weight

        - `VERTEX`
          Vertex – Compute distance to nearest vertex.
        - `EDGE`
          Edge – Compute distance to nearest edge.
        - `FACE`
          Face – Compute distance to nearest face.

        Type:
        :   enum set in {`'VERTEX'`, `'EDGE'`, `'FACE'`}, default {`'FACE'`}

    proximity_mode
    :   Which distances to target object to use

        - `OBJECT`
          Object – Use distance between affected and target objects.
        - `GEOMETRY`
          Geometry – Use distance between affected object’s vertices and target object, or target object’s geometry.

        Type:
        :   enum in [`'OBJECT'`, `'GEOMETRY'`], default `'GEOMETRY'`

    target
    :   Object to calculate vertices distances from

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

    vertex_group
    :   Vertex group name

        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