SRB2. Делаем кат-сцены.

Перед прочтением данной статьи, настоятельно рекомендую ознакомится с SRB2. Задаем настройки уровня.

Подготовка

Перед началом, скачайте ресурсы будущей кат-сцены с MEGA. И добавьте их к себе в вадник, через Slade.

Теперь, разберем структуру кода кат-сцен.

Структура катсцен

  • Кат-сцена может содержать несколько сцен
  • Cцены могут содержать несколько изображений
-Cutscene 1
-NumScenes 1
--Scene 1
---Pic1Name, Pic2Name, Pic3Name...
---Pic1Duration = 300
---SceneText text #

Первая катсцена

В MAINCFG, добавьте следующий код.

Cutscene 1 //Номер катсцены
NumScenes 1 //Количество сцен в катсцене
Scene 1 //Сцена 1
NumberOfPics = 1 //Количество изображений в сцене 1
Pic1Name = SCEN1_1 //Название первой картинки
Pic1Duration = 300 //Время показывания этой картинки (300 тиков, 35 тиков = 1 сек)
Pic1Hires = true //Если true то максимальное разрешение изображения = 640x400, если false, то 320x200
Pic1XCoord = 0 //Позиция первой картинки по X
Pic1YCoord = 0 //Позиция первой картинки по Y
TextXPos = 8 //Позиция текста по X
TextYPos = 128 //Позиция текста по Y
Music = SCENM1 //Название музыки без префикса (D_ или O_)
SceneText = \A7 What a nice day, I'm glad no one wants to //Текст печатаемый на экране
\D2 kill me. 
      # //конец строки задаете решеткой

Разберем эти строки

Cutscene 1 //Номер катсцены
NumScenes 1 //Количество сцен в катсцене

В начале, создали катсцену, и указали количество сцен.

Scene 1 //Сцена 1
NumberOfPics = 1 //Количество изображений в сцене 1
Pic1Name = SCEN1_1 //Название первой картинки
Pic1Duration = 300 //Время показывания этой картинки (300 тиков, 35 тиков = 1 сек)
Pic1Hires = true //Если true то максимальное разрешение изображения = 640x400, если false, то 320x200
Pic1XCoord = 0 //Позиция первой картинки по X
Pic1YCoord = 0 //Позиция первой картинки по Y
TextXPos = 8 //Позиция текста по X
TextYPos = 128 //Позиция текста по Y
Music = SCENM1 //Название музыки без префикса (D_ или O_)
SceneText = \A7 What a nice day, I'm glad no one wants to //Текст печатаемый на экране
\D2 kill me. 
      # //конец строки задаете решеткой

Затем, в 1 сцене, указали количество изображений (NumberOfPics).

Музыка задается здесь точно так же, как и в прошлом уроке SRB2. Задаем настройки уровня

Разберем подробнее SceneText:

  • Текст сцены пишется после знака = (а ни через кавычки, как в других языках).
  • Конец текста задается решеткой #.

Разберем специальные символы:

  • \A0\AF, задает время печати одного символа. (A0 — быстрая печать, AF — медленная печать)
  • \B0\D2, указывает время паузы (B0 — 1 тик, D2 — 35 тиков)

В остальное понятно из комментариев (//).

Сцену добавили, и разобрали, осталось вызвать её. Для этого, после строки Level 1, добавьте атрибут PreCutsceneNum = 1, для вызова первой сцены перед началом уровня.

Level 1 
PreCutsceneNum = 1
Levelname = Under-Prog Tutorial
Act = 4

В итоге, должно получится следующее:

Катсцена с множеством сцен.

Измените код кат-сцены на следующее

Cutscene 1
NumScenes 3 //Теперь сцен 3
Scene 1 
NumberOfPics = 1
Pic1Name = SCEN1_1
Pic1Duration = 300
Pic1Hires = true
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 8
TextYPos = 128
Music = SCENM1
SceneText = \A7 What a nice day, I'm glad no one wants to
\D2 kill me. 
      #
Scene 2
NumberOfPics = 1
Pic1Name = SCEN1_2
Pic1Hires = true
Pic1Duration = 200
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 8
TextYPos = 128
SceneText = \A7 Oh, no! \D0 Not this crap again!
      #
Scene 3
NumberOfPics = 1
Pic1Name = SCEN1_3
Pic1Hires = true
Pic1Duration = 400
Pic1XCoord = 0
Pic1YCoord = 0
TextXPos = 8
TextYPos = 128
SceneText = \A7 Where am I?\D0
And why is the map so small?\D0
I need to find a developer and teach him a lesson. 
      #

Чтобы запустить последовательно несколько сцен, нужно установить количество сцен в NumScenes, и написать код этих сцен.

Количество сцен задается в диапазоне от 1 до 128.

Вот такая кат-сцена у меня получилась.

Сцена с множеством изображений.

Создадим еще 1 катсцену.

Cutscene 2
NumScenes 1
Scene 1
NumberOfPics = 3
Pic1Name = SCEN1_1
Pic1Hires = true
Pic1Duration = 66
Pic1XCoord = 0
Pic1YCoord = 0
Pic2Name = SCEN1_2
Pic2Hires = true
Pic2Duration = 66
Pic2XCoord = 0
Pic2YCoord = 0
Pic3Name = SCEN1_3
Pic3Hires = true
Pic3Duration = 140
Pic3XCoord = 0
Pic3YCoord = 0
TextXPos = 62
TextYPos = 144
Music = SCENM1
SceneText = Previously this happened
      #

Я использовал 3 картинки, поэтому, NumberOfPics = 3.

Далее идет копипаст, однотипных аргументов:

Pic1Name = SCEN1_1
Pic1Hires = true
Pic1Duration = 66
Pic1XCoord = 0
Pic1YCoord = 0

Pic1 аргументы заменяются на Pic2, и так далее, в плоть до Pic128.

Теперь установите проигрывание 2-ой кат-сцены в начале уровня, и запустите игру.

Где еще можно проигрывать кат-сцены

Запустить кат-сцену можно при запуске игры.

MainCfg
IntroToPlay = 1

Перед началом уровня (что мы и делали в данном уроке)

Level 1
PreCutsceneNum = 1

После уровня

Level 1
CutsceneNum = 1

В конце игры, после прохождения.

MainCfg
CreditsCutscene = 1

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!