Перейти к контенту

Создание и настройка моделей NPC


Senator

Рекомендуемые сообщения

Посмотрел видео, про подгонку позы под сталкерский скелет. Метод основан на поворотах костей, но он для 3Д Макса. Реально ли в Милке проделать то же самое? В режиме анимации повернуть руки-ноги реально, но как сохранить их в этом положении?

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Поделиться этим сообщением


Ссылка на сообщение

В видеоуроке принцип подгонки позы модели из CS под скелет Сталкера - вращение костей в режиме анимации в 3Д Максе. Пара слов о том, как проделать ту же операцию в Милке.

 

Сначала нам нужен эталон, под который мы будем подгонять позу новой модели. Импортируем в Милку любого сталкера из ресурсов игры, выделяем в закладке joints кость bip01_pelvis - это главная кость модели - и удаляем ее, вместе с главной костью удалится весь скелет. Далее эту модель называю "эталон" для определенности.

Импортируем нужную нам модель (с ее родным скелетом, он будет нужен), которую мы хотим запихнуть в Сталкер, дальше буду называть эту модель "новая"

Поскольку масштабировать скелет в Милке то ли совсем нельзя, то ли непонятно как, проще на данном этапе подогнать размер и поворот (подгонка поворота может понадобиться при пеоеносе моделей из других редакторов, того же Макса - там ось Z - это "вверх", а не "вперед", как в Милке, остальные оси соответственно) эталонной модели. Она все равно без скелета, да он и не нужен на данном этапе. Выделяем эталонную модель, и увеличиваем ее scale-ом. Я подгонял по росту, так, чтобы глаза и подошвы у обеих моделей были на одной высоте.

 

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

Заходим в режим анимации. Может быть, это и неважно, но я поставил длину анимации 1 кадр. На первом и единственном кадре анимации вращаем кости скелета новой модели так, чтобы ее поза максимально совпадала с позой эталона.

Готово. Добились сходства позы, не сильно при этом вспотев. Теперь это безобразие надо как-то сохранить. Первым делом заходим в меню Animate и снимаем галочку в пункте Operate Selected Joints Only. Затем в том же меню выбираем Set Keyframe. Кости скелета новой модели стали желтыми, поза зафиксирована. Только теперь выходим из режима анимации (в этот момент поза новой модели визуально слетит, но кейфрейм уже поставлен, за позу новой модели можно не волноваться), выделяем эталонную модель и удаляем ее. Свою роль она выполнила.

Возвращаемся в режим анимации, новая модель принимает нужную позу. Теперь финт ушами. Чтобы изменения позы сказались на геометрии, идем в меню File -> Export и сохраняем в формате Autodesk 3DS. Возможно, можно и в других, но этот уже проверенный.

 

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

Итак, снова импортируем модель эталонного сталкера. Импортируем ранее сохраненную в формате 3DS новую модель, ее поза уже совпадает с эталонной, скелет у новой модели исчезает. Ну, нам же проще. На сей раз приводим размеры и ориентацию в пространстве новой модели к эталону.

Готово. Избавляемся от геометрии эталонной модели. Выделяем все ее вертексы, идем в закладку joints и нажимаем кнопку clear. Вертексы отвязаны от костей, смело их удаляем. У нас остается скелет эталона и новая модель с правильными размерами и позой. Теперь остается привязать новую геометрию к скелету. Для сравнения есть смысл открыть еще одну копию Милки, и загрузить в нее эталонную модель. Время от времени переключаемся на нее, и смотрим, что к какой кости привязывать.

 

Настройка весов вертексов (самый муторный процесс, возможны медитации разной степени тяжести вплоть до входа в нирвану и познания Истины) производится в той же закладке joints. Сразу под флажком Draw vertices with bone colors есть четыре одинаковых элемента управления - имя кости (или ---none---) со стрелочкой и цветной полоской под ним с цифрой рядом (часть может быть неактивными) Выделяем нужные вертексы.

Если нужно привязать вертексы только к одной кости, выставляем имя этой кости в верхнем элементе, во втором ставим ---none---. Цифры рядом с цветной полоской - вес вертекса. Красный - 100, зеленый - 0. Выставляем 100 и жмем кнопку Fix в самом низу.

Если вертексы привязываем к двум костям, выставляем имена этих костей в первом и втором окошечках, задаем вес на каждой кости, в сумме должно быть 100. Помогает флажок Adjust other weights под элементами управления. Настроили, как считаем нужным - жмем кнопку Fix.

 

Проверить настройку можно в режиме анимации, двигая кости.

Когда все настроено, экспортируем модель в формат object и загружаем в SDK.

На этом этапе возможно большое западло - в Милке, по крайней мере, у меня, кости повело как попало. То есть выглядит скелет нормально, но повороты и позиции костей сбились к чертовой матери. Скаченный из этой темы файл с настройками не спасает - почему-то информация о Bind Position и Bind Rotation в файле .bones не сохраняется.

Возможно, придется вручную задавать эти параметры. На всякий случай, список правильных значений этих параметров:

 

 

bone                  Bind Position (X Y Z)        Bind Rotation   (X Y Z) 
bip01_pelvis         0       0,99     0           0       180         90
bip01_l_thigh        0       0,12     0           0,55      7,26     175,72
bip01_l_calf         0,4     0        0           0        18,05       0
bip01_l_foot         0,47    0        0           0       -10,78       4,31
bip01_l_toe0         0,13    0        0,16        0       -90          0
bip01_r_thigh        0      -0,12     0          -0,55      7,26    -175,72
bip01_r_calf         0,4     0        0           0        18,05       0
bip01_r_foot         0,47    0        0           0       -10,78      -4,31
bip01_r_toe0         0,13    0        0,16        0       -90          0
bip01_spine          0,1     0       -0,02        0        -0,05       0
bip01_spine1         0,11    0        0           0         0          0
bip01_spine2         0,38    0        0           0         0          0
bip01_neck           0,02    0        0           0       -15          0
bip01_head           0,06    0        0           0        15,05       0
eye_left             0,08    0,03     0,08        0       -92,48       0
eye_right            0,08   -0,03     0,08        0       -92,48       0
eyelid_1             0,08    0        0,07        0       -42,93       0
jaw_1                0,04    0        0,02        0      -111,68       0
bip01_l_clavicle    -0,03    0,06     0,01      -10      -164,95      78,54
bip01_l_upperarm     0,17    0        0           2,57     -5,92      -7,23
bip01_l_forearm      0,28    0        0           0         8,52       0
bip01_l_hand         0,25    0        0          84,54    158,16     163,42
bip01_l_finger0      0,02   -0,05     0,01      -47,45    111,99    -126,69
bip01_l_finger01     0,03    0        0           0         8,06       0
bip01_l_finger02     0,02    0        0           0        -3,94       0
bip01_l_finger1      0,1    -0,03    -0,01       -2,85    -12,16     -13,2
bip01_l_finger11     0,04    0        0           0         0          0
bip01_l_finger12     0,02    0        0           0         0          0
bip01_l_finger2      0,1     0,01    -0,01       -1,8     -12,47       5,56
bip01_l_finger21     0,04    0        0           0         0          0
bip01_l_finger22     0,03    0        0           0         0          0
bip01_r_clavicle    -0,03   -0,06     0,01       10       164,95     -78,54
bip01_r_upperarm     0,17    0        0          -2,57     -5,92       7,23
bip01_r_forearm      0,28    0        0           0         8,52       0
bip01_r_hand         0,25    0        0         -84,54    158,16    -163,42
bip01_r_finger0      0,02    0,05     0,01       47,45    111,99     126,69
bip01_r_finger01     0,03    0        0           0         8,06       0
bip01_r_finger02     0,02    0        0           0        -3,94       0
bip01_r_finger1      0,1     0,03    -0,01        2,85    -12,16      13,2
bip01_r_finger11     0,04    0        0           0         0          0
bip01_r_finger12     0,02    0        0           0         0          0
bip01_r_finger2      0,1    -0,01   -0,01         1,8     -12,47      -5,56
bip01_r_finger21     0,04    0        0           0         0          0
bip01_r_finger22     0,03    0        0           0         0          0
bip01_tail           0,06    0,21     0         -53,71    152,15      40,06

 

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Поделиться этим сообщением


Ссылка на сообщение

-ГраЧ-

Это больше похоже не на выделение, как таковое, а на веса вертексов. Посмотри вот тут:

http://www.amk-team.ru/forum/index.php?sho...st&p=411105

про привязку - ближе к концу поста, предпоследний абзац.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...