editor.curve
Curve asset editing (float, vector, color curves)
← API Reference
editor.curve.create
Creates a new curve asset (float, color, or vector).
| Name | Type | Required | Description |
path | string | Yes | Content directory (e.g. "/Game/Curves") |
name | string | Yes | Curve asset name |
curve_type | string | No | "float", "color", or "vector" (default "float") |
Returns
| Field | Type | Description |
asset_path | string | Full asset path |
curve_type | string | Curve type |
name | string | Curve name |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.create", "params": { "path": "/Game/Curves", "name": "C_Fade", "curve_type": "float" } }
editor.curve.getInfo
Returns information about all curves in a curve asset.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
Returns
| Field | Type | Description |
asset_path | string | Asset path |
curve_type | string | "float", "color", or "vector" |
num_curves | number | Number of sub-curves |
curves | array | Each: {label, num_keys, time_min, time_max, value_min, value_max} |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.getInfo", "params": { "asset_path": "/Game/Curves/C_Fade" } }
editor.curve.getKeys
Returns all keys in a curve (for multi-channel curves, specify curve_index).
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
curve_index | number | No | Channel index for color/vector curves (default 0) |
Returns
| Field | Type | Description |
keys | array | Each: {time, value, interp_mode, tangent_mode, arrive_tangent, leave_tangent} |
curve_index | number | Curve index used |
num_keys | number | Total key count |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.getKeys", "params": { "asset_path": "/Game/Curves/C_Fade" } }
editor.curve.addKey
Adds a key to a curve at the specified time and value.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
time | number | Yes | Key time |
value | number | Yes | Key value |
curve_index | number | No | Channel index (default 0) |
interp_mode | string | No | "linear", "constant", or "cubic" |
Returns
| Field | Type | Description |
time | number | Key time |
value | number | Key value |
interp_mode | string | Interpolation mode |
tangent_mode | string | Tangent mode |
arrive_tangent | number | Arrive tangent |
leave_tangent | number | Leave tangent |
curve_index | number | Curve index |
Example Request
{
"jsonrpc": "2.0", "id": 1, "method": "editor.curve.addKey",
"params": { "asset_path": "/Game/Curves/C_Fade", "time": 0.0, "value": 0.0, "interp_mode": "cubic" }
}
editor.curve.removeKey
Removes a key by index or by nearest time match.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
key_index | number | No* | Key index to remove |
time | number | No* | Time of nearest key to remove |
curve_index | number | No | Channel index (default 0) |
*One of key_index or time must be provided.
Returns
| Field | Type | Description |
success | bool | Whether key was removed |
removed_index | number | Index of the removed key |
remaining_keys | number | Keys remaining after removal |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.removeKey", "params": { "asset_path": "/Game/Curves/C_Fade", "key_index": 0 } }
editor.curve.setKey
Updates properties of an existing key.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
key_index | number | Yes | Key index to update |
curve_index | number | No | Channel index (default 0) |
time | number | No | New time |
value | number | No | New value |
interp_mode | string | No | New interpolation mode |
tangent_mode | string | No | New tangent mode |
arrive_tangent | number | No | New arrive tangent |
leave_tangent | number | No | New leave tangent |
Returns
| Field | Type | Description |
time | number | Key time |
value | number | Key value |
interp_mode | string | Interpolation mode |
tangent_mode | string | Tangent mode |
arrive_tangent | number | Arrive tangent |
leave_tangent | number | Leave tangent |
key_index | number | Key index |
curve_index | number | Curve index |
Example Request
{
"jsonrpc": "2.0", "id": 1, "method": "editor.curve.setKey",
"params": { "asset_path": "/Game/Curves/C_Fade", "key_index": 0, "value": 1.0, "interp_mode": "linear" }
}
editor.curve.clearKeys
Removes all keys from a curve.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
curve_index | number | No | Channel index (default 0) |
Returns
| Field | Type | Description |
success | bool | Whether keys were cleared |
removed_count | number | Number of keys removed |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.clearKeys", "params": { "asset_path": "/Game/Curves/C_Fade" } }
editor.curve.evaluate
Evaluates the curve at a specified time.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
time | number | Yes | Time to evaluate at |
curve_index | number | No | Channel index (for specific channel of color/vector) |
Returns
| Field | Type | Description |
time | number | Evaluation time |
value | number or array | Single value for float, array for color/vector (when no curve_index) |
curve_index | number | Curve index (only when specific channel evaluated) |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.evaluate", "params": { "asset_path": "/Game/Curves/C_Fade", "time": 0.5 } }
editor.curve.setExtrapolation
Sets pre/post-infinity extrapolation modes for a curve.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
curve_index | number | No | Channel index (default 0) |
pre_mode | string | No* | Pre-infinity: "cycle", "cycle_offset", "oscillate", "linear", "constant", or "none" |
post_mode | string | No* | Post-infinity: same options as pre_mode |
*At least one of pre_mode or post_mode must be provided.
Returns
| Field | Type | Description |
success | bool | Whether extrapolation was set |
Example Request
{
"jsonrpc": "2.0", "id": 1, "method": "editor.curve.setExtrapolation",
"params": { "asset_path": "/Game/Curves/C_Fade", "pre_mode": "constant", "post_mode": "cycle" }
}
editor.curve.setKeyTangents
Sets tangent mode and optionally arrive/leave tangent values for a key.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
key_index | number | Yes | Key index |
tangent_mode | string | Yes | "auto", "user", or "break" |
curve_index | number | No | Channel index (default 0) |
arrive_tangent | number | No | Arrive tangent value |
leave_tangent | number | No | Leave tangent value |
Returns
| Field | Type | Description |
success | bool | Whether tangents were set |
time | number | Key time |
value | number | Key value |
interp_mode | string | Interpolation mode |
tangent_mode | string | Tangent mode |
arrive_tangent | number | Arrive tangent |
leave_tangent | number | Leave tangent |
key_index | number | Key index |
Example Request
{
"jsonrpc": "2.0", "id": 1, "method": "editor.curve.setKeyTangents",
"params": { "asset_path": "/Game/Curves/C_Fade", "key_index": 0, "tangent_mode": "user", "arrive_tangent": 0.0, "leave_tangent": 2.0 }
}
editor.curve.autoSetTangents
Automatically calculates optimal tangent values for all keys in a curve.
| Name | Type | Required | Description |
asset_path | string | Yes | Curve asset path |
curve_index | number | No | Channel index (default 0) |
Returns
| Field | Type | Description |
success | bool | Whether tangents were auto-set |
num_keys | number | Number of keys processed |
Example Request
{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.autoSetTangents", "params": { "asset_path": "/Game/Curves/C_Fade" } }