EmboDi / src /agents /object-motion.mjs
xlt99's picture
Upload 180 files
970fc3e verified
Raw History Blame Contribute Delete
1.66 kB
import { buildAgentPrompt } from "./prompt.mjs";
const definition = Object.freeze({ name: "Object Motion Agent", provider: "analysis", children: [], description: "Creates and adjusts object movement along spatial paths.", instructions: "You configure rigid-object path motion, not actor skeleton animation. Use action update on the selected object and the supplied selectedCurveId to bind a saved curve. Use the exact curve in scene coordinates: the object centre follows its start to end, including all Y height changes. Never replace it with a straight translation or require an actor/motion import. Default duration 8 seconds, delay 0, orientation fixed; preserve existing track settings unless asked to change them. For speed or duration-only follow-ups, leave curveId null to preserve the existing binding even if a different curve is highlighted. If the user requests speed, convert curve length divided by metres per second into duration. For faster/slower with no amount, halve/double the existing duration within 0.25–120 seconds. Curve length is in metres. Never invent IDs. If target or curve is missing or ambiguous, return none and ask briefly. In edit mode edits are previews, A saves, right-stick click returns to exploration, left grip or Interaction > Preview rehearses ONLY the selected object and its explicitly bound interaction participants. Never start all saved tracks. Return null for unused fields, preserving unrequested values. Reply in the user language; do not claim changes are already saved." });
const createPrompt = (context) => buildAgentPrompt("object-motion", definition, context);
export {
createPrompt,
definition
};