Search Unity

SLATE (Complete Gameplay Cutscenes & Cinematics Sequencer)

Discussion in 'Assets and Asset Store' started by nuverian, Feb 29, 2016.

  1. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    ForumsHeader.png

    - Made using Slate Sequencer -

    SLATE is the most efficient, easy and intuitive sequencer for creating cinematic or gameplay cutscenes in Unity, full of unique features and an artist friendly UI/UX for achieving the best workflow and results possible within a lesser amount of time.

    SLATE will help you achieve your creative goals without the hassle, in a familiar track-oriented realtime editor, inspired by software like Adobe After Effects and Premiere right inside Unity.

    Feature Highlights:
    • Unparalleled Realtime Editor Preview, Visual Feedback and deterministic Layer-Based Sampling.
    • Unique Camera Shot System makes directing cameras a snap and creating "moving" shots intuitive.
    • Shot Transitions like CrossDissolve, Fade Out/In (DipToBlack) and EaseIn.
    • Optional automatic Gameplay Bending from and back to gameplay camera.
    • All rendering is done from a single and Consistent Render Camera, which allow for consistent image effects applied (like color correction) across the whole cutscene length, with the added possibility of animating them.
    • Audio System with track oriented settings instead of per clip, with the added ability of sending audio to the new Unity's Audio Mixer for finer control and applying effects.
    • Unique Animation System, which allows layering animation clips on top one another for smooth blending and transition between them and track oriented settings for affected bones and blend modes. (For legacy animation system. Mecanim is also supported, but without layering feature, until Unity release and make Playables possible in editor).
    • A familiar Curve Editor and a new advanced DopeSheet Editor for animating any component property/field (of the supported type) on the actor gameobject, or within it's whole transform hierarchy.
    • A handful of Premade Action Clips for animating environmental variables (time, fog, light), adding screen effects (subtitles, titles, image overlays), sprites, UVs, material color, blend-shapes, expression, even up to pathfinding with complete editor preview.
    • Animatable Action Clip Parameters! Meaning that it is possible to animate some of the action clip's parameters directly within the clip, similar to After Effects or other animation software.
    • Action Clip Blending, for easily easing in and out the clip's effect/presence/weight.
    • Virtual Actor References, for working with prefab and localized cutscene actors efficiently.
    • Optional Rendering to GIF, MP4, PNG or EXR Image Sequence.
    • Alembic Workflow, to import and work in sync with alembic files exported from any animation software.
    • Time Sections and SubCutscenes for organizing and re-organizing cutscenes efficiently, as well as allowing for playing only a specific section at runtime.
    • Specialized Character clips supporting BlendShape-based facial expression groups and making head look-at easy.
    • Complete Playback Control. Play Once, Loop, Ping Pong. Play forwards, backwards, a specific section, or any combination of the above, with runtime rewinding.
    • Totally Extendable for creating custom clips or even tracks.
    • Full Source Code is included for both runtime and editor.
    • And so much more!


    Some Animated GIFS:


    Blend In/Out Clip Effects


    Animatable Parameters. Key parameters within the clip


    Easy Key Re-Time/Scaling


    Clip Fitting


    Clip Splitting


    Quick Organization


    Intuitive Camera Direction Controls


    Camera Transitions


    Easy Animation Clip Looping & Blending


    Animation Clip Playback for both Legacy and Mecanim!


    Complete Curve Editor and DopeSheet


    Animation Trajectory Gizmos


    Cutscene Sections


    Alembic Workflow


    Follow Bezier Path


    Follow Pathfinding Path

    Screenies:

    Click the image to view original size
    ScreensForum.png
     
    Last edited: Jan 18, 2018
  2. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    SLATE is now live on the asset store! No better time to get it while it's 40% off for celebrating it's release :)
    Cheers!
    --EDIT-- Sale is over
     
    Last edited: Apr 10, 2016
    Danirey and Rtyper like this.
  3. NeonTanto

    NeonTanto

    Joined:
    Jun 19, 2013
    Posts:
    156
    My cograts with release! It looks very promising!
     
  4. Danirey

    Danirey

    Joined:
    Apr 3, 2013
    Posts:
    548
    Very nice! I'm using node canvas and it is huge. Can't wait to try it!

    Well done!
     
  5. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey!
    Thanks a lot! I'm glad you like what you see :)

    Hello again!
    Thanks a lot! :) I'm looking forward to your feedback if you get the chance to work with it!
     
    Danirey likes this.
  6. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    [EMPTY]
     
    Last edited: Apr 12, 2016
  7. Async0x42

    Async0x42

    Joined:
    Mar 3, 2015
    Posts:
    104
    Hey nuverian, what would you say would be the key differences between this and Cinema Director?

    I don't want an asset duke-out, but I'm just wondering since I don't have experience with cinematic sequencers. I'm leaning towards SLATE simply because of my great experience with NodeCanvas!

    (Also, how long is the sale on for? I'd like to try it out when I've got some time, but don't want to miss out on the deal)

    Edit: Actually, I bought it anyways, I have faith! I'm still curious about any differences though, until I have time to check it out myself.
     
    Last edited: Mar 23, 2016
  8. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey @Async0x42 ! Thanks for getting SLATE and for your faith :). I appreciate that!

    There are a lot of differences really, but here are the most important ones:
    • The variables of most clips are animatable and such they allow for the clip's effect to be animated. For example in the LookAt clip, you can animate the target position variable of the clip, directly in the clip over the period of time that the clip has, instead of the target position variable being static along the clip's whole time.
    • The above also happens in the camera shot clips, which means that a camera shot is able to be animated directly within the clip, instead of having to have another whole track just for animating that camera shot.
    • Most clips have a blend in and out effect (as seen in the screenshots). These two parameters together allow for smoothing the effect of the clip in and out. So for example in the mecanim SetFloat clip, the float can be smoothly transitioned from it's current value and to the specified new target value, instead of 'poping' to the target value instantely. The same blend in/out parameters can be seen across most clips having various different effects like fading volume, fading weight of animation, fading the camera etc. depending on what the clip does.
    • All cutscenes in SLATE are rendered from a single render camera, which means that you can add image effects just in this render camera for the whole cutscene to have a consistent look instead of having to add the same image effects in all camera shots used in the cutscene and those image effects can also be animated easily.
    • The curve editor in SLATE is exactly the same as the one Unity has and there is a complete DopeSheet for managing keys easily like moving keys, copy/pasting keys, scaling keys, smoothing selection etc, that can be used when animation curves are collapsed.
    • There is a whole sub-system included for creating and animating character blendshape facial expressions, as well as head look at.
    • The animation system in SLATE, allows you to have animation tracks on top one another and as result play animation clips on top of other animation clips with options to affect specific bones with per-track specified weights instead of per-clip. So in effect, each animation track of an actor, represents a different animation layer.
    • There is total freedom in the cutscene playaback. For example you can choose to playback only a specific time section of the cutscene with the option to loop that section or ping pong it.
    • Here are some more differences that come in mind in random order: animation path visualization, camera shot thumbnails, gameplay camera blending, audio and animation clip looping, follow path action, pathfinding action with editor preview, 2D sprites animation support, unity audio mixer support, cutscene sections, sub-cutscenes...
    I'm looking forward to hearing your feedback when you get the time to work with the tool and thanks again for getting SLATE :) If you have any questions feel free to ask away of course.

    Cheers!
     
    Last edited: Mar 23, 2016
    Async0x42 likes this.
  9. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello everyone. I have send a new version to the asset store fixing the audio waveform preview for Unity 5.4. The introductiory sale is also removed with this release and the price is set to it's normal.
    Finaly I've also added some animated gifs in the first post of this thread :)

    Cheers!
     
    zyzyx likes this.
  10. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    286
    Stupid question but ... Can this be working for 2D as well ?
     
  11. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey,
    It's not a stupid question at all :)
    Yes, Slate works with 2D. Let me know if you mean something specific or some specific aspect of 2D.
    Thanks.
     
  12. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Do yyhave plans to add the ability to take screenshots soon?
     
  13. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello,
    There is already the ability to render a cutscene in an image sequence using the 'ScreenCapture' clip found under 'Utilites' category of the director group. The time range of the clip also controls when the capture starts and end. So in the example bellow an image sequence will be rendered from 1 to 10 sec in playmode.
    ScreenCapture.png

    Please let me know if you mean something different.
    Thanks.

    --EDIT--
    This is now obsolete. Slate includes a complete rendering utility
    --
     
    Last edited: May 6, 2016
  14. RitonV

    RitonV

    Joined:
    Mar 3, 2016
    Posts:
    3
    Hello,

    We just bought Slate last week, for evaluating and eventually switch from CinemaDirector. It seems promising, but why did'nt you gave any demo scene ? It's so helpful for testing...
    I am not a c# coder, and our animators too. I would like to know how to trig easily a particle effect with Slate ?
    Cheers
     
  15. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello,
    Thanks for getting Slate.
    I will very shortly create an exaple scene and will be available for download as soon as I complete the next update which is huge and will post about it here in the comming days.

    A particle system can be played in an Action Track of the Director group. There is a clip named "Sample Particle System" under the "Control" category. You simply assign the Particle System you want to play in the inspector.
    If the particle system is set to Looping the length of the clip will be free to adjust and which will show when and how long the particles will be active. If the system is not a looping one, the length will be fixed and equal to the particle system duration.
    SlateParticleSystem.gif

    It would also be good to of course set the particles "Play On Awake" setting to false since you want to control it in the cutscene.

    Let me know if you need any further help, or have any suggestions.
    Thanks!
     
    ksam2 and toto2003 like this.
  16. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    is there any need to integrate this with Dialogue manager from @TonyLi ? im currently using CinemaDirector that can be triggered easily in DM by using Lua, only problem is cinema director workflow is not perfect and require one camera per shot which is not easy to manage when your camera have complex setup.

    and is it still 40 % off sale?
     
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,690
    SLATE looks very good. If there's enough interest, I'll add integration to the Dialogue System's roadmap.
     
    Async0x42 likes this.
  18. Async0x42

    Async0x42

    Joined:
    Mar 3, 2015
    Posts:
    104
    I'd like that as well!
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,690
    Okay, SLATE integration won't be in the upcoming 1.6.0.2 release, but it'll be in the one after that. I'll also publish the integration package on the Dialogue System Extras page as soon as it's available.
     
    Async0x42 likes this.
  20. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    great tony.
    About Slate itself im searching in the API is there something to do PlayCutscene(name) ? i only see one function for subcutscene
     
  21. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    @TonyLi Thanks. I'm glad you like what you see. An integration would also be really awesome :) I've send you a PM.

    @Damien Delmarle Hey,
    You can simply start a cutscene by having a reference to it and calling Play() or using any of the Play() overloads.
    Code (CSharp):
    1. using Slate;
    2.  
    3. public class Example : MonoBehaviour{
    4.  
    5.     public Cutscene cutscene;
    6.  
    7.     void Start(){
    8.         cutscene.Play();
    9.     }
    10. }
    Here is the relevant documentation for controlling cutscenes.
    The 40% sale is over right now by the way. This is the currently standing price.
    Let me know if you need any further help.

    Thanks!
     
  22. Async0x42

    Async0x42

    Joined:
    Mar 3, 2015
    Posts:
    104
    Hey nuverian, I just played with it quickly before, but is there a way for SLATE to trigger NodeCanvas events?

    Kind of like a deep integration, so that say, at x/x time, have it trigger a specific NodeCanvas action?
     
  23. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey,
    Yes :) If you download the extension package from the Slate or NodeCanvas downloads section website, you will get some extra clips that can be added in an Action Track of an Actor Group. One of them is "Send Graph Event" and it will work as you'd expect. Let me know if that's what you mean and if that works for you.
    Thanks
     
  24. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    It looks totally awesome :eek: I wish I just could buy this asset.
     
  25. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Thanks. I'm glad you like what you see. I've replied to your PM by the way.
    Cheers!
     
    ksam2 likes this.
  26. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    So, time for the huge update, rightfully bringing Slate to version 1.2. Without further ado, here is what has changed:

    Experimental Animator Track (playables)
    There is already a Mecanim track in Slate which is able to playback mecanim animation, but this was done by setting mecanim's parameters, which is rather non intuitive. The new Animator track simply plays animation clips directly without the need to create a state machine whatsoever, using the new Unity's Playables API. This is far more direct, faster, and the animation is also retargetable.

    This feature is available only in Unity 5.4 and will be improved to also use root motion soon. This is still experimental (but it works fine).

    Automatic CrossBlending Clips
    Animation clips now automatically cross blend between one another when they overlap.
    DopeSheet Improvements
    The animation keys now show their value in the DopeSheet editor and in the curves track, there is now a separate DopeSheet shown for each animated property. When a property is clicked, the animation curves of that property will show instead.

    Animation Curve Wrap Modes
    All animated properties or animated parameters of action clips can now be set to have a wrap mode of Once, Loop or Ping Pong through the "gear" icon, which also provides further options for resetting the animation, or adding/removing keys for example.


    Action Clips
    Clips now have an option in their context menu to Stretch to fit empty space around them, as well as to Split them at a specified time making managing them easier.

    Stretching


    Splitting

    Preferences
    There is now a editor preference window where you can customize certain things to your liking.

    Camera Shot Improvements
    • Camera Shot clips can now be set to not use any internal animation, or even use a specified animation clip which is useful if you export animations from some DCC package.
    • Camera Shots can now be synced/controlled live through the unity's scene view camera by pressing the relevant "Look Through" button on the Camera Shot clip. The scene view will be constantely looking through the shot camera and and change made to the scene view camera will be reflected to the shot.
    • Added Rule of Thirds guide in game view when previewing a cutscene which you can use for better shot composition, but you can also turn it off if you don't want it through the new preferences window.

    Time Stepping
    Added new shortcut to step through important time points of the cutscene or keyframes in case a clip is selected, by using ">" and "<" keyboards keys.
    Other New Stuff
    • Pan & Zoom can now be done with ALT + left or Right click respectively.
    • SubCutscene clips now have an icon to be easier recognizable.
    • Added "Toggle" option in action clips like Set Visibility, Set Behaviours Active State and the like instead of only Enable, Disable.
    • Added option in cutscene "Active Layers", where you can select which layers are to be set visible and which ones invisible while the cutscene is playing.
    • The first frame of animated parameters and properties is now automatically keyframed to the current value for easier management with no worries. This can be turned off though.
    • Rectangle selection of keyframes within the action clip's DopeSheet is now possible.
    • Coding: The GUI for subtitles, overlay images and the like, can now be overriden and handled manually.
    • The default Depth of Field effect supported for shots, is now the new one from Unity's Cinematic Effects asset.
    • Gameplay blending is now turned off by default to avoid confusion. It's easy to turn it on again though the Camera Track of course.
    • Animatable Parameters in clip's inspector is now improved and is also foldable.
    Fixes
    • Fixed bug relevant to first keyframe of animation clips that were resetting.
    • Fixed jagginess taking place in some occassion when dragging action clips while holding shift for shifting them in time.
    • Fixed moving keyframes in the dopesheet that were not respecting the Snap Interval preference.
    • Animation trajectory path gizmos, are now smoother.
    • Fixed accidentally moving the Shot when scrolling through the Camera Shot inspector.
    • Fixed Camera track not initializing when playing cutscene in reverse.
    • Various other not important to mention here fixes

    Important Notice:
    The way animation is applied has changed from additive to absolute. This change is handled internally, but you might notice some changes in existing cutscenes made when you update. Apologies if that happen, but unfortunately it was a change I had to make sooner rather than later.

    The new version is already submitted and pending review by the asset store team.
    Cheers!
     
    Last edited: May 4, 2016
    Tiny-Tree, TonyLi, hopeful and 2 others like this.
  27. Async0x42

    Async0x42

    Joined:
    Mar 3, 2015
    Posts:
    104
    Yes I had seen that, I was thinking more along the lines of reflected methods and actions such as that (which aren't all tied to a graph owner). It'd be nice to have a cutscene, then say at x/x seconds, call a specific function, or NodeCanvas action, without using events/parameters to trigger them.

    It's probably complicated to integrated it like that, but was something I was thinking about!
     
  28. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    Wow, cooooooooooooool. it going to be the best Cutscene creator on asset store.
     
  29. firestorm713q

    firestorm713q

    Joined:
    Jan 6, 2013
    Posts:
    16
    Is it possible to call script functions or publish events from a cutscene? This would be one of those "Killer Features" that'd get the studio I work for to buy a few seats.

    Edit: Ah, just found it. So you can send messages on Actor action clips, and raise events and send messages on Director action clips. Okay, I might be raising this with my boss in a few weeks as our animation ramps up.
     
    Last edited: Apr 11, 2016
  30. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    im very happy with this plugin the workfow is so much better than cinema director but two little things i feel missing, camera noise movement/rotation and a simple singleton that would be auto added to scene which would cache in a dictionary <string name, Cutscene cs> so we can call singleton.play("cutsceneName")
     
  31. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Thanks! :)

    Hey,
    Yes. As you found out, you can send messages either to selective actors, or to all actors along with a parameter value, or raise unity events :) In the next version methods will be show in a dropdown instead of typing in their name.
    Furthermore, you can also subscribe to events on the cutscene for when such events are raised, or when a Section has been reached for example.
    Thanks!

    Hey,
    I have now implemented both of those request. Cutscenes can be started through the static Cutscene.Play(string name). Furthermore I've added a SteadyCam Effect slider in the Camera Shot Clips, which the higher it is the more "noise" the camera will have. Of course this effect is applied on top of any other animation the shot has :)


    The effect at 0.5 out of 1

    Thanks for your suggestions! (More are welcome).
     
    Last edited: Apr 12, 2016
    nxrighthere, Tiny-Tree and hopeful like this.
  32. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey,
    So, I liked your idea and created a "Trigger Action Task" clip, which is possible to trigger a list of any NodeCanvas actions with options to use a blackboard either from the actor gameobject, the cutscene gameobject, or none. In effect all NC actions ever created, are available to be triggered in Slate :)
    I will update the integration package to include this after the next Slate version, since there were some slight changes that were needed to take place.

    Thanks for the idea!
     
    Async0x42 likes this.
  33. Async0x42

    Async0x42

    Joined:
    Mar 3, 2015
    Posts:
    104
    Awesome, thanks! I think easy user integration between this and NodeCanvas will make it incredibly powerful!
     
    nuverian and hopeful like this.
  34. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    The new version 1.2 is now live on the asset store. Changes listed in this post.

    The even newer version 1.2.5 is already submitted, which features the SteadyCam Effect shown above, some changes required for the ability to trigger any NodeCanvas action within a cutscene, as well as a hotfix.

    Cheers!
     
  35. peroon

    peroon

    Joined:
    Nov 18, 2012
    Posts:
    7
    Is there a trial version?
    I want to compare the product with other cut scene tools.
     
  36. Carpe-Denius

    Carpe-Denius

    Joined:
    May 17, 2013
    Posts:
    842
    Is it possible to animate negative rotational values? I've had problems with several cutscene editors regarding that topic ..
     
  37. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Very sorry for the late replies!

    Hello,
    I've send you a PM. Thanks.

    Hey,
    Yes, of course that is possible if you are using Unity 5.3. In Unity 5.4 they changed the way that transform values work in the editor and as such, I have already send an update to fix this.
    Thanks
     
  38. Carpe-Denius

    Carpe-Denius

    Joined:
    May 17, 2013
    Posts:
    842
    That explains why every cinematic tool has problems at the moment. I'm waiting for the update, then, thank you.

    btw: AnimateIKBase.cs for FinalIK: SolverManager can be in namespace RootMotion instead of RootMotion.FinalIK.
     
  39. Cygon4

    Cygon4

    Joined:
    Sep 17, 2012
    Posts:
    382
    I'm trying to create a camera shot that has the camera move forward and then turn slightly.

    The moving forward part works pretty well, but as soon as I add any kind of rotation, the camera starts to mimic a rollercoaster (turn over backwards, roll, go sideways, show the floor then twirl backwards all from a single 15° Y rotatio keyframe).

    I'm using Unity 5.4 and Slate 1.4.5. Could this also be related to what you describe ("change the way transform values work in the editor")?

    Also, when I scrub over the timeline, Slate inserts countless keyframes while I'm scrubbing. Is this also related - if not, how can I scrub without messing up my keyframes?
     
  40. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey,

    If you want, PM me an invoice ID along with an email to send you the new version instead of waiting it to get live on the asset store.
    Thanks for the extra info on FinalIK.
    Cheers.

    Hello,

    Yes, all of those issues are exactly related to the change I mentioned in Unity 5.4. If you want, PM me an email and an invoice ID and I will send you the new version asap, which has this issue in Unity 5.4 fixed.
    Thanks.
     
  41. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello everyone,

    Final IK Extension
    A heads up if someone has not noticed since I haven't post about it yet, but Slate is now completely integrated with @Partel Lang FinalIK. With this extension it's possible to animate IK within a cutscene with full realtime editor preview. :)





    The following ActionClips are now available within all of which the weight, IK position and IK rotation where applicaple are animated parameters.
    • Animate AimIK
    • Animate BipedAim
    • Animate BipedLimb
    • Animate BipedLookAt
    • Animate CCDIK
    • Animate FABRIK
    • Animate FBIKLimb
    • Animate LimbIK
    • Animate LookAtIK

    NodeCanvas Extension Update
    Furthermore, I have updated the NodeCanvas extension like @Async0x42 suggested, and it's now possible to trigger any action task ever made for NodeCanvas right within a Slate cutscene directly.



    Each "TriggerActionTask" clip, can execute a normal list of ActionTasks with the ability to read the blackboard either from the actor gameobject, the cutscene gameobject or simply none. Furthermore there are two modes with which it works:
    • If the clip is set to 0 length, the action list will take as long as it needs to complete.
    • If the clip has a specified length other than 0, then the action list will repeatedly execute for the duration of the clip.

    Finally, a new big update is coming soon :)
    Cheers!
     
    Crossway, Async0x42, hopeful and 2 others like this.
  42. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    what is the best workflow to only have one camera active in the scene ?
    right now each shot create new cameras, i want to have only one main camera, but keep using "shot position and other data"

    few things missing:
    - some inspector events like OnCutsceneStart/stop so we can assign from inspector some function for example to disable input like that
    Code (CSharp):
    1. [Serializable]
    2. public class EditorEvent : UnityEvent {}
    3.  
    4. public EditorEvent OnCustsceneStart;
    5.  
    6. OnCutsceneStart.Invoke();
    i have seen there is some message like : <b>(intro1) Global Message Send:</b> 'OnCutsceneStarted' () but no idea how to use this event
    -a simple trigger to start our cutscene on Start, Enable, public OnUse that we can call from other script,
    -a simple demo scene with many features introduced and demonstrated, i actually had a hard time to visualise my cutscene because the camera setup was somehow wrong

    - as you introduced the ability to do playCutscene(name), could you also make it first check if there is one cutscene in the resources folder and instantiate it before searching in the cache of the scene, then instantiated cutscene are automatically destroyed at the end
     
    Last edited: Apr 24, 2016
  43. Cygon4

    Cygon4

    Joined:
    Sep 17, 2012
    Posts:
    382
    I think the cameras created by the shots are only there for you as positioning helpers and internally to allow Slate to render the previews in the editor.

    The docs say that all cutscene rendering is done from the "★ Director Render Camera" that gets added to your scene. If you have an ease in / ease out at the ends of your cutscene, the camera position even smoothly interpolates from the position of the camera that was active when the cutscene started to the cutscene camera.

    So far it's been pretty useful for me since I don't even have to worry about disabling any first person / third person camera controllers to keep them from fighting with the cutscene camera positioning.

    --

    You can get the global OnCutsceneStarted() message simply by writing a method with that name in any script you like and adding that script to the cutscene object. I believe it's also sent to all game objects for which tracks exist in the cutscene.
     
    nuverian likes this.
  44. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,035
    Hi, does it allocate any memory at runtime?

    How does it save cutscenes? Any chance to have it on something like json, so they could be transfered by web easily(not a fan of asset bundles)?
     
  45. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hey,
    Like @Cygon4 mentioned, only one camera is active at any time, and that is the "★ Director Render Camera". Everything is rendered from within that camera regardless of the number of shots you have in the cutscene. So there is no special workflow needed here :) Just like you mention, the rest of the camera are stubs, used only for their data (and in editor for previews too)

    Regarding events, right now you can either do what Cygon suggested, or subscribe to the event OnGlobalMessageSend<string, object>, where the first argument is the name of the event and the second one the value if any.

    Code (CSharp):
    1. public class Example : MonoBehaviour{
    2.  
    3.     public Cutscene cutscene;
    4.  
    5.     void Start(){
    6.         cutscene.OnGlobalMessageSend += OnGlobalMessage;
    7.     }
    8.  
    9.     void OnGlobalMessage(string name, object value){
    10.         if (name == "OnCutsceneStarted"){
    11.             //do stuff...
    12.         }
    13.     }
    14. }

    This same event is also raised whenever you use any "Send Global Message" action clip that can be found under the "Script" category of a DirectorGroup ActionTrack.

    In the new version I have also added a static event for OnCutsceneStarted and OnCutsceneStoped, which is better to be used if you want to do something like disabling/enabling controls for whenever any cutscene is playing/stoped.
    If you definitely want to use inspector Unity events, there is already an action clip that can be added in the ActionTrack of the DirectorGroup called 'Raise Unity Event' under category "Script" :)

    UnityEvent.png

    Regarding a trigger script, do you mean something like this? I am not sure :)
    Code (CSharp):
    1. public class Example : MonoBehaviour{
    2.  
    3.     public Cutscene cutscene;
    4.  
    5.     void OnTriggerEnter(Collider other){
    6.         if (other.gameObject.tag == "Player"){
    7.             cutscene.Play();
    8.         }
    9.     }
    10. }
    A demo scene will come after the next update I'm sending, but meanwhile, what kind of camera setup issue do you refer to. Please let me know.

    Finaly, regarding your last suggestion about Resources, yes I will add this in this update.

    Thanks!



    Hello,
    Yes, it does allocate a very minimal amount, which I will look at dropping to zero after the next update. Other than that it's very fast. The cutscenes are not custom serialized and they are normal unity objects. After a lot of debating to serialize the data to json instead, the default unity setup for this particular project was always way too faster in initialization due to the vast amount of curves/keys a cutscene can potentially have.
    So, transferring a whole cutscene through web (serializing/deserializing it) is not possible. If you are after transferring some specific data, the Unity's JsonUtility can be used for that and I can help in provide some API to make this easier.

    Thanks!
     
    Tiny-Tree likes this.
  46. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello everyone.
    The Dialogue System (PixelCrushers) integration in now online for download. Thanks @TonyLi !
    The integration is bidirectional, so it's possible to both control cutscenes from Dialogue System as well as Dialogue System aspects like Barks, Alters, starting conversations, executing LUA etc from within cutscenes. Here is the relevant link
    .
    NewUI.png
     
  47. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello everyone.

    The new version 1.3.0 is now live on the asset store! There is a vast amount of changes, so without further ado here they are:

    Virtual Actor References

    Virtual Actor References is a feature that makes it possible to work with virtual references of actors that exist only for the duration of the cutscene by instantiating the original actor reference and optionally placing at a specified local cutscene coordinates, while disabling the original. When the cutscene is finished, the original actor is re-enabled and the local instance destroyed. All this of course is done automatically and is a very convenient way for working with prefab actors without the need to manually instantiating and assigning new actors.

    The whole workflow is seamless and in editor a virtual representation gizmo of the referenced prefab (or not) actor is visible in the scene view along with handles to place the actor at the coordinates it will appear once the cutscene begins, or otherwise get's sampled.



    Note that here, Chan is a prefab!
    The thin line bellow, shows the local offset of Chan relevant to the Cutscene root and exactly where she will appear.



    Alembic Workflow

    There is now the ability to import Alembic files along with all it's animation data, mesh deformations and cameras, and sample them in sync with a specially created cutscene. Sampling the cutscene at frame 10 for example, samples the alembic file at frame 10 as well. This workflow can be used to potentially create cutscenes in your favorite animation software, export the alembic file and use Slate to add final touches and extra animation, audio or things of Unity matter.
    Cameras are also imported and can simply be used directly in a Camera Track.


    Offline Rendering

    Cutscenes can now be rendered both in editor and in runtime through the new Slate Render Utility, to either MP4, GIF, PNG or EXR Image Sequence, along with extra render buffers used in compositing.



    Improved Splitting

    Splitting Animation and Audio clips will now preserve the clip's local offset within the Slate Action Clip.


    Furthermore

    New

    • In case you didn't notice already from the post before this one, a much better editor UI :)
    • Animated positional parameters in clips, are now offseted along with the cutscene, so it's possible to playback cutscenes at different positions and they will remain the same.
    • Added ability to optionally animate transfoms assigned for target position instead of Vector for certain clip that support this choice, directly within the clip, thus further minimizing the extra Actor Groups needed.
    • Added option for Seconds or Frames working mode. This only affects the editor.
    • Added Post Smoothing option in Camera Track, which will optionally smooth out the camera shots in runtime, by applying some damping.
    • Added Explicit Active Layers option in cutscene, which first needs to be turned on for Active Layers existing feature to take effect.
    • Added Step Forwards and Step Backwards buttons in editor playback controls.
    • Added OnCutsceneStarted and OnCutsceneStoped static events.

    Improvements
    • Panning now both pans the time as well as scrolls the view up/down.
    • Much improved Character Expressions inspector and when editing expressions, wireframe is also now hidden.
    • Blend In/Out can now exceed the clip's mid point.
    • Height in curve tracks, is now automatically adjusted when in DopeSheet mode.
    • Created Shots and Paths through the relevant inspectors, are now automatically parented to the cutscene root.
    • Using Cutscene.Play(string name) will now first look at a Resources folder for a match. If a cutscene is found, it will instantiate, play and be destroyed once it's done automatically.
    • Affected group actors are now visible in the cutscene inspector for replacing them with ease.
    • Animation trajectory paths, are now shown for all expanded Curve Track properties. Not just for the selected one.
    • DopeSheet values will now read "true"/"false" for boolean properties.
    • The default handles (pos, rot, scale) are now hidden when editing a clip for better workflow.

    Fixes
    • Fixed keyframing rotations for Unity 5.4.
    • First key of Shot Clip is now keyed correctly and not reverting.
    • Fixed SteadyCam effect from being applied in edit mode incorrectly.
    • Fixed Director Camera from not restoring to "Untagged" when the Set As Main option is on.
    • Fixed adding new clips between others, will now correctly set the new clip's length.

    The documentation is now also updated to all new things Slate.
    Cheers!
     
    Async0x42, nxrighthere and hopeful like this.
  48. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    All extensions have now been updated to work with the latest Slate version better.

    With the updated NodeCanvas extension specifically, it is now possible to animate NodeCanvas Blackboard variables of all animatable types Slate supports (float, int, bool, Vector2, Vector3, Color).

    Furthermore the NodeCanvas action "Play Cutscene Advanced", is now possible to work with prefab cutscenes and now has the ability to replace cutscene target actors.

    NCPlayCutscene.png
     
    Last edited: May 7, 2016
    Async0x42 likes this.
  49. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    The new version 1.3.2 is live on the asset store :)
    The changes include:
    • New: Alembic Track (replacing the previously Alembic workflow).
    • Mod: Much better Undo.
    • Mod: Curve Editor now respects snap interval setting.
    • Mod: Auto-Key Frame 0 is now turn off by default.
    • Mod: Reorganized Preferences window.
    • Fix: Curve Editor for zero length clips.
    Cheers!
     
    Async0x42 likes this.
  50. Oriam

    Oriam

    Joined:
    Nov 11, 2012
    Posts:
    23
    Hi nuverian,

    I am evaluating different sequencers as I am about to switch from uSequencer.

    Does Slate support Windows Store Apps 8.1?
    Can you animate object properties?
    Can you animate NGUI objects?
    Can I change the affected objects of a sequence in runtime?

    My main problem with uSequencer is that I can not animate the properties of an NGUI object (e.g. alpha, width, height of a sprite).

    Is there a trial version to test the workflow?

    Thanks in advance,
    Oriam.