Хакер № 10.99

Как стать Спилбергом

Vic (vic@captured.com) и Александр "Xenocid" Колосков (xenocid@mail.ru) при содействии ZIP'ы (smirnov-alexander@usa.net)

"В полумраке комнаты еле-еле угадываются силуэты двух сидящих людей. И хотя тьма скрывает их лица, по напряженной посадке видно, что они ждут чего-то. Или кого-то.

Неожиданно тьма, сгустившаяся в дальнем углу комнаты, оживает. Бросок. И только пятна крови напоминают о двух человеческих существах, еще минуту назад казавшихся такими реальными. Экран темнеет." Снято...!

Эпизод, вполне уместный для съемочной площадки очередного фильма ужасов... но каким боком это причастно к разработке компьютерных игр? "Какое отношение это имеет к моей игре?" Самое прямое. Если, конечно, суметь реализовать подобное.

 

Драка в космосе и не только

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

Как можно сделать подобный ролик? Напрашивается два очевидных решения: либо, не мудрствуя лукаво, заснять все на видео, либо отрендерить в каком-нибудь пакете типа 3D Studio Max. Оба варианта обладают как преимуществами, так и существенными недостатками. Поговорим о последних.

Начнем с первого - ролик, снятый с помощью видеокамеры. Тут проблема кроется в том, что снять его частенько оказывается совершенно нереально. Сам посуди. Допустим, тебе для игрушки позарез нужен ролик, где главному герою взрывом гранаты отрывает ногу. А теперь посоображай, как ты это будешь снимать. Видимо, актера на роль главного героя придется похищать из дома призрения для самоубийц. Или другой случай: ты ваяешь космический симулятор и тебе требуется ролик, где два космонавта дерутся друг с другом в открытом космосе на фоне звездной базы а-ля Вавилон-5. Говоришь, можно нарисовать здоровенный задник с изображением базы, на фоне которого и устроить потасовку двоих ребят, по самое некуда увешанных раскрашенными кастрюлями? Молодец, верно мыслишь. В кинопостановках так и поступают. Но только, думаешь, это легко добиться, чтобы задник выглядел не убого намалеванной абстракцией, а величественный звездной конструкцией, чтобы кастрюли превратились в скафандры и чтобы освещением комната, где будет происходить съемка, напоминала не срочно переоборудованный спортзал, а именно космическое пространство? Верно мыслишь - нелегко. Требуются дорогостоящая операторская техника (осветительные приборы хотя бы!) с дорогостоящим оператором во главе, дорогостоящая студия (павильон), дорогостоящий художник-декоратор и так далее. Почти нереально. Особенно если по сюжету в ходе драки один космонавт таки отрывает другому чего-нибудь...

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

Ну не достигли еще трехмерные движки такого уровня, чтобы выдавать на-гора картинку, способную соперничать с тем же 3DS Max! Слабоваты они еще, потому что системные требования не позволяют. Вот и получается, что сначала ты смотришь красивый до судорог в желудке ролик, потом, исполненный радостного возбуждения, запускаешь игру... а там графика такова, что вышеупомянутый желудок сводит во второй раз, но только теперь уже от непреодолимого рвотного рефлекса.

 

О распитии кактусовых настоек

Видео/киносъемка не годится, рендеринг - слишком трудоемко... Выход из этой ситуации, конечно, нашелся. В чью-то светлую голову ударила мысль: "А почему бы не снимать ролики на движке самой игры?".

И действительно - ведь подобный способ выгоден во всех отношениях. Ролики занимают очень мало места (так как хранится не последовательность кадров, а только скрипт сценария, задающий последовательность перемещений игровых объектов и камеры), качество изображения ни на йоту не отличается от самой игры, да и никаких проблем с отрыванием конечностей. И самое главное, ты уже не замечаешь, где проходит граница между роликом и самой игрой. Помнишь, как хорошо сыграли на этом эффекте авторы Unreal и Half-Life? Или, если о менее хитовых играх вспомнить, Redline и Requiem? Качественно срежиссированные сценки в состоянии взвинтить напряженность игры до предела. Помнишь, например, как в Unreal?.. Стоишь перед дверью, палец на спусковом крючке, а из-за двери доносится страшный рев, стоны, крики. Выбиваешь ногой дверь, уходишь с линии огня, полуразворот... И видишь спину убегающего монстра, завалившего комнату... нет, даже не трупами. Так, фрагментарными остатками человеческих тел. Тарантино был бы восторге и съел бы с горя собственную шляпу, запивая кактусовой настойкой.

Однако вернемся к извечному русскому (и вообще) интернациональному вопросу: "Как?".

Как снять подобный эпизод?

Путь лобовой - написать соответствующий скрипт, который будет управлять игровыми объектами. И это путь правильный, очень часто применяющийся. Но он идеально подходит для программистов, этих виртуозов текстового редактора, способных представить сцену в голове и воплотить ее в плоть и кровь ASCII символов своего языка программирования.

А есть ведь и еще один вариант. Намного более интересный и гораздо более подходящий для людей творческих. Что если действительно - снять? Ведь большинство современных 3D стрелялок (и не только они, вспомним, например, представителя стратегического лагеря - Myth) позволяют записывать демонстрационные файлы (далее - просто "демки") во время игры, а потом просматривать их так, как если бы ты писал картинку с монитора на видак! И великий (всем встать!!!) Quake, и чуть менее (можно сесть) великий Unreal, далее по нисходящей. Кстати, бесплатный 3D движок Genesis3D, про которого "Мастерская" писала несколько номеров назад, также позволяет записывать демки.

Разумеется, демка - это еще далеко не фильм, разве что в документальном жанре. Те, кто хоть раз видел демку, записанную из глаз опытного "квакера" во время жестокого "мясного" deathmatch, поймут, что смотреть подобное зрелище достаточно тяжело. В глазах, знаешь ли, рябит. А вот если демку записывать по заранее продуманному сценарию, да еще и подредактировать потом, то вполне можно называть это фильмом.

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

 

С чего начать

В первую очередь (как и в любом другом деле) необходимо понять, а для чего вообще мне нужен этот чертов фильм? Например, для удовлетворения собственной низменной потребности творить и показывать. Цель, безусловно, достойная, но к теме разработки игр не слишком относящаяся. А вот в игре подобные фильмы можно применять в двух случаях: как сюжетные вставки и интрошки, а еще как деморолики. Современный геймер (в смысле - ты) избалован всевозможными пре-релизами, бета-версиями, релиз-кандидатами. QIII (всем встать!!!) еще неизвестно когда выйдет, а меня в него уже убивают чуть ли не каждый вечер. Понятно, что разработчику, измученному постоянным выпуском всяких бета-версий, не дающих нормально поработать над кодом, подобные фильмы - бальзам на рану. Сидишь себе, пишешь игру, а периодически записываешь фильм на текущем движке и сбрасываешь в Сеть на потеху геймерским сердечкам. Кстати, для того, чтобы делать "фильмы", необязателен 3D движок, сойдет любая система скриптов, позволяющая запрограммировать некоторый сценарий. Например, классический двумерный StarCraft обладает мощнейшей системой сценариев, позволяющих определять положения и действия "актеров" с точностью до миллисекунд. И записывать в таком случае демки совершеннонеобязательно - просто загружаешь уровень.

Между прочим, хочу сразу обратить внимание - демка, это не видеоролик. То есть это не последовательность кадров, а последовательность команд движку игры. Такой подход позволяет, во-первых, сократить объем демки (страшно подумать, ведь обычное видео поглощает десятки мегабайт за секунды!), а во-вторых - позволяет играть с "отснятым" материалом, монтировать его, наподобие того, как это происходит в реальном, большом кино. Да, чуть не забыл: если ты пишешь свой собственный движок - не забудь вставить в него средства для записи и воспроизведения демок, а также для программирования скриптов. Сделать это несложно, а от благодарных игроков отбоя не будет.

 

Подготовка

Начинать нужно с идеи. Придумать сюжет, причем необходимо учитывать то, что это не живые актеры и не настоящее кино, поэтому твои возможности ограничены возможностями движка. Например, ни один из существующих движков не поддерживает мимику (есть некоторая надежда на Black&White), поэтому постарайся избежать крупных планов. Также не добиться от электронных болванов и качественной жестикуляции. Поэтому не стоит мечтать о реализации на движке Квейка новейшей экранизации "Ромео и Джульеты". Лучше снимать в жанре, ради которого эти движки и создавались - 100% pure action. Максимум - нечто, лежащее в близкой жанровой плоскости.

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

Если хочешь получить нечто качественное, то наброски сценария следует прогонять "вживую". Элементарно: у кого-нибудь на квартире собирается тусовка и, как в театральной постановке, отыгрывает все сцены. Разумеется - начерно, без всяких репетиций и без малейших попыток сыграть как Марчелло Мастрояни или хотя бы как Леонардовый Каприо. Самая общая прикидка, чтобы понять, насколько дебильно или гениально выглядит написанный сценарий.

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

 

Мэп-мейкер

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

 

Моделлер

Этот товарищ занимается созданием трехмерных моделей персонажей и некоторого мелкого реквизита, который нельзя сделать в редакторе (например, стоящая на столе рамка с фотографией). Для того, чтобы твои фильмы хорошо смотрелись, постарайся найти моделлера получше. Ведь мало модельку изваять, в конце концов - в Интернете можно найти сотни готовых. Самое главное - модельку правильно проанимировать. Это для мясного дэсматча достаточно прописать для модельки фазы выстрела и бега. Для хорошего же фильма нужно изготовить массу других анимаций. Например, жесты, рукопашный бой, поцелуи и т.д. Хороший пример высококлассной работы моделлеров-аниматоров недавно продемонстрировала известная в узких кругах компания Strange Company, выпустившая свой фильм Eschaton: Nightfall. Рекомендуется к просмотру и обожанию.

 

Программист

Это нечто универсальное. Человек должен одинаково хорошо владеть С++ и QuakeC. Потому что всегда возникают потребности ввести в игру (т.е. фильм) что-нибудь новенькое, например, новый вид оружия. Или просто взорвать что-нибудь по команде или в определенный момент времени.

Актеры на озвучке персонажей

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

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

 

Композиторы / саундмейкеры

Люди, занимающиеся озвучкой твоего фильма. Надо ли говорить о том, как важен звук в фильмах, тебе, выросшему в эпоху фильмов а-ля "Звездные войны", просмотр которых без Dolby Surround доставляет примерно такое же удовольствие, как занятия сексом с чемоданом?

 

Монтажер

Наверное, самый важный человек, про работу которого - монтаж отснятого материала - ты прочтешь немного позже.

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

Процесс съемок

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

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

Отснятый после многочисленных дублей материал передается на монтаж, или, как принято говорить у профессионалов, рекам. Рекамер (он же монтажер) стыкует различные сцены, зачастую комбинируя материал с разных камер, склеивает сцены воедино, наполняет видеоряд звуками.Стандартный инструмент рекамера - KeyGrip2, своеобразная монтажная студия для Quake-подобных движков. Скачать эту программку можно по одному из адресов, которые ты найдешь в рубрике "Интернет для "Мастера". Кстати, в этой же рубрике указан адресок, по которому проводятся конкурсы на лучшие фильмы с реальными денежными призами.

 

Советы рекамеру

Старайся избегать слишком крупных планов, так как они могут привести к нежелательным последствиям (например, искажению модели или ее "расплыванию"). Все-таки даже кваковский движок не способен давать реалистичную графику. Кстати, большие надежды, в отношении четкой графики вблизи, возлагаются как раз на движок LithTech 2, создатели которого потратили немало времени и денег, чтобы ввести в него технологии, позволяющие рассматривать героев в мельчайших подробностях. Теперь остается только дождаться выхода очередного гамеса на этом движке.

Как можно больше времени уделяй "рекамам". Их использование способно на порядок улучшить даже плохо сделанный фильм. Динамика, понимаешь...

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

Неплохо будет, если ты, решив заснять чью-то бесславную гибель, сделаешь несколько планов, скажем, из пули или ракеты. Выглядит очень впечатляюще, когда кому-нибудь сносит голову и его мозги размазываются с обратной стороны экрана. Кстати, приемчик вполне себе киношный. Помнишь такой стильный фильм "Снайпер" и самый запоминающийся кадр из него - дуэль двух снайперов? Один из снайперов получает пулю в глаз, причем он наблюдает в оптический прицел, как эта самая пуля пробивает линзы прицела и влетает... да-да, внедоуменно хлопающий ресницами глаз наблюдающего. Напрочь нереально, разумеется, но зато эффектно.

Не забудь сделать титры. Титры - это вообще самая важная вещь в любом произведении :). Страна должна знать своих героев. Конечно, есть всякие readme, но в них мало кто смотрит, а вот титры... Собственно, титры в "демках" можно сделать тремя способами. Рассказываю.

1. Использовать стандартные текстовые сообщения, выводимые самой игрой. Это способ для новичков. Использование подобного метода в серьезной работе - крупный прокол в профессиональной репутации команды.

2. Можно соорудить при помощи редактора уровней огромные буквы прямо на карте. Сделать здоровые буквы на уровне, где происходит съемка, а потом при помощи монтажной программы так ненавязчиво пройтись камерой мимо своих инициалов, высеченных в бетоне.

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

Немного о рекамах. Существует 2 вида рекамов: простой и продвинутый. Поподробнее о них можно найти по адресу http://qmovies.telefragged.com. К первому относится простое редактирование уже существующих видов из глаз игрока, записывавшего действие, или других игроков. Ко второму типу относится рекам с передвижением фокуса камеры из комнаты в комнату вслед за игроками, но не перемещая при этом саму камеру. То есть действуя лишь поворотами и перспективой (это просто надо видеть, чтобы понять). Еще один приемчик из разряда продвинутых - движение камеры за игроком (в простонародье chasecam).

 

Напоследок

Новость поступившая незадолго до отправки статьи в печать.

Strange Company - одна из самых известных компаний, продвигающих идеи создания электронных фильмов, подписала контракт с небезызвестной Monolith Productions (создатели Shogo, Blood...) о создании принципиально нового продукта LithTech Film Producer на базе движка LithTech 2. Советую присмотреться к этому движку. На мой взгляд, оч-чень перспективный товарищ... Так вот, Film Producer позволит снимать фильмы по-настоящему. Программировать окружение, управлять полетами камеры, вставлять различные спецэффекты. Все по-настоящему. Первые демо-версии обещают выпустить в начале 2000-го года.

На этом все.

 

Интернет для "Мастера"

Спецвыпуск к статье "Как стать Спилбергом"

http://qmovies.telefragged.com

Quake movie Library. Много полезной инфы, как снять хороший фильм. Там проводятся различные голосования, пишутся муви/демо новости. Обсуждаются проблемы. Выложены обзоры фильмов, и главное, проводится местный вариант "ОСКАР" - награждение лучших. В этом году спонсоры выделили денежныепризы по 50 баксов за победу в каждой номинации (вроде их было около 10), после чего на IRC проводилась церемония награждения.

www.planetquake.com/cineplex

 

The Cineplex. Помимо всяких полезных файлов и статей, тут находится огромное количество ревьюшек для игр, начиная от DOOM и заканчивая бетой Quake III Arena.

http://www.frag.com/ppj

 

Psyk's Popcorn Jungle. На момент написания статьи там было около 160 ревьюшек для фильмов на кваковских движках. Довольно интересно узнать несколько разных точек зрения на свою поделку с разных сайтов.

Hosted by uCoz