configureTransitionAction
Configure animation transitions in Spline 3D scenes by setting target states, duration, easing, and delay parameters to create smooth state changes.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sceneId | Yes | Scene ID | |
| actionId | Yes | Action ID | |
| targetState | Yes | Target state ID | |
| duration | No | Transition duration (ms) | |
| easing | No | Transition easing | |
| delay | No | Delay before starting transition (ms) |
Implementation Reference
- src/tools/action-tools.js:59-104 (registration)Registration of the 'configureTransitionAction' MCP tool, including inline schema and handler function.server.tool( 'configureTransitionAction', { sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), targetState: z.string().min(1).describe('Target state ID'), duration: z.number().min(0).optional().describe('Transition duration (ms)'), easing: z.enum(['linear', 'easeIn', 'easeOut', 'easeInOut']).optional() .describe('Transition easing'), delay: z.number().min(0).optional().describe('Delay before starting transition (ms)'), }, async ({ sceneId, actionId, targetState, duration, easing, delay }) => { try { const parameters = { targetState, ...(duration !== undefined && { duration }), ...(easing && { easing }), ...(delay !== undefined && { delay }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'transition', parameters }); return { content: [ { type: 'text', text: `Transition action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring transition action: ${error.message}` } ], isError: true }; } } );
- src/tools/action-tools.js:70-103 (handler)Handler function that configures the transition action parameters and updates via API PUT request to /scenes/{sceneId}/actions/{actionId}.async ({ sceneId, actionId, targetState, duration, easing, delay }) => { try { const parameters = { targetState, ...(duration !== undefined && { duration }), ...(easing && { easing }), ...(delay !== undefined && { delay }), }; await apiClient.request('PUT', `/scenes/${sceneId}/actions/${actionId}`, { type: 'transition', parameters }); return { content: [ { type: 'text', text: `Transition action ${actionId} configured successfully` } ] }; } catch (error) { return { content: [ { type: 'text', text: `Error configuring transition action: ${error.message}` } ], isError: true }; } }
- src/tools/action-tools.js:61-69 (schema)Zod input schema validating parameters for configuring a transition action: sceneId, actionId, targetState, optional duration, easing, delay.{ sceneId: z.string().min(1).describe('Scene ID'), actionId: z.string().min(1).describe('Action ID'), targetState: z.string().min(1).describe('Target state ID'), duration: z.number().min(0).optional().describe('Transition duration (ms)'), easing: z.enum(['linear', 'easeIn', 'easeOut', 'easeInOut']).optional() .describe('Transition easing'), delay: z.number().min(0).optional().describe('Delay before starting transition (ms)'), },