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
pathstringYesContent directory (e.g. "/Game/Curves")
namestringYesCurve asset name
curve_typestringNo"float", "color", or "vector" (default "float")

Returns

Field Type Description
asset_pathstringFull asset path
curve_typestringCurve type
namestringCurve 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_pathstringYesCurve asset path

Returns

Field Type Description
asset_pathstringAsset path
curve_typestring"float", "color", or "vector"
num_curvesnumberNumber of sub-curves
curvesarrayEach: {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_pathstringYesCurve asset path
curve_indexnumberNoChannel index for color/vector curves (default 0)

Returns

Field Type Description
keysarrayEach: {time, value, interp_mode, tangent_mode, arrive_tangent, leave_tangent}
curve_indexnumberCurve index used
num_keysnumberTotal 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_pathstringYesCurve asset path
timenumberYesKey time
valuenumberYesKey value
curve_indexnumberNoChannel index (default 0)
interp_modestringNo"linear", "constant", or "cubic"

Returns

Field Type Description
timenumberKey time
valuenumberKey value
interp_modestringInterpolation mode
tangent_modestringTangent mode
arrive_tangentnumberArrive tangent
leave_tangentnumberLeave tangent
curve_indexnumberCurve 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_pathstringYesCurve asset path
key_indexnumberNo*Key index to remove
timenumberNo*Time of nearest key to remove
curve_indexnumberNoChannel index (default 0)

*One of key_index or time must be provided.

Returns

Field Type Description
successboolWhether key was removed
removed_indexnumberIndex of the removed key
remaining_keysnumberKeys 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_pathstringYesCurve asset path
key_indexnumberYesKey index to update
curve_indexnumberNoChannel index (default 0)
timenumberNoNew time
valuenumberNoNew value
interp_modestringNoNew interpolation mode
tangent_modestringNoNew tangent mode
arrive_tangentnumberNoNew arrive tangent
leave_tangentnumberNoNew leave tangent

Returns

Field Type Description
timenumberKey time
valuenumberKey value
interp_modestringInterpolation mode
tangent_modestringTangent mode
arrive_tangentnumberArrive tangent
leave_tangentnumberLeave tangent
key_indexnumberKey index
curve_indexnumberCurve 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_pathstringYesCurve asset path
curve_indexnumberNoChannel index (default 0)

Returns

Field Type Description
successboolWhether keys were cleared
removed_countnumberNumber 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_pathstringYesCurve asset path
timenumberYesTime to evaluate at
curve_indexnumberNoChannel index (for specific channel of color/vector)

Returns

Field Type Description
timenumberEvaluation time
valuenumber or arraySingle value for float, array for color/vector (when no curve_index)
curve_indexnumberCurve 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_pathstringYesCurve asset path
curve_indexnumberNoChannel index (default 0)
pre_modestringNo*Pre-infinity: "cycle", "cycle_offset", "oscillate", "linear", "constant", or "none"
post_modestringNo*Post-infinity: same options as pre_mode

*At least one of pre_mode or post_mode must be provided.

Returns

Field Type Description
successboolWhether 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_pathstringYesCurve asset path
key_indexnumberYesKey index
tangent_modestringYes"auto", "user", or "break"
curve_indexnumberNoChannel index (default 0)
arrive_tangentnumberNoArrive tangent value
leave_tangentnumberNoLeave tangent value

Returns

Field Type Description
successboolWhether tangents were set
timenumberKey time
valuenumberKey value
interp_modestringInterpolation mode
tangent_modestringTangent mode
arrive_tangentnumberArrive tangent
leave_tangentnumberLeave tangent
key_indexnumberKey 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_pathstringYesCurve asset path
curve_indexnumberNoChannel index (default 0)

Returns

Field Type Description
successboolWhether tangents were auto-set
num_keysnumberNumber of keys processed

Example Request

{ "jsonrpc": "2.0", "id": 1, "method": "editor.curve.autoSetTangents", "params": { "asset_path": "/Game/Curves/C_Fade" } }