ramokz / phantom-camera

👻🎥 Control the movement and dynamically tween 2D & 3D cameras. Built for Godot 4. Inspired by Cinemachine.
https://phantom-camera.dev/
MIT License
2.17k stars 71 forks source link

MixingCamera equivalent? #335

Open Mangonels opened 3 months ago

Mangonels commented 3 months ago

Project Type

3D

Feature Description

I know this project takes inspiration from Cinemachine, so it should make it easier to understand my proposal.

I'd like a feature to be added such as CinemachineMixingCamera.

image

For those who don't know, this component allows you to position the main camera between two (the immediate children to the mixing camera component) virtual cameras, according to Left and Right camera weights (seen in image above). It's essentially an interpolation that can be tweaked by these values.

Use Cases

https://youtu.be/Qc6q5Nk65JU

In the video you can see the camera is moved further on relative to the character controlled by the player, left or right according to player horizontal movement input, so the player can actually see forward a bit in advance for better foreseeing.

To be honest, I haven't even tried phantom camera yet (should get to it today, I'd start by messing around with a simple camera that follows and targets apropiately), but I did read about all of it's features and it's hard for me to imagine how I could achieve the same results as in unity, with the current phantom camera repertoire.

However, if there is currently some way to achieve this I'd like to try it out, please let me know.

(Optional) Proposed Solution

Pretty much the same as described functioning in CinemachineMixingCamera.

ramokz commented 3 months ago

It does sound quite similar to the lookahead feature (#160 #284), just without velocity being a factor in the camera's offset, and instead explicitly relying on another PCam's position.

I do think it can be achieved based on the current set of features by programmatically applying an offset, with a clamped value, to the PCam as you move in a given direction. It's obviously less easy to adjust than placing a separate PCam, especially if you need a more complex angle between the camera points. So MixingCamera feels like a quality-of-life feature to get around having to do that.