Budget: 7500 UAH Deadline: 6 days
Hello.
The categories are indicated absolutely correctly: to implement the aiming and weapon switching mechanics, custom C# scripts need to be written, along with deep configuration of Unity's animation systems.
The task is clear. Using the ready-made controller from Synty for basic movement (walking, running) is the right approach that will save time. The main focus of the work will be on the Inverse Kinematics (IK) system for precise aiming of the tool and the character's gaze at the target.
Technical solution
Aiming system (Animation Rigging):
I will integrate the official Unity Animation Rigging package.
I will set up a Multi-Aim Constraint for the spine, neck, and head bones so that the upper body of the character smoothly and naturally turns towards where the cursor points.
I will add Two-Bone IK for the arms. This ensures that the hands will always accurately rest on the weapon's grips, no matter where the character is aiming.
Camera and Raycasting (Cinemachine):
I will set up two virtual Cinemachine cameras: a base one (for movement) and an aiming camera (with a narrower field of view and shifted closer to the shoulder).
When the aiming button is pressed (for example, the right mouse button), there will be a smooth transition (Blend) between the cameras. During this time, a C# script will cast an invisible ray (Raycast) from the center of the screen into the 3D world, creating a dynamic point (Target) that the character's IK system will follow.
Logic for tool switching:
I will write an equipment manager script. When one of the three tools is selected, the script will change a parameter (for example, WeaponType of type int) in your Synty Animator Controller, so the character switches the base stance from two-handed to one-handed.
The script will automatically reassign the attachment points for the left and right hands (IK Targets), as the grip of a two-handed tool differs from that of a small one-handed tool.
Laser tool:
I will create a visualization of the beam using the LineRenderer component. It will dynamically connect the "muzzle" of the tool and the collision point of the Raycast beam with the surface (resource).
What is needed to get started:
An archive with your current project (or .unitypackage) with the configured Synty controller, 3D character model, and models of the three tools.
Information on which version of Unity you are using.
I am ready to discuss the details and start configuring your character.