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

Unable to update to newest version if PhantomCamera node exists in project #312

Closed eisegesis-623 closed 4 months ago

eisegesis-623 commented 4 months ago

Issue description

Godot 4.2.2, Windows 11 and Windows 10 Attempting to update PhantomCamera from 0.6.4 to the latest version fails. Tested on multiple machines.

Steps to reproduce

The issue occurs when any scene in the project contains a PhantomCamera node.

For convenience: Open the attached project. The update popup should appear. Confirm the update. There should be several "parse error" messages.

Otherwise, create a new project, add 0.6.4 and enable, and add a PhantomCamera node in any scene. Then update.

Deleting all phantomcamera nodes from the project seems to be the only way to update.

Possibly related, it's also worth noting that simply dragging the 0.6.4 plugin into a blank project's addons folder through Windows file explorer causes the same or similar error messages. Dragging it from file explorer into the addons folder in the Godot interface does not cause the issue, though.

Minimal reproduction project

https://github.com/Paul-Griffin-1517-1/PCamUpdateBroken (Please note, I do believe I edited one or two lines of code somewhere in the plugin for another project which I copied the addon from to demonstrate the update issue. This shouldn't affect anything, though.)

Related issue: https://github.com/ramokz/phantom-camera/issues/298 which suggests it has to do with class names changing capitalization between versions. Not sure how the "dragging into the blank project" variant of the bug relates, though.

ramokz commented 4 months ago

Updating worked just fine for me?

The updater will complain about a dependency issue, which you can quickly fix, then you can just relaunch the project, after which all errors should be gone.

https://github.com/ramokz/phantom-camera/assets/5159399/7e0dd5ac-5c09-4f83-b290-08a3051a1876

eisegesis-623 commented 4 months ago

I am not getting the prompt to fix dependencies. Manually clicking "Edit Dependencies" on the scene file doesn't identify any dependencies as broken (despite the many "parse errors" being present elsewhere in the editor). However, navigating to the new filename does solve the issue, as per the video demonstration (although it's a bit finicky whether the change actually takes effect). Might be a Godot bug, then, failing to identify broken dependencies on some machines/operating systems based on capitalization? Interesting...

ramokz commented 4 months ago

I have experienced cases where the prompt appears behind the Godot editor, so I didn't see it initially. But if that's not the case for you, then it might be an editor issue, yes.

In any case, think that resolves the issue you were having?

eisegesis-623 commented 4 months ago

This particular one, yes. Unfortunately it also looks like it gets rid of most properties I've given my PhantomCameras (spring length, follow target, Camera3dResource properties, and so on--but not Follow Mode curiously enough). Getting rid of the changes in the .tscn diff doesn't fix it so I have to set them all again manually. Not the end of the world, but might be worth looking into?

ramokz commented 4 months ago

That is an expected outcome, the release notes of 0.7 goes into details for why that happened. Specifically, the "Revamped Property System" section.

eisegesis-623 commented 4 months ago

Understood. That should be all, then! Thanks so much for your time!

ramokz commented 4 months ago

No problem : )