urbanlama.github.io
Animate a rigged 3D character with an AI agent
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 5 · Act 14 · Transact 1 · Score: Not yet scored
Tool inspector
set_pose
EBENE 1, DER HAUPTWEG - setzt eine ganze Koerperhaltung auf einen Frame: alle Gelenke in einem Aufruf, so wie ein Animator ein Schluesselbild setzt. So arbeitet man hier: mehrere Haltungen auf verschiedene Frames setzen; dazwischen wird beim Loesen ueberblendet, weich oder linear (ease). BODEN: die Figur steht immer auf dem Boden, solange du keine Hoehe setzt - der Loeser senkt die Wurzel je Frame so ab, dass der tiefste Punkt auf der Bodenebene liegt (Hocke, Stand, Schritt brauchen kein root). Eine Zahl in root.pos[1] hebt sie an (Sprung, Flug); unter den Boden geht es nie, zu tief Gesetztes wird angehoben und gemeldet. Die Antwort sagt dir mit Zahl, ob sie steht, schwebt oder angehoben wurde. Danach mit look ansehen und mit describe_pose nachmessen. Die angegebenen Gelenke ERSETZEN die Haltung dieses Frames, und das Schluesselbild ist die GANZE Haltung: jeder Kanal, den du hier nicht nennst, steht auf diesem Frame in der Ruhelage (0). Willst du einen Winkel behalten, nenne ihn wieder. set_joint dagegen ist ein Nachtrag und laesst die uebrigen Kanaele in Ruhe. Gelenk- und Kanalnamen kommen aus describe_rig und sind je Gelenk verschieden.
Page: /webmcp-character-animation/
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
frame |
integer | yes | Frame, auf dem die Haltung sitzt |
joints |
object | yes | Gelenkname auf Kanal auf Grad, z. B. {"arm_l": {"lift": 70, "swing": 10}, "elbow_l": {"bend": 80}} — welche Gelenke und Kanäle es gibt, sagt describe_rig |
root |
object | no | WO die Figur steht und wohin sie schaut. Ohne root bleibt sie an ihrem Ort und steht auf dem Boden. {pos: [x, y, z]} in Metern im Weltsystem aus describe_world; y = null heisst "auf dem Boden" (der Loeser rechnet die Hoehe), eine Zahl in y ist eine feste Hoehe. {turnGrad: Zahl} dreht die ganze Figur um die Hochachse. Ein Schritt: pos [x, null, z] wandert entlang der Blickrichtung, die Hoehe bleibt am Boden. Ein Sprung: Absprungframe mit ease "wurf" (y = null: vom Boden weg, oder eine Zahl), Landeframe mit y = null. Flugdauer und Scheitelhoehe haengen zusammen: der Abstand der beiden Frames bestimmt, wie hoch die Parabel steigt. Flugposen dazwischen (Tuck, Drehung) OHNE pos setzen - sie folgen der Wurfbahn; drehGrad darf dabei stehen. Eine Hoehe im Flug teilt die Parabel in zwei Boegen mit Knick, den validate als Ballistikfehler meldet. Zwischen gesetzten Frames wird die Wurzel wie alles andere ueberblendet. |
ease |
string | no | Übergang zum nächsten gesetzten Frame. "wurf" ist der freie Fall: der SCHWERPUNKT folgt exakt der Wurfparabel - also genau die Groesse, die die Ballistikpruefung misst. Auch wenn sich die Pose im Flug aendert (Salto, Hocke, Schwungbein), wandert der Schwerpunkt dann nicht gegenueber der Bahn: der Loeser rechnet die Wurzelhoehe je Frame dazu. Die y-Werte, die du an den Schluesselbildern setzt, bleiben WURZELHOEHEN und werden genau getroffen. Nimm ihn fuer die Flugphase - dann genuegen zwei Schluesselbilder fuer den ganzen Flug, und die Ballistikpruefung ist still. Sonst einer von 4: smooth, linear, hold, wurf; ohne Angabe smooth |
Raw JSON schema
{
"type": "object",
"properties": {
"frame": {
"type": "integer",
"minimum": 0,
"description": "Frame, auf dem die Haltung sitzt"
},
"joints": {
"type": "object",
"description": "Gelenkname auf Kanal auf Grad, z. B. {\"arm_l\": {\"lift\": 70, \"swing\": 10}, \"elbow_l\": {\"bend\": 80}} — welche Gelenke und Kanäle es gibt, sagt describe_rig"
},
"root": {
"type": "object",
"description": "WO die Figur steht und wohin sie schaut. Ohne root bleibt sie an ihrem Ort und steht auf dem Boden. {pos: [x, y, z]} in Metern im Weltsystem aus describe_world; y = null heisst \"auf dem Boden\" (der Loeser rechnet die Hoehe), eine Zahl in y ist eine feste Hoehe. {turnGrad: Zahl} dreht die ganze Figur um die Hochachse. Ein Schritt: pos [x, null, z] wandert entlang der Blickrichtung, die Hoehe bleibt am Boden. Ein Sprung: Absprungframe mit ease \"wurf\" (y = null: vom Boden weg, oder eine Zahl), Landeframe mit y = null. Flugdauer und Scheitelhoehe haengen zusammen: der Abstand der beiden Frames bestimmt, wie hoch die Parabel steigt. Flugposen dazwischen (Tuck, Drehung) OHNE pos setzen - sie folgen der Wurfbahn; drehGrad darf dabei stehen. Eine Hoehe im Flug teilt die Parabel in zwei Boegen mit Knick, den validate als Ballistikfehler meldet. Zwischen gesetzten Frames wird die Wurzel wie alles andere ueberblendet.",
"properties": {
"pos": {
"type": "array",
"items": {
"type": [
"number",
"null"
]
},
"minItems": 3,
"maxItems": 3,
"description": "Position des Beckens [x, y, z] in Metern; y = null stellt die Figur auf den Boden"
},
"turnGrad": {
"type": "number",
"description": "Kurzform fuer drehGrad.y — Drehung um die Hochachse in Grad"
},
"drehGrad": {
"type": "object",
"description": "Drehung der ganzen Figur in Grad, je Achse. x = Salto vorwaerts/rueckwaerts (Nicken), y = Drehung im Stand (Gieren), z = seitliches Kippen (Rollen). Ein Rueckwaertssalto ist x von 0 auf -360 ueber die Flugphase; eine halbe Drehung im Stand ist y von 0 auf 180. Wird zwischen Schluesselbildern ueberblendet, Achse fuer Achse — volle Umdrehungen bleiben dabei volle Umdrehungen.",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
}
}
}
},
"ease": {
"type": "string",
"enum": [
"smooth",
"linear",
"hold",
"wurf"
],
"description": "Übergang zum nächsten gesetzten Frame. \"wurf\" ist der freie Fall: der SCHWERPUNKT folgt exakt der Wurfparabel - also genau die Groesse, die die Ballistikpruefung misst. Auch wenn sich die Pose im Flug aendert (Salto, Hocke, Schwungbein), wandert der Schwerpunkt dann nicht gegenueber der Bahn: der Loeser rechnet die Wurzelhoehe je Frame dazu. Die y-Werte, die du an den Schluesselbildern setzt, bleiben WURZELHOEHEN und werden genau getroffen. Nimm ihn fuer die Flugphase - dann genuegen zwei Schluesselbilder fuer den ganzen Flug, und die Ballistikpruefung ist still. Sonst einer von 4: smooth, linear, hold, wurf; ohne Angabe smooth"
}
},
"required": [
"frame",
"joints"
]
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet