Targeting System: How about the camera pitch?
After the player presses a button, the camera can automatically focus on the targeted enemy, and the attack action can be corrected towards the target. When I was in Ouka Studio, I designed this system as a very complex one, but considering my project's scale, I only implemented some of those functions.
- Search and lock on to the targeted enemies within a specific search strategy.
- Show a little dot on the targeted enemies (current UI assets are temporary)
- Switch the player to a different movement mode when locking onto an enemy, always facing it
- Sprinting can still sprint in the free direction when locking on
- The attack animation automatically rotates to the target when locking on
- The camera's yaw always looks at the target when locking on (that is, the left and right rotation of the camera is always locked on the enemy)
- The camera's pitch will be automatically calculated with the appropriate value (that is, the camera's up and down rotation is automatically adjusted)
The video below demonstrates the features of the targeting system.
Also, for the camera's pitch handling, I tried five different modes:
a. Free: the camera pitch will not be handled. The player can control the pitch of the camera as usual. The advantage is that it is the easiest to implement, but there will be situations where the viewing angle exceeds the limit, and the player cannot see the locked target, which loses the meaning of targeting.
b. Constant: Fixes the camera's pitch at a specific value, which is sufficient in most cases but can still be improved.
c. Limited free: Set a specific range within which the player can freely control the pitch, and the camera will automatically return to the limited range after exceeding the range. This is also a very good mode. Especially when targeting enemies of different sizes, players can freely adjust the pitch they like. At the same time, the designer set the range limit to ensure that the player's operation will not be too extreme to see the locked target.
d. Always to target: If the enemy has Z-axis actions such as jumping, this mode will automatically adjust the pitch according to the relative position of the enemy and the player. This mode further optimizes the player experience. Enemies of different heights can use this mode to ensure that players can always see any of them. It can also handle situations where the height of the enemy changes, ensuring that the player won't lose sight of the target. However, note that this mode is not necessarily suitable for 1vN combats. If the height of the locked enemy becomes higher, the player will gradually lose sight of the ground and cannot deal with threats on the ground from non-locked enemies. If it's a 1vN fight, I'd probably be leaning toward a limited free mode and letting the player decide whether to focus on non-lock-on targets or not.
e. Auto by distance: Based on always to target mode, the system automatically takes over the camera pitch. The closer the player is to the enemy, the higher the camera position is, and the closer the viewing angle is to Top Down; the farther the player is from the enemy, the closer the viewing angle is over-shoulder. The advantage of this mode is that it can ensure that when the player is fighting the BOSS, regardless of the distance, they can clearly observe the actions of the BOSS without the player model blocking the actions of the BOSS. This is the mode that works best for 1v1 boss fights in my opinion, and it's the mode I actually ended up using.
The following video shows the above five different pitch modes, and the Log in the upper left corner shows which mode is switched to.