If you're not aiming for a 90s Tomb Raider experience, your players would likely appreciate more realistic interactions between characters and objects. Instead of relying on static animations (such as the infamous air grabbing hand animation), consider creating genuine and dynamic interactions in a myriad of ways to immerse players/users. Interactor equips you with all the necessary tools to achieve this, including editor tools for a streamlined workflow, an Inverse Kinematics (IK) solution to animate limbs dynamically, and a robust core system to carefully handle all objects around the player.
As complexity drastically increases with multiple interaction types and many interactive objects, you need a comprehensive, scalable solution - a system capable of managing diverse interaction types, interacting uniquely with each object, utilizing player parts separately, tracking ongoing and upcoming interactions to prevent conflicts, prioritizing them, and triggering relevant events at precise moments.
For the latest updates and discussions: Forum Thread
Other Links: Online Documentation | Support | Videos
Fast & Unique Workflow
- Set up Interactor for your character: 2 minutes
- Create hand/feet target prefabs (to spawn them on objects in SceneView): 1 minute each
- Create a new interaction and save it for later as a preset: 30 seconds
- Create a new interaction by just clicking on the object while spawning the hand prefab and preset to make it ready to use without extra effort: 2 seconds
How Does It Work?
- One Trigger to Rule Them All
You don't need triggers for every interactable object. You just need one trigger and that is on the player with Interactor.
- Design
Place targets on any object that you want to interact with. Just right-click on any object in SceneView to open the target selection menu. Select your desired gesture and done. It is now interactable.
- Interact
When an object enters the trigger, Interactor checks its type (e.g., left hand) and position. If the object has multiple targets (e.g., a rock held by two hands), all targets are assessed by the same effector type. If they meet the criteria, the interaction can be started. Or you can interact from even long distances with InteractorAI and player will move by itself with pathfinding.
- Animate
Interactions can be achieved with procedural animations, with animation files, or both for more precise & realistic movements. On the procedural part, IK comes into play.
- Inverse Kinematics (IK)
IK handles chained bone rotations when you want a character to reach towards a specific point in space. When you set a hand's position and rotation to an interactable object, IK calculates the necessary rotations for the arm and shoulder joints. Interactor utilizes Unity's built-in IK system and also includes a Two Bone IK solver, with plans to offer a Full Body IK solver by default in v0.99. And if you have Final IK, Interactor integrates seamlessly with the Final IK asset with just a click.
- It's Not About IK, It's About Controlling the IK
Procedurally animating bones is straightforward, but controlling IK to prevent issues can be challenging. Unconstrained IK often causes bugs and is difficult to manage. Interactor provides extensive IK control options so you can fine-tune settings for smooth, pain-free interactions while it handles the rest.
- Interaction Types & Examples
Interactor includes a diverse library of built-in interactions and example scenes to showcase them. The scenes demonstrate all the interactions from the videos as well as additional examples to serve as references when developing your own interaction systems.
Additional Key Features
- Interactor operates efficiently and is well-suited for mobile devices.
- Works with any type of controllers (Popular assets on the store, rigidbody, kinematic etc).
- Suitable for NPC characters, allowing tens of Interactors on the same screen to interact simultaneously without any issues.
- Has integrated pathfinding system, autonomously controlling characters and navigating to interactions, whether in close proximity or across the entire scene. Users won't need to struggle to find suitable spots for interactions.
- AnimAssist System allows for the use of any animation file for interactions with simple clicks for enhancement. During the animation playback, Interactor will utilize the interacting body part exclusively.
- Highly customizable Look settings (OnSelection, Before, OnPause, After, or multiple selection modes) to animate the head while interacting.
- Interactor script is fully commented and full source code included (with lots of example scripts & shaders)
- Can be used for HDRP and URP, except the custom bonus shaders (Outline, etc). Other than that, Interactor will work just fine.
- Almost everything is cached to work efficently, from all components to animation & material property hash ids.
- Tested for both visual & functionality across all Unity versions from 2019.1 onwards.
- Actively under continuous development to deliver better results. Check the changelog for a detailed overview of ongoing improvements.
Please feel free to reach out if you have any questions or need more information. I'm committed to responding promptly, usually within a few hours.