{"action":"created","issue":{"url":"https://api.github.com/repos/godotengine/godot/issues/12469","repository_url":"https://api.github.com/repos/godotengine/godot","labels_url":"https://api.github.com/repos/godotengine/godot/issues/12469/labels{/name}","comments_url":"https://api.github.com/repos/godotengine/godot/issues/12469/comments","events_url":"https://api.github.com/repos/godotengine/godot/issues/12469/events","html_url":"https://github.com/godotengine/godot/issues/12469","id":269346316,"node_id":"MDU6SXNzdWUyNjkzNDYzMTY=","number":12469,"title":"Frame by frame animations on AnimationPlayer are a pain to deal with.","user":{"login":"aaronmzn","id":15176623,"node_id":"MDQ6VXNlcjE1MTc2NjIz","avatar_url":"https://avatars0.githubusercontent.com/u/15176623?v=4","gravatar_id":"","url":"https://api.github.com/users/aaronmzn","html_url":"https://github.com/aaronmzn","followers_url":"https://api.github.com/users/aaronmzn/followers","following_url":"https://api.github.com/users/aaronmzn/following{/other_user}","gists_url":"https://api.github.com/users/aaronmzn/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronmzn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronmzn/subscriptions","organizations_url":"https://api.github.com/users/aaronmzn/orgs","repos_url":"https://api.github.com/users/aaronmzn/repos","events_url":"https://api.github.com/users/aaronmzn/events{/privacy}","received_events_url":"https://api.github.com/users/aaronmzn/received_events","type":"User","site_admin":false},"labels":[{"id":279097162,"node_id":"MDU6TGFiZWwyNzkwOTcxNjI=","url":"https://api.github.com/repos/godotengine/godot/labels/discussion","name":"discussion","color":"ee77ee","default":false},{"id":279098219,"node_id":"MDU6TGFiZWwyNzkwOTgyMTk=","url":"https://api.github.com/repos/godotengine/godot/labels/topic:editor","name":"topic:editor","color":"ffdd44","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2017-10-28T20:11:25Z","updated_at":"2018-09-25T20:48:06Z","closed_at":null,"author_association":"NONE","body":"(_changed the title from \"AnimatedSprite, this should be its real purpose.\"_ so this issue is focussed on animations)\r\n\r\nAs a pixel artist, for frame by frame animations I prefer changing the Frames per second (fps) value like in AnimatedSprite or the animation speed with a Duration per frame (milliseconds) value like in Aseprite (even better)\r\n\r\nAnimationPlayer is not meant to be used for sprite animations, but it has the amazing keyframing feature, so you have to use it regardless of how painful it is to use for sprite animations.\r\n\r\nin other way AnimatedSprite **IS** meant for frame by frame animation, but its only purpose is for separated texture animations.\r\n\r\nAnimatedSprites should be focused only for frame by frame animations and AnimationPlayer for what was made for, cutouts animations and tweening.\r\n\r\nThis is what I suggest for AnimatedSprites:\r\n\r\n- Sprite sheet support (all frames in one texture) like how Sprite node does\r\n\r\n- changing the frame speed individually, this one would only work if the speed is changed by speed rate by frames. ex. 100 miliseconds each frame but you can edit that value for each frame.\r\n\r\n- AnimatedSprites with the keyframing feature so you're able to keyframe everything like on AnimationPlayer. All the keyframes will act exactly like an animation frame, this is great for moving hitboxes, like in a fighting game changing the hitbox position and size for each frame without any tweening\r\n\r\nthis way you don't have to deal with the AnimationPlayer timeline, moving keyframes and changing steps and lenght values.\r\n\r\nThis is an issue I'm sure a lot of people has and I hope this get added in a future stable version. like on 2.1.5\r\n\r\nI already opened a issue about this a long time ago but didn't got much attention."},"comment":{"url":"https://api.github.com/repos/godotengine/godot/issues/comments/424496094","html_url":"https://github.com/godotengine/godot/issues/12469#issuecomment-424496094","issue_url":"https://api.github.com/repos/godotengine/godot/issues/12469","id":424496094,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNDQ5NjA5NA==","user":{"login":"metaphoricalsasquash","id":43533832,"node_id":"MDQ6VXNlcjQzNTMzODMy","avatar_url":"https://avatars1.githubusercontent.com/u/43533832?v=4","gravatar_id":"","url":"https://api.github.com/users/metaphoricalsasquash","html_url":"https://github.com/metaphoricalsasquash","followers_url":"https://api.github.com/users/metaphoricalsasquash/followers","following_url":"https://api.github.com/users/metaphoricalsasquash/following{/other_user}","gists_url":"https://api.github.com/users/metaphoricalsasquash/gists{/gist_id}","starred_url":"https://api.github.com/users/metaphoricalsasquash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metaphoricalsasquash/subscriptions","organizations_url":"https://api.github.com/users/metaphoricalsasquash/orgs","repos_url":"https://api.github.com/users/metaphoricalsasquash/repos","events_url":"https://api.github.com/users/metaphoricalsasquash/events{/privacy}","received_events_url":"https://api.github.com/users/metaphoricalsasquash/received_events","type":"User","site_admin":false},"created_at":"2018-09-25T20:48:06Z","updated_at":"2018-09-25T20:48:06Z","author_association":"NONE","body":"May I ask why this Issue has been closed?\r\nThe main problem here is that AnimatedSprite does not have any of the much needed AnimatedPlayer features (like the use of Spriteatlas, a Call Method Track, Audio Playback track ect) and the AnimatedPlayer does not have the much needed features from the AnimatedSprite (ability to select the duration of each individual keyframe efficiently or change the duration of all keyframes during edit). I don't see how [#18007](https://github.com/godotengine/godot/issues/18007) would fix this issue, even though if would be clearly an improvement. As a Sprite animator, I still could not use AnimatedSprite, because it lacks too many features I have in the AnimationPlayer.\r\n\r\nOf course it may be possible to rework the AnimatedSprite until it becomes usable for anything more than the utmost rudimentary form of Sprite Animation, but adding a small feature to the AnimationPlayer instead seems far less effort to me:\r\nWhen selecting and dragging a Keyframe along the AnimationPlayer track, **while holding Ctrl**, all frames after that keyframe get pushed or pulled as many frames as the User is dragging and dropping the keyframe along the timeline.\r\n\r\nThis would essentially be the same as assigning a new duration value to a frame, which is a functionality every frame-by-frame animator needs. As a nice to have, it would be fantastic to have the possibility to set a frame duration for all keyframes within a track, which the Animator then can manually adjust for fine tuning.\r\n\r\nTo set the duration of a keyframe right now, you have to make sure a all keyframes after are properly selected, there is always the danger of miss-clicking or missing one and having to do it all again, and with more complex animations or longer durations a lot of zooming and or scrolling in and out the timeline. It's really tedious and 95% of frame-by-frame animation work.\r\n"}}
{"actor":{"display_login":"metaphoricalsasquash"}}