top of page
Technical Animator
Showreel

00:02 - 00:15

Gameplay overview: INVRSE  Cricket

Gameplay overview of INVRSE Cricket: a multiplayer VR cricket game. The batsman is controlled by a player wearing a VR headset and the bowling by a player on an iPad.

The animation system had to be designed around these constraints:

  • Working with UE4: limited or no access to UE5 pipelines/features

  • Networked multiplayer experience: challenges posed by

    • replication

    • non-deterministic physics-based calculations for ball trajectory
      Both of these cause discrepancies in the rendered animation frame on different devices.

  • Broadcasting/streaming constraint: frame rate locked due to existing devices/broadcasting setup used to run game

Frame rate agnostic turn in place feature

00:15 - 00:23

Demonstration of turn-in-place system. Due to the challenges posed by replication, a standard turn-in-place solution was not suitable for this project.

I've utilised the method of assigning one static pose to each angle of character rotation, first demonstrated by Jay Hosfelt. This solution consistently renders the same animation frame on both the VR headset, the iPad screen, and the broadcasting setup used to show gameplay to an audience.

Additional animation system features and cleanup

00:20 - 00:40

Within this existing root motion-based animation environment, I worked on the following:

  • A "look at ball" system for the fielders with angular constraints to prevent unnatural movement of the head as they track the ball

  • I used control rigs to use the direction of movement of the fielders to rotate the lower body and feet to produce more natural-looking movement and transitions when changing direction.

Data table-driven catch animation

00:40 - 01:17

The first part is a demonstration of how the animations in the catch animation library are sorted.

Essentially, the catches are selected based on the distance between the position of the hand that catches the ball (shown in yellow) at the moment the ball is caught, and the location of the ball on the projectile path prediction trajectory.

Within this system, I worked on the following:

  • Cleaning up root motion from raw mocap data so that accurate root motion data could be recorded in the table.

  • Frame-by-frame adjustment of certain animations for better ground contact for low catches close to ground level

  • Floor contact fix using Maya's HumanIK retargeting system

  • A modular system for hand poses to be added on top of any existing animation, consisting of different grip types for different types of bowling (fast bowling, medium speed bowling, off spinner bowling, and leg spinner bowling) 

©2020 by Yukti Gupte. Proudly created with Wix.com

bottom of page