Dynamic Animation with Springs
?
?
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Keyboard Navigation
Global Keys
[, < / ], > Jump to previous / next episodeW, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state
Menu toggling
q Quotes r References f Filter c CreditsIn-Menu Movement
a
w
s
s
d
h
j
k
l
←
↑
↓
↓
→
Quotes and References Menus
Enter Jump to timecodeQuotes, References and Credits Menus
o Open URL (in new tab)Filter Menu
x, Space Toggle category and focus nextX, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Credits Menu
Enter Open URL (in new tab)⏫
Previous: 'Animation Overview'
⏫
0:42Recap and set the stage for the day
0:42Recap and set the stage for the day
0:42Recap and set the stage for the day
1:52handmade.cpp and handmade_config.h: Introduce and make Global_Timestep_Percentage editable with the debug system
1:52handmade.cpp and handmade_config.h: Introduce and make Global_Timestep_Percentage editable with the debug system
1:52handmade.cpp and handmade_config.h: Introduce and make Global_Timestep_Percentage editable with the debug system
4:00Run the game reduce that Global_Timestep_Percentage
4:00Run the game reduce that Global_Timestep_Percentage
4:00Run the game reduce that Global_Timestep_Percentage
7:01handmade_world_mode.cpp: Look at the current hopping code and consider doing physics simulation on the springiness
7:01handmade_world_mode.cpp: Look at the current hopping code and consider doing physics simulation on the springiness
7:01handmade_world_mode.cpp: Look at the current hopping code and consider doing physics simulation on the springiness
10:05Blackboard: Tracking the velocity and target position of the cape
10:05Blackboard: Tracking the velocity and target position of the cape
10:05Blackboard: Tracking the velocity and target position of the cape
13:12handmade_world_mode.cpp: Simulate tBob using the standard equations of motion1
13:12handmade_world_mode.cpp: Simulate tBob using the standard equations of motion1
13:12handmade_world_mode.cpp: Simulate tBob using the standard equations of motion1
16:12handmade_world_mode.cpp: Set the acceleration to 0 and see that there's no movement on that joint
16:12handmade_world_mode.cpp: Set the acceleration to 0 and see that there's no movement on that joint
16:12handmade_world_mode.cpp: Set the acceleration to 0 and see that there's no movement on that joint
16:36handmade_world_mode.cpp: Set a loop and tweak the hopping variables
16:36handmade_world_mode.cpp: Set a loop and tweak the hopping variables
16:36handmade_world_mode.cpp: Set a loop and tweak the hopping variables
22:00handmade_world_mode.cpp: Restore the position to 0
22:00handmade_world_mode.cpp: Restore the position to 0
22:00handmade_world_mode.cpp: Restore the position to 0
24:15handmade_world_mode.cpp: Simulate the landing phase
24:15handmade_world_mode.cpp: Simulate the landing phase
24:15handmade_world_mode.cpp: Simulate the landing phase
30:59handmade_world_mode.cpp: Tune the hop
30:59handmade_world_mode.cpp: Tune the hop
30:59handmade_world_mode.cpp: Tune the hop
32:41Control the hero directly and see that the hop is oscillating
32:41Control the hero directly and see that the hop is oscillating
32:41Control the hero directly and see that the hop is oscillating
33:04Blackboard: Springs
33:04Blackboard: Springs
33:04Blackboard: Springs
34:57Blackboard: Undamped spring
34:57Blackboard: Undamped spring
34:57Blackboard: Undamped spring
37:28handmade_world_mode.cpp: Add that undamped spring equation
37:28handmade_world_mode.cpp: Add that undamped spring equation
37:28handmade_world_mode.cpp: Add that undamped spring equation
38:31Blackboard: How this spring equation works
38:31Blackboard: How this spring equation works
38:31Blackboard: How this spring equation works
40:05Blackboard: Under-, over- and critically-damped springs
40:05Blackboard: Under-, over- and critically-damped springs
40:05Blackboard: Under-, over- and critically-damped springs
42:32handmade_config.h and handmade_world_mode.cpp: Run at 100% global speed and slow down the head and jump
42:32handmade_config.h and handmade_world_mode.cpp: Run at 100% global speed and slow down the head and jump
42:32handmade_config.h and handmade_world_mode.cpp: Run at 100% global speed and slow down the head and jump
44:01handmade_world_mode.cpp: Tune the downward motion on the anticipation phase
44:01handmade_world_mode.cpp: Tune the downward motion on the anticipation phase
44:01handmade_world_mode.cpp: Tune the downward motion on the anticipation phase
46:44handmade_world_mode.cpp: Consider making the head snap back to the body when stationary
46:44handmade_world_mode.cpp: Consider making the head snap back to the body when stationary
46:44handmade_world_mode.cpp: Consider making the head snap back to the body when stationary
49:15Blackboard: Applying the spring technique in different directions
49:15Blackboard: Applying the spring technique in different directions
49:15Blackboard: Applying the spring technique in different directions
57:33handmade_world_mode.cpp: Implement this spring equation for the head
57:33handmade_world_mode.cpp: Implement this spring equation for the head
57:33handmade_world_mode.cpp: Implement this spring equation for the head
1:04:41Rerun the game and get that restorative force, but see that the facing direction is being affected by something
1:04:41Rerun the game and get that restorative force, but see that the facing direction is being affected by something
1:04:41Rerun the game and get that restorative force, but see that the facing direction is being affected by something
1:07:12Blackboard: Recentering the head along the body's axis of movement
1:07:12Blackboard: Recentering the head along the body's axis of movement
1:07:12Blackboard: Recentering the head along the body's axis of movement
1:07:59handmade_world_mode.cpp: Recenter the head
1:07:59handmade_world_mode.cpp: Recenter the head
1:07:59handmade_world_mode.cpp: Recenter the head
1:16:13handmade_world_mode.cpp: Introduce a non-normalised ddP2 in order to compute the spring
1:16:13handmade_world_mode.cpp: Introduce a non-normalised ddP2 in order to compute the spring
1:16:13handmade_world_mode.cpp: Introduce a non-normalised ddP2 in order to compute the spring
1:17:21Run the game and see that the problem is fixed
1:17:21Run the game and see that the problem is fixed
1:17:21Run the game and see that the problem is fixed
1:17:56Q&A
🗩
1:17:56Q&A
🗩
1:17:56Q&A
🗩
1:31:17Close it up
🗩
1:31:17Close it up
🗩
1:31:17Close it up
🗩
⏬
Next: 'Passing Rotation and Shear to the Renderer'
⏬