From my experience the suggestion of Sami424 is actually correct.
1Z elevation is 17.4px. So if you wannt to raise the bullet 1px/tick you set the z elevation to self.zelevation+1/17.4 also you should take deltatime into account... you can then check the zhigh of an object against the zheight of the bullet and determine if they collide or not at a given point. How fast the bullet raises or falls is determined by the angle, but i have no idea how to calculate that, let me know if you can figure it out :D i would do some trial and error... but must be quite complicated. shooting straight is no problem tho.
But as you are making a shooter, have you come up with an idea how to determine sound positions? this is quite important for an fps but with the current system C3 has for audio pos its very hard to do...
1z elevation is not 17.4, it is different for every viewport size, that is what the Zscale function was made for. Also Construct 3 has a "play audio at position" action in the basic events for Audio.
The reason that shooting straight in first person view using the 3d camera is not as easy as your thinking is because the Zevevation per tick creates a velocity that has to be subtracted from the speed because bullet speed behavior = X/Y ONLY and a bullet shooting almost straight up isn't going anywhere so far as bullet.speed or X/Y position wise.