There is already a thread in the Showcase section but since its released now I guess I should make one here.
Aperture Cutscene Editor is a cutscene editor for Unity. It allows you to easily setup curve based animations for cameras, materials, characters, or anything else you want to animate. Aperture Cutscene Editor also has a powerful event system for triggering events, such as spawning/destroying an object, setting object velocity, or anything else you may need happen. See your animation in edit mode with the Play Preview button for quick revisions. Aperture Cutscene Editor can also be used to setup scripted gameplay event chains by designers and non-programmers.
You can easily create extension Actions and Events to conform to your projects needs, and the entire editor is open source if you really need some low level access :).
Update:
Version 1.11 is now on the Asset Store.
Changes:
Compiled dll for core classes.
Fixed build errors on mobile build target.
Added ability to reorder curve clips.
Added per curve clip animation override for PlayAnimation action.
Some of the features:
Intuitive Interface.
Extremely powerful.
Animate any number or vector variable on any script/component on an object.
Trigger almost any function with custom parameters using Events.
Easily extendable.
Open source!
Editor play preview button.
Easily create animations with Curve Tracks.
Trigger functions with Events.
Trigger cutscenes from within other cutscenes.
Cutscenes can be anything from traditional camera and object animation to scripted gameplay events to invisible event chain triggering for non-programmers.
3 types of Curve Track update modes, Action, Direct Variable Access, and Custom Expression.
Easily add custom Actions and Events with a little programming.
If you have any suggestions of the types of video tutorials you would like to see I would love to hear them. Right now Im thinking of a basic interface overview, a simple cinematic cutscene, and a more complex gameplay oriented tutorial covering advanced animations and Events.
What kind of interaction with Playmaker are you looking for? Im working on a video showing interaction with uscript including how to run a uscript state machine from in a cutscene and how to play a cutscene from a uscript state machine. Doing the same with Playmaker should be similar though. In the mean time I have uploaded a video showing how to create a very basic cutscene (the opening door one from the examples) and it explains the basics of the editor.
If you are importing into Unity 3.5 you may get this error:
Assets/ApertureCutsceneEditor/Components/Events/Event_Expression.js(6,7): BCE0172: `UnityScript.Scripting.IEvaluationDomainProvider' interface member implementation must be public or explicit.
For now to fix this you should just delete this file and everything should be fine:
Assets/ApertureCutsceneEditor/Components/Events/Event_Expression.js
I have already uploaded a new version to the Asset Store but it hasnt been accepted yet. It fixes this problem as well as moving ApertureCutsceneEditor folder into Assets/Plugins folder which should make it interact better with other tools.
EDIT:
MStolley: I haven’t tested in IOS yet but it should work. The file shown above that causes problems in 3.5 would also cause problems with IOS but it has been removed from the next version so that wont be a problem anymore. The rest of it should be IOS/Android compliant though.
Flash builds don’t work yet though, and I’m pretty sure there is nothing that can be done about that until the flash compiler fixes some bugs with reflection.
Awesome work, didn’t take me long to build my first cutscene. Great to finally have all this control with live feedback on edits.
A serious request though, it seems to be lacking any and all Undo functionality. Is this something you plan on adding in the future?
Can I use this as a scripted camera controller for a third person game? as a camera that follows a path and keeps looking at the player while moving / zooming at certain events or places along the path?
quickfingers: I havent really looked into how undo works in Unity but I will look into it.
Lars Steenhoff: Do you mean something like the original Resident Evil games and the adventure games by Telltale Games (Sam and Max, Back To The Future). If so then you can definitely do that kind of camera stuff for gameplay.
Currently I think you would need to use a visual scripting tool or regular scripting to do something more than triggering cutscenes when the player walks into a trigger, although you could trigger a cutscene that would use an event to change a cameras Follow Curve component to use a new curve and target. You can also add curve and target overrides when using a Follow Curve component with a curve clip, but the override will only be applied while the current time is over the curve clip. Also remember that curve points can be animated which could be used to do some interesting things.
This is very cool. I would love to try this. Do you have a free version or something I could look at, because I really hate creating scripted sequences in code.
I’m trying to get it to work with the rest of my code, which is c#.
I placed your code under StandardAssets folder, as required, but as soon as i do that i get a compilation error:
Assets/Standard Assets/ApertureCutsceneEditor/Components/Events/Event_Expression.js(6,7): BCE0172: `UnityScript.Scripting.IEvaluationDomainProvider’ interface member implementation must be public or explicit.
(after more tests, I found another issue, that I’m not sure can be solved: I saved a cutscene to assetbundle, in order to load it dynamically and have it play using my C# code. However, it seems that I can’t access the JS components when they are coming from an assetbundle, while it is possible if they are in the scene at start. Oh well, this looks like I’m going to have to port the whole thing to C#… Unless someone else sees a solution… God I hate javascript
That Event_Expression.js file should just be deleted. After moving everything into Plugins or StandardAssets folder there may be another error in ApertureCutsceneEditor/Components/Actions/Editor/Action_FollowCurve_Editor.js at this line: @CustomEditor(Action_FollowCurve)
Just comment out or delete this line and it should work fine.
These things have already been fixed in the new and still unaccepted version on the asset store.
Playing with your tool since a few hours and really like it
Can’t wait to see your next videos !
Can you please quick explain how to trigger cutscenes from within other cutscenes ?
A little thing is annoying when you want to adjust the start time of a clip :
can’t we drag the first key of a clip as the last one ? (instead of moving the full clip to adjust start time, then moving back the last key to original time )
To trigger a cutscene from another cutscene you would create an event and set the other cutscenes gameobject as the target and then use the Cutscenes Play function in the event.
I will put first key dragging on the list of things to do.
I also just realized that the best way to avoid compilation order errors is to compile a dll so I will do that in the next version, although I will still include the source in a zip file or something.
Yes among these games and especially like Ico and Shadow of the Colossus, where the player can control the camera but there is also a camera script that decides how far the camera is from the player.
+1 for the compiled dll! if I can add this to a VS solution then I imagine I can still get intellisense for your classes. As it stands with Javascript that isn’t possible. Thanks again for the great tool Kurt. About the Undo stuff, Unity has some pretty substantial undo functionality that you should be able to integreate easily enough
It wasn’t too hard to make a PlayMaker action to trigger cutscenes, including whether to loop and option to play it backwards. I’ll post more about this on Saturday.
I would find it very useful if you could add a ‘speed’ float to the main cutscene script which would enable the playback rate of the cutscene to be adjusted very easily (e.g. 0.5 to play at half speed, 2.0 to play twice as fast etc). I had a quick go at adding this myself and managed to get it working ok when cutscene is playing forwards, but I broke Rewind as Im tired and got a little confused by how you are keeping track of timing.
On a related note, how hard would it be to add a script float variable that enables the cutscene playback position to be manually scrubbed in play mode, similar to the timeline scrubbing you have in the editor window? Im not sure if Id want this variable to match the time in seconds or whether Id prefer it be be normalised to a 0.0-1.0 range.