-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
AnimationTree does not apply Call Method Track for a method in an AudioStreamPlayer script. #48526
Comments
The opposite problem occurs if the order of the animations is swapped. The line 546 in AnimationTree.cpp //if not valid, delete track
if (track && (track->type != track_type || ObjectDB::get_instance(track->object_id) == nullptr)) {
playing_caches.erase(track);
memdelete(track);
track_cache.erase(path);
track = nullptr;
} The same problem also occurs with BezieTrack and ValueTrack. AnimationTreeTest.zip (Godot 4.0 Project File) What does the |
Here is suggestion for First of all, there are two solutions to the problem of duplicate paths being removed.
The first one is not good from a performance point of view, because it expands the number of elements. So we should pick the latter. Next, consider the original reason for being: to remove duplicate paths. Perhaps it want to prevent cases like the one in the image below. In this case, it is not possible to determine which track should be preferred, so we need to validate ( The most important thing to keep in mind is that we don't know if blending between things with different As far as With all this in mind, I suggest that the blending issue should be resolved. |
Godot version:
3.3
OS/device including version:
Windows 10 Home, version 20H2, build 19042.928, HP Pavilion Gaming Laptop 16-a0xxx.
nVidia GeForce GTX 1660 Ti Max-Q, driver version 457.63, any backend.
Issue description:
Apologies, this is a weird one.
What happens: AnimationTree state machine does not apply method calls to an AudioStreamPlayer script in a Call Method Track in an Animation when another Animation exists on the same AnimationPlayer and which is alphabetically after the current animation and has an Audio Playback Track.
(yes, all of those details are important, see steps to reproduce below)
What I expected: The Call Method Track should get called regardless of other animations' Audio Playback Tracks and alphabetical status.
Steps to reproduce:
Gosh, where to begin...
Setup:
default
which translates the Sprite (optional) and which has a Call Method track pointing to the AudioStreamPlayer. Optionally, make this looping.zzz
which has an Audio Playback track with a keyframe that plays a stream to the AudioStreamPlayer (edit: actually, the keyframe is optional, only the track itself needs to exist).default
animation.default
node on ready:Actual bug reproduction:
default
animation is playing, but the method in the Call Method track is not being called.zzz
animation.zzz
animation toaaa
.Additional notes:
zzz
, they must all be "fixed" in order to get the method calls to function.Minimal reproduction project:
AudioAnimationTreeTest.zip
The text was updated successfully, but these errors were encountered: