move_keyframe
Moves a single keyframe to a new frame on a binding's section channel, preserving its value, interpolation, and tangents. Idempotent when re-moving onto an existing frame.
Instructions
Move one keyframe (located by 'index' or 'frame') to new_frame on a binding's section channel, preserving its value/interp/tangents. Idempotent: MoveKey(bRemoveDuplicateKeys=true) collapses a duplicate when re-moved onto an existing frame. channel_type selects the proxy view ("double" default | "float" | "bool").
Returns: { sequence_path: string, channel_index: int, channel_type: string, old_frame: int, new_frame: int, key_index: int, moved: bool, saved: bool, save_error?: string }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | Frame of the key to move (resolved via FindKey; provide index OR frame). | |
| index | No | Index of the key to move (mutually exclusive with frame). | |
| new_frame | Yes | Destination frame number for the key. | |
| tolerance | No | Optional FindKey frame tolerance when locating by frame (default 0). | |
| track_type | No | Optional class filter (see set_section_easing) selecting the track on the binding. | |
| track_index | No | Index into the binding's tracks (default 0; used when track_type omitted). | |
| binding_guid | No | GUID of the binding whose section to edit. | |
| channel_type | No | Channel value kind: "double" (default) | "float" | "bool". | |
| channel_index | No | Index of the channel within its proxy view (default 0). | |
| section_index | No | Index of the section on the resolved track (default 0). | |
| sequence_name | No | Alias for sequence_path. | |
| sequence_path | No | Full /Game path OR bare asset name of the target Level Sequence. | |
| binding_name_or_guid | No | Alias for binding_guid, read only when binding_guid is absent; it must also be a GUID string, a bound object's name is not resolved. |