{"id":423,"date":"2025-03-25T14:18:01","date_gmt":"2025-03-25T13:18:01","guid":{"rendered":"https:\/\/martenhilhorst.com\/?p=423"},"modified":"2025-04-09T12:38:03","modified_gmt":"2025-04-09T11:38:03","slug":"break-a-bot","status":"publish","type":"post","link":"https:\/\/martenhilhorst.com\/?p=423","title":{"rendered":"Break-a-Bot"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"423\" class=\"elementor elementor-423\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4ee09b6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4ee09b6\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-01d48ec\" data-id=\"01d48ec\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ff4e5c3 elementor-widget elementor-widget-heading\" data-id=\"ff4e5c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Break-a-bot<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6711f10 elementor-widget-divider--separator-type-pattern elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"6711f10\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\" style=\"--divider-pattern-url: url(&quot;data:image\/svg+xml,%3Csvg xmlns=&#039;http:\/\/www.w3.org\/2000\/svg&#039; preserveAspectRatio=&#039;none&#039; overflow=&#039;visible&#039; height=&#039;100%&#039; viewBox=&#039;0 0 24 24&#039; fill=&#039;black&#039; stroke=&#039;none&#039;%3E%3Cpolygon points=&#039;9.4,2 24,2 14.6,21.6 0,21.6&#039;\/%3E%3C\/svg%3E&quot;);\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03f4cef elementor-widget elementor-widget-text-editor\" data-id=\"03f4cef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: left;\"><strong>Description:<\/strong><br>A roguelike where the player takes parts from defeated enemies. Using them as their own weapons in a fight to reclaim their space station.<\/p>\n<p style=\"text-align: left;\"><strong>Responsibilities: <\/strong><\/p>\n<ul>\n<li style=\"text-align: left;\">Creating tooling for the animation development pipeline<\/li>\n<li style=\"text-align: left;\">Building an animation system to reuse limb animations on player and enemy models<\/li>\n<\/ul>\n<p style=\"text-align: left;\">\n<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7b317b elementor-widget elementor-widget-gallery\" data-id=\"e7b317b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;gallery_layout&quot;:&quot;justified&quot;,&quot;ideal_row_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;lazyload&quot;:&quot;yes&quot;,&quot;ideal_row_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:150,&quot;sizes&quot;:[]},&quot;ideal_row_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:150,&quot;sizes&quot;:[]},&quot;gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;link_to&quot;:&quot;file&quot;,&quot;overlay_background&quot;:&quot;yes&quot;,&quot;content_hover_animation&quot;:&quot;fade-in&quot;}\" data-widget_type=\"gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-gallery__container\">\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2022\/10\/unreal-engine-2749375-2284765.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"e7b317b\" data-elementor-lightbox-title=\"unreal-engine-2749375-2284765\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MzIsInVybCI6Imh0dHBzOlwvXC9tYXJ0ZW5oaWxob3JzdC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjJcLzEwXC91bnJlYWwtZW5naW5lLTI3NDkzNzUtMjI4NDc2NS5wbmciLCJzbGlkZXNob3ciOiJlN2IzMTdiIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2022\/10\/unreal-engine-2749375-2284765.png\" data-width=\"256\" data-height=\"256\" aria-label=\"Unreal Engine\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/04\/cpp.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"e7b317b\" data-elementor-lightbox-title=\"cpp\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDQ5LCJ1cmwiOiJodHRwczpcL1wvbWFydGVuaGlsaG9yc3QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI1XC8wNFwvY3BwLnBuZyIsInNsaWRlc2hvdyI6ImU3YjMxN2IifQ%3D%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/04\/cpp-300x300.png\" data-width=\"300\" data-height=\"300\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/04\/maya.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"e7b317b\" data-elementor-lightbox-title=\"maya\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDUwLCJ1cmwiOiJodHRwczpcL1wvbWFydGVuaGlsaG9yc3QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI1XC8wNFwvbWF5YS5wbmciLCJzbGlkZXNob3ciOiJlN2IzMTdiIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/04\/maya-300x300.png\" data-width=\"300\" data-height=\"300\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2023\/01\/perforce.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"e7b317b\" data-elementor-lightbox-title=\"perforce\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6Mjc5LCJ1cmwiOiJodHRwczpcL1wvbWFydGVuaGlsaG9yc3QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIzXC8wMVwvcGVyZm9yY2UucG5nIiwic2xpZGVzaG93IjoiZTdiMzE3YiJ9\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2023\/01\/perforce.png\" data-width=\"256\" data-height=\"256\" aria-label=\"P4V\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2023\/01\/atlassian_jira_logo_icon_170511.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"e7b317b\" data-elementor-lightbox-title=\"atlassian_jira_logo_icon_170511\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjgwLCJ1cmwiOiJodHRwczpcL1wvbWFydGVuaGlsaG9yc3QuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIzXC8wMVwvYXRsYXNzaWFuX2ppcmFfbG9nb19pY29uXzE3MDUxMS5wbmciLCJzbGlkZXNob3ciOiJlN2IzMTdiIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2023\/01\/atlassian_jira_logo_icon_170511-300x300.png\" data-width=\"300\" data-height=\"300\" aria-label=\"JIra\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-671bd26 elementor-hidden-mobile\" data-id=\"671bd26\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-93ce25f elementor-widget elementor-widget-heading\" data-id=\"93ce25f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">[[ Trailer incoming ]]<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5b65176 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5b65176\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-60b8b33\" data-id=\"60b8b33\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b8e1b30 elementor-widget-divider--separator-type-pattern elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b8e1b30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\" style=\"--divider-pattern-url: url(&quot;data:image\/svg+xml,%3Csvg xmlns=&#039;http:\/\/www.w3.org\/2000\/svg&#039; preserveAspectRatio=&#039;none&#039; overflow=&#039;visible&#039; height=&#039;100%&#039; viewBox=&#039;0 0 24 24&#039; fill=&#039;black&#039; stroke=&#039;none&#039;%3E%3Cpolygon points=&#039;9.4,2 24,2 14.6,21.6 0,21.6&#039;\/%3E%3C\/svg%3E&quot;);\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b6fec0d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b6fec0d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-7decf4e\" data-id=\"7decf4e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b611c8f elementor-widget elementor-widget-heading\" data-id=\"b611c8f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Arm swapping animation system<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de390a2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"de390a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a526a19 elementor-widget elementor-widget-text-editor\" data-id=\"a526a19\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One of the main features we wanted in the game was for the player to be able to pick up enemies&#8217; arms. In order to do this in a sustainable and reusable way. I designed a system where we could separately animate the arms and modularly apply them to different torso shapes. Where the torso procedurally animates along with the arms&#8217; movement.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-cd73436\" data-id=\"cd73436\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-de4cbd8 elementor-widget elementor-widget-video\" data-id=\"de4cbd8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2023\/01\/ZippyArmCorrect.mp4\" autoplay=\"\" loop=\"\" controls=\"\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4802d37 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4802d37\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8a95c05\" data-id=\"8a95c05\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e6b66c4 elementor-widget-divider--separator-type-pattern elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e6b66c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\" style=\"--divider-pattern-url: url(&quot;data:image\/svg+xml,%3Csvg xmlns=&#039;http:\/\/www.w3.org\/2000\/svg&#039; preserveAspectRatio=&#039;none&#039; overflow=&#039;visible&#039; height=&#039;100%&#039; viewBox=&#039;0 0 24 24&#039; fill=&#039;black&#039; stroke=&#039;none&#039;%3E%3Cpolygon points=&#039;9.4,2 24,2 14.6,21.6 0,21.6&#039;\/%3E%3C\/svg%3E&quot;);\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-58c6386 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"58c6386\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-678d73b\" data-id=\"678d73b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8d6c396 elementor-widget elementor-widget-heading\" data-id=\"8d6c396\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Animation streaming using Livelink<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-efb98c0 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"efb98c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0194a4c elementor-widget elementor-widget-text-editor\" data-id=\"0194a4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One big problem we foresaw when I introduced this system was accessibility for our animator. Animating an arm out of context is incredibly difficult to get right. To solve this I used <a href=\"https:\/\/dev.epicgames.com\/documentation\/en-us\/unreal-engine\/live-link-in-unreal-engine\">Livelink<\/a>. A tool originally designed for Mocap applications, but which happened to be perfectly suited for our purposes.&nbsp;<br><br>Additionaly, to make the set up and usage easier for our animator I set up additional tooling, so that they could quickly swap between different Livelink sources and arm to preview the final result on our main character<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-abcdee8\" data-id=\"abcdee8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-54b1e1f elementor-widget elementor-widget-video\" data-id=\"54b1e1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/xVVhHnygmi.mp4\" autoplay=\"\" loop=\"\" controls=\"\" muted=\"muted\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-74f524f elementor-widget elementor-widget-image\" data-id=\"74f524f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"796\" src=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/animTooling-768x796.png\" class=\"attachment-medium_large size-medium_large wp-image-461\" alt=\"\" srcset=\"https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/animTooling-768x796.png 768w, https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/animTooling-289x300.png 289w, https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/animTooling-988x1024.png 988w, https:\/\/martenhilhorst.com\/wp-content\/uploads\/2025\/03\/animTooling.png 1015w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Break-a-bot Description:A roguelike where the player takes parts from defeated enemies. Using them as their own weapons in a fight to reclaim their space station. Responsibilities: Creating tooling for the animation development pipeline Building an animation system to reuse limb animations on player and enemy models [[ Trailer incoming ]] Arm swapping animation system One [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-423","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/posts\/423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=423"}],"version-history":[{"count":14,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/posts\/423\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=\/wp\/v2\/posts\/423\/revisions\/464"}],"wp:attachment":[{"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martenhilhorst.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}