AE:Sniper scope and prone mode

From OniGalore
Jump to navigation Jump to search

Overview

Prone mode (Mac and PC)
In the original Oni, characters using TRACstriker_animations (or derived) can remain "prone" after a run-slide move (and everyone but the Elites can actually aim pistols and rifles while prone). The idea of the prone mode is to make it available to all characters and to expand it with the ability to crawl forwards or relocate quickly with strafing/running before falling back into prone.
Strikers (and derived) enter the mode the usual way, but they no longer have to hold CROUCH to stay prone (as long as they're holding a weapon). Comguys (and derived) and females enter the mode with the otherwise anecdotal crouch-walk: the prone animation is simply borrowed from the Strikers. The camera is lowered and brought closer to the player in prone mode, both to allow sniping under obstacles and to make crawling look, erm, less lame.
Moving around while prone is fairly intuitive. You can crawl forwards (like you're on wheels, actually), or you can relocate quickly by moving sideways. While on the move (strafing), you can perform acrobatics and combat moves, some of which will make you exit prone mode. More typically, you can exit prone mode by dropping or holstering your weapon.
Sniper scope (PC-only)
This is an extra feature that automatically narrows the field-of-view when the player is aiming from a steady crouching or prone position. The camera's height and pitch are adjusted so that the viewport is aligned with the aiming vector. The proportions of the reticles are adjusted so as to compensate the narrower FOV.



Resources

BSL
http://geyser.oni2.net/_VIDEO_/WMV/RifleScope.zip
Video
http://geyser.oni2.net/_VIDEO_/WMV/RifleScope.wmv
http://dl.getdropbox.com/u/139715/sniper_mode_(xvid).avi
http://dl.getdropbox.com/u/139715/sniper_zoom_mode.avi



Words of wisdom

Prone mode
Ninjas are left-handed and so are uncompatible with the prone TRAM (animation) and TRAS (aiming screen); therefore, prone mode can not be used for them; its implementation requires an alternative, left-handed prone pose. Another known bug is that characters using TRACcomguy_animations (or derived) lose the ability to start crawling after a few seconds. Finally, the camera parameters (cm_height and cm_distance) are a compromise: if the camera is low enough to allow Konoko to snipe from under cars and such, then it will be obscured by the jetpack if you play as Barabas, and vice versa.
It should also be noted that the shooting accuracy of Oni's AI is usually quite good. This is compensated by the slow projectiles if you run around a lot (normal gameplay), but in prone mode you become very vulnerable. So don't expect to own an AI in a pistol duel just because you're lying low on the floor and supposedly offer a much smaller area for the AI to shoot at: they'll hit bull's eye just the same, and the only real difference - the fact that you're not moving - is not in your favor.
Sniper scope
Obviously, the scope only makes sense for long-range, accurate weapons such as the Mercury Bow or the Plasma Rifle and it looks awkward for other two-handed weapons (actually, it was specifically tailored for the Mercury Bow). However, at the moment BSL offers no way to differentiate between "rifles" during the aiming phase.
There are several issues with the zooming camera, both when prone-sniping and crouch-sniping. First, the camera's position should - ideally - match that of the supposed scope of the actual weapon; however, the camera is always centered laterally, while the weapon typically is not; also, the height at which the weapon is held depends on the ONCC and on the random body size factor. Since BSL barely offers a way to estimate the body size, the height of the scope is a compromise that best fits a popular player character such as Konoko, and looks decent for other characters. Note that the variations in weapon height are more apparent in the crouching pose than in prone pose. A second issue is with the interpolation of the camera's pitch or elevation from the regular overhead value (the camera then looks down at the player, thus aiming lower than the actual aiming vector) to the value 0 (for the scope to work at large zoom factors, the camera must be perfectly aligned with the aiming vector). The orientation of the camera is interpolated at a hard-coded angular speed, which currently leads to the camera zooming down at the player's head and chest before it reaches a scope-like alignment. This can/will probably be fixed by interpolating cm_height and cm_distance smoothly over some time, in the same fashion as the FOV and pitch. Additionally, the pitch of the overhead camera may be brought a little bit closer to 0 (but this would require an adjustment of cm_height, again leading to a compromise because some characters stand much taller than others).