Admer456 / halflife-adm-legacy

Advanced Development Mod - technical overhaul for Half-Life
Other
17 stars 5 forks source link

Cameras that can zoom in & out at a user-specified speed #4

Open sabianroberts opened 4 years ago

sabianroberts commented 4 years ago

As a Half-Life 1 Engine developer, I have recently taken interest in including cutscenes in ZAMNHL. However, the current trigger_camera entity leaves me a bit limited. Adding zooming would be a very nice feature, since it allows developers and directors to go even more wild with creativity. You could even recreate this effect...

Admer456 commented 4 years ago

Oh yes, this has been planned for quite some time. trigger_camera definitely needs some upgrades. Alongside FOV changing, I also considered the option of attaching the camera onto a bone of an animated model, and other things.

Regarding dynamic FOV changes, it could be as simple as sending a user message periodically to the affected player, telling the client what the current FOV is.

I'll have to investigate this further however, to see if I can implement FOV changing in V_CalcRefdef functions. I don't remember if V_CalcRefdef is called while the player is "viewing" through another entity. If not, then this may be slightly more complex to implement.

Unfortunately, due to school, I do not have the time to work on any features, so this may take a while until it's implemented.

sabianroberts commented 4 years ago

Regarding dynamic FOV changes, it could be as simple as sending a user message periodically to the affected player, telling the client what the current FOV is.

If you do this method, then most likely the zoom effect is gonna look very choppy, like using the FOV slider in Minecraft. If you do it with this method then I think it could be a challenge getting the effect smooth

Admer456 commented 4 years ago

I don't think it'd necessarily look choppy so long as the client interpolates the FOV. There are many ways to do that. I recall that The Specialists 3.0 did an interesting smooth transition whenever you'd change default_fov.