Creating Immersive VR Avatars with Animation Rigging
Implementing inverse kinematics in unity engine to create realistic VR avatars
Click on this link to get redirected to a demo video of the project.
Introduction: In this project, we delve into the realm of Virtual Reality (VR) development by integrating basic inverse kinematics to create personalized avatars that mimic the movements of users’ controllers and head-mounted displays (HMDs). By leveraging Unity’s Animation Rigging package, we empower users to interact with their virtual environment through intuitive and natural movements, enhancing immersion and user experience.
Key Components:
- Importing Humanoid Avatars:
- Utilize Unity Asset Store to download and import humanoid avatars, such as the Speedball Player 1 model.
- Setting Up Animation Rigging:
- Access Animation Rigging window in Unity to organize and set up animation rigs.
- Configure Rigs and Constraints to modify the animated hierarchy’s pose.
- Inverse Kinematics for Controllers/Hands:
- Create GameObjects for inverse kinematics constraints and add Two Bone IK Constraints component.
- Use pseudocode to map controller movements to avatar hand movements, adjusting transform and rotation based on user input.
- Inverse Kinematics for Head/HMD:
- Implement Multi-Parent Constraint component to synchronize avatar head movements with HMD rotations.
- Map HMD movements to avatar head movements using pseudocode, adjusting transform position and rotation accordingly.
Extra Immersion:
- Adding Custom Avatars:
- Incorporated new avatars downloaded from online repositories or asset stores, rigging them to respond to user movements.
- Mirror Implementation:
- Improved self-awareness and embodiment in VR by adding mirrors to the virtual environment, allowing users to observe their avatar’s movements.
- Physically-Based Interactions:
- Enhanced interactivity by enabling avatars to interact with virtual objects in a physically plausible manner, such as knocking over objects or reacting to collisions.
Conclusion: By integrating animation rigging and inverse kinematics, we empower users to embody virtual avatars and interact with VR environments in a natural and intuitive manner.