[video output=day276 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tuning the Body Animation" vod_platform=youtube id=xdtQ9fFru0g annotator=Miblo] [1:17][Run the game, demo our problem with the stretching not looking great and consider moving to a more top-down perspective] [3:12][Blackboard: How top-down art may solve the detachment problem] [5:15][Run the game and demo the lack of collision on the side walls] [7:30][handmade_world_mode.cpp: Move the head down and draw it in front of the cape] [8:29][Blackboard: How the art assets are currently packed] [10:13][handmade_render_group.cpp: Investigate the sorting] [11:57][Debugger: Break on PushBitmap for the cape and head and inspect their SortKey] [16:03][handmade_world_mode.cpp: Sort the body parts slightly more correctly] [19:42][handmade_world_mode.cpp: Limit the shearing] [24:14][handmade_world_mode.cpp: Mitigate the separation problem] [32:33][Run the game and consider disallowing diagonal movement] [34:29][handmade_world_mode.cpp: Disallow diagonal movement] [39:01][Run the game and try out the cardinal movement] [42:14][handmade_world_mode.cpp: Clean up the controller code] [45:49][Run the game and try out the controller code] [46:21][handmade_world_mode.cpp: Re-enable the head's recentering code] [46:44][Run the game and try out the recentering] [47:32][handmade_world_mode.cpp: Delay the recentering] [49:55][handmade_math.h: Introduce ClampAboveZero] [52:41][Run the game and try out the delayed recentering] [55:07][Q&A][:speech] [55:31][@fr0styninja][Do you think like a sort of rhythmic based movement where the hero would have to wait a bit before being able to move again (say he's getting ready for a jump instead of stamina-lessly jumping around non-stop) could perhaps help in this situation? Realise it's a design decision and might not be what you're looking for, but perhaps you haven't entertained the idea] [56:21][@ttbjm][Do you think rotating the torso would help?] [57:12][@cubercaleb][For the Q&A can you have the hero walk around on a live loop?] [57:44][@sssmcgrath][Try wrapping the body around bezier rather than just linear stretching?] [58:24][@billdstrong][For the up-down motion, couldn't you forgo the stretch, and have a jump of each part?] [58:38][@beerchug][Why wouldn't you shear the top of the feet to stay under the moving body?] [59:11][@commandercool0][What about a small translation of the body before and after the jump, say 10%-20% of the distance between adjacent dots?] [59:52][handmade_world_mode.cpp: Displace the body based on the distance of the head from the nearest traversable point] [1:05:06][Run the game and check out the displacement] [1:05:35][handmade_world_mode.cpp: Apply the floor displacement only to the cape] [1:05:56][Run the game and check out the cape's displacement] [1:06:35][@btngames][The more I see the more I like this. I wonder whether a subtle head bob may add a feeling of believability. Just a thought] [1:07:47][@longboolean][Would it help if the body stayed on the tile, but the cape was positioned between the body and the head?] [1:08:21][Consider asking Yangtian for art that is more top-down] [1:09:48][@thesizik][Perhaps a minimum stretch length so you don't get disappearing bitmaps while moving down?] [1:10:03][Close up][:speech] [1:10:41][Announcement: HandmadeCon 2016[ref site="Molly Rocket" page="HandmadeCon 2016" url="http://mollyrocket.com/news_0033.html"]][:research] [/video]