-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cinematic scenes #111
Comments
👍 really good one. We will have to think about about how to integrate that properly, though. I think the cinematic scenes should always be a level on itself, incorporating them into a level you can play through afterwards would probably impose to much work. These levels will have an auto-finish property that will make them forward you to a real level after the scene has been completed. Vale, |
For now that sounds like a good idea in order to get this prototyped and in front of users. Long term I think it would be good to get cinema scenes to work in the middle of levels (which would require scripting and/or game editor hooks). We'd just want to abstract the code well enough that it's not a royal pain to change this later. We'd also want to choose a format in the level files such that we can change this later without breaking all old levels. Ultimately, cinema scenes may have to function differently than levels, though. We may want a "field" with different rows of enemies marching in the distance, each scaled to a different size for different depths. This is not something I'd suggest for the first version of the cinema editor, though. |
@Bugsbane - do you have any experience with animation software (whether it be Flash or some other product (web or non web based))? You might be able to provide some good input on this. Early implementations will probably literally be hacks on the level engine, but we may eventually consider adding some traditional animation features such as key frames to this. If we can get a better idea as to what tools would be useful for creating cut scenes using game sprites, it would be helpful. See some of the "learning from videos" posts I made on the forum - they give links to a couple well known sprite movies made in Flash. |
My masters degree is in computer animation, and I trained to work at Disney (although I ended up going into games / advertising instead), so yes, I'm familiar with 3DS MAX, Maya and Blender, all of which are way more complicated than what's needed. What I would look for, would be the ability to select and move objects and / or groups of objects. Set position, rotation, scale, opacity keyframes at specific frames. Play sounds and adjust volume keyframes. Add text as an object. In terms of the gui, being able to select keyframes and move them, adjust interpolation curves (ie ease in, linear, ease out), and jump forward / backwards one keyframe or to the next keyframe. I would only show keyframes for currently selected objects. Personally I would model the simple web based animation systems such as sprite based flash movies, more than the extremely complex ones found in most animation packages and even things like Unity. GooCreate has a nice system for this, but it's still way more than we need. |
I probably need to learn more about keyframes myself. What I know is that they deal with the timing of steps of animation and that everyone talks about them as being very foundational to any animation system.
This sounds like a good idea. We'd model the commonly used features. The advanced features would probably end up being specific to TSC, based on our level system, etc. |
There will not be an entire cinematic editor in TSC 2.1.0, it is just too much work. What I'm most likely going to do is to provide a special way to script level objects easily in a special mannor. That's better than nothing, and we need to go forward. A fully-featured cinematic editor can be implemented later on. |
It took me some minutes to realize this issue tracker is ONLY for the 2.X series. |
Also, it might make sense to talk a bit more before closing or changing many other features that won't get implemented in the 2.X series. What goes into the 3.X series is another debate, but having an easy way to browse the ideas would be useful. This tracker is going to become inactive after a few 2.X releases, anyways, likely. |
Maybe add a tag "TSC3 consideration" and tag the relevant issues? |
I have been thinking about this ticket. I think we can distinguish two kinds of scenes:
I propose the following. I. In-level scenesIn level cinematic scenes can be implemented using a special DSL in the level script. In fact, I have already started implementing that. The level script could look something like this: $Azdhor = UIDS[45]
$Alex = UIDS[1]
$Alice = UIDS[66]
$Book = UIDS[100]
scene = CinematicScene.new do
set_camera 100, -150
warp $Alex, :to [100, -165]
image $Alex 3, :set => "Alex.imgset"
curtain # Show the scene
walk $Alex, :to => $Book # Raises error if Y coord not the same
# Have Alex take up the book
hide $Book
animate $Alex do
image 1, :set => "Alex-Book.imgset"
wait 0.2
image 2, :set => "Alex-Book.imgset"
wait 0.2
end # Returns $Alex to original image
# ...
end
# Play the scene once a certain point in the level is reached
UIDS[500].on_touch do
scene.play
end I'm not yet entirely content with this as it still requires too much manual typing. Given that our imageset files already contain the relevant timing information, I think it would be good to leverage that. II. Large scenesI suggest to add the concept of visual novel telling for these. For instance, the prologue features Alex investigating the eastern desert and finding the first book of the Chronicles. We can narrate this using full-screen pictures and some text. This would be much easier than trying to create a pseudo level for that and it gives room to show details that can't be reproduced in the level elements. This is trivial to implement (I think). All it needs is a graphic artist willing to draw the scenes as full-screen pictures. |
The cScene class represents a control class for a new game mode, MODE_SCENE. Entering this mode enters visual novel telling mode, alias scene mode. In this mode, a single background image is shown at a time, with text boxes to tell the story (yet to be implemented). cScene is the superclass for all scenes. This commit adds a single subclass that's currently still quite empty, cPrologueScene, and which is intended to describe the game prologue. Each scene can make use of separate "scene actions", where an action describes something that is happening in the scene. For instance, there are/will be actions for changing the background image, showing text to the user, etc. cScene::Update() executes the list of actions in a scene one-by-one, stopping on actions that request it, so that the action gets opportunity to process user input. This is part of ticket #111.
I remove this from the 2.1.0 mile stone. We have the visual novel system now and we can supplement it with an in-level cinematic scene system in a later release. 2.1.0 is not going to have any story most likely (lack of artists). |
This is a task to create a cinematic scene editor user interface that is integrated with the level editor.
Before you panic and say this is too complicated, keep in mind we could start with the raw basics and iteratively progress. I think it would be good to create a UI and not do it strictly through scripting so that non programmers can easily edit scenes and to allow easier visual placement.
Requirements (we can add to these as needed):
A good example of an interesting scene is a an army of furballs and Larries marching across the screen, with dark gray, ominous clouds moving in the background. Such scenes will really drive the plot and get the "button mashers" to actually see what's happening with the story.
The text was updated successfully, but these errors were encountered: