Slate Forums › Support › Repeating same SubCutscene again throws Playable is Invalid
Please take a look at the screenshot. It shows me playing the same cutscene twice in a row as a SubCutscene. The first time through it plays the cutscene properly. However, the second time it throws the following exception, though it does end up playing the cutscene properly otherwise. This gets throw for ever additional time I try to play the same SubCutscene in a row.
It’s also worth noting that I can get the same error with a single SubCutscene if I simply stop the main cutscene after the subcutscene has finished playing. If I stop the main cutscene in the middle of the subcutscene playing no errors. But if the subcutscene completes, and then I stop the main cutscene, the error gets throw.
Curious if there’s a workaround I can use to avoid this error? This is on Unity 2018.3, latest version, and the cutscene uses LipSyncPro, if it matters.
Thanks.
ArgumentException: The Playable is invalid. It has either been Disposed or was never created.
UnityEngine.Playables.PlayableHandle.GetInputCount () <0x428425c0 + 0x00052> in <c8d2deaeeb3a4471b3e224c2a136823a>:0
UnityEngine.Playables.PlayableHandle.CheckInputBounds (System.Int32 inputIndex, System.Boolean acceptAny) (at C:/buildslave/unity/build/Runtime/Export/Director/PlayableHandle.bindings.cs:125)
UnityEngine.Playables.PlayableHandle.CheckInputBounds (System.Int32 inputIndex) (at C:/buildslave/unity/build/Runtime/Export/Director/PlayableHandle.bindings.cs:112)
UnityEngine.Playables.PlayableHandle.SetInputWeight (System.Int32 inputIndex, System.Single weight) (at C:/buildslave/unity/build/Runtime/Export/Director/PlayableHandle.bindings.cs:68)
UnityEngine.Playables.PlayableExtensions.SetInputWeight (U playable, System.Int32 inputIndex, System.Single weight) (at C:/buildslave/unity/build/Runtime/Export/Director/PlayableExtensions.cs:198)
Slate.AnimatorTrack.EnableClip (Slate.ActionClips.PlayAnimatorClip playAnimClip) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Directables/Tracks/Runtime/Actor/AnimatorTrack_2017.cs:172)
Slate.ActionClips.PlayAnimatorClip.OnReverseEnter () (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Directables/Clips/Runtime/AnimatorTrack/PlayAnimatorClip.cs:119)
Slate.ActionClip.Slate.IDirectable.ReverseEnter () (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/ActionClip.cs:166)
Slate.EndTimePointer.Slate.IDirectableTimePointer.TriggerBackward (System.Single currentTime, System.Single previousTime) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/TimePointers.cs:121)
Slate.Cutscene.Internal_SamplePointers (System.Single currentTime, System.Single previousTime) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:693)
UnityEngine.Debug:LogException(Exception)
Slate.Cutscene:Internal_SamplePointers(Single, Single) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:694)
Slate.Cutscene:Sample(Single) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:635)
Slate.ActionClips.SubCutscene:OnEnter() (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Directables/Clips/Runtime/ActionTrack/DirectorActions/Composition/SubCutscene.cs:60)
Slate.ActionClip:Slate.IDirectable.Enter() (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/ActionClip.cs:163)
Slate.StartTimePointer:Slate.IDirectableTimePointer.TriggerForward(Single, Single) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/TimePointers.cs:39)
Slate.Cutscene:Internal_SamplePointers(Single, Single) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:683)
Slate.Cutscene:Sample(Single) (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:635)
Slate.Cutscene:Sample() (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Framework/Cutscene.cs:605)
Slate.CutsceneEditor:OnEditorUpdate() (at Assets/3rd Party/ParadoxNotion/SLATE Cinematic Sequencer/Design/Editor/Windows/CutsceneEditor.cs:503)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
In some additional digging, it seems like this only occurs so far if the sub-cutscene has an Animator Track, and is playing an Animation via an Animation Clip.
Okay, I’ve managed to create an easy to reproduce test case that exhibits this issue:
Upon playing the MainScene, you’ll get the error when it plays the SubCutscene a second time if the Animation Clip in the SubCutscene extends beyond the end of the cutscene. See the attached screenshot. If I change the endpoint of the SubCutscene so that the animation clip doesn’t go off the end of the Cutscene, it plays fine. But if I let the Animation Clip go beyond the end, I get the error.
The “workaround” is just to make sure the animation clip doesn’t go beyond the end of the cutscene. But I figured I’d pass along the test case.
Hello,
Thank you for the information provided. There is indeed a known issue when animator clips extend beyond the end of the cutscene length. This problem exists regardless of whether or not a cutscene is played as a subcutscene. This error will be thrown even for a standard cutscene if the animator animation clip extends beyond the length of the cutscene.
Like you said, right now it would be better to simply keep the end of the animation clip within the cutscene legntth, but with that said, I do need to fix this of course 🙂
Thanks!
Join us on Discord: https://discord.gg/97q2Rjh