Создание моделей NPC

Материал из Mod Wiki.

Перейти к: навигация, поиск

Содержание

Вступление

Сразу небольшая оговорка – в статье описывается процесс создания модели NPC для ЧН или ЗП. Однако для ТЧ суть остается та же, меняется лишь скелет. Как вариант, можно сделать все по статье, а потом конвертировать в ТЧ. (как легче всего это сделать, подробно описано в статье). Таким образом вы получите модели под все игры серии с минимальными усилиями.

Для удобства восприятия урок разделен на три части – «Maya», «3DSMax» и «Настройка в SDK».

Maya

Для работы вам потребуется Autodesk Maya 8.5 или Autodesk Maya 2008 с установленными плагинами из пакета X-Ray Asset Tools от bardak'а.

Начну, пожалуй, с перечисления ограничений на вашу модель. Она может быть сделана вами собственноручно, рипнута из другой игры или же была взята собственно из Сталкера, но перенесла небольшую пластическую операцию. Так или иначе, предполагается, что модель у вас есть. И есть она в формате, понимаемом Maya.

Ограничения

1. Модель должна состоять из треугольников (то есть не должно быть ни одного четырех и более угольного полигона). Если вы не уверены в соблюдении этого условия или же уверены в его невыполнении, то проделываем операцию под названием триангуляция (автоматическое разбиение модели на треугольники): выделяем модель, нажимаем кнопку Mesh, затем выбираем пункт Triangulate:

2. В модели должно быть приемлемое количество полигонов. Точного ограничения нет, но делать больше 12000 точно не стоит – лагов не избежать. Для справки, модели от GCS в среднем имеют по 6000 полигонов. Если в вашей модели много больше, чем положено, то оптимизируем ее любым удобным вам способом. Самый легкий – Mesh -> Reduce 3. Размер модели должен соответствовать естественным размерам человека. Легче всего импортировать в сцену модель NPC из игры и подогнать свою инструментом «scale» 4. Модель должна быть с UV координатами, текстурой в формате DDS и X-Ray шейдером. 5. Модель должна находиться в начале координат. 6. Перед началом привязки модели к скелету, выполняем еще одну несложную операцию:

Edit -> Delete all by type -> History
Edit -> Delete all by type -> History

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


Привязка модели

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

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

1. Выделяем модель и скелет, затем жмем Skin, в открывшемся списке выбираем пункт Bind Skin, нажимаем на кубик, напротив Smooth Bind:

2. В открывшемся окне делаем следующие настройки:

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

Модель требует дополнительной настройки, однако уже на данном этапе можно проверить ее работоспособность, экспортировав в SDK и подставив в игру, как описано ниже.

3. Снова выделяем модель. Развесовка модели правится инструментом Paint Skin Weights tool, а находится он тут:

Обратите внимание, снова нажимаем на кубик, а не на надпись. Если вы все сделали правильно, то ваша модель превратится в черно-белую, а справа появится окно настроек инструмента.
Попробую вкратце объяснить принцип работы с Paint Skin Weights tool:

1. Список костей скелета, работа ведется с выделенной костью, в данном случае это «Bip01_l_clavicle».
2. Образно выражаясь, место, где можно указать радиус кисти инструмента, которой вы мазюкаете по несчастному и ее прозрачность (Opacity), если работали в фотошопе, то поймете, о чем я.
3. Четыре режима работы кисти:
3.1 Replace – заменяет значение влияния кости на вертексы, попадающие под влияние кости на заданное ( произведение степени влияния на прозрачность (Opacity x Value)).
3.2 Add - добавляет к имеющемуся значению опять же произведение степени влияния помноженное на прозрачность.
3.3 Smooth – сглаживает значения. (Если простым языком, то у вас есть белое пятно на черном фоне, мазюкаем и получаем белое пятно с серыми границами)
3.4 Scale – штука опасная, не трогаем вообще.
4. Value – степень воздействия кисти (0 – черный, 1 – белый).
5. Наглядное представление влияния кости на модель.

Собственно, все. Выделяем все кости по очереди и мазюкаем кистью до получения удовлетворительных результатов. Для удобства открываем еще одно окно майки, импортируем модель из игры и смотрим, как какая кость влияет на что. Пытаемся повторить с поправкой на то, что модель у нас немного отличается. Крутим суставы, чтобы посмотреть привязку в динамике, но не забываем нажимать «Edit» - «Undo», вручную на место кости никогда не ставим.

После пары дней мучений у нас получится что-то более-менее удовлетворяющее требованиям человекоподобного существа. Выделяем меш (скелет не нужно), нажимаем File –> Export selection, выбираем формат (X-ray skeletal object) и кнопку Export. Если все сделано правильно и по гороскопу благополучный день, то экспорт пройдет удачно (зависит именно от гороскопа, так как часто случаются рендомные вылеты, и их причина мне неизвестна).

Работа в Maya на этом закончена.

Авторы

Статья создана:

Личные инструменты