August 21 2009Summer of Code: Progress of Cutscene Editor
This blog post is written by Matthew Miner who is working on a cutscene editor for Unity. The cutscene editor is one of four selected projects that were selected for the Unity Summer of Code.
As described in an earlier blog post, the Cutscene Editor is a tool for creating realtime cutscenes without touching a script. This allows both veteran Unity developers and those new to the engine to easily toss together a scene without too much fuss. It works similar to modern video editing software like Final Cut Pro and Adobe Premiere, with a media browser and a preview window and a timeline. Anyone who has ever edited together a movie on their computer will find a familiar user interface which has been designed with ease-of-use in mind.
Itʼs perhaps important that I emphasize the realtime aspect. This is not a tool for preparing pre-rendered scenes, as pretty as they can be. The visual quality of the scene will depend on the player’s hardware just as the rest of the game does. There are both advantages and disadvantages to this approach, but as some famous man once said, “realtime is the only time. For real.”
How’s It Going?
With not much more than a week to go, development of the Cutscene Editor is going well. It isn’t done yet (ha, I wish!), but with a few more late nights and a bit of fairy magic it will be.
In its current state the basics of creating a cutscene are there. You can add a bunch of camera shots, toss them on the timeline, throw in a few explosion animations here and there, maybe chuck in some heavy metal background music, and it will play as expected when you call scene.PlayCutscene().
Where a lot of works needs to be done before the August 31st deadline is the ease by which the developer using the editor can modify the timing of clips on the timeline. Initially thereʼs going to be two tools: the multi-purpose trim-n-drag for moving clips around, and the razor blade for splitting clips into two. Right now these donʼt really work. Neither does the preview window, an arguably essential part of the editor. So itʼs not quite in a “gee willikers, it just works!” stage, but once these features are implemented and a bit more polish added itʼll be close to the original vision.
Golly, Do Tell Me More!

Above is a screenshot of the Cutscene Editor in its current incarnation. There are four main panes: options, media, effects, and the timeline. The editor introduces some concepts blatantly stolen from the film world.
- Shots: a cameraʼs view in a limited amount of time; an animation can be attached to replicate moves like dolly or crane shots
- Actors: animated game objects
- Audio: dialog, sound effects, background music
- Subtitles: captions that transcribe the current dialog/narrative
For clarityʼs sake, each track can only hold a particular media type. That is, you canʼt throw a camera shot onto the same track as an audio clip. The timeline can be zoomed in when precision editing is desired. Clips are added to the track by clicking the “Insert” button beside each piece of media, which will place them with their default time at the position of the playhead. Drag and drop ability was desired, but at this point it may not happen. Version 1.1 perhaps?
For the most part it should feel intuitive. I referred extensively to how the interface of Final Cut Pro works, so those coming from a video editing background should feel right at home.
Challenges
Most of my time has been spent building the user interface. Anyone who has used Unityʼs GUI system knows that it’s not a drag-and-drop affair; every label and button is created in code. This works great most of the time, but creating an editor as customized as a timeline has been difficult. Creating a basic GUI is smooth sailing, don’t get me wrong, but there was no documentation on how to, say, draw a line over the timeline to appear as a playhead. It has certainly been a learning experience.
Despite the challenges, I’m blown away by how extensible the Unity editor is. It completely rocks being able to build my own tools so easily, and I plan to continue working on similar projects in the future.

Jashan Chittesh said on August 21st, 2009 at 11:46 am:
Wow, it’s great to see progress on this tool that I’m sure many people will find very useful. Also shows that making the Unity editor more extensible was a very smart move
Joc said on August 21st, 2009 at 1:42 pm:
Hi, would be great too, if you get time, to write up your experiences and maybe tips about creating custom editors and GUIs. Looks like you have gained a lot of useful knowledge working on this editor!
col000r said on August 21st, 2009 at 1:57 pm:
great stuff! very very promising! I’ve been working on my own (admittedly: crude) solution for handling subtitles on the iPhone and looking at your screenshot makes me hope very very much that unity iPhone will be upgraded to use the 2.5 interface soon to allow for some serious customization there as well…
Raymond L. said on August 21st, 2009 at 2:01 pm:
Oh wow!! This has got to be one of the best improvements for Unity ever!!
Rich H. said on August 21st, 2009 at 7:38 pm:
Looks awsome, good work. Now stop sleeping and get it done!!
Ashkan said on August 21st, 2009 at 8:26 pm:
hi
have fun developing such a great and complex tool. as you said unity GUI’s documentation is not complete and is not documented well. please talk more about what you have done with unityGui and even write a tutorial about it or help unity’s fantastic staff to improve GUI docs.
talk more about code generation and algorithms that they are used in your work!
ranza said on August 23rd, 2009 at 11:14 am:
The system looks great Matthew! I think that many people will learn on your achievements in Unity GUI. Keep it going!
Nic Cusworth said on August 23rd, 2009 at 7:07 pm:
Would looooooove to have this in the iPhone Unity.
Sonictail said on August 26th, 2009 at 2:30 am:
I have to admit, I need this tool really badly, I’m looking forwards to seeing your finished’ result.
The Pixel Sky : Summer of Code: Progress Report on Unity3D Blog said on August 27th, 2009 at 12:00 am:
[...] was posted on the Unity3D blog. Rather than copying and pasting the post here, I reckon I’ll link to the article instead. Enjoy! posted on August 26, [...]
dimeRocker said on September 6th, 2009 at 8:14 am:
Awesome job Matt – you killed it. Glad for the opportunity to work alongside you. The dRock doors are always open for you. Good luck with all that lies ahead.
Cheers,
J.Joly
Raymond L. said on October 1st, 2009 at 2:47 pm:
Please get this out! I really want to use this!
Jeff 'PsychicParrot' said on October 7th, 2009 at 5:21 pm:
This looks just incredible! Keep up the fantastic work.
Adrian 'Factoid' Cheater said on October 7th, 2009 at 7:56 pm:
I was wondering when the results of this project will be available to the public? I’m working on some tools which are very similar to this, and I’d like to see about adapting it if possible. Otherwise I might find myself re-inventing the wheel. I’d be perfectly happy to work with the code in whatever state it’s in, if that’s a possibility. If the comment doesn’t leave you with my e-mail, you can reach me in the forums as Factoid.
Raymond L. said on October 15th, 2009 at 12:53 pm:
I have a question, would this be a separate package, or will it appear in Unity 1.6 along with the erosion tool?
Sebastian P. said on October 28th, 2009 at 1:10 pm:
WHEN WILL IT BE DONE? ANY DATE, MONTH?
Efraim said on November 1st, 2009 at 9:05 pm:
Wow, it does look a lot like Final Cut!
Fortunately no need to capture tapes
Oh goody, can’t wait!