Новости/News | | Туториалы/Tutorials | | Форум/Forum | | ЧаВо/FAQ | | Патчи/Patches | | Файлы/Downloads | | Ссылки/Links | | Авторы/About |

Matinee: основы

Содержание

Введение

При помощи системы Matinee Вы можете легко создавать пути движения камеры для внутриигровых заставок или так называемого свободного полета (fly-by)

Каждая такая сценка контролируется актером SceneManager. Это актер содержит набор действий/поддействий, которые и составляют основу сцены. Вы можете редактировать matinee сцену, используя обычное окно свойств актера, но намного легче это делать при помощи графического интерфейса (GUI), который становится доступен при переходе в режим Matinee: . Эта иконка расположена слева, в верхней секции панели инструментов.

Обзор GUI

Графический интерфейс - самый легкий способ создания matinee сцен. Позже, Вы более подробно узнаете, как создавать непосредственно сами сценки, а сейчас рассмотрим закладки (tabs) matinee окна, и каким целям служит каждая из них.

Сцены (закладка Scenes)

Вы можете создать новую сценку добавив актер SceneManager в уровень, либо нажав кнопку "new" () в закладке Scenes, которая, в свою очередь, становится доступной при переходе в режим Matinee (). Используйте кнопку, это намного удобнее, чем вручную искать актер в броузере. SceneManager актер () автоматически будет добавлен в уровень при нажатии кнопки "new". После того как этот актер добавлен, можно приступать к созданию Вашей сцены.

Для начала поменяйте Tag Вашей сцены, который, по сути, является ее названием. Для этого необходимо отредактировать соответствующее поле в разделе Events.

В настройках находится несколько опций, которые являются очень важными для SceneManager актера. Для того чтобы изменить эти свойства, окно режима Matinee должно быть открыто. Выберите необходимую сцену и перейдите в ее настройках в раздел SceneManager. Здесь Вы найдете несколько важных свойств.

Список под именем Affect. Эта свойство указывает matinee движку к чему необходимо "применить" сцену. Вы можете "применять" сцену либо к камере игрока (viewport), либо непосредственно к какому-либо актеру. Если Вы хотите повлиять на актера, то сначала укажите для этой переменной значение AFFECT_Actor. Затем выберите актера на уровне, который Вы хотите использовать, и перейдите в SceneManager настройках к полю AffectedActor. Здесь нажмите кнопку "use" и ссылка на этот актер появится в поле. При этом нужно иметь в виду, что некоторые эффекты не применимы к сцене в случае использования актера, т.к. они являются специфическими для поведения камеры, например, затемнение экрана (fade).

Следующим достаточно важным свойством является NextSceneTag, расположенное в конце раздела SceneManager. Если Вы хотите связать последовательно две разные сцены, то это поле будет активировано по окончании первой сцены, и вызовет следующую. Просто впишите сюда имя следующей сцены. Также, Вы можете активировать сразу несколько сцен при помощи NextSceneTag, в случае, если эти актеры имеют одинаковое имя (tag). Например, Вы можете запустить две сцены: первая будет применена к камере игрока (Affect установлен равным AFFECT_ViewportCamera), другая, в это время, будет управлять движением актера (Affect установлен равным AFFECT_Actor)

Еще несколько свойств, на которые необходимо обратить Ваше внимание: EventStart и EventEnd. По умолчанию оба они равны None. Если эти поля заполнены, то происходит вызов указанного в них события в начале сцены и, соответственно, в конце. Свойство EventStart особенно удобно для точного расчета времени событий, т.к. оно всегда основано на времени запуска SceneManager.

Свойство bLooping говорит само за себя: если оно установлено равным true, то сцена будет зациклена. Также можно указать, чтобы сцена при проигрывании отображалась в широкоформатном режиме (letterbox). За это отвечает переменная bCinematicView.

Переменная bHideHUD, теоретически, должна прятать/отображать HUD (статус оружия, здоровья и пр.). По умолчанию это свойство установлено равным true, но изменение его на false не вызывает никакого эффекта.

Полоса времени

Внизу каждой сцены из списка расположена полоса. Она может содержать маленькие секции разного цвета. Каждая из этих секций соответствует определенному действию. Эта полоса помогает примерно определить, как распределено время между различными действиями.

Действия (закладка Actions)

Действия - это то, что движет всей сценой. В Вашем распоряжении два типа действия. Вы можете выбирать либо движение камеры, либо установку камеры на паузу.

При нажатии на кнопке создания нового действия ( ) появится выпадающее меню со всеми доступными типами действий. Выберите необходимый пункт, и действие будет добавлено в текущее положение. Если Вы хотите перегруппировать действия, воспользуйтесь кнопками со стрелками вверх и вниз, которые находятся в верхней части окна. Следует заметить, что порядок, в котором расположены действия в списке, играют очень важную роль - действия выполняются один за другим, сверху вниз по списку. Также, обратите внимание на то, что первое действие в новой сцене всегда должно представлять собой действие движения. Если в качестве первого действия указана пауза, UnrealEd будет его игнорировать при отрисовке интерполяционных линий.

Типы действий

Действия движения ( ) перемещают камеру от одной точки интерполяции к другой. Действия паузы ( ) указывают камере подождать в текущей точке интерполяции определенное количество времени. Каждое действие должно иметь соответствующую ей точку интерполяции - не зависимо от того, является это действие движением или паузой (в качестве справки: актер InterpolationPoint - один из трех доступных опций в закладке Tools). Для того чтобы указать действию необходимую точку интерполяции, выберите ее на уровне, затем перейдите в раздел MatAction в свойствах Actions. Здесь, в поле IntPoint, нажмите кнопку Use. При этом выбранная точка интерполяции будет назначена для текущего действия.

Траектории

Когда в списке находятся несколько действий, Вы можете увидеть линии траекторий, соединяющие различные точки интерполяции в указанном Вами порядке (порядок определяется расположением действий в списке). В основном эти линии белого цвета. Тем не менее, траектория, соответствующая выбранному в данный момент действию, окрашивается в желтый цвет (таким образом, Вы всегда знаете какое действие Вы сейчас редактируете). Вы, также, можете выбирать действия, нажав на этой линии прямо в едиторе, в любом из окон 3D вида. Фиолетовая траектория означает, что на данном этапе происходит "смена кадра", т.е. мгновенное перемещение камеры из одной точки в другую (время перемещения для этого указано равным 0).

Время

Еще одним важным свойством является Duration, которое расположено в секции Time. Эта переменная определяет время данного действия, в секундах. Она используется для указания, за какое время нужно переместиться от одной точки интерполяции к другой, либо длительность паузы.

Типы траекторий

По умолчанию, траектория перемещения камеры между точками интерполяции представляют собой прямые линии. Это легко изменить, указав в разделе Path значение переменной PathStyle равной PATHSTYLE_bezier. При этом линия траектории обретет кривизну, а также появятся "ручки" управления этой кривизной. Перемещая ручки, Вы тем самым, можете изменить форму траектории. Ручками можно манипулировать в любом из окон 3D вида, но, легче всего это делать в окнах Top, Side или Front.

Если траектория с кривизной присоединяется к другой траектории, также обладающей кривизной, то, по умолчанию, точка их соединения будет сглажена. При этом передвижения ручки управления кривизной одной из траекторий будет влиять и на состояние другой. Поэтому, при редактировании траектории, обращайте внимание на общую картину, а не только на текущую траекторию:

Если же Вы не желаете, чтобы стыки сглаживались, перейдите в свойствах к разделу Path и укажите для переменной bSmoothCorner значение false. Таким образом, Вы разрешите использовать острые углы между "кривыми" траекториями:

Специальные иконки

С правой стороны каждого действия могут находиться специальные иконки. Иконка сверху означает тип траектории (прямая или с кривизной) используемой для данного действия. Не обязательная иконка в виде буквы S может появляться снизу. Она отображается в случае, если действие содержит в себе одно или несколько поддействий. Эта иконка позволяют определить беглым взглядом наличие поддействий у данного действия.

Полоса времени

У каждого действия, снизу расположена серая полоса. Эта полоса отражает полное время сцены, в которую входит данное действие. Белая полоса указывает начальное и конечное время этого действия относительно всей сцены. Это позволяет определить примерное распределение времени действий в общей сцене.

Поддействия (закладка Sub Actions)

Поддействия - это то место, где нужно добавлять различные эффекты. Все, начиная от затемнения экрана и заканчивая возбуждением событий, производится при помощи поддействий. Также, здесь можно регулировать развороты камеры.
Интерфейс, по сути, идентичен интерфейсу закладки Actions.

Время

Время работает несколько иначе для поддействий. Значение Delay указывает поддействию как долго нужно ждать прежде чем начать его выполнение, а Duration отвечает за длительность поддействия. Очень важно понимать, что все эти значения времени являются относительными по отношению ко времени действия, которому принадлежат поддействия. Поэтому если Вы укажете 3-х секундную задержку, это означает 3 секунды после того, как "родительское" действие было запущено. Это может показаться запутанным на первый взгляд, но на деле это очень удобно.

Рассмотрим пример. Для начала нужно уяснить, что действие может содержать любое количество поддействий. Поэтому, если Вы хотите, чтобы сначала экран посветлел (fade in), а затем снова стал темным (fade out), для этого будет необходимо два поддействия. Первое поддействие (fade in) будет иметь задержку (Delay) равную 0, т.к. мы хотим, чтобы оно началось сразу. Также мы укажем для длительности (Duration) значение 3. Таким образом, экран от темного перейдет к нормальному (fade in) за 3 секунды. Второе поддействие (fade out) должно иметь задержку (Delay) как минимум равную 3, т.к. в это время сцена будет все еще обрабатывать первое поддействие (fade in). На скрине выше задержка указана равной 7, что означает, что сцена будет находиться в нормальном состоянии 4 секунды, перед затемнением (fade out). Затем за 3 секунды сцена затемнится (fade out). Все это в сумме занимает 10 секунд. Надеюсь все понятно?

Некоторые поддействия представляют собой эффекты, имеющие временную составляющую, например, затемнение экрана или изменение скорости сцены. Это управляется при помощи поля Duration. Длительность эффекта будет определяться значением переменной Duration. Поэтому, если Вы желаете, чтобы затемнение экрана (fade out) произошло в течение 5 секунд, укажите в поле Duration значение 5.

Типы поддействий

Поддействия бывают нескольких видов. Рассмотрим каждый из них в отдельности.

SceneSpeed

Отвечает за скорость выполнения сцены. Эта скорость не зависит от скорости игры (game speed). Данный тип поддействия может быть использован для сцен, в которых нужно создать эффект резкого, быстрого движения камеры или, наоборот, "крадущейся" камеры. Следует иметь в виду, что это никаким образом не влияет на что-либо вне сцены (обычно это камера). Это означает, что события сцены не будут при этом происходить быстрее, изменится только скорость движения камеры.

Наилучшего результата довелось добиться, используя несколько поддействий этого типа в рамках одного действия. Первое поддействие изменяло скорость камеры, второе продолжало движение камеры с новой скоростью, следующее возвращало скорость движения к нормальному (исходному) значению.

Поля Min и Max незаслуженно получили неудачные имена. Значение Min указывает на скорость, которой должна обладать камера в самом начале выполнения поддействия (по умолчанию равно 1), а Max отвечает за скорость движения в конце поддействия.

В разделе Time также находится поле Duration. В нем укажите соответствующую задержку, чтобы UnrealEd знал, когда необходимо начать изменение скорости движения камеры.

GameSpeed

Это поддействие позволяет контролировать общую скорость игры. Этот эффект подобен введению консольной команды slomo, например, 'slomo 5' делает скорость игры в 5 раз быстрее, а значение 0.2, наоборот в 5 раз медленнее.

Для этого типа поддействия также работают "глупые" поля Min и Max по подобию со Scene Speed. В поле Min установите стартовое значение скорости игры (по умолчанию равно 1), а в поле Max - конечную скорость.

Опять же, предпочтительнее использовать несколько Game Speed поддействий в рамках одного действия. Таким образом, Вы сможете изменить скорость игры и затем вернуться к нормальному состоянию.

Orientation

Этот тип поддействия нужно использовать, если Вы хотите развернуть камеру во время ее движения. При этом в Вашем распоряжении есть несколько вариантов:

Также, очень важной настройкой является значение поля EaseInTime. Эта опция отвечает за то, в течении какого времени необходимо произвести разворот камеры в указанном направлении. Если это значение не указано, то камера произведет разворот мгновенно. В противном случае, камера плавно изменит угол поворота от исходного значения к необходимому, в течении указанного промежутка времени.

Если Вы обнаружите, что поворот камеры происходит в неверном направлении, Вы можете "сказать" ей, чтобы она крутилась в противоположном направлении, указав для соответствующего поля bReverse значение 1.

CameraShake

Это поддействие позволяет Вам, как несложно догадаться, трясти камеру во время matinee сцены. Не смотря на то, что этот тип поддействий имеет свои специфические настройки, он не нарушает принципов предыдущих типов. В разделе Shake находятся три поля, каждое из которых, в свою очередь, имеет значение Min и Max. Все это позволяет производить тряску в любом направлении, в течение указанного промежутка времени.

Не забудьте указать в разделе Time значение длительности (Duration) для тряски. Трясти трясти трясти!

Примечание переводчика: мне так и не удалось заставить CameraShake работать. Если Вы найдете причину, отпишите пожалуйста мне на tyoma_dvd@yahoo.com и я добавлю в туториал соответствующие разъяснения.

FOV

Поддействие, позволяющее плавно изменять угол обзора (FOV), для создания zoom эффекта. Поле Min отвечает за исходное значение FOV, а Max - за конечное. Нормальное значение FOV в игре равно 85. Значения ниже нормального уменьшают площадь видимости экрана, но при этом все объекты выглядят увеличенными, что создает эффект приближения. Значения FOV выше 85, наоборот, зрительно отдаляют предметы, а объекты, расположенные по краям экрана становятся немного растянутыми. Максимальное, доступное значение FOV колеблется в пределах 170-180. Во всяком случае, последующее увеличение FOV не дает никаких результатов.

Trigger

Этот вид поддействия возбуждает указанное событие. Очень удобно использовать для точного просчета времени взрыва, для включения музыки, диалогов, Наборов скриптовых событий (ScriptedSequences) и пр.

Fade

Поддействие, затемняющее (fade out) или осветляющее (fade in) экран в/из определенного цвета. Цвет можно выбрать в секции Fade в поле FadeColor. По умолчанию он установлен равным черному цвету.

Заметьте, что это поддействие используется как для эффекта осветления (fade in) так и для затемнения (fade out). Для определения типа эффекта укажите соответствующее значение переменой bFadeOut в разделе Fade. Если оно равно false, экран будет осветляться, иначе (true) - затемняться. Также, не забудьте при использовании этого типа поддействий, указать необходимое значение задержки (Delay). Вполне возможно появление ситуации, когда в середине сцены произойдет затемнение экрана, а затем сцена резко вернется к исходной яркости.

CameraEffect

Это поддействие может добавлять два вида эффектов:

Обратите внимание на то, что эти эффекты никак не проявляют себя в окне предварительного просмотра matinee сцены. Они будут видны только при просмотре сцены в самой игре.

Примечание переводчика: по неизвестной мне причине, MotionBlur не появляется в CameraEffect списке. Если кто знает причину такого поведения, отпишите пожалуйста мне на tyoma_dvd@yahoo.com и я добавлю в туториал соответствующие разъяснения.

Полоса времени

Она выполняет практически такую же функцию что и для действий (actions) с тем лишь отличием, что в данном случае серая полоса отражает полное время действия, которому принадлежит поддействие. Белые полосы отражают стартовое и конечное время относительно времени "родительского" действия.

Инструменты (закладка Tools)

Эта закладка, хотя на вид довольно простая, но, тем не менее, предоставляет очень удобные инструменты. Здесь расположены кнопки добавления точек интерполяции (InterpolationPoint) или LookTarget актеров. Эти актеры будут добавлены в уровень, в точке, где в данный момент расположена камера и будут, при этом, иметь значение Rotation камеры.

Окно предварительного просмотра

Нажмите в окне matinee кнопку предварительного просмотра ( ), при этом на экране появится специальное окно предварительного просмотра выбранной в данный момент сцены. Это окно позволяет Вам в действии просмотреть созданную Вами сцену. Конечно, на предварительный просмотр не стоит полностью полагаться, т.к. он не отображать другие актеры, одновременно двигающиеся на уровне, а также не в состоянии возбуждать события. Не смотря на это, Вы, таким образом, сможете увидеть приблизительную картину Вашей сцены.

Ползунок времени

Для быстрого передвижения по сцене Вы можете воспользоваться ползунком времени ( ). По мере того, как Вы перетаскиваете ползунок, экран будет обновляться, показывая поведение камеры в этой точке. Возможно, чтобы понять, о чем идет речь, легче самому попробовать ползунок в действии.

При этом Вы можете свободно крутить камеру в любом направлении, но никакие клавиши в окне предварительного просмотра не будут работать, т.к. окно предназначено сугубо для просмотра, а не для редактирования.

Панель инструментов

Если Вы нажмете на кнопке Play ( ), сцена запустится с того момента времени, на который указывает ползунок времени. Это позволяет проигрывать отдельные куски сцены, чтобы легче было произвести необходимую настройку. Кнопки, расположенные рядом с кнопкой Play предназначены для остановки сцены и перемотки сцены в самое начало.

Следующий набор кнопок - это кнопка Refresh ( ) и кнопка Reset ( ). При нажатии на кнопке Refresh происходит обновление и пересчет данных для траекторий, в случае, если данные окна предварительного просмотра и актера SceneManager не совпадают. Кнопка Reset удаляет все эффекты, относящиеся к камере. Это удобно использовать, например, в ситуациях, когда ползунок времени установлен в пределах применения эффекта затемнения экрана.

Дальше следуют кнопки, позволяющие управлять видимостью траекторий и ротаций интерполяционных точек. На данный момент, ротации точек в любом случае не отображаются в окне предварительного просмотра, но в дальнейших версиях едитора это будет добавлено.

Последняя кнопка позволяет включать и отключать широкоформатный вид, для того, чтобы Вы могли увидеть, как он при этом будет выглядеть. Если Вы хотите "реально" использовать такой вид, то в свойствах SceneManager установите для переменной bCinematicView значение равное true.

Полоса времени

Под ползунком времени расположена полоса, которая схематически показывает расположение отдельных действий в сцене (в виде светлых полос). На полосе времени, также, расположен специальный маркер, который указывает на текущее время, выбранное ползунком. Нажав на одной из светлых полос, Вы можете выбрать соответствующее ей действие.

Заключение

В этом туториале были рассмотрены основы графического интерфейса matinee окна, а также основы действий. Если Вы готовы идти дальше, ознакомьтесь также с документом: Matinee: пример создания сцены, который описывает реальный пример создания matinee сцены.

Автор

Warren "Taskmaster" Marshall
Last updated by Tom Lin (Demiurge Studios) для 2107 билда
Оригинал туториала: Matinee Tutorial
Перевод сделан 32_Pistoleta

Хостинг от uCoz