{"id":442,"date":"2026-11-03T17:34:50","date_gmt":"2026-11-03T17:34:50","guid":{"rendered":"https:\/\/evermore-laboratory.com\/?p=442"},"modified":"2026-11-03T17:34:54","modified_gmt":"2026-11-03T17:34:54","slug":"ein-korper-der-sich-bewegen-kann","status":"publish","type":"post","link":"https:\/\/evermore-laboratory.com\/index.php\/2026\/11\/03\/ein-korper-der-sich-bewegen-kann\/","title":{"rendered":"Ein K\u00f6rper, der sich bewegen kann"},"content":{"rendered":"\n<!-- Eintrag 06 \u00b7 Protokoll \u00b7 Evermore Laboratory -->\n<!-- title und h1 werden vom Blog-System selbst gerendert und hier bewusst weggelassen -->\n<!-- Vorschlag Titel: Ein K\u00f6rper, der sich bewegen kann -->\n<!-- Quelle: Blog\/2_Freigegeben\/2026-11-03.md (Section 5: Locomotion) -->\n\n<style>\n  .el-post {\n    --bg: #0a0d0b;\n    --fg: #d9e0da;\n    --muted: #9aa39c;\n    --accent: #5dd67f;\n    --card-border: #1e2620;\n    color: var(--fg);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n    line-height: 1.7;\n    font-size: 17px;\n    max-width: 720px;\n  }\n\n  .el-post .el-kicker {\n    color: var(--accent);\n    font-size: 0.78rem;\n    font-weight: 600;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    margin: 0 0 1.6rem;\n  }\n\n  .el-post .el-intro {\n    border-left: 3px solid var(--accent);\n    padding: 0.2rem 0 0.2rem 1.4rem;\n    margin: 0 0 2.2rem;\n    font-size: 1.28rem;\n    font-weight: 600;\n    line-height: 1.5;\n  }\n\n  .el-post p {\n    margin: 0 0 1.4rem;\n  }\n\n  .el-post .el-accent {\n    color: var(--accent);\n  }\n\n  .el-post em {\n    font-style: italic;\n  }\n\n  .el-post .el-figure {\n    margin: 2.2rem 0;\n  }\n\n  .el-post .el-figure img {\n    display: block;\n    width: 100%;\n    height: auto;\n    border-radius: 12px;\n    border: 1px solid var(--card-border);\n  }\n\n  .el-post .el-figure figcaption {\n    color: var(--muted);\n    font-size: 0.86rem;\n    margin-top: 0.7rem;\n    line-height: 1.5;\n  }\n\n  .el-post .el-figure figcaption strong {\n    color: var(--accent);\n    font-weight: 600;\n  }\n\n  .el-post .el-phase .el-figure,\n  .el-post .el-card .el-figure {\n    margin: 0.4rem 0 1.2rem;\n  }\n\n  .el-post .el-phase {\n    border-left: 1px solid var(--card-border);\n    padding: 0 0 0 1.4rem;\n    margin: 0 0 1.8rem;\n  }\n\n  .el-post .el-phase-head {\n    color: var(--accent);\n    font-size: 0.82rem;\n    font-weight: 600;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    margin: 0 0 0.6rem;\n  }\n\n  .el-post .el-phase-head .el-dash {\n    color: var(--muted);\n    font-weight: 400;\n  }\n\n  .el-post .el-card {\n    border: 1px solid var(--card-border);\n    border-radius: 12px;\n    padding: 1.5rem 1.7rem 0.4rem;\n    margin: 2.4rem 0;\n    background: rgba(255, 255, 255, 0.012);\n  }\n\n  .el-post .el-card-head {\n    color: var(--accent);\n    font-size: 0.82rem;\n    font-weight: 600;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    margin: 0 0 1rem;\n  }\n\n  .el-post .el-card-head .el-dash {\n    color: var(--muted);\n    font-weight: 400;\n  }\n\n  .el-post .el-byline {\n    color: var(--muted);\n    font-size: 0.86rem;\n    letter-spacing: 0.04em;\n    margin-top: 2.8rem;\n    padding-top: 1.4rem;\n    border-top: 1px solid var(--card-border);\n  }\n\n  .el-post code {\n    font-family: ui-monospace, SFMono-Regular, Consolas, \"Liberation Mono\", monospace;\n    font-size: 0.86em;\n    color: var(--accent);\n    background: rgba(93, 214, 127, 0.08);\n    border-radius: 4px;\n    padding: 0.1em 0.35em;\n  }\n\n  .el-post .el-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 0.4rem 0 1.4rem;\n    font-size: 0.95rem;\n  }\n\n  .el-post .el-table th,\n  .el-post .el-table td {\n    text-align: left;\n    padding: 0.55rem 0.8rem;\n    border-bottom: 1px solid var(--card-border);\n  }\n\n  .el-post .el-table th {\n    color: var(--muted);\n    font-weight: 600;\n    font-size: 0.78rem;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .el-post .el-table td:last-child {\n    color: var(--accent);\n  }\n<\/style>\n\n\n<div class=\"el-post\">\n\n  <p class=\"el-kicker\">Eintrag 06 \u00b7 Protokoll<\/p>\n\n  <p class=\"el-intro\">\n    Eine Figur in Unreal besteht aus Schichten, die nichts voneinander wissen:\n    Skelett, K\u00f6rper, Haare, Steuerung. <span class=\"el-accent\">Fehlt eine davon,\n    sieht man es sofort.<\/span>\n  <\/p>\n\n  <!-- SCREENSHOT TITELBILD: Link aus WordPress-Mediathek oder NAS hier einsetzen -->\n  <figure class=\"el-figure\"><img decoding=\"async\" src=\"https:\/\/evermore-laboratory.com\/wp-content\/uploads\/2026\/11\/E4ADA64C-DA92-4BF5-BE97-323217B74F9C.png\" alt=\"Die Figur Echo mit Haaren als spielbarer Charakter in Unreal Engine 5\" loading=\"lazy\" onerror=\"this.parentNode.style.display='none'\"><\/figure>\n\n  <p>\n    Eintrag 05 hatte als N\u00e4chstes das verschlankte Gras und den Weg zur Insel\n    angek\u00fcndigt. Beides ist noch offen. Der Kurs ist inzwischen bei Section 5\n    angekommen, Locomotion, und damit zum ersten Mal bei dem, was sich sp\u00e4ter\n    auf der Map bewegen soll. Wir sind weiter in Staffel 2, dem Ger\u00fcst. Nach dem\n    Boden geht es jetzt um den Charakter, der darauf l\u00e4uft.\n  <\/p>\n\n  <p>\n    Ganz unten liegt ein Skelett, das niemand sieht. Es geh\u00f6rt zum Mannequin aus\n    dem Kurs, und nur dieses Skelett wird tats\u00e4chlich animiert. Dar\u00fcber sitzt\n    Echo, die sichtbare Figur, die jede Bewegung des Mannequins live \u00fcbernimmt.\n    Haare und Augenbrauen h\u00e4ngen als eigene Komponenten am Kopf. Und damit sich\n    \u00fcberhaupt etwas bewegt, muss eine Eingabe ankommen, die erst \u00fcber einen\n    aktiven Kontext mit einer Taste verbunden ist. Jede dieser Schichten hat sich\n    in dieser Section einmal gemeldet, meistens dadurch, dass sie fehlte.\n  <\/p>\n\n  <div class=\"el-phase\">\n    <p class=\"el-phase-head\">Gebaut <span class=\"el-dash\">\u2014 Staffel 2 \u00b7 Locomotion<\/span><\/p>\n    <!-- Bild-Platzhalter: in der Mediathek als eintrag-06-gebaut.png hochladen. Fehlt das Bild, blendet sich der Block aus. -->\n    <figure class=\"el-figure\"><img decoding=\"async\" src=\"https:\/\/evermore-laboratory.com\/wp-content\/uploads\/2026\/11\/eintrag-06-gebaut.png\" alt=\"Echo und das ausgeblendete Mannequin im Charakter-Blueprint\" loading=\"lazy\" onerror=\"this.parentNode.style.display='none'\"><\/figure>\n    <p>\n      Echo l\u00e4uft jetzt auf dem Kurs-Mannequin, verbunden \u00fcber Realtime\n      Retargeting in einem eigenen Animation Blueprint. Das Mannequin bleibt im\n      Charakter, ausgeblendet, und liefert die Bewegung. Haare und Augenbrauen\n      sind als Groom-Komponenten am Kopf befestigt. Die Steuerung \u00fcber Input\n      Actions und Input Mapping Context l\u00e4uft wieder, nachdem sie beim Aufr\u00e4umen\n      des Projekts verloren gegangen war. Das Aufr\u00e4umen selbst, die\n      Asset-Migration und der R\u00fcckweg \u00fcber Git bekommen einen eigenen Eintrag.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-phase\">\n    <p class=\"el-phase-head\">Pannen <span class=\"el-dash\">\u2014 drei Schichten, drei Fehler<\/span><\/p>\n    <!-- Bild-Platzhalter: in der Mediathek als eintrag-06-pannen.png hochladen. Fehlt das Bild, blendet sich der Block aus. -->\n    <figure class=\"el-figure\"><img decoding=\"async\" src=\"https:\/\/evermore-laboratory.com\/wp-content\/uploads\/2026\/11\/eintrag-06-pannen.png\" alt=\"Echo mit schwebenden Haaren und sichtbarem grauem Mannequin im K\u00f6rper\" loading=\"lazy\" onerror=\"this.parentNode.style.display='none'\"><\/figure>\n    <p>\n      Nach dem Retargeting lief Echo sauber, Haare und Augenbrauen blieben aber\n      zur\u00fcck. Sie hingen am Ursprung des Charakters, ein Haarschopf ohne Kopf.\n      Grooms sind Echtzeit-Haare, und sie brauchen ein Binding Asset, das genau zum\n      K\u00f6rper-Mesh passt. Mit dem Binding f\u00fcr Echo und dem Kopfknochen als Socket\n      sitzen die Haarwurzeln jetzt auf der Kopfhaut und gehen mit.\n    <\/p>\n    <p>\n      Die zweite Panne war ein grauer Kopf und ein wei\u00dfer Anzug, die durch Echo\n      hindurch zu sehen waren. Das war das Mannequin, noch eingeblendet. Einfach\n      ausschalten reicht allerdings nicht, denn Echo kopiert ja seine Bewegung.\n      Das Tr\u00e4germesh muss unsichtbar sein und trotzdem weiter animieren. Daf\u00fcr\n      steht <code>Visibility Based Anim Tick Option<\/code> auf\n      <code>Always Tick Pose and Refresh Bones<\/code>.\n    <\/p>\n    <p>\n      Die dritte Panne kam nach dem Aufr\u00e4umen. Echo stand still, keine Taste\n      bewirkte etwas. Im GameMode war die Player Controller Class auf die leere\n      Standardklasse zur\u00fcckgefallen. In den neueren Vorlagen ist es der Player\n      Controller, der den Mapping Context aktiviert, ohne ihn kommt beim Charakter\n      kein Input an. Mit dem eigenen Player Controller im GameMode lief Echo\n      wieder.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-phase\">\n    <p class=\"el-phase-head\">Gelernt <span class=\"el-dash\">\u2014 Retargeting und Input<\/span><\/p>\n    <p>\n      Realtime Retargeting trennt Animation und Aussehen. Ein Mesh wird animiert,\n      ein anderes mit eigenem Skelett kopiert die Bewegung in Echtzeit. Damit\n      lassen sich vorhandene Animationen auf andere Figuren \u00fcbertragen, ohne jede\n      Animation einzeln umzuwandeln.\n    <\/p>\n    <p>\n      Beim Input war neu f\u00fcr mich, wie wenig eine Input Action wei\u00df. Sie hei\u00dft\n      \u201eBewegen\u201c und kennt keine einzige Taste. W wird erst durch einen aktiven\n      Input Mapping Context mit \u201eBewegen\u201c verbunden. Contexts lassen sich zur\n      Laufzeit hinzuf\u00fcgen und entfernen, etwa beim Wechsel zwischen Laufen, Men\u00fc\n      und Bauen, und bei doppelt belegten Tasten entscheidet die Priority.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-phase\">\n    <p class=\"el-phase-head\">Fehlt noch <span class=\"el-dash\">\u2014 Section und Endprojekt<\/span><\/p>\n    <p>\n      Der Rest der Section steht aus: die Extended Movement Component mit eigener\n      Input-Mapping-Funktion, einem Schalter zum Abschalten der Bewegung, Montages\n      und Animation Sequences, dazu Mixamo und Lyra als Animationsquellen und das\n      Quiz. Im Playtest muss sich noch zeigen, ob Haare und Kleidung bei Bewegung\n      ohne Versatz mitgehen. Aus Eintrag 05 sind Gras und Insel weiterhin offen.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-card\">\n    <p class=\"el-card-head\">Frage <span class=\"el-dash\">\u2014 offen<\/span><\/p>\n    <p>\n      Wie viele unterschiedliche Figuren tr\u00e4gt ein einziger Animationssatz, bevor\n      Proportionen und Kleidung sichtbar nicht mehr passen?\n    <\/p>\n    <p>\n      Und was kosten Grooms, wenn ein ganzes Dorf mit Echtzeit-Haaren auf der Map\n      steht?\n    <\/p>\n  <\/div>\n\n  <div class=\"el-card\">\n    <p class=\"el-card-head\">Ansatz <span class=\"el-dash\">\u2014 gew\u00e4hlt<\/span><\/p>\n    <p>\n      Erst den Rest der Section abschlie\u00dfen, dann im Playtest gezielt auf Haare\n      und Kleidung in Bewegung achten.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-card\">\n    <p class=\"el-card-head\">Erwartung <span class=\"el-dash\">\u2014 notiert<\/span><\/p>\n    <p>\n      Die Agenten von Evermore brauchen keine Tastatur. Ein AI Controller ruft\n      dieselben Bewegungs- und Aktionsfunktionen direkt auf, die hier noch \u00fcber\n      Input Actions ausgel\u00f6st werden. Es wechselt nur der Ausl\u00f6ser, vom Spieler\n      zur KI. Wie das im Detail aussieht, geh\u00f6rt in Staffel 5.\n    <\/p>\n    <p>\n      Das Retargeting legt daf\u00fcr heute schon etwas an: Viele verschiedene Figuren\n      mit Kleidung und Haaren k\u00f6nnen sp\u00e4ter auf einem gemeinsamen Animationssatz\n      laufen, und kein Agent braucht eigene Animationen.\n    <\/p>\n  <\/div>\n\n  <div class=\"el-card\">\n    <p class=\"el-card-head\">Beobachtung <span class=\"el-dash\">\u2014 folgt<\/span><\/p>\n    <p>\n      Ob die Schichten zusammenhalten, zeigt erst eine Figur, die \u00fcber die Map\n      l\u00e4uft und dabei ihre Haare beh\u00e4lt.\n    <\/p>\n    <p>\n      Im n\u00e4chsten Eintrag geht es um das Aufr\u00e4umen des Projekts, die\n      Asset-Migration und den R\u00fcckweg \u00fcber Git.\n    <\/p>\n  <\/div>\n\n  <p>Fragen, beobachten, justieren, wiederholen.<\/p>\n\n  <p class=\"el-byline\">Bahamut \u00b7 Eintrag 06 \u00b7 Protokoll eines Versuchs<\/p>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Eintrag 06 \u00b7 Protokoll Eine Figur in Unreal besteht aus Schichten, die nichts voneinander wissen: Skelett, K\u00f6rper, Haare, Steuerung. Fehlt eine davon, sieht man es sofort. Eintrag 05 hatte als N\u00e4chstes das verschlankte Gras und den Weg zur Insel angek\u00fcndigt. Beides ist noch offen. Der Kurs ist inzwischen bei Section 5 angekommen, Locomotion, und damit [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-442","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/posts\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":1,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/posts\/442\/revisions"}],"predecessor-version":[{"id":444,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/posts\/442\/revisions\/444"}],"wp:attachment":[{"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/media?parent=442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/categories?post=442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evermore-laboratory.com\/index.php\/wp-json\/wp\/v2\/tags?post=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}