Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to paste animation as duplicate #33252

Merged
merged 1 commit into from
Jan 17, 2022

Conversation

KoBeWi
Copy link
Member

@KoBeWi KoBeWi commented Nov 2, 2019

Might resolve #24950
image
(this image is outdated, see below for new one)

@avencherus
@golddotasksquestions

EDIT:
Added another commit that alternatively makes Paste duplicate by default and adds "Paste As Reference" option for current behavior.
image

@ghost
Copy link

ghost commented Nov 2, 2019

Great, I'll check it out, and very likely start using it immediately. It certainly should resolve the issue, as no option even exists. Much appreciation for this.

Though I don't know if the UI presentation side of things were ever settled.

I will just add that there are non-programmers that end up working with the AnimationPlayer, and in my experience when I have tried to explain the whole Animations are a Resource business, eyes get glassy. Later they're just paranoid about using the tool, and duplicating and double checking everything.

I don't animate a lot, so almost always when I return to it, I make this mistake myself of copy / paste, start editing... uh oh.

I think the major problem first is that the word Copy is already implying a Duplicate.

It's my feeling that for a tool like this, copying and pasting resource references is a secondary operation. Duplication seems to be the most intended, as copy and pasting in this workflow context is more like templating. Reaching for something similar and reworking it.

IE - Take enemy A's floating animation into enemy B, and tweak it a little.

So to add to any following discussions (if any).

I would say it probably might even be best to start with the implications of the word Copy.

Copy
Copy (As Resource)
Paste

Leaving that option there for those who know what is what regarding Resource behavior.

As others have mentioned as well, there is still some ambigiouty about in the AnimationPlayer about when things are being done to a shared resource or a unique one.

The tools seems to be trying to hide the back end implementation (Animations as Resources), for user friendliness, but then has these behaviors that are invisible and baffling to non-programmers.

@realkotob
Copy link
Contributor

realkotob commented Nov 2, 2019

@avencherus Why should there be two Copy actions? That could be confusing.

One Copy is fine, with "Paste" and "Paste as Reference" instead (or "Paste as Resource Reference").

Implementation-wise it would copy a reference first, and then if Paste is selected it would perform a deep duplicate after navigation to the reference pointer, or if Paste as Reference is used it will put the reference as-is.

Should be more efficient as well since memory wouldn't be allocated for the duplicate unless users decide to paste it (and I believe most software does duplicate at Paste-time instead of Copy-time as well).

@ghost
Copy link

ghost commented Nov 2, 2019

@asheraryam Great points.

The initial thinking was to express the intention of the action with the first choice. If having referential copying at all. It is currently a bit of a dangerous feature, since there are no accompanying indicators or persisting expectations of which is which. One might have 1 shared Animation among a list of 20 Animations, and return to editing them a week later.

I stopped short of Paste / Paste as Resource in my post, but reflecting on it, I think from a user perspective (implementation aside) it should be better. One is probably traveling to another location in the editor to do this, and it may not be entirely clear what is on the clipboard if these two options exist. (The Paste option would have to contextually change.) The Paste is the ending action and there it seems most clarifying.

With maintaining both, Paste / Paste as Reference sounds better to me at least.

I was thinking about that naming too, Paste as Resource Reference seems like the most clear, but wow that poor box is already being stretched out quite awkwardly since everything else is very terse. X)

@Chaosus Chaosus added this to the 4.0 milestone Nov 2, 2019
@KoBeWi
Copy link
Member Author

KoBeWi commented Nov 2, 2019

Added another commit that does this in alternative way (see OP). I could squash it if that's better.

@golddotasksquestions
Copy link

golddotasksquestions commented Nov 2, 2019

Added another commit that alternatively makes Paste duplicate by default and adds "Paste As Reference" option for current behavior.

Thank you! That makes all the difference!

@aaronfranke
Copy link
Member

@KoBeWi Is this still desired? If so, it needs to be rebased on the latest master branch.

@KoBeWi KoBeWi force-pushed the anime_dup branch 5 times, most recently from b6a6136 to 36f2be6 Compare August 14, 2021 17:03
@KoBeWi
Copy link
Member Author

KoBeWi commented Aug 14, 2021

Rebased refactored and squashed. Should be ready to merge.

@akien-mga akien-mga merged commit 844ea68 into godotengine:master Jan 17, 2022
@akien-mga
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Copy/Paste Animation is a reference, not a copy.
6 participants