Что нужно сделать?
- Нужно воссоздать на движке игры катсцены из XBOX версии классического Serious Sam. Часть мы уже сделали (какие готовы, а какие нет – уточняйте у меня).
- Для этой цели мы создали специальный инструментарий, чтобы делать катсцены было максимально быстро и удобно. Забудьте про возню с моделхолдерами и мувингбрашами.
- Сами катсцены в XBOX (как и в SS 2) были только в виде заранее предзаписанных видео файлов. Где их взять? Вот несколько ссылок: гугл диск (кликабельно) – видео в формате .xmv – оригинальные файлы из XBOX версии. Видео в формате .avi – ролики уже с наложенными фразами и текстом, использовались в XBOX моде. Также вы можете найти катсцены в одном из многочисленных прохождений на YouTube, например тут.
Нюансы:
Запуск Intro (в начале уровня) и Outro (в конце видео) катсцен
В последнем публичном релизе XBOX мода была возможность запускать .avi видео-ролики (катсцены) прямо из игры. Реализовано это было “кастыльным” способом и имело очень большое количество багов и недостатков. Мы добавили возможность переключаться в настройках между проигрыванием катсцен на движке игры (включено по умолчанию) или из .avi файла (выключено по умолчанию).
У каждого триггера есть галочка “Cutscene trigger”. Если она включена, то:
- При выборе Play Video Cutscene: NO в настройках игры – сработает поле Target 01, а Target 02 будет проигнорирован.
- При выборе Play Video Cutscene: YES в настройках игры – сработает поле Target 02, а Target 01 будет проигнорирован.
Пример: мы хотим сделать outro (в конце уровня) катсцену. Настраиваем связку из 3-х триггеров как описано выше. В Target 01 триггера с включенной галкой “Cutscene trigger” добавляем триггер, который запустит нашу катсцену на движке игры. В Target 02 добавляем триггер, который запустит переход на уровень, с проигрыванием .avi катсцены.
Возможно, то, что я написал выше с ходу немного сложно понять, но поверьте, всё элементарно. Посмотрите примеры ниже, чтобы лучше разобраться.
Также вы можете посмотреть, как это реализовано, например в уровне: FE03_TombOfRamses.
Ещё немного нюансов
- некоторых анимаций нет (постепенно добавляем) – если чего-то нет, просто ставим похожие
- делать нужно как можно точнее, в соответствии с оригиналом, но, если где-то нет возможности сделать также/не получается – разрешена импровизация.
- во время катсцены телепортируем игрока под локацию, где происходит действие катсцены (если игрок будет очень далеко – Santa_2 не будет ходить по маркерам (как и любые другие EnemyBase - особенность движка).
- Santa_2 можно открывать рот с помощью Animation Changer-а
Новые параметры классов
Основные параметры: Santa_2 класс
- Чтобы добавить класс – перетащите Santa_2.ecl из папки Classes в окно с энтитиями редактора.
- Active – работает аналогично с подобной галкой, например у модел холдера. Если выключена Сэм будет невидим, если активировать триггером (activate event) – появится, начнёт ходить по маркерам, проигрывать анимации и т.д.
- Anim1-5 – выбор анимации. Чтобы запустить проигрывание анимации, просто пошлите на Santa_2 сигнал триггера с типом события Stop blindness event. При первом таком сигнале – проиграется Anim1, при повторном Anim2 и т.д. Анимации можно проиграть ещё быстрее, без триггеров, просто по таймеру (будет описано ниже)
- Anim1-5 CustomChange – если галочка стоит, то в полях Anim1-5Change Speed – можно задать свою скорость перехода одной анимации в другую. Чем больше число, тем плавнее будет переход.
- Anim1-5 Looping – проиграть один раз или зациклить анимацию.
- Anim1-5 Speer – скорость анимации.
- Anim1-5 Timer:
- значения задаются в секундах 1 = 1 сек
- если значение 0 - таймер на эту анимку выключен
- чтобы начать отсчёт - нужно активировать Сэма триггером с типом события activate event (ну собственно Сэм всегда так выводится из деактивированного состояния)
- Autostart first animation – автозапуск первой анимации (Anim1)
- С остальными параметрами думаю разберётесь сами, ничего сложного, если возникнут вопросы – пишите мне, всё расскажу.
Уровень-пример работы 5 анимаций по триггерам
Основные параметры: Animation Changer
- _mouth: strength: сила анимации (1 по умолчанию)
- _mouth: min rnd str (1-20) – минимальный рандом силы
- _mouth: max rnd str (1-20) – максимальный рандом силы
- Ставишь MIN 5 - MAX 15 - значит значение силы рандомно выпадет от 0.5 до 1.5 (1.0 - стандартное значение). На каждое новое открывание рта, выпадет новый рандом. По умолчанию стоит 9 и 11 - значит будет выпадать от 0.9 до 1.1
- Чтобы выключить рандом - поставь и там, и там "10"
- Также это работает и с рандомом для скорости
- _mouth: anim speed - скорость анимации открытия/закрытия рта
- _mouth: duration - длительность работы ртом
- _mouth: min rnd (1-20) - минимальное значение рандома (от 1 до 20), где при выпадении 5, скорость умножится на 0,5 (анимка замедлится в 2 раза) - при выпадении 20 - скорость умножится на 2 (анимка ускорится в 2 раза)
- _mouth: max rnd (1-20) - максимальное значение рандома
- _mouth: blend time - время бленда
- _mouth: style - использовать одну из 2х анимаций или же обе в рандомном порядке
- _mouth: model holder 3: рот будет работать, если нацелить аним. Чейнджер на MDH3 с включенной галочкой “Serious Sam”
Основные параметры: Music Changer
- Disable continuous fade – если включено, континуоус музыка будет включаться/выключаться сразу же, без плавного перехода.
Основные параметры: Camera/Camera Marker
- View Target: player – камера автоматически нацеливается на игрока
- _Use Smooth view – плавный переход между камерами с двумя разными таргетами в поле View Target.
- Fly but not play – запускает движение камеры по маркерам, но не переключает на неё вид (нужно, чтобы "припарентить" к летящей камере например какой-нибудь ModelHolder).
- Parent to another camera - даёт возможность "припарентить" эту камеру к ещё одной движущейся камере (без этой функции припаренченную камеру будет shake it baby-ить).
- View Target (static) - нацеливает статичную камеру (без маркеров) на target, камера будет автоматически поворачиваться, чтобы держать target в центре кадра.
Общие параметры некоторых объектов:
- SED infinity render distance – бесконечная дальность прорисовки "энтитии" в редакторе
- SED model stretch - размер модели "энтитии" в редакторе
- SED model color - цвет модели "энтитии" в редакторе
Уровни-примеры: