What would be the best way to add cutscenes to your game? by best I mean that you have the most control over what happens, and you dont have to write tons of lines of code to procedurally translate nodes with timers and stuff like that.
I was thinking that using a giant animated model for everything would work, so you just control the camera and attach it to joints on the scene or something, but adding and syncing sound/graphics would be hard.
Then I thought a movie file like *.avi or something, but you would need some way of playing that movie and I dont think irrlicht can do that. Plus making the video could get tricky without the right tools.
I've also heard that Lua can be used to do this, but I dont see how that would work(and I dont know how to use lua with C++ )
I've seen lots of game that have this and it shouldn't be too hard to do but I have no ideas
Cutscenes
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
-
- Posts: 1638
- Joined: Mon Apr 30, 2007 3:24 am
- Location: Montreal, CANADA
- Contact:
Hi, My sugestion is this:
For doing an INTERACTIVE Cutscene:
1. Make every animated meshes with bones
2. Create specific animations for the cutscene and define it as an animation state
3. Play back the animated characters & audio
- Override the head bone and orient it to face the player (You could even decide to do this based on an animation state only)
- From the animation state, it would trigger an audio response
4: If you can, have an editor to do this and work with your engine
For doing a NON-INTERACTIVE cutscene, AVI could be the answer, but the best way today are attempting to do it all over in realtime as the look of ther characters and their quality won't change a bit. (Help to maintain the immersion factor). Sometimes, it's not possible due to too much thing happening. The solution (from game engines) is to use them to render the final AVI animation so the look is at least the same.
As for LUA, it's a scripting engine. You could use it to define a Cutscene start, and define the animation states (or events) without having it all hardcoded into the engine. (more flexible in some case when you need tons of cutscenes)
For doing an INTERACTIVE Cutscene:
1. Make every animated meshes with bones
2. Create specific animations for the cutscene and define it as an animation state
3. Play back the animated characters & audio
- Override the head bone and orient it to face the player (You could even decide to do this based on an animation state only)
- From the animation state, it would trigger an audio response
4: If you can, have an editor to do this and work with your engine
For doing a NON-INTERACTIVE cutscene, AVI could be the answer, but the best way today are attempting to do it all over in realtime as the look of ther characters and their quality won't change a bit. (Help to maintain the immersion factor). Sometimes, it's not possible due to too much thing happening. The solution (from game engines) is to use them to render the final AVI animation so the look is at least the same.
As for LUA, it's a scripting engine. You could use it to define a Cutscene start, and define the animation states (or events) without having it all hardcoded into the engine. (more flexible in some case when you need tons of cutscenes)
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
so I should make different animated meshes for all the things in the scene? how would I make them interact with other objects, like someone picks up a briefcase and walks away with it? If a made a walking animation for a character, would I have to change the position of his node?
I'm trying to use as little code as possible. an AVI would be easiest, but if your character is in the movie and he's wearing like a hat or something, you wont be able to see it.
I'm trying to use as little code as possible. an AVI would be easiest, but if your character is in the movie and he's wearing like a hat or something, you wont be able to see it.
-
- Posts: 1638
- Joined: Mon Apr 30, 2007 3:24 am
- Location: Montreal, CANADA
- Contact:
For your example, taking a briefcase. If it's strickly related to the cutscene. You do all in your 3D application then you export:
- The character taking the briefcase (So you will able only to use it there)
Another alternative would be to animate the briefcase in your 3D application. You take the same animation, but remove the mesh of the character, you keep only ALL the bones in the scene and export the briefcase alone with the bones animation. For this you really need to know well your software and be good at rigging.
For a cutscene, we animated the characters directly in the scene. The node was not moving. Much easier, but the defined animation can only be used in that cutscene. They are not generic anymore.
In each case, you will have to position exactly the models as in you 3D animation software. You could use a temporary marker in the application to position the characters in the scene.
Yes, the AVI could be the answer (Irrlicht doesnt support AVI playing natively, and it's could be difficult to implement if you need multiplatform support). But you will loose any interactivity in your scene. If it's planned like this then it's ok.
- The character taking the briefcase (So you will able only to use it there)
Another alternative would be to animate the briefcase in your 3D application. You take the same animation, but remove the mesh of the character, you keep only ALL the bones in the scene and export the briefcase alone with the bones animation. For this you really need to know well your software and be good at rigging.
For a cutscene, we animated the characters directly in the scene. The node was not moving. Much easier, but the defined animation can only be used in that cutscene. They are not generic anymore.
In each case, you will have to position exactly the models as in you 3D animation software. You could use a temporary marker in the application to position the characters in the scene.
Yes, the AVI could be the answer (Irrlicht doesnt support AVI playing natively, and it's could be difficult to implement if you need multiplatform support). But you will loose any interactivity in your scene. If it's planned like this then it's ok.
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
-
- Posts: 222
- Joined: Mon Jan 19, 2009 10:03 pm
- Location: Miami, Florida
- Contact:
-
- Posts: 1638
- Joined: Mon Apr 30, 2007 3:24 am
- Location: Montreal, CANADA
- Contact:
I plan to make one in my editor. But the animations will need to be created (Maya, Blender, 3DS, etc.).
You can do this actually in IRRedit, but it's has no features right now to preview animation. I want to place the element as I would place them in IRRedit + check the animations of the characters or elements so they "match" (Caracter A interacting with caracter B for example.)
Your best choice right now is to use a software like Blender/Maya/3DS/Lgihtwave/Etc, place all the elements of the scene around the same reference point and animate and export all of them. (Could the the whole scene or element per element, depending on your needs)
You can do this actually in IRRedit, but it's has no features right now to preview animation. I want to place the element as I would place them in IRRedit + check the animations of the characters or elements so they "match" (Caracter A interacting with caracter B for example.)
Your best choice right now is to use a software like Blender/Maya/3DS/Lgihtwave/Etc, place all the elements of the scene around the same reference point and animate and export all of them. (Could the the whole scene or element per element, depending on your needs)