Importing Camera Actions from Blender

Godot Version

4.6.2.stable

Question

I'm trying to import a Camera animation/action from Blender to use with Camera3D in Godot. I've animated the camera for a cinematic shot that is tightly timed with character animations, and I want to move that animation over to Godot so I don't have to re-animate/time the camera within the Godot editor. I'm not very experienced with importing/translating stuff into Godot, so any help would be greatly appreciated.

In Blender, the camera has an action 'CameraSceneAnim' that animates the camera's position and rotation.

I export the camera as glTF Binary (.glb), limited to Selected Objects (the camera only), with Animation Mode set to Actions.

In the Godot editor, the file is imported as a Camera3D with an AnimationPlayer holding the animation 'CameraSceneAnim'. If I run the AnimationPlayer in this inherited scene, the imported camera animates as expected.

I wanted to pair this animation to other Camera3Ds made within the Godot editor, so in the inherited AnimationPlayer, I go to Animation > Manage Animations > Make Unique > Save Animation to Resource on Disk and make a CameraSceneAnim.res file to a folder.

I then make a new Node3D scene, an AnimationPlayer child, and a Camera3D as a sibling to the AnimationPlayer. I create a new AnimationLibrary for the AnimationPlayer, load in the CameraSceneAnim.res file as one of the animations, and from here I'm not sure how to set the Camera3D use the new Animation resource to move/rotate. I get a pop-up error "AnimationMixer (at: cutscene_camear.tscn): 'SceneCameraLibrary/CameraSceneAnim', couldn't resolve track: 'Camera'.

How would I set my Camera3D to use the imported animation resource? Or am I going about this in the wrong way?

The animation expects a certain node path, make sure you have the same node names and structure. You can set the AnimationPlayer’s Root Node property which may help too.

Changing the new Camera3D’s name to Camera (to match the original blender name) made the Camera3D animate as expected, thank you!

I imagine the only limitation is that I would need to have only one Camera3D with a matching name/node path to perform any cutscene camera animations.

My original intention was a way to import an action and assign it to any Camera3D node. Is that possible, or should I seek some other solution?

You can change the AnimationPlayer’s Root Node property so multiple Animation Players can point to multiple branches of a scene tree.

Ah, I see what you mean. I meant to ask what you meant about the Root Node property but I got caught up in my thoughts, lol. I read some of the documentation for the AnimationMixer Root Node and I think I see how it can be used. Thank you again!