четверг, 26 апреля 2012 г.

TOP10 of AGHLTV CUP#1 - Как это делалось.

Недавно закончил мувик(видеообзор 10 лучших фрагов первого турнира одноимённого проекта). Возникла идея написать как всё это происходило, ведь процесс создания мувиков достаточно нетривиален, да и по Half-Life не так уж и много мувиков появляется, конечно в сравнении с другими играми. 
Итак, приступим. Хотелось бы начать с того, что в виду продажи системника (да я всё же решил от него избавиться и про это я напишу позже) у меня остался незадействованный монитор, который я сразу же подключил к ноутбуку. В деле создания мувиков, да и вообще работы с графикой/видео, несколько мониторов делают жизнь намного проще и хотя ноутбук едва смог предоставить требуемые мне вычислительные ресурсы, работа по созданию мувика была сплошным удовольствием.


Рабочим местом выступил ноутбук Toshiba Satellite модель запамятовал, зато конфигурацию помню:
Displays: 15" 1280x800 + 22" 1680x1050
AMD Turion X2 Ultra Dual-Core Movile ZM-82 2.20 GHz
4 Gb RAM
AMD Mobility Radeon 3650 512Mb
2x320 HDD 5200RPM

ПО которое использовалось:
MS Windows Vista Ultimate 32-bit
Sony Vegas PRO 9.0c 
Autodesk 3Ds MAX 2010
Half-Life Advanced Effects (далее HLAE)

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

Первым делом я запустил Steam, ведь без него не запустится HLAE. А вот и скрин запущенного HLAE:

Просто и незамысловато, именно в этом окне и запустится игра, при не установленной галочке full screen, а так как целевое разрешение мувика было 720p и совсем непрактично было бы  видеть растянутую на два монитора картинку я всё выставил как на скрине:

После нажатия кнопочки Lunch я при помощи таймлайна (панель перемотки) быстро находил записанные моими коллегами тайминги хороших моментов, просматривал их и "снимал", иногда  с разных ракурсов. Вот за что я люблю Half-Life и благодарю Valve, так это за наличие встроенного инструмента для работы с демками, который содержит вышеупомянутый  таймлайн и  вызывается из консоли командой viewdemo:

Далее при помощи возможностей предоставляемых HLAE я дампил фреймы как просто от лиц игроков, так и с различных ракурсов посредством следующих команд:
mirv_movie_filename "g:\mirv\playername" -- задаёт путь к каталогу, в котором будут сохраняться фреймы
mirv_movie_fps 60 -- задаёт количество кадров в секунду при записи
mirv_recordmovie_start -- начинает запись фреймов
mirv_recordmovie_stop -- завершает запись фреймов
+mirv_recordmovie -- записывает фреймы при зажатой клавише
mirv_showentities -- показывает список всех объектов на карте с их id-номерами
mirv_addaimlayer <slot> <id> -- добавляет объект с номером id в слот slot для захвата его камерой
+mirv_aim -- начинает "слежение" за объектами в порядке их расположения в слотах и удалении от камеры
mirv_zoom_optical 20 -- оптический зум (в отличии от цифрового не затрагивает не 3D объекты, такие как HUD)
+mirv_zoom_start -- увеличение по нажатию клавиши  
Подробнее про HLAE и его команды можно почитать на Википедях HLAE:
http://www.hhg-clan.de/hlae/wiki/index.php?title=Manual
http://www.movienations.com/mirv_hlae_tool/
Далее добавлял последовательности фреймов в Sony Vegas через Import - Media... Выделял первый файл последовательности, ставил галочку на Open still image sequnce и получал видео-фрагмент в Project Media. А дале всё дело техники, компоновал фрагменты, обрезал, подгонял и в итоге у меня получилось это:



Конечно я минул несколько шагов, таких как анимация с Джиной, создание надписей и частиц. Сейчас я вкратце расскажу как я всё это делал.
В случае с джиной всё просто как пробка. При помощи Half-Life MDL Decompiler v1.2 by Kratisto я декомпилировал gina.mdl в последовательность smd файлов из которых Gina_Hi-ResDM1.smd содержит модельку туловища Джины, а DM_Gina_Head1.smd -- её головы. Так же в этой папке вы можете видеть текстуры данной модели.

Импортировав эти два smd файла в 3Ds MAX 2010 посредством плагина SMDImporter.dli и применив к ним данные текстуры через Sub-Materials. Далее я импортировал в сцену с "собранной" Джиной анимацию walk.smd и немного подредактировал её. Табличку я просто "пристегнул" к скелету Джины.

Сложнее дело обстоит с анимацией частиц и что бы не распылять внимание, просто расскажу из чего это всё сделано. Сцены с распыляющимся текстом состоят из объектов 5 типов: 3 Wind, 2 Drag, PF Engine, PF Source и SDeflector. Ну и конечно же самого текста, который скрыт и является формой для частиц. Логика построения сцены такова:


Позже я ещё коснусь этой темы, но уже не в рамках данного поста.


Хотелось вкратце, а вышло довольно-таки объёмно и это учитывая, что я весьма поверхностно коснулся каждого из аспектов создания мувика. И напоследок скрин папки с мувиком на момент релиза: