Author Topic: Cutscene Control [UI reworking, pg5]  (Read 6058 times)


Cutscene Control allows for builders and modders to create cutscenes for use in their projects.



How they're made

Cutscenes can be made in three ways. In-game, using text, and through TorqueScript.

•Director Mode
During gameplay, players can enter "Director Mode", during which they will be given a series of tools and some more HUD to create cutscenes. The player controls time using the timeline, and controls events by placing elements in the game world (such as actors, cameras, etc.). The player can create, review, edit, and save cutscenes from this mode in a more easy-to-understand and interactive fashion. Mockup of the HUD and more detail on this may be coming soon.

•Cutscene Scripting
A more in-depth and tweak-able way of creating cutscenes is to directly create the cutscene files. Cutscenes will be stored using this simple text format, and even though it gives less visual aid, some scripters may find this convenient for more simple work. Some sample script and more detail may be coming soon.

•TorqueScript
It should be very straightforward to create cutscenes dynamically in TorqueScript. I'm trying as hard as I can to make this easy for everyone to use as they need to. TorqueScript would be the most direct and flexible way to create cutscenes since you can modify, expand, and use all the systems as seen fit.



How it works

There are two basic parts of the cutscene system that work together: the Cutscene object and the Event objects.

The cutscene object stores the general data about the scene, the timeline, and all events involved. Its purpose is to organize events and centralize bits of important general information.

The event objects are the active components of the cutscene system. Each event has a type and a series of parameters to fit their purpose. Event types can be added via script to allow modders to extend the event system if necessary. Each event carries out an action upon its execution.




Events
There are a few basic event types that will be included with the system by default.

•Camera
Camera events do basic camera actions. They set the view of the player to a defined object or place. They're an important part of creating a good cutscene.

•PathCamera
Although it's slightly redundant to have this separate from the Camera type, its purpose is completely different. Path cameras are used to set a camera on a specified path rather than being fixed in one place or on one object.

•Actor
Actors are AI players that are created as dummies to move around and manipulate. The actor system features tools to outfit, animate, and generally make these bots come to life.

•Caption
Caption events will display text on the viewer's HUD. These messages can appear in the basic centre, bottom, and chat, as well as in 3D space. They can be accompanied by sound files if supplied.

•Effect
Effect events will create explosions, particle effects, sounds, etc. to help with the cinematic aspect of cutscenes.

•Script
A simple event type that will execute a specified script. Temporary variables are assigned with relevant information so the script will have access to the cutscene and event objects, as well as any other important stuff. It's a nice alternative to scripting an entirely new event type if none of the others fit your needs.

•End

End events are used to signal the end of a cutscene more accurately. If one isn't present, the cutscene will assume the position of the last event is the end.

•Control
Control events are used to handle the viewers' control objects. Note that players will automatically be returned to the player objects when the cutscene ends.



How close is it? (Progress updates will be given as I work, see thread for more details)
The main cutscene system is basically complete. Elements of director mode have been created on the client and server side. Several event types are completed. Some work on the actor system is finished. CutsceneScript is developing.
« Last Edit: February 18, 2014, 07:11:15 PM by otto-san »

-reserved for later use if necessary-

That will be useful for videos too right? If yes then can't wait

That will be useful for videos too right? If yes then can't wait
Should be. Although, depending on the complexity, traditional ways might be faster/more convenient.

There should be a way for adding borders on the bottom and top of the screen.

There should be a way for adding borders on the bottom and top of the screen.
You mean to make it look like it's widescreen? I may modify Caption type events to be a more general UI type, with caption being a specified mode.

EDIT: PROGRESS UPDATE
I just made a change to the viewer system to actually allow for multiple clients; which was a silly oversight. I added a bit onto the Camera event type, adding a Simple mode which allows for a camera to be 'simply placed' using a transform value, also adapting it to the new multi-viewer system by making a few cutscene methods (just for neatness).
« Last Edit: December 22, 2013, 09:36:29 PM by otto-san »

Please come through with this, looks awesome

I had this idea awhile back to make ingame films with a theater build where everyone in the minigame watches something made ingame. What applications are there to a server wide audience?
I just made a change to the viewer system to actually allow for multiple clients;
My question has just been answered, thank you.  
Nother item, can there be settings to control server objects for this? loading builds, changing environment. I I think these would be useful. I am going with this will be a admin tool on the assumption this will be for server projects and anyone helping is most likely admin.

Thrice Edit: I just thought that if you tied this in with starting on mini-game create one could make a opening scene. Now i really want environment changing and loading builds for this reason. Make a game mode using this, have a starting video, change everything for actual build.
« Last Edit: December 22, 2013, 09:56:01 PM by Bester Bageler »

I had this idea awhile back to make ingame films with a theater build where everyone in the minigame watches something made ingame. What applications are there to a server wide audience?
Some ideas:

A co-operative adventure gamemode could use this to show players fly-overs of new areas or enemies, or for storyline purposes.
Doing what you said with a theatre, letting players watch films ingame.


Another thing to note is that camera events are optional, and a more 'Half-Life-like' approach is also possible with this.

Nother item, can there be settings to control server objects for this? loading builds, changing environment. I I think these would be useful. I am going with this will be a admin tool on the assumption this will be for server projects and anyone helping is most likely admin.
Yes, this was planned.

I just thought that if you tied this in with starting on mini-game create one could make a opening scene. Now i really want environment changing and loading builds for this reason. Make a game mode using this, have a starting video, change everything for actual build.
Ideally, cutscenes could be triggered via events. This would allow for that by using an OnMinigameStart input event. Environment control is totally possible and no problem at all. Loading is something I'm a bit unsure of because of potential overlap issues, but I suppose that could be the user's responsibility.
« Last Edit: December 22, 2013, 10:02:16 PM by otto-san »

I will update only my first post in this topic since i do not believe in multi-posting unless this thread starts dying.

PROGRESS UPDATE DECEMBER 23: (updated as i work throughout the day)
•Worked on the method to cutscene execution, it's now cleaner and more understandable.
•Added an onCutsceneFinished callback
•Added the End event type to signal that the cutscene is over, if none exists, the cutscene assumes the end is the position of the last event
•Added an OrganiseTimeline method to solve potential ordering issues in the future
•Added a variable to clients indicating what cutscene they're watching, helps avoid future issues where clients could possibly glitch back and forth between different scenes.
•Made some code to create a fake widescreen effect. It's a bit wonky, but it definitely works.
« Last Edit: December 23, 2013, 04:25:06 PM by otto-san »

This is going to be so useful

very useful for rpg's, challanges... pathcameras can give hints to where the player has to go next in order to progress.

thanks for stealing what I was going to make :(

jk it's fine go do whatever you want

Path Cameras are far too underused in blockland.