sandolkakos The problem is due to the Adressable's Timeline playable creating a new SkeletonData
from the SkeletonDataAsset
as if it has not been loaded, and not re-use the existing SkeletonData
of the skeleton that is later bound at the Timeline playable. Then an equality check fails and thus does not apply the DeformTimeline
, thus not applying the vertex deformation animation since it thinks that the attachment has been swapped out with another attachment (which is then not receiving deformation animation by design).
The issue seems to be because of streaming assets creating copies of shared assets, see https://docs.unity3d.com/Packages/com.unity.addressables@1.18/manual/ManagingAssets.html:
"However, if you use the same asset in more than one of these categories, then Unity makes copies of the asset when building rather than sharing a single instance."
Also in section "Shared assets in groups":
"If more than one Addressable references the same non-Addressable asset, then copies of the non-Addressable asset are included in each bundle containing a referencing Addressable."
The solution seems to be to either move all skeleton assets that are referenced (especially SkeletonDataAsset) into either the same bundle (Addressable Group), or to create a separate bundle and create dependencies from the other referencing bundles:
"To eliminate this duplication, you can make the dependency an Addressable asset and include it in one of the existing bundles or add it to a different bundle. Once you make the dependency an Addressable, the bundle it is a part of is loaded whenever you load one of the Addressables that reference it."