Cutscene Design

Forum for the creative side of the game development process: art, music, storyline, gameplay, concepts, etc. Any sort of relevant discussion is welcome here.

Moderator: PC Supremacists

Re: Cutscene Design

Postby trufun202 on Fri Jan 02, 2009 2:57 pm

To finish out this thread, I did end up going Falco's route. I have a separate Lua script for each cutscene, and once turned on, the engine calls the UpdateCutscene() method each frame. I use the filmTicks variable to keep track what events have occurred.

Here's the script for my cutscene:

Code: Select all
function UpdateCutscene(timeSinceLastFrame)

   filmTicks = 0
   filmTime = 0

   if not IsNull("FilmTicks") then
      filmTicks = tonumber(GetValue("FilmTicks"))
   end

   if not IsNull("FilmTime") then
      filmTime = tonumber(GetValue("FilmTime"))
   end

   filmTime = filmTime + timeSinceLastFrame
      
   if filmTicks == 0 then
      --************************************************
      --Scene 1 - Aleid
      --************************************************
      filmTicks = 1
      
      --Hide Kelesis
      SetEntityVisible("Kelesis", false)
      
      --start the subtitles
      subTitle = CreateSubTitleManager(5)
      subTitle:AddLine("Years ago, in the Kingdom of Aleid,");
      subTitle:AddLine("the Valley of Life was the only source of water.")
      subTitle:AddLine("People of Aleid were tormented by the evil Golvellius,")
      subTitle:AddLine("and the valley soon became overrun with demons.")
      subTitle:AddLine("The Valley of Doom was soon feared by all.")
      subTitle:AddLine("Kelesis, a brave, young warrior,")
      subTitle:AddLine("defeated Golvellius, and rescued Princess Rena.")
      subTitle:AddLine("The Kingdom of Aleid was once again at peace.")
      subTitle:AddLine("A beautiful fountain was built in the name of Kelesis,")
      subTitle:AddLine("and it became their new source of water.")
      subTitle:AddLine("However, people began to fall ill...")
      subTitle:AddLine("What was once a source of life,")
      subTitle:AddLine("became a poison to the people of Aleid.")
      subTitle:AddLine("The fountain's blue water turned to blood red.")
      subTitle:AddLine("")
      subTitle:AddLine("Because of the poison...")
      subTitle:AddLine("Even those who were once trusted,")
      subTitle:AddLine("became filled with evil and hate.")
      subTitle:AddLine("The poison continued to spred")
      subTitle:AddLine("lakes, rivers, and oceans all became blood red.")
      subTitle:AddLine("This evil must be stopped.")
      subTitle:AddLine("Our hero, Kelesis, has made his return,")
      subTitle:AddLine("and will save Aleid from...")
      subTitle:AddLine("The Scarlet Fountain.")
      subTitle:Show()
      
      --Start the first scene
      MoveCameraToPosition(1550, 175, 700, 750, 93, 700, 0.03)
   elseif filmTicks == 1 and filmTime >= 60 then
      --************************************************
      --Scene 2 - Fade to Black
      --************************************************
      filmTicks = 2
      FadeOutToBlack()
   elseif filmTicks == 2 and filmTime >= 85 then
      --************************************************
      --Scene 3 - The Scarlet Fountain
      --************************************************
      filmTicks = 3
      ChangeEntityMaterial("fountain", "Fountain_RedMaterial", 1)
      FadeInFromBlack()
      EnableCameraTwist()
      EnableMotionBlur()
      EnableMotionBlur()
      EnableCameraSway(10, 25)
   elseif filmTicks == 3 and filmTime >= 100 then
      --************************************************
      --Scene 4 - The Wise Woman
      --************************************************
      filmTicks = 4
      ResetMoveCameraToPosition()
      MoveCameraToPosition(915, 90, 675, 915, 90, 675, 0)
      FadeInFromWhite()
      DisableCameraTwist()
      DisableCameraSway()      
      EnableCameraTwist()
      EnableCameraZoom(0.03)
      EnableMotionBlur()
   elseif filmTicks == 4 and filmTime >= 112 then
      --************************************************
      --Scene 4 - The Wise Woman INVERT
      --************************************************
      filmTicks = 5
      EnableInvert()
   elseif filmTicks == 5 and filmTime >= 115 then
      --************************************************
      --Scene 5 - Landscape
      --************************************************
      filmTicks = 6
      DisableCameraTwist()
      DisableCameraZoom()
      DisableMotionBlur()
      DisableInvert()
      ResetMoveCameraToPosition()
      MoveCameraToPosition(315, 82, 750, 315, 82, 500, 0.03)
   elseif filmTicks == 6 and filmTime >= 130 then
      --************************************************
      --Scene 6 - Kelesis & the fountain
      --************************************************
      filmTicks = 7
      ResetMoveCameraToPosition()
      MoveCameraToPosition(831, 100, 700, 831, 81, 700, 0.04)
      SetEntityVisible("Kelesis", true)
      SetEntityPosition("Kelesis", 830, 85, 700);
      SetEntityYaw("Kelesis", 180);
      kelesis = GetKelesis()
      kelesis:PlayAnimation("BattleStance")
      FadeInFromWhite()      
   end
   
   --Save everything back to the engine
   SetValue("FilmTicks", tostring(filmTicks))
   SetValue("FilmTime", tostring(filmTime))
end
Last edited by trufun202 on Fri Jan 02, 2009 6:44 pm, edited 1 time in total.
-Chris

YouTube | Twitter | Rad Raygun

“REAL ARTISTS SHIP” - Steve Jobs
User avatar
trufun202
Game Developer
Game Developer
 
Posts: 1174
Joined: Sun Sep 21, 2008 1:27 am
Location: Dallas, TX

Re: Cutscene Design

Postby Falco Girgis on Fri Jan 02, 2009 4:43 pm

I'm glad that you posted that. It works out very elegantly, and I'm sure that making that might have even been fun. :)
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: Cutscene Design

Postby trufun202 on Fri Jan 02, 2009 5:13 pm

GyroVorbis wrote:I'm glad that you posted that. It works out very elegantly, and I'm sure that making that might have even been fun. :)


Yeah it was actually alot of fun! It was cool to take my storyboard sketches, write the lua script, and watch each scene come to life.

The more and more stuff I get into Lua, the closer I'm getting to making an actual "game" outta this. :mrgreen:
-Chris

YouTube | Twitter | Rad Raygun

“REAL ARTISTS SHIP” - Steve Jobs
User avatar
trufun202
Game Developer
Game Developer
 
Posts: 1174
Joined: Sun Sep 21, 2008 1:27 am
Location: Dallas, TX

Re: Cutscene Design

Postby Falco Girgis on Fri Jan 02, 2009 5:42 pm

trufun202 wrote:The more and more stuff I get into Lua, the closer I'm getting to making an actual "game" outta this. :mrgreen:
Ditto.
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Previous

Return to Art, Music, and Design

Who is online

Users browsing this forum: No registered users and 1 guest