godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Add recording feature and button to AnimationPlayer #169

Open golddotasksquestions opened 5 years ago

golddotasksquestions commented 5 years ago

Describe the project you are working on: Projects that require me to create many animations, tracks, keys.

Describe the problem or limitation you are having in your project: Creating animations, tracks and key is a very tedious process. Especially so when trying to animate not just one property of an object, but a few.

Describe how this feature / enhancement will help you overcome this problem or limitation: If we had a record feature for the AnimationPlayer, I could hit "record" even prior to any animations existing, make a change to any object, hit pause or stop when I'm done, and only fine tune the timing and values if needed. If I made changes to multiple properties, (like scale, position, rotation, texture ... what have you) all those tracks and keys would be created for me. If there was no animation in the AnimationPlayer, it would automatically create a new one and give it a dummy name.

Show a mock up screenshots/video or a flow diagram explaining how your proposal will work: record_button

Describe implementation detail for your proposal (in code), if possible: I only got a C-- in the "How to turn your computer on and off" class. So I'm not quite on the level of C++ yet.

If this enhancement will not be used often, can it be worked around with a few lines of script?: I suppose it would be used a lot, as it would make animating anything a whole lot faster and easier.

Is there a reason why this should be core and not an add-on in the asset library?: It's another UX improvement (a rather substantial one this time) to the AnimationPlayer. I don't think you should need go to the asset library to make existing tools efficient to use.

Calinou commented 5 years ago

How does this differ from the autokeying option (the "car" icon at the top of the 2D view when AnimationPlayer is selected)?

image

Note that this feature is present in 3.1.1, but the icon wasn't added in time, which means you have to click the invisible space where the icon would be.

KoBeWi commented 5 years ago

How does this differ from the autokeying option

I think it's about recording a set of values over time, i.e. you change property and it's added at current time, but time advances automatically (not sure if this is a case with current auto-keying)

golddotasksquestions commented 5 years ago

@Calinou Neither 3.1.1 nor 3.2 alpha2 Win64 has no visible or invisible car symbol up there, so I really don't know how to answer this question.

no_car

Even if such a feature already excited (which I cannot test, as it is not there), having it as (in)visible car up there is really of no good. Please for the love of everything sacred, lets not question incredibly basic well known user behavior.

A red disc next to a play and stop is what everyone knows and immediately recognizes as a record button. Please, oh please, let's not make Godot usability worse by inventing our own little way of doing things when there already are well known world wide spread user behaviors conventions.

golddotasksquestions commented 5 years ago

Found the car in 3.2. alpha2, not sure what I did to not make it appear before. Anyway, so I can answer your question @Calinou:

  1. It's a car. A recording button asks for a internationally recognized recording symbol (red disk next to play and stop)
  2. Even by design there are preexisting conditions to meet before it does anything (create or use and existing animation, create or use existing track, create first key manually.) This feature request is explicitly to not have those requirements, but that those things are created automatically, if they don't already exist.
  3. Even if those conditions are met, it does not seem to record anything at all. Only if there is another key set, it does seem to do something. However it does not record any new keys (which is what this issue is about), only the last key value I already set seems to change:

car_not_recording_32

  1. Thinking it may only override existing key values (which would still not be what this issue is about but still having better than no recording at all), I tried adding keys, pressing the car and play hoping to override existing keys (it's the same without play): car_not_recording2_32 car_not_recording3_32

So to summarize: That car does not look like a recording feature, it's not at the place where I would expect a recording feature, it does not perform at all like a recording feature, so in total it does nothing I would expect from a feature outlined in this proposal.

ghost commented 5 years ago

Found the car in 3.2. alpha2, not sure what I did to not make it appear before.

It was directly committed https://github.com/godotengine/godot/commit/296c74072c0f4d71567c425a94d9502a68b6e177 with the icon missing initially, then added https://github.com/godotengine/godot/commit/5d65100669e8a8ece09677feb744c69b4466aa90

Only the first commit was taken into 3.1,1 which went to release shortly after. So nothing you did or didn't do. It should be appearing in the next 3.1 release if the PR above is merged before then.

Also, someone once suggested this. Not sure if it went anywhere. image

vyshliy commented 1 year ago

I want to propose moving the record button directly to the animation player, exactly as originally proposed. Everything highlighted in green in the screenshot refers directly to the selected node, except for the record button. The record button is related to the state of the animation player itself. In addition, this is a much more familiar location for users of any other software. In the context of this thread #4273, everything in the green area will probably be moved to the inspector, making the state of the record button even less clear, while the position in the player is clear and unambiguous Screenshot_20230412_152305

igtCWrightson commented 1 year ago

Is there a reason this functionality does not exist for 3D objects? And I agree with the original post, the record button should be present in the Animation tab as shown in the first screenshot.

Calinou commented 1 year ago

Is there a reason this functionality does not exist for 3D objects?

I think the only reason is a technical/code organization issue. It was never implemented in the 3D editor, as it requires duplicating the code that was added in the 2D editor.

igtCWrightson commented 1 year ago

I think the only reason is a technical/code organization issue. It was never implemented in the 3D editor, as it requires duplicating the code that was added in the 2D editor.

Good to know. Thank you. I would LOVE to have this feature in the 3D mode. Maybe it's not too hard to bring over from 2D.

tobiasBora commented 5 months ago

I’d also be fairly interested (this is possible possible in blender), for both 2D & 3D, and ideally any property (or maybe we can bound them to bones and then just animate the position of the bones?). I tried the record button, but even in 3D it is not doing anything while playing:

Peek 30-05-2024 11-44