Лицо Джедая. Теория и практика рисования лиц для игровых моделей
“Ой! Как на нашего Буншу похож!” Из кинофильма “Иван Васильевич меняет профессию”.
Еще совсем недавно, лет пять назад, основным средством для того, чтобы выделиться из общей массы игроков в многопользовательской игре, было изменение оригинальной графики модели. Помнится, мы с товарищами писали на спинах свои имена, раскрашивали костюмы… Это было весело. Правда, чаще всего узнать о том, кто “пострадал” от твоих рук, можно было, только внимательно разглядывая останки. В те времена к нам благополучно перекочевало английское слово “skin”, означающее графическую оболочку для 3D модели. Никакого особого различия между отдельными частями этой самой оболочки не делалось. И это было правильно. Возможности графики с 256 цветами были таковы, что методы работы что с костюмом, что с частями тела героя были одинаковы. Основные инструменты — кисть и карандаш, вне зависимости от используемой программы рисования. Раскрасил костюм героя в красный цвет, и ты уже Red Lord, этой же краской разукрасил глаза, да еще подрисовал выступающие клыки — и ты уже Vampire. Но все течет, все изменяется. Современные компьютеры способны быстро обрабатывать огромные (по сравнению с теми, что были раньше) массивы графических данных. Естественно, этими возможностями не замедлили воспользоваться программисты. Графика в новых играх становится все более детальной и насыщенной цветом. Сегодня мы поговорим о теории рисования лиц для моделей в современных компьютерных играх. А в качестве примера научимся создавать “мордашки” для игры Star Wars Jedi Knight II: Jedi Outcast. Джедай на мониторе В Jedi Knight II используются текстуры с разрешением до 1024х1024 и шестнадцатью миллионами цветов. Лица героев нарисованы с такой тщательностью, что можно разглядеть поры кожи и отдельные волоски в бороде (если у героя есть борода). Вмешиваться в такой рисунок с кисточкой и карандашом — все равно что ремонтировать часы с помощью молотка. Если, конечно, эти инструменты не находятся в руках профессионального художника. А что же делать большинству геймеров, которые, кроме рисования разнообразных чертиков на лекциях, уроках и заседаниях, другими достижениями в области искусства похвастаться не могут? Высокое качество графики в Star Wars Jedi Knight II: Jedi Outcast закрывает или серьезно ограничивает тем, кто “не Рембрандт”, традиционный путь изменения графической оболочки модели. Но при этом открывается другой путь! Если вы не можете так же качественно выполнить рисунок лица героя, то никто не мешает вам взять его где-нибудь еще. В этой статье в качестве “нового лица” для модели я возьму лицо с обыкновенной фотографии, и мы посмотрим, что из этого получится. Распознавание образов человеком Прежде чем мы займемся изготовлением “нового лица” модели на основе фотографии лица реального, попробуем выяснить, чего следует от этой “операции” ожидать. Главный вопрос таков: насколько будет похожа модель на обладателя этого самого реального лица? На этот прямой вопрос ни я, ни кто-либо еще не даст вам прямого ответа. Как говорил лектор из известного фильма, “наука пока еще не в курсе дела…”. А все потому, что здесь затрагивается один из фундаментальных вопросов работы головного мозга — распознавание образов. Способность человека узнавать знакомые объекты и не путать их с другими до сих пор остается до конца не изученной. Деятельность головного мозга человека пока изучается в основном по внешним проявлениям. Понаблюдать за тем, что происходит там, внутри черепной коробки, не удается. Медиками хорошо изучены органы зрения. Понятен механизм получения человеком изображения. А вот как оно в дальнейшем обрабатывается? Сколько раз вы слышали от своей бабушки (мамы, подруги и т.д.), просматривающей очередной телевизионный сериал: “Смотри, как на нашего … похож!”? И сколько раз удивлялись, какое сходство она нашла между вашим … и Крузом Кастильо. Как человек делает вывод о том, похож один обьект на другой или нет? Как ни странно, но интенсивное изучение этого вопроса началось только после появления достаточно сложных вычислительных машин. До этого момента человек воспринимал способность различать объекты как само собой разумеющуюся. Действительно, она заложена в нас от рождения и наиболее интенсивно развивается до начала осмысленного восприятия окружающего мира. Поэтому время, когда невозможно было отличить папу от чайника, никто не помнит (если папа от него до сих пор чем-то отличается). Проблема встала в полный рост тогда, когда человек захотел получить себе более умного помощника (а вернее, раба) в лице ЭВМ (еще одно доказательство тому, что лень является двигателем прогресса, а ум и труд — только инструментами для достижения цели). Желательно, чтобы помощник был зрячим. От слепого проку мало. Опускаем все подробности передачи машине изображений разных объектов и сосредотачиваемся на ее способности эти объекты различать. В качестве образца для подражания был выбран человек. Несмотря на то, что механизмы распознавания объектов человеческим мозгом неизвестны, любой исследователь мог руководствоваться собственными ощущениями. В результате была выдвинута теория “классификаций” (Брунер, Гуднау и Остин, 1956 г.). Эта теория предполагает, что человек, по мере своего развития, постепенно накапливает “базу данных” определяющих признаков. На основе этих признаков все единственные в своем роде объекты (а двух одинаковых объектов в природе практически не существует) разбиваются на классы. Причем более крупные из них включают в себя более мелкие. И таких вложений может быть очень много. Потом было предложено осуществлять распознавание образов машиной вычислением “взвешенной” суммы отдельных классификаций, в основе каждой из которых лежат особенности (признаки) распознаваемого объекта (т.е. определение осуществляется по признакам, набравшим наибольшее количество условных баллов). Примерно так выглядела бы эта модель распознавания применительно к человеку… Подвыпивший товарищ приходит на дискотеку и фиксирует в конце зала: — двигающийся объект (значит, не шкаф!); — двигается на двух ногах и имеет человекообразные пропорции (значит, не медведь, может, обезьяна?); — спереди на груди два выступающих холма (чем больше, тем виднее, — а вы думали, за что мужчины уважают большую грудь!); — губы ярко накрашены (это для тех, кто не разглядел пункт “а”); — волосы длинные, прическа аккуратная (испокон веков использовалось женщинами как вторичный половой признак, и он остается в силе, несмотря ни на что); — в платье (опять же, разница в одежде всегда использовалась для более легкого определения пола, и если современные женщины желают ходить в брюках, то это, может, и красиво, но усложняет задачу подвыпившему товарищу!). Наш подопытный делает предварительный вывод: в конце зала — скучающая без него женщина. Можно поплевать на ладони, пригладить волосы и идти знакомиться… Всю эту классификацию наш подопечный проделал, нисколько о ней не задумываясь. Мы акцентировали классификацию вокруг зрительного восприятия и опускали множество других, например, оценку ситуации, в результате которой определение объекта как “обезьяна” было бы отметено в виду того, что обезьяны, скорее всего, на дискотеки не ходят. Конечно, наш “джентльмен” не застрахован от ошибок. Можно познакомиться с симпатичной девушкой, а приведя ее домой, обнаружить, что это совсем не женщина. Отталкиваясь от этой идеи, были разработаны новые, более совершенные теории и методы распознавания образов, но по сути… Человек все еще не знает, как ОН это делает. Алгоритмы разрабатываются из его представлений о том, как он МОЖЕТ думать, решая проблему распознавания. А то, что эти алгоритмы несовершенны, доказывают опыты. При классификации, основанной на непосредственном сенсорном опыте (при распознавании лиц, например), люди легко превосходят возможности любого компьютера. Так почему же бабушке кажется, что ваш знакомый похож на Круза Кастильо, а вам нет? Это можно было бы объяснить так… У бабушки жизненного опыта больше вашего раза в два (если только она не родила вашу маму в 13 лет, а ваша мама не проделала то же самое с вами). Следовательно, согласно теории классификаций, ее “база данных” значительно обширнее, а значит, ее определение гораздо точнее. Так ли это? Возможно (добавим немножко Фрейда), сыграло свою роль то, что она сидела в школе за одной партой с кудрявым черноволосым парнишкой и была в него влюблена. А вы не сидели, и вряд ли он сейчас вам понравится… Отсюда и оценки у вас разные. Не раздражайтесь и подумайте, какая “база” будет у вас в ее годы (и не слушайте доктора, который что-то говорит о старческом маразме). Взгляд в зеркало Вернемся к главному вопросу — будет ли модель походить на вас, если вы используете свою фотографию в качестве ее нового лица. Стопроцентного сходства вы не получите. Дело в том, что каждое лицо обладает рядом характерных признаков, таких как расстояние между глазами, массивный подбородок, нависающие надбровные дуги, широкий нос и т.д. Все это заложено в вас генетически. Ваш череп имеет в одних местах выпуклости, в других — ямки. Фотография является плоским отображением 3D модели — вашей головы. Мы собираемся приспособить это отображение на совершенно другую модель, в которой и ямки, и выпуклости находятся в других местах. Понятно, что без трудностей тут не обойдется. Но не все так плохо. Дело в том, что многие из этих признаков, хотя и формируются как отображение свойств 3D модели, в фас могут быть легко переданы светотенями. С некоторыми из них так легко не справиться. Форма лица, длина носа, расстояние от носа до губ, расстояние от губ до подбородка, расстояние между глазами… Но и тут не все так страшно. Большинство людей обладает примерно одинаковым расстоянием между глазами, и небольшое отклонение в ту или иную сторону пройдет незамеченным. К тому же люди больше обращают внимание на форму глаз, а ее мы как раз можем сохранить. Немного хуже обстоят дела с носом. Все-таки это довольно заметная лицевая часть. Хуже всего с формой лица. Если ваше лицо треугольной формы, а у модели овальное, то можно попробовать скомпенсировать недостаток “массы тела” бородой. Если наоборот, то вам не повезло — ищите в игре другую, более подходящую модель. Все совсем плохо с отображениями 3D моделей в профиль. Фактически определяющими для узнавания здесь является форма носа, подбородка, лба и головы в целом. Не спасет даже точная передача рисунка уха, а это, пожалуй, единственная индивидуальная деталь, которую можно было бы точно скопировать с фотографии на профиль модели. Почему-то большинство людей на уши никакого внимания не обращают. Итак, мы приходим к выводу: для “нового лица” готовой модели, чтобы получить некоторое сходство с реальным человеком, можно использовать только его фотографии в фас. В этом случае **
**
Посмотрите, как много форм, отвечающих за узнавание конкретного лица на фотографии в профиль, и как мало — на фотографии в фас.
и “сходство” будет только при просмотре этой модели спереди. Чтобы получить полное сходство и иметь возможность использовать фотографии в профиль, нужно было бы изменять форму имеющейся 3D модели таким образом, чтобы в конце концов она была преобразована в 3D модель вашей головы. Между прочим, существующие программы получения 3D моделей из фотографий так и поступают. Например, программа famous3DmeNow требует две фотографии: в фас и профиль. По фотографиям вы выставляете контрольные точки для расчета формы, запускаете процесс — и все готово. Эту программу можно применять в качестве подспорья при изготовлении 3D моделей, в основу которых положены реальные люди. В нашем случае программа ничем не поможет. Может возникнуть вопрос — о каком сходстве вообще идет речь, если нам придется менять длину носа, сдвигать губы к подбородку, увеличивать расстояние между глазами и т.д.? Даже в этой ситуации о сходстве говорить можно. Вспомните известную телепередачу “Куклы”. Ее герои были прекрасно узнаваемы, хотя ни одна машина не смогла бы определить какого-либо сходства между ними и фотографиями прототипов. Человек умеет мыслить ассоциативно, а машина пока способна лишь перебирать классификации и искать наиболее подходящие варианты. Есть более или менее удачные попытки заставить компьютер “мыслить” ассоциативно. Мне самому не так давно пришлось трудиться над программой, которая должна была отслеживать перемещения объекта, не имеющего конкретной формы, меняющего направление движения, двигающегося со значительной скоростью, и четко распознавать его в окружении других подобных объектов. Да еще о том, что он хочет видеть объекты в цвете, а не на кадрах, полученных с помощью пироэлектрического видикона, заказчик почему-то вспомнил в конце… И все же человек даст машине в этом вопросе сто очков вперед, поэтому прогноз на узнавание будущей модели, “надевшей” вашу фотографию, — благоприятный. Фотография на память Редактировать изображения я буду с помощью программы Adobe Photoshop 5.5. Если вы будете пользоваться другой версией, то соответственно корректируйте свои действия. Порядок действий остается таким же. Я ожидаю, что вы уже знакомы (хотя бы минимально) с этой программой. Все-таки эта статья не по работе с Adobe Photoshop, а о применении этой программы для конкретной цели. Кроме того, нужна будет утилита ModView из пакета инструментов для игры Star Wars Jedi Knight II: Jedi Outcast, которые можно скачать по адресу www.bluesnews.com/files/jedioutcast/tools/jk2editingtools.shtml. Эта программа предназначена для просмотра моделей формата .glm. С ее помощью очень удобно просматривать производимые изменения и вносить коррективы в дальнейшую работу. Можно обойтись и без нее, но тогда для просмотра придется загружать игру. В дальнейшем я буду считать, что программа ModView у вас установлена. Теперь нам нужна фотография лица в фас. Вы можете взять где-нибудь готовую (из фотоальбома, из журнала, с плаката), а можете сфотографироваться специально. Требования к фотографии предъявляются высокие — лицо на ней должно быть очень четким, все мелкие детали хорошо просматриваемыми. Вряд ли у вас в фотоальбоме найдется подходящая фотография… Дело в том, что для выполнения перечисленных выше требований к фотографии лицо на ней должно быть взято очень крупным планом. Как правило, фотографии на память так не делаются. Во всяком случае, у меня такой не нашлось, и фотографироваться пришлось специально. При фотографировании была использована цифровая фотокамера DIMERA 3500 фирмы RELISYS, позволяющая получать снимки разрешением 640х480. Выяснилось следующее. Для того чтобы лицо получилось достаточно крупным планом, расстояние от него до фотокамеры должно быть небольшим, на границе минимально возможного (от 1 до 1.5 метров). При этом фотография получается искаженной (как если смотреться в елочную игрушку круглой формы). Если есть возможность, то можно поискать точку, в которой искажения были бы минимальны при достаточно четком отображении лица. Если искажения не слишком большие — то ничего страшного. При редактировании вы внесете гораздо более существенные. Следующий момент заключается в том, что фотографии получаются слишком светлыми. Чтобы потом было легче подобрать тон под цвет кожи на изображении лица модели, можно использовать тональный крем или тональную пудру (я так и поступил). Практика пластических операций Считаем, что фотография у нас есть. Теперь необходимо получить доступ к ресурсам игры, а конкретно — к папке с моделями героев. Для этого открываем с помощью WinZip или WinAce файл assets0.pk3 (они могут открывать файлы типа .pk3 ) и находим в нем папку models/players. В этой папке хранятся файлы всех моделей, использованных в игре. Извлекаем папку в вашу директорию base. При извлечении обязательно установите параметр use folder names в окне архиватора при указании пути для извлекаемых файлов. После этого у вас в директории base появится папка models , аналогичная по структуре такой же папке из assets0.pk3. Теперь вы имеете возможность просмотреть модели и выбрать объект для редактирования. Для этого вам потребуется программа ModView. Если вы еще не установили инструментарий, то самое время сделать это сейчас. При установке обратите внимание на следующее. Инструменты должны быть установлены в директорию GameData , до которой вы и должны указать путь, если он отличается от заданного. После распаковки в папке GameData появляется директория Tools , а в директории GameData/base — директории maps , models , shaders. Программу ModView найдете в директории Tools. Для того чтобы просмотреть модели, имеющиеся в вашем распоряжении, запустите программу и выберите пункт меню File/Open (я не буду указывать кнопки на панели инструментов и “горячие” клавиши, вызывающие аналогичную реакцию, — посмотрите сами). В диалоговом окне находите папку …\Star Wars JK II Jedi Outcast Rus\GameData\base\models\players и в ней, открыв папку с любой моделью, ищете файл типа .glm. Выделив его, нажимаете кнопку “Открыть” и, после загрузки, выбранная модель отображается на экране. Несколько слов об управлении отображением модели. Перемещение мыши с нажатой левой кнопкой в районе экрана отображения приводит к вращению модели. Перемещение мыши вперед и назад с нажатой правой кнопкой заставляет модель приближаться/удаляться. Если вы нажимаете Alt + левую кнопку мыши (курсор на экране отображения модели), то модель перемещается по экрану вслед за движениями мыши. Рассечение кожи Я выбрал модель models\players\jedi. Загружаем в Adobe Photoshop нашу фотографию, изображение “развернутого” лица из файла players\jedi\face_02.tga , модифицируемой модели и размещаем их рядом.
Внимание! В папке есть два варианта лица героя — face_02.tga и face_01.jpg. Первый вариант без бороды, второй с бородой. Если вы сразу решили оставить себе бороду, то некоторые последующие операции можно не выполнять. Лицо на фотографии значительно больше, чем нужно. Приводим его размеры в соответствие с размерами лица модели (которую я далее буду чаще всего называть “оригиналом”). Используем для этого инструмент Measure Tool (рулетка) , предварительно установив из меню File/Preferences/Units &Rulers… отсчет рулетки в pixels. Замеряем оригинал от края изображения (в самой верхней точке) до конца подбородка.__ Я получил значение по высоте H=402. Чтобы увидеть то, что у вас получается, выведите панель информации ( Window/Show Info ), если она не выведена на экран, и щелкните на ней по вкладке Info. Теперь замеряем так же размер лица на фотографии, которая у нас должна заменить оригинал (постарайтесь при этом отталкиваться от какой-нибудь детали, чтобы каждое новое измерение не показывало нового результата). У меня размер с фотографии оказался равен 450 пикселям. Теперь выполняем нехитрые расчеты, цель которых — уменьшить размер фотографии пропорционально размеру оригинала. Находим множитель: 402 : 450 = 0.89333. Выделяем фотографию и заходим в Image/Image Size. В появившемся окне отображаются размеры нашей фотографии по ширине и высоте. Оба размера между собой связаны, и изменение одного из них ведет к пропорциональному изменению другого. Эта связь должна обозначаться линией между полями ширины и высоты и рисунком цепочки, если их нет, то включите внизу флажок Constrain Proportion. Теперь умножаем значение ширины (или высоты — все равно) на полученный ранее множитель: 768 * 0.89333 = 686.08 Вместо старого значения ширины 7 68 (которое было у моей фотографии) вводим 686. Жмем ОК и получаем уменьшенную пропорционально оригиналу фотографию. Сударь, вы бледны! Начало положено. Теперь надо сделать _
_
так, чтобы цветовая гамма нашей фотографии не слишком сильно отличалась от оригинального изображения “фейса” модели. Для этого выделяем на рисунке face_02.tga
характерный участок, который имеет наиболее распространенные для этого рисунка цвета, копируем его и вставляем в фотографию. Двигаем по фотографии вставленный участок примерно в то же самое место, откуда он был скопирован с оригинала.Затем добиваемся из меню Image/Adjust инструментами Color Balance… и Brightness/Contrast… (при выделенном слое с фотографией) того, чтобы этот тестовый участок на фоне фотографии почти не был заметен. Выбираем на панели инструментов Polygonal Lasso и выделяем на фотографии лицевую часть. Особой точности тут не нужно. Если будет немного больше, то ничего страшного. Нажимаем последовательно Edit/Copy и Edit/Paste. В результате у вас должен появиться новый слой с вырезанным лицом, при этом сама фотография остается целой. Захватываем полученный слой левой кнопкой мыши и перетаскиваем его на копию рисунка face_02.tga.
Глаза — зеркало… Следующая операция может быть неприятной. Если, конечно, это не фото “горячо любимого” преподавателя. На перетащенном слое с лицом нужно вырезать глаза. Сама “операция” ничем не отличается от проделанной ранее при создании слоя. Глаза не выбрасывайте, они вам еще пригодятся. Сохраняйте в новых слоях. Овал лица Теперь выделяйте “лицевой” слой и,
с помощью ползунка Opacity , меняйте его прозрачность до тех пор, пока под ним не начнет хорошо просматриваться старая “кожа” оригинала. Отмечаем, что по ширине она значительно больше. Это и понятно. Ведь то, что вы видите на оригинале, — поверхность, снятая с 3D модели и развернутая на столе, а то, что вы хотите приспособить на ее место, — моментальный снимок 3D поверхности. Если вы будете смотреть под любым углом на шар, то в поле вашего зрения всегда будет находиться поверхность, ограниченная его диаметром. Объем “достраивается” вашим мозгом, исходя из жизненного опыта, по светотеням.
Как известно, длина окружности намного превосходит диаметр. Поэтому любая развернутая 3D поверхность будет шире ее фотографического изображения. К счастью, лицевая часть оригинала — это, грубо говоря, только передний сектор шара, в качестве которого можно представлять голову. Поэтому разница по ширине обязательно будет, но не такой большой, как можно было бы ожидать. Если, конечно, вы правильно выполнили приближение размеров оригинала и фотографии ранее. Опять используем методику замера и приближения, но теперь ТОЛЬКО по ширине! Итак, выбираем 2 характерные точки на оригинале и на нашем варианте. Я выбрал края глазниц. Изменяя прозрачность слоя с “лицом”, производим замеры. На панели Info смотрим результаты и записываем их куда-нибудь. У меня получилось: оригинал W = 275, “лицо” W = 221. Узнаем, насколько шире оригинал: 275 : 221 = 1,2443. Теперь создаем новый файл File/New , причем размеры задаем любые, но такие, в которые наше лицо помещается без проблем (например, 500х500). На всякий случай откройте Image/Mode и проверьте, чтобы у создаваемого файла было отмечено RGB Color. После этого перенесите в новый файл слой с “лицом” и отрегулируйте его положение так, чтобы он свободно помещался на экране. Займемся “расширением”. Выводим на экран окно Image Size (меню Image/Image Size…) и первым делом сбрасываем флажок Constrain Proportion. Мы должны изменить только ширину, а высота пусть останется
прежней. Вычисляем необходимую величину ширины, чтобы получить нужную нам деформацию: 500 * 1,2443… = 622,17… Отбрасываем все, что стоит после запятой, и вводим 622 (у вас, естественно, другие цифры). Нажимаем ОК. Лицо становится лунообразным.__Возвращаем “расширенное” лицо на изображение оригинала. Оно появляется в палитре Layers в качестве нового слоя. “Узкую” версию удалите, нажав левую кнопку на названии в палитре и скинув ее на изображение мусорного бака в нижней части палитры Layers. Выделяем рабочий слой с лицом (щелчок на названии), увеличиваем прозрачность (ползунок Opacity) так, чтобы под ним хорошо просматривался оригинал. После этого совмещаем места для глаз на обоих слоях.__Прежде чем вы будете двигаться дальше, сохраните копию слоя с лицом. Для этого щелкните правой кнопкой по названию слоя в палитре Layers , выберите пункт Duplicate Layer… и введите имя слоя. Далее работаем с ней, а первоначальный слой отключите, щелкнув на изображении глаза слева от его названия в палитре Layers. Несмотря на то, что глаза на нашем лицевом слое и оригинале совпали, линия рта у второго оказалась значительно выше. Придется вносить коррективы. Выделяем слой с лицом и выбираем инструмент Marquee (выделение области). Охватываем на лице область, включающую в себя кончик носа, рот и подбородок (стараясь захватить все мелкие складки вокруг рта). Затем нажимаем Edit/Cut и Edit/Paste. В палитре Layers появляется новый слой с выделенной нами частью лица. Выбираем инструмент Move и передвигаем наш новый слой, пока линия рта на нем не совпадет с линией рта оригинала. Чтобы лучше видеть момент совпадения, сделайте этот слой более прозрачным.
Овал лица нарушился, и на нем появились уступы, которые необходимо ликвидировать.
Выделяем слой с подбородком, который мы только что передвигали, щелкнув по его названию на палитре Layers. Увеличиваем область “уступа” с левой стороны с помощью инструмента Zoom (масштаб) выбрав его и щелкнув мышкой в этом месте (уменьшать изображение так же, только держать при этом нажатой клавишу Alt). Выделите на этом слое край
подбородка с левой стороны инструментом Polygonal Lasso.__Скопируйте и вставьте выделенный участок ( Edit/Copy и Edit/Paste ). Полученный новый слой необходимо сориентировать нужным образом. Выделяем новый слой в палитре Layers и затем выбираем пункт меню Edit/Free Transform. Вокруг нового слоя появляется рамка. Подводим курсор к верхнему левому углу рамки. Когда он принимает форму дуги со стрелками на обоих концах, нажимаем левую кнопку мыши и вращаем рамку так, чтобы край нашего слоя мог стать продолжением отсутствующего участка. Помещая курсор внутрь рамки и двигая мышь с нажатой левой кнопкой, можно передвигать слой в нужную сторону, если одного вращения недостаточно.
__То же самое проделываем и с правой стороной. Теперь надо избавиться от резкого перехода на стыке сдвинутого нами слоя с подбородком и остальной частью лица. Этого мы добиваемся с помощью инструмента Eraser (ластик). Увеличиваем участок с резким стыком текстур. Выбираем Eraser и в окне Navigator выбираем появившуюся вкладку Eraser Options. Устанавливаем прозрачность ластика в 15% и, в раскрывающемся списке режима стирания, — Pencil. Выбираем размер кисти Eraser в палитре Brushes (если она не подключена — включите Window/Show Brushes ). Подключаем ранее сохраненный первый слой с лицом, щелкнув в окошке слева от его названия в палитре Layers (должно появиться изображение глаза) и установив его прозрачность примерно в 55%. Устанавливаем в качестве редактируемого слой с подбородком (щелчок на его названии в Layers). Нажав левую кнопку мыши, двигайте кисть по убираемому стыку. На особо ответственных местах установите кисть и щелчками левой кнопки мыши добивайтесь нужного эффекта. Не бойтесь, что пострадает лицевая часть. Инструмент применяется только к слою, выделенному в палитре Layers. И работа с инструментом, и получаемый эффект похожи на проявление фотографии в кювете с проявителем. Если вы случайно переборщили и испортили слой — не беда. Не надо пытаться отменить неправильные действия через Edit/Undo… Эта команда отменяет только последнее действие. Выберите вкладку History на палитре Layers , прокрутите список в самый низ. Щелчок по названию операции из списка отменяет все действия, записанные ниже. Не забывайте о том, что можно регулировать прозрачность слоев. Если необходимая незаметность перехода не была достигнута, то применяются два других мощных инструмента — Blur (размытие) и Smudge (палец). Порядок установки опций и размера кисти такой же, только вместо прозрачности
Монстры отдыхают!
надо установить процент Pressure (нажим). Хотя и в первом, и во втором случае это, по существу, регулировка эффективности применяемого инструмента. Более “мягкий” вариант вмешательства — Blur. Его и надо применять в первую очередь. Smudge надо использовать аккуратно и только в том случае, если Blur не помог. Перед их применением оба стыкуемых слоя должны быть объединены в один. Для этого выбираете нужный слой, щелкнув в палитре Layers по его названию, и находите в ней “стыкуемый” слой. Слева от него два окошка. Крайнее слева показывает, отображается этот слой в данный момент на экране (если в нем есть изображение глаза) или нет. Второе используется для установки связи между слоями. Щелкните по нему, и в нем появится изображение цепочки. После этого выберите пункт меню Layers/Merge Linked. Как и следовало ожидать, два выбранных вами слоя будут объединены в один. Еще один вариант работы со стыками — закрытие участка резкого перехода небольшими полупрозрачными слоями с подходящей текстурой. Их можно выделить и скопировать с находящихся недалеко от стыка участков лица. Это очень эффективное средство. Правда, после его применения все равно надо бы пройтись по ним кистью Blur. Зато и результат гораздо лучше. Не забывайте об объединении слоев перед применением Blur. После того как стык между “подбородочным” слоем и лицевым убран, проделайте то же самое с двумя слоями, которыми мы отрегулировали овал лица. Край лицевого слоя, образующий этот самый овал, выделяется на фоне оригинала самым возмутительным образом. Убираем край, подключив Eraser со 100% прозрачностью (а вернее, с полной эффективностью — чем больше процентов, тем сильнее эффект). Причем по мере приближения к подбородку, действуем все аккуратнее, а эффективность кисти Eraser постепенно уменьшаем. Стык уже не так бросается в глаза. Однако над “лицом” еще работать и работать. Немного макияжа Теперь можно посмотреть результаты работы в ModView. Но сначала нужно провести некоторую подготовку. Сохраняем результат работы в Adobe Photoshop через File/Save a Copy… , причем выбираем формат сохраняемого файла Targa (.tga) и сохраняем его в папке с моделью. Имя особой роли не играет, только должно быть написано латиницей (у меня face_22_morda.tga).
Внимание! Сохраняйте файлы всегда в этом формате, несмотря на то, что в папках с моделями файлы хранятся в формате .jpg. По некоторым причинам файлы JPG для применения в игре сохраняются в определенном режиме, и у вас, скорее всего, работать не будут! В папке с выбранной моделью находите текстовый файл model_default.skin. Скопируйте и сохраните его где-нибудь (лучше сохраните всю папку с моделью в другом месте). Оставшийся в папке файл переименуйте, но при этом соблюдайте следующее условие: “default” является обязательной составляющей имени. Если вы исключите эту часть названия, то игра не примет вашего нового имени для скина. Я назвал его model_default_morda.skin. Теперь отредактируем этот файл. Откройте его в текстовом редакторе (хоть в “Блокноте”) и найдите название файла оригинала, который мы редактировали, — face_02.tga. Замените его название на имя вашего файла (я назвал — face_22_morda.tga). Подготовка завершена — запускайте ModView. Выбирайте редактируемую модель, как описывалось раньше. В информационном окне слева раскройте список model.glm. В нем раскройте список Skins available. Если вы ранее уже смотрели эту модель, то обратите внимание на появление нового скина с названием, произведенным от того, которое вы дали файлу model_default.skin (у меня default_morda). Щелкните по нему дважды и любуйтесь на результаты своей работы. Картина будет примерно следующей (на рисунке “лицо” одевается на вариант этой модели с бородой, но это не принципиально).__Если где-то что-то не совпало — вернитесь в Adobe Photoshop (нам еще долго туда возвращаться) и поправьте. Copy-Copy-Paste Основа положена. Все дальнейшие операции сводятся к копированию отдельных участков, перетаскиванию их на нужное место и маскировке стыков. Таким же образом установите **
текстуры с фотографии на нос оригинала, изображение которого расположено слева внизу, и добавьте недостающие участки кожи слева и справа. Результат проверяйте в ModView и почаще сохраняйте его в Adobe Photoshop под новым именем, чтобы всегда можно было легко вернуться к более ранней версии. Отдельно стоит упомянуть о вырезанных с фотографии глазах. В папке модели есть файлmouth_eyes.jpg**. В нем находится изображение глаза героя и его зубов (жуткое дело). Модель использует для обоих глаз одну и ту же текстуру. Загрузите этот файл в Adobe Photoshop. Скопируйте одно из наиболее привлекательных изображений вашего глаза по краю радужной оболочки и вставьте в mouth_eyes.jpg. Если изображение вашего глаза гораздо больше, то вы уже знаете, как поступить, чтобы добиться
соответствия в размерах. Можете сделать его поярче через Color Balance… и Brightness/Contrast… из меню Image/Adjust. После того как и размеры будут выровнены, и внешний вид глаза вас устроит, объединяйте слои и сохраняйте файл как mouth_eyes.tga. Копируйте файл в папку с моделью. Внесите соответствующие коррективы по названию в файл .skin , описывающий вашу модель (т.е. измените mouth_eyes.jpg на mouth_eyes.tga). Запускайте и смотрите, как выглядят ваши “зеркала души”. Если вам мешают проступающие через более прозрачные слои лица детали оригинала, то просто сотрите их, выделив “оригинальный” слой. В результате у вас должно получиться что-нибудь вроде этого: __Последнее, что вам нужно сделать, — файл иконки, который будет представлять вашу модель в игре. Для этого создайте рисунок размером 256х256 и 16 миллионами цветов. Что-нибудь типа этого: Найдите в папке модели файл icon_default.jpg , замените и переименуйте его по тем же принципам, что и файл .skin (у меня icon_default_morda). Чтобы ее могли увидеть и использовать ваши друзья, надо упаковать папку с моделью в архив .pk3 , сохранив структуру файлов как у других моделей в папке base. Потрудившись над лицом, не стоит оставлять вашего героя в спортивном костюме. “Оденьте” его во что-нибудь другое. Если вы смогли заменить лицо, то с одеждой тем более разберетесь.
Вряд ли замена лица модели на ваше собственное будет представлять собой какую-нибудь художественную ценность. Но может быть, собравшись однажды с друзьями на просторах уровня Star Wars Jedi Knight II: Jedi Outcast, вы сможете воскликнуть: “Ба! Знакомые все лица!”.