For transparency, I wrote about this before but I couldn't quite grasp the help given to me. Hopefully this time I'll be a little bit more succinct. Previously on 'FeldFour Doesn't Know He's Doing'...
What I'm trying to do is implement a seamless transition from cutscene to gameplay
, whether its returning control to the player, or a battle. You can see this in a lot of games; the first example is a seamless transition from cutscene to a battle
from Lost Odyssey.
The second example is a seamless transition from cutscene to gameplay
in Red Dead Redemption 2.
In both of these examples, the 'player' object in the cutscene is the same object that transitions cleanly into the battle/player control.
It bears mentioning that if you've played either if these games before, the gif doesn't capture the totality of what's happening; these aren't merely just a couple of simple camera pans for a couple of seconds before the transition, they're full blown, minutes long cinematics that seamlessly transfer control to the player without missing a beat or a camera cut.
Theoretically, the PlayableDirector/Timeline component in Unity seems to be the cleanest, most efficient way to do this, however, in order for Timeline to work, it needs to be fed the object that its doing stuff with, in below, the empty Animator block. In my case this would normally be the Player Object, however in Ork, the player object is generated after
the scene starts.
Normally I know that the way to make cutscenes (that a lot of AAA games also do) would be have a game object that looks like the Player Object as a stand in and hide the actual Player Object and swap them once the cutscene ends, but obviously to make a seamless cutscene this wouldn't fly.
In the topic above I was given this advice in regards to the above;https://i.imgur.com/Cmh5PIC.png
I have a question on two pieces of this advice specifically;
Conditional prefabs automatically replace a combatant's prefab based on defined conditions. E.g. you use a global bool variable InCutScene being set to true to control that.
Otherwise you'd just need a small script that sets the game object in the timeline/playable to ORK's player - you can get the player game object at all time like this:
GameObject player = ORK.Game.GetPlayer();
Can I get a play by play on how to do this? I think I understand it in the abstract, but I don't know what to like, actually do, step by step.
I know it's a lot. Thank you!