Jagged Aliance
Jagged Alliance 2: Агония Власти и Цена СвободыAIM - Alliance of International Mercenaries. Jagged Alliance 2, Jagged Alliance 3D, Wildfire
• Новости • Модификации • Файлы • Руководства • Ссылки • Творчество  • Прочее • Форум

Создание лиц персонажей. Часть 1

Если вы решили вставить новое лицо или целую галерею лиц в ресурсы JA2, то запаситесь терпением — работа достаточно муторная. Во-первых, вы должны владеть навыками работы с графикой. Во-вторых, определитесь, кого вы будете менять. Заменить можно лицо любого персонажа, но технология замены зависит от того, кем является этот персонаж: чаром, наемником АИМа или МЕРКа, нанимаемым (RPC) или ненанимаемым (NPC). Ну и запаситесь необходимыми инструментами для работы.


Софт, требуемый для работы

Обязательно:

  • Adobe Photoshop — без комментариев, версия любая
  • STI-Edit [582 Kb] — редактор sti-файлов
  • ProFileEdit [360 Kb] — редактор профилей персонажей

Опционально:

  • FaceGen Modeller — моделлер и аниматор лиц, лежит на FaceGen.com, лекарство ищите в интернете.
  • SLF manager [266 Kb] — менеджер slf-файлов (ресурсов) JA.

Структура JA2-ресурсов, содержащих лица персонажей

Все лица персонажей, задействованных в игре, находятся в файле /Data/FACES.SLF (здесь и далее все отсчеты путей идут от корня игры). Распаковать и вытащить их можно SLF-менеджером ресурсов, а можно и не вытаскивать, если вы собираетесь сделать своего перса ;) Создайте директорию /Data/FACES, если у вас ее еще нет. Внутри нее создайте три директории: 33face, 65face и bigfaces. Эта иерархия эмулирует иерархию файла FACES.SLF, который является просто архивом. Sti-файлы всех лиц имеют тот же номер, что и номер профиля перса в Prof.dat, который можно смотреть и редактировать редактором профилей. Некоторые файлы имеют префикс «B», о котором ниже.

Содержание и назначение этих директорий следующее:

/Data/FACES

Сюда кладутся все sti-файлы с лицами чаров, наемников АИМа-МЕРКа и нанимаемых персонажей (далее RPC), которые отображаются в тактик-интерфейсе, инвентаре и лаптопе. Размер этих лиц 48 × 43, название файла XX.sti, где ХХ — номер профиля перса. Например, 68.sti — файл с лицом Игги.

Здесь же находятся sti-файлы с префиксом «B», которые отображаются в диалогах, т.е. содержат лица RPC и ненанимаемых персонажей (далее NPC). Размер этих лиц 90 × 100, название файла BXX.sti, где ХХ — номер профиля перса. Например, B68.sti — файл с лицом Игги, которое показывается при беседе с ним, пока он не нанят.

Оба типа вышеописанных файлов содержат анимацию глаз и губ персонажей (если она вам нужна ;)).

/Data/FACES/33face

Здесь располагаются файлы-ноготки с лицами чаров, наемников АИМа-МЕРКа и RPC, которые вы можете видеть в интерфейсе торговцев. Размер этих лиц 15 × 14, название файла так же — XX.sti, как и в предыдущих случаях, т.е. отличие только в размере. Анимация в этих стишках не нужна, хотя и предусмотрена форматом (об этом отдельно ниже).

/Data/FACES/65face

В этой директории располагаются файлы с лицами чаров, наемников АИМа-МЕРКа и RPC, которые отображаются в интерфейсе расстановки команды при заходе в сектор, занятый врагом. Размер этих лиц 32 × 27, название файла так же — XX.sti, как и в предыдущих случаях, т.е. отличие только в размере. Анимация в этих стишках тоже не нужна.

/Data/FACES/bigfaces

Здесь находятся однокадровые sti-файлы с лицами чаров, наемников АИМа-МЕРКа и RPC, которые можно видеть при выборе лица своему герою в интерфейсе IMP или в правой части статистики лаптопа. Размер этих лиц 106 × 122, название файла так же — XX.sti, как и в предыдущих случаях.

Для удобства восприятия и работы, все вышеописанное сведено в единую таблицу:

Директория

Имя файлаРазмерАнимацияЧарАИМ-МЕРКRPCNPC
/FACESxx.sti48 × 43++++
Bxx.sti90 × 100+ ++
/FACES/33facexx.sti15 × 14 +++
/FACES/65facexx.sti32 × 27 +++
/FACES/bigfacesxx.sti106 × 122 +++

Создание лица с анимированными глазами и губами

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

  • 0 — исходное изображение лица
  • 1-4 — изображение глаз
    • 1 — полностью закрытые глаза
    • 2 — наполовину прикрытые глаза
    • 3 — глаза открыты, брови нахмурены
    • 3 — глаза открыты, брови подняты
  • 5-7 — изображение губ
    • 5 — рот приоткрыт в звуке «И»
    • 6 — рот приоткрыт в звуке «А»
    • 7 — рот приоткрыт в звуке «У»

Существует два способа сделать анимацию:

  1. Взять готовое фото или рисунок нового персонажа и нарисовать соответствующие фазы руками в фотошопе.
  2. Сгенерировать лицо персонажа в фейс-моделлере, например в FaceGen Modeller, анимировать его там, экспортировать фазы и довести их до ума в фотошопе.

Оба способа имеют свои достоинства и недостатки и зависят от ваших целей и способностей. В мою задачу не входит обучение рисованию в фотошопе, равно как и работе в FaceGen, поэтому будем считать, что вышеуказанные фазы у вас уже есть :)

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

Для начала, сложите все восемь картинок с имеющимися фазами анимации в один PSD-файл, каждую в отдельный слой и для удобства пронумеруйте слои по номерам кадров sti-файла от 0 до 7 (как описано выше). Затем, чтобы не работать с исходником, он пригодится для создания других типоразмеров, сделайте дубль этого окна (Image -> Duplicate -> Ok), отресайзите и обрежьте изображение в нужный размер, например 90 × 100, если вы готовите «B»-файл для диалогов. Затем выделите «блок» с глазами, сделайте инверт выделения (Ctrl+Shift+i) и переключаясь между слоями, удалите выделенное изображение лица вокруг блока с глазами на слоях 1-4. Аналогичную операцию проделайте на слоях 5-7 с губами. У вас должно получиться исходное лицо нужных габаритов на нулевом слое, четыре совмещенных по координатам блока с глазами на слоях 1-4 и три аналогичных блока с губами на слоях 5-7. Например так, как показано на рисунке ниже (нулевой слой отключен, окно увеличено для наглядности и точности определения координат).

Определение координатСледующим этапом идет определение X-Y координат смещения изображения глаз и губ для их указания в профиле создаваемого перса. Смещение верхнего левого угла блоков глаз и губ от верхнего левого угла изображения лица и даст искомые координаты. На рисунке показано определение координат для глаз. Их искомое значение будет X=19, Y=28. Аналогично определяются координаты смещения губ. Запишите полученные значения координат глаз и губ, чтобы не забыть, они понадобятся для внесения в профайл.

Теперь надо подготовить кадры для sti-файла. Для этого создайте новое окно достаточных размеров, чтобы в него поместилось исходное лицо из нулевого слоя предыдущего окна и рядом с ним все блоки глаз и губ последовательно по слоям (будущим кадрам). Сложите их в это окно и объедините в один слой. Пустое место не занятое изображением или залейте каким-нибудь отсутствующим в изображении цветом или оставьте прозрачным (не имеет особого значение). У вас получится окно, в котором первым будет идти изображение исходного лица, затем блок глаз для первого кадра, потом для второго и т.д., включая блоки с губами. Индексируйте это общее изображение лица и всех блоков, и сохраните получившуюся палитру в отдельный файл, как это делается, подробно описано в статье с описанием технологии тайлобилдинга. У вас должна получиться примерно следующая картинка:

Кадры для сти-файла

 Пример

Лица NPC,
сделанные по этой технологии
Пример

Теперь открываем редактор sti-файлов, нажимаем на кнопку «New» и грузим в него сохраненную палитру. Возвращаемся в фотошоп, переключаем окно с подготовленными кадрами в режим RGB и удаляем заливку вокруг изображений лица и блоков с глазами и губами. Затем копируем исходное лицо и вставляем его в нулевой кадр sti-файла, создаем новый кадр и копируем в него первый блок с глазами, затем последовательно повторяем с каждым из блоков, включая блоки с губами. В sti-редакторе должно появится 8 кадров (0-7). Если вы все сделали правильно, то я вас поздравляю, sti-файл готов, запишите его в соответствующую директорию. Например, если вы делали файл с анимацией непися для окна диалогов, то сохраните его в корень /FILES под именем Bxx.sti, где xx — соответствующий номер этого непися в профдате. Теперь откройте профдат в редакторе профиля, найдите в списке нужного непися и на закладке «Прочее» пропишите те координаты, которые были вами получены на этапе определения координат. Начните новую игру, найдите этого непися и наслаждайтесь полученным результатом :D.

Создание лиц наемников АИМа-МЕРКа

Это более сложный процесс, по сравнению с вышеописанным. Если посмотреть таблицу FACES-ресурсов, то из нее видно, что для нового наемника АИМа-МЕРКа потребуется сделать четыре sti-файла.

Основной файл с анимированными глазами и губами делается так же, как и для NPC, только его размер должен быть 48 × 43. Его надо поместить в корень директории /FACES. Технологию изготовления см. выше, подробнее мне сказать тут нечего, только не забудьте прописать получившиеся координаты глаз и губ в профиль наемника.

Формат двух файлов для фолдеров /FACES/33face и /FACES/65face такой же — восьмикадровый sti-файл, но анимации глаз и губ в нем делать не имеет смысла, т.к. она в игре не отображается. Поэтому для нулевого кадра готовится изображение лица, отресайзенное до нужного размера:

 Пример для АИМ

Пример для
АИМа/МЕРКа
  • 15 × 14 для /FACES/33face
  • 32 × 27 для /FACES/65face

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

блоки для губ были одного размера. Дабы не морочить себе голову, сделайте их по пикселу :). Затем идет индексация и покадровое копирование в sti-редактор так, как описано выше. Не забудьте указать в sti-редакторе фоновый цвет, чтобы блоки глаз и губ не были видны.

Четвертый файл размещается в папке /FACES/bigfaces, его габариты 106 × 122, формат - однокадровая стишка без анимации. Никаких хитростей с ним нет, надо просто отресайзить картинку в размер, индексировать ее, скопировать в sti-редактор, как описано выше и сохранить готовый файл. Один совет: в качестве заднего фона положите за портрет какой-нибудь пейзаж, характерный для этого персонажа, только не очень пестрый, чтобы он не оттянул на себя много цветов из палитры.

На этом все! Начните новую игру, идете в агентство и нанимайте свое творение :D

Создание лиц нанимаемых персонажей (RPC)

 

Здесь, как в пословице: «Чем дальше в лес, тем толще партизаны». Я потратил три дня на поиски закономерностей с координатами смещения глаз и губ нанимаемых персонажей — тщетно, никакой корреляции на обнаружил, пока не заглянул в исходники. Оказалось, что эти координаты зашиты разработчиками в движок. Таблица этих смещений для каждого RPC представлена справа.

Лирика: Оборвать бы руки по самую шею тому, кто это придумал. И вообще, формат лиц в игре жутко неудобный, спрашивается, зачем создавать отдельные таблицы координат в профиле перса и движке, если sti-файлы могут хранить эти координаты в себе? Гораздо проще было бы написать процедуру по извлечению координатной информации из стишки, как это сделано в тайлсетах, чем заполнять туевы хучи совершенно неинформативных таблиц. А на сколько модерам, в этом случае, бы было проще делать новые лица — просто помещаешь стишку в ресурс и она сразу работает, как доктор прописал, безо всякой правки профайла.

Ну да ладно, спустил пар, продолжим ковыряться с тем, что есть :)

Раз координаты анимации глаз и губ RPC зашиты в экзешник, то их нельзя поправить в профиле персонажа. Поэтому, при создании своего нанимаемого или сопровождаемого перса, вам придется вырезать блоки глаз и губ таким образом, чтобы их смещение соответствовало табличным, иначе лица будут отображаться, как на картинах Сальвадора Дали.

Это справедливо за одним исключением, если вы делаете мод на сорцах, то можете поправить таблицу координат глаз и губ RPC под свои нужды. В исходниках она находится в Ln#68 файла /Tactical/Faces.c

Все остальное делается точно также, как в случае с созданием лица наемника АИМа-МЕРКа

Важно!
Так же нанимаемый персонаж должен иметь лицо для окна диалогов (местонахождение
/Faces, название файла Bxx.sti, размеры картинки 90 × 100), которое будет отображаться пока он вами не нанят или не принят на сопровождение. Технология создания такого лица описана выше и в профайле перса прописываются значение координат глаз и губ именно этого портрета.

RPC
Имя Координаты (X,Y)

Глаза

Губы

57 Мигель9, 88, 24
58 Карлос8, 87, 24
59 Айра10, 88, 26
60 Димитрий7, 87, 26
61 Девин6, 77, 23
62 Robot0, 00, 0
63 Гамос8, 78, 23
64 Рутвен8, 88, 22
65 RPC650, 00, 0
66 Динамо9, 47, 22
67 Шенк8, 88, 25
68 Игги4, 65, 22
69 Винс8, 97, 25
70 Конрад4, 75, 25
71 RPC719, 78, 22
72 Бешеный9, 79, 25
73 Даррел0, 00, 0
74 Перко0, 00, 0
88 Мария9, 38, 23
90 Джои9, 38, 25
97 Всадник11, 79, 24
106 Фред (ш)*9, 57, 23
118 Джон6, 46, 24
119 Мэри12, 410, 24
148 Мэтт (ш)8, 68, 23
156 Освальд (ш)6, 56, 23
157 Кэльвин (ш)13, 711, 24
158Карл (ш)9, 78, 22
*шахтеры, вот только каким боком они попали в число RPC?

Создание лица собственного чара

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

В названиях файлов с лицами чаров есть одна особенность, все они начинаются с цифры 200 (см. номера под картинками). В профдат координаты смещения глаз и губ чаров не прописываются, движок хранит их внутри (полный дурдом!). В сорцах эта информация находится в файле /Laptop/IMP Confirm.c, в четырех массивах, начиная с Ln#41.

Мужчины
face_char_200
#200
face_char_201
#201
face_char_202
#202
face_char_203
#203
face_char_204
#204
face_char_205
#205
face_char_206
#206
face_char_207
#207

Женщины
face_char_208
#208
face_char_209
#209
face_char_210
#210
face_char_211
#211
face_char_212
#212
face_char_213
#213
face_char_214
#214
face_char_215
#215


Чара
ПолКоординаты (X,Y)
ГлазаГубы
200М8, 58, 21
201М9, 49, 23
202М8, 57, 24
203М6, 67, 25
204М13, 511, 23
205М11, 510, 24
206М8, 48, 24
207М8, 48, 24
208Ж4, 45, 25
209Ж5, 56, 24
210Ж7, 57, 24
211Ж5, 76, 26
212Ж7, 67, 24
213Ж11, 59, 23
214Ж8, 57, 24
215Ж5, 65, 26


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


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

Удачи,
VM aka «Генеральный застройщик пустоши» 8)

Прохождение
Silent war
Super Speed
Super Speed II
Super Speed III
Описание квестов. Альма
Описание квестов. Балайм
Описание квестов. Драссен
Описание квестов. Другие
Описание квестов. Камбрия
Описание квестов. Омерта
Описание квестов. Орта, Грамм
Описание квестов. Сан — Мона
Описание квестов. Тикса
Описание квестов. Эстони
Редактирование
Добавление новых секторов в моде Shady Job
Создание лиц персонажей. Часть 1
Создание лиц персонажей. Часть 2
Создание новой анимации
Тайлобилдинг
Хитрости
"Фундаментальный" труд по Jagged Alliance V1.12 (с)
IMP тест
Боевые действия
Воровство
Медицина
Навыки и особенности характера в оригинальной игре и модах.
Наёмники и NPC
О critical hit'e
О скрытности
Обидные баги
Ополчение
Оружие и снаряжение
Прикольные баги
Сапёрное дело в Арулько - для чайников
Транспорт
О прокачке параметров
Прокачка взрывных работ
Прокачка здоровья
Прокачка лидерства
Прокачка ловкости
Прокачка медицины
Прокачка меткости
Прокачка механики
Прокачка мудрости
Прокачка подвижности
Прокачка силы
Экспресс-прокачка, или 10-й уровень в Омерте
Таблицы TTX
Бронежилеты Shady Job
Оружие Shady Job
Оружие и бронежилеты мода "Night Ops" v1.11
Оружие оригинальной Ja2

Голосуем…
Вы уже скачали НО 1.30?
Да, два раза - себе и другу.
Да.
Ещё нет.
Нет и не собираюсь.
А что это?

Результаты опроса
Все новости из мира ja2 — настоящий джайский флуд! Хотите подписаться?


Copyright В© 2002—2006 A.I.M. Team
агония власти