user: Give a detailed overview of MeshCacheModifier(Modifier): syntax, arguments, return values, common patterns.

assistant: # MeshCacheModifier(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.MeshCacheModifier(*Modifier*)
:   Cache Mesh

    cache_format
    :   Type:
        :   enum in [`'MDD'`, `'PC2'`], default `'MDD'`

    deform_mode
    :   - `OVERWRITE`
          Overwrite – Replace vertex coordinates with cached values.
        - `INTEGRATE`
          Integrate – Integrate deformation from this modifier’s input with the mesh-cache coordinates (useful for shape keys).

        Type:
        :   enum in [`'OVERWRITE'`, `'INTEGRATE'`], default `'OVERWRITE'`

    eval_factor
    :   Evaluation time in seconds

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

    eval_frame
    :   The frame to evaluate (starting at 0)

        Type:
        :   float in [0, 1.04857e+06], default 0.0

    eval_time
    :   Evaluation time in seconds

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

    factor
    :   Influence of the deformation

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

    filepath
    :   Path to external displacements file

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    flip_axis
    :   Type:
        :   boolean array of 3 items, default (False, False, False)

    forward_axis
    :   Type:
        :   enum in [Object Axis Items](bpy_types_enum_items/object_axis_items.html#rna-enum-object-axis-items), default `'POS_Y'`

    frame_scale
    :   Evaluation time in seconds

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

    frame_start
    :   Add this to the start frame

        Type:
        :   float in [-1.04857e+06, 1.04857e+06], default 0.0

    interpolation
    :   Type:
        :   enum in [`'NONE'`, `'LINEAR'`], default `'LINEAR'`

    invert_vertex_group
    :   Invert vertex group influence

        Type:
        :   boolean, default False

    play_mode
    :   - `SCENE`
          Scene – Use the time from the scene.
        - `CUSTOM`
          Custom – Use the modifier’s own time evaluation.

        Type:
        :   enum in [`'SCENE'`, `'CUSTOM'`], default `'SCENE'`

    time_mode
    :   Method to control playback time

        - `FRAME`
          Frame – Control playback using a frame-number (ignoring time FPS and start frame from the file).
        - `TIME`
          Time – Control playback using time in seconds.
        - `FACTOR`
          Factor – Control playback using a value between 0 and 1.

        Type:
        :   enum in [`'FRAME'`, `'TIME'`, `'FACTOR'`], default `'FRAME'`

    up_axis
    :   Type:
        :   enum in [Object Axis Items](bpy_types_enum_items/object_axis_items.html#rna-enum-object-axis-items), default `'POS_Z'`

    vertex_group
    :   Name of the Vertex Group which determines the influence of the modifier per point

        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