We let users arbitrarily control a horse’s speed and direction. Since we only have limited motion data captured from Muybridge’s images, we need to synthesize motions at different speeds for our system.
3.2 Synthesize Motions at Various Speed 16
Table 3.1: Notation
D The distance the body travels during the stance phase.
Tc The duration of horse stance phase of a stride.
v Speed.
G The height of ground.
M1 The original gait motion before transition.
M2 The target gait motion to transit to.
L1 The total frame numbers in M1 for one stride.
L2 The total frame numbers in M2 for one stride.
∆t1 The average incremental generic time of M1.
∆t2 The average incremental generic time of M2. B The amount of blending frames.
T1j The actual time of leg j at in M1. T2j The actual time of leg j at in M2. tj1 The generic time of leg j at in M1. tj2 The generic time of leg j at in M2. w1 The weight for M1.
w2 The weight for M2.
Kj The position where leg j strikes the ground.
N The number of legs standing on the ground.
Figure 3.7: Joints notation
Figure 3.8 shows the flow chart of we constructing motions at various speeds. First we use Figure 3.6 to decide the speed range for every gait. Then we calculate the step length of those speeds at which we lack of motions. We adjust the horse step size in our captured motion data to conform to the step length we generated. Having the new step length, we can calculate the horse’s stride length. Stride length is the distance a horse travels during a stride, including the step length and the flying distance. Using the stride length, we warp our original captured motion to the proper velocity.
Our method mainly considers the relationship between horse speed and time of contact in [15]. Time of contact Tc is the duration of the horse stance phase of a stride. Hoyt et al.
[15] show that time of contact decreases as a power function of speed, and horse’s step length increases with its speed. Step length D, which is the product of speed v and time of contact Tc, is the distance that the body travels during the stance phase. D increases with v. From the above descriptions, we can get Equations 3.1 and 3.2. a and b are two parameters. b is a negative number and significantly different from -1.0. In order to get the step length of different speed,
3.2 Synthesize Motions at Various Speed 18
Figure 3.8: Synthesize Motions at Various Speed
we need to know the time of contact of those speed. So we try to find the parameters a and b of each gait.
Tc = a · vb, (3.1)
D = v · Tc, (3.2)
Figure 3.9 shows the two sets of data we use. With these information, we can find parameters a and b for each gait. We also demonstrate the parameters we found in Figure 3.9.
From Eadweard Muybridge’s work we only have one suitable motion data for the gait Am-ble. Gait Amble and Walk have the same step order. Amble is the faster Walk. We use the parameters a and b of gait Walk to estimate the parameters a and b of gait Amble. We first use the parameters a and b of gait Walk to calculate the Tc at the speeds 7 and 9 mph. Then we compare the Tc of speed 7 mph we calculated with the Tcof gait Amble we captured from the Muybridge’s images. And we shift the Tcof speeds 7 and 9 mph to let the Tcof speed 7 mph align with the Tcof gait Amble. Then we use the new Tcof speeds 7 and 9 mph to compute the parameters a and b of gait Amble. Figure 3.10 explains this process. The brown diamond is the data we obtained from the image.
After we get the a and b parameters for each gait, we can calculate the Tc for all speeds using Equation 3.1. We also get the D of all speeds in every gait through Equation 3.2. We preserve the characteristics that Tcdecreases as a power function of v, and D increases with v.
Figure 3.11 shows the trend of step length and time of contact at different speeds in our system.
The yellow blocks are the data we obtained from Muybridge’s photographs. We can find that step length increases with speed, and time of contact decreases as a power function of speed.
We use the computed step length to modify the captured motion in order to get the new motions at various speeds. At the initial state our horse heading the global X direction, and the global Y direction is pointed to the sky. At each gait motion we adjust the horse foot position P at XY plane. Considering the position of Hip/Shoulder Position S as the origin, and the
3.2 Synthesize Motions at Various Speed 20
Figure 3.9: Two sets of motions and parameters a and b
Figure 3.10: To estimate the parameters a and b
Figure 3.11: Time of Contact and Step Length
3.2 Synthesize Motions at Various Speed 22
(a) (b)
Figure 3.12: Adjust foot position trajectory
step lengths D and D0 as one side of a triangle. We use a similar triangle method to generate the target foot position trajectory of the new stride. Figure 3.12 (a) demonstrates the similar triangle method we use. We adjust the x component of P by Equation 3.3, and the y component of P by Equation 3.4. P0 is the new foot position and G is an offset ensuring that the stance leg would not penetrate or leave the ground. Figure 3.12 (b) shows the adjustment. We use Jacobian-Inverse IK method to recompute q1, q2, q3 and q4 to alter the horse four legs foot positions from P to P0.
Px0 = (Px− Sx) ×D0
D + Sx, (3.3)
Py0 = (Py− Sy) ×D0
D + Sy+ G, (3.4)
After we adjust the foot positions of all the frame of the new motion, we also have to warp the motion to conform to its speed. Using the stride length of the new motion and the frame rate
we use in the system, we reset the total frame number of the new motion and warp the original motion to fit in with it.