How to Create 2D "Cinematic" Cut Scenes in Godot?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By davidpgil
:warning: Old Version Published before Godot 3 was released.

For clarity, I will explain my ultimate goal. I want to make a 2D retro-style series of cut scenes along the lines of a Nintendo game like Ninja Gaiden.

To those unfamiliar with Ninja Gaiden, the cut scenes were done by panning sprites and backgrounds, synced to sounds. There are simple frame animations to create visual effects like a scrolling background or a moving mouth when the protagonist speaks.

So… I have been looking at the AnimationPlayer node for Godot and it seems to be able to loosely do animations in the sense that you can set changes to nodes over seconds of passed time. I’m having trouble with using this tool.

Here is how I think I should work at the moment:

  1. Put all graphics and sounds into one scene file.
  2. Make every “camera cut” the child of a parent node that shows and hides the animation to be played.
  3. Make each animation very accurate; down to the frame number.

I want to be be able to specify that a certain “camera cut” will be visible for 802 frames and then hide, then the next “camera cut” will be visible for 1001 frames while playing a moving mouth animtion with typed text at the bottom then hide, etc. along those lines.

Right now it seems to me there is no way to set duration of animation by frame which is a slight annoyance, but can be worked around…

…I think I am wondering if I am doing this in the way Godot expects… I have some questions.

  1. Should I be doing this animation fully in GDScript? I want to have a high level of control/prcision over the timing of the animations and when they appear, play and hide.

  2. Should I be making each “camera cut” into a separate scene file and find a way to handle music globally while loading scne files with animations?

  3. Is there a really good primer on the Godot animation system somewhere?

I greatly appreciate any and all help. Thanks!

UPDATE 1:
I found a tutorial that covers frame based animation (without a sprite sheet) using Godot:
https://www.youtube.com/watch?v=h4kf3QvAYLw

This answers part of my question, since I plan to use individual frame files and not a sprite sheet. This also shows a way I can go about animating using GDScript and not using the AnimationPlayer node.

UPDATE 2:
I noticed at the end of the following video, the instructor explains that the “quirks” regarding Godot animation being fixed to working with seconds instead of frames is a known issue that supposedly will be addressed in Godot ~3.

https://www.youtube.com/watch?v=d9t3CdMks7M&list=PLhqJJNjsQ7KEr_YlibZ3SBuzfw9xwGduK&index=8

davidpgil | 2017-10-11 00:48

After doing a few days research I found a nice progression on how to do simple “cinematic” 2D animations in Godot. I recommend the following links.

Intro to the Animation Tools in the Godot Game Engine (Great Overview and Disclaimers)
https://www.youtube.com/watch?v=d9t3CdMks7M&list=PLhqJJNjsQ7KEr_YlibZ3SBuzfw9xwGduK&index=8

Godot Tutorial – Sprite Animation (Using GDScript and Sprite-sheetless Frame Animation)
https://www.youtube.com/watch?v=h4kf3QvAYLw

Godot Tutorial – Keyframe Animation using AnimationPlayer (Using the AnimationPlayer node to animate)
https://www.youtube.com/watch?v=5m9eB6bq3t0

Quick and Easy Animation State Handling in Godot Engine (Great method to stay organized as your animations become more complex)
https://www.youtube.com/watch?v=xHmCtUWaEes

davidpgil | 2017-10-11 04:56