godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.13k stars 78 forks source link

Make a CompositeAnimationPlayer node for making cut-scenes and dialogue more easily . . #1772

Closed jasperbrooks79 closed 1 year ago

jasperbrooks79 commented 3 years ago

Describe the project you are working on: A Tomb Raider game, with magic system, a bit more . . . .

Describe the problem or limitation you are having in your project: I really want to make cinematics, video sequences, so on, but right now I have to code it, and it's very difficult . . My interest in Godot is telling stories and, the artistic side, and I've seen Unity has something called Timeline, it's a drag-and-drop program, where one can drag video sequences ( similar, to AnimationPlayer stuff ), and trigger Audio events, and place camera animations . . It's a very simple ' sub-program ', but it really helps visually oriented teams put their animations, audio, and 2D text ( sub-titles ) in a composite animation, ie. one calls the player walk animation, for 2 seconds, while the camera, is panning over, the animation, and one can call 2D elements, like text-dialogue boxes, and also audio, from AudioStreamPlayer nodes, so one can quickly set up a linear animation, audio, and UI element sequence . . I know it's technically more correct, to CODE it, but as a visual script user, it would really help me ' churn ' out animations, cinematics, or prototype them . . It would work like this, or so . .

Skærmbillede (649)

It would look something, like so . .

Skærmbillede (648)

So, one could drag and drop animationplayer node animations ( that could trigger animations, but also trigger particlesystems on, so on, or dialogue boxes as visible, or so ), and play them side-by-side, with AudioStreamPlayer stuff, or such . . .

Describe the feature / enhancement and how it helps to overcome the problem or limitation: I'm a visual story-teller, mostly, and my use-case for Godot is, the telling of stories, through dialogue, animations, sound, so on, this feature would really help me use the engine, as a beginner, and technically it'd just be a node, that can combine or, composite several animationplayer animations, and audiostreamplayer sounds, in a visual graph, a bit easier, for artists . . It would allow me to do about 80 - 90 % of animation problems or, situations I could ever want, and it'd really help me, and would help less code-oriented teams do, the same, very fast . . I know it's a noob solution, to coding it, but for me, that is very difficult, having such a node, would really help me, especially if the different events or, so were represented with different colored bars ( maybe one could select a custom color, for each event, or so, would, be nice . . ) Since Godot is getting such amazing graphics, just stunning, for ME, and maybe many others, this would be a nice way to create linear cut-scenes, in a user-friendly way, similar to Unity's current 'Timeline' program . . .

https://www.youtube.com/watch?v=G_uBFM3YUF4

Also, I think this would help many beginners, that are unfamiliar with code, to make their first project, with nice animation sequences, or so . . Maybe it could be called a SequencePlayer node, or an EventPlayer node, not sure . .

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams: See the above chart, a more drag-and-drop based method, as an alternative to hard-coding animations, audio events, that for me as a visual scripter, is very difficult, as a total beginner . . Thanks . . . <3

If this enhancement will not be used often, can it be worked around with a few lines of script?: I'm not sure, I'm not SO good at code yet, I feel I can do this, confidently, right now, Thanks . .

Is there a reason why this should be core and not an add-on in the asset library?: Well, it'd be a simple node, and not that complex, a help to visual artists, or prototype animators, etc, that want to see what their amazing blender work looks like, combined with audio, and camera movement, almost, immediately . . .

Thanks, just, an idea . . . <3 <3

jasperbrooks79 commented 3 years ago

Anyway, this is my own idea, it just makes sense to organize different animations, events or, audio this way, for making cinematics, intro-cut-scenes, other stuff . . <3

Add, looks like this, in Unity, having a similar node, but custom for Godot's work-flow, would be a big help, to new users, and artists, animators, sound designers, for seeing their work, or prototype, vertical slice, etc etc etc . .

2020-11-04 1334

It makes sense, bec. directors, and game producers think in terms of a time-line, or FlowChart, FlowOrganizer thinking, when setting up larger animations, so on . . It'd be a BIG help, to the more artistic users of Godot, that can't code, atm . . . <3

It's as simple as it gets, very visual and, appeals to artists, and non - coders . . Thanks . .

Maybe Godot could get it's own ' version ', of this thing, would be nice <3 it is similar, to most video editing software, where one can drag different video sequences, also animation tracks into a Composite or, CombinedEvent bar, and play them, in Parallel or, side-by-side, or so . . <3

jasperbrooks79 commented 3 years ago

Here's an example, from an Open Source video editor, one can drag animation clips, sound clips, so on, and combine them, as one, single animation, or 'event' . . .

2020-11-04 1400

So, it's like a CompositeEventPlayer node, or so <3 It would help artists, and new or, non-coders quickly set up very advanced cinematic sequences, or events . . <3

jasperbrooks79 commented 3 years ago

Last, if one could move AnimationPlayer nodes either from the Scene Inspector Dock, OR, from the res:// folder, then for animations in a sub-scene, one could call animations, from the entire game archieve . .

Skærmbillede (650)

This way, if there is an animation, in a .glTF, I could import it as, ' Separate Scenes ', and access any animation, or audio event, very quickly <3 . . .

Arrow-x commented 3 years ago

Godot's AnimationPlayer Node have an Animation Playback Track (click on the + icon besides Add Track), just select another AnimationPlayerNode in the current scene (that have reference to the animations) right click in the timeline, and add a key, select it and chose in the inspector what animation you want to play, (Just like here but with animation Playback track) there is also an audio track, methode calling track ...etc Untitled to be fair this is undocumented AFIK (@NathanLovato might want to verify ), but 99% of what you want can be done without code, it just lacks the Drag and Dropping

Arrow-x commented 3 years ago

so this proposal should be closed

jasperbrooks79 commented 3 years ago

ok, thank you, I was looking for the Unity stuff, didn't know, Godot is new program, to me <3

NathanLovato commented 3 years ago

I'll let the author close the proposal if they think the feature is there.

NathanLovato commented 3 years ago

@jasperbrooks79 is it okay to close this proposal?

Arrow-x commented 3 years ago

@NathanLovato you were asking about features that are undocumented a while back, well here is one!

NathanLovato commented 3 years ago

This feature is documented here: https://docs.godotengine.org/en/latest/tutorials/animation/animation_track_types.html

Maybe not in the best way, but at least it's not completely absent of the docs.

Note that as part of my work on the official docs, I've created issues for missing pages and a number of pages that need important edits (outdated, missing information, or poor docs)

Arrow-x commented 3 years ago

nice! but it is in latest, but not in stable, and I usually don't look up the latest branch (I should though it seems)

NathanLovato commented 3 years ago

That's currently how it is, due to the absence of an active maintainer on the docs, we haven't had someone who could spend the long hours to selectively backport changes to the 3.2 and then to the stable branch. Changes happening on master include docs for Godot 4.0, which aren't compatible with 3.2. Some updates in the 3.2 branch have to be manual and are time-consuming as a result.

With my current part-time contract, I've had to start by triaging issues, reviewing dozens of pull requests, and I've got plenty of stuff to write in priority, in a limited time-frame (due to my work at GDQuest and other things).

Arrow-x commented 3 years ago

so is a new member in the community welcomed for this kind of work? (go over every merged PR, check if it applies to 3.2 and make changes to it if does not, Open a new PR for 3.2) or is it a losing battle and should focus on 4.0 documentations

NathanLovato commented 3 years ago

Absolutely! The workflow for that would be to cherry-pick changes first if possible: writing down commit ids that could apply to the 3.2 branch, create a new branch from 3.2, use the git cherry-pick command to apply the list of commits, and finally creating a pull request. That's how Akien ports features and bug fixes from Godot 4.0 / the godot master branch back to 3.2.

Calinou commented 1 year ago

Closing per the above comments, as this is already implemented.