Суббота, 09 Ноября 2024, 03:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Одежда персонажа, новая модель?
DeeveДата: Пятница, 14 Января 2022, 21:53 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток, уважаемые игроделы. Решил я, значит, начать свой проект, а следовательно и большой путь. Но сразу возник один единственный (пока ещё) вопрос, который мучает меня отсутствием ответа. В общем, вот есть персонаж (3d моделька). Каким образом ПРАВИЛЬНО делать кастомизацию? Игра на Unity. Моделировать умею в 3ds max, но решил осваивать Blender. Но сути не меняет, здесь общий вопрос по моделированию. В общем, допустим, у меня есть персонаж и на нём должен отображаться доспех. Какой из вариантов ВЕРНЫЙ с точки зрения оптимизации, отрисовки, анимаций?

1) Берем модель персонажа, убираем полигоны, которые не подходят под "модель персонажа УЖЕ с ДОСПЕХОМ", "пришиваем" доспех прямо к модели персонажа, заменяя родную модель персонажа. Т.е. при надевании доспеха модель персонажа будет менять на новую.
2) Модель персонажа остается стандартной, и отдельная модель доспеха надевается поверх модели персонажа. Т.е. под моделью доспеха остается целая модель персонажа. (Что в таком случае делать с выпирающими частями, которые отображались на модели "без доспеха"? Допустим, волосы, если доспех - это шлем или трусы, если у персонажа присутствуют половые признаки?)
3) При надевании доспеха - часть модели персонажа удаляется и заменяется на доспех. Т.е. доспех надевается сверху на персонажа, но та часть персонажа, которая скрыта под доспехом - удаляется.

Какой вариант самый верный? Или я что-то упустил?

Добавлено (14 Января 2022, 22:15)
---------------------------------------------
Извиняюсь. Не заметил, что есть специальный раздел, посвященный 3D графике.


Сообщение отредактировал Deeve - Пятница, 14 Января 2022, 22:15
GameDev2Дата: Пятница, 14 Января 2022, 23:12 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Много зависит от вида игры, её детализации. В некоторых случаях вообще достаточно текстурку сменить.

Вариант 1 делается, например, так:



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


Сообщение отредактировал GameDev2 - Пятница, 14 Января 2022, 23:12
DeeveДата: Суббота, 15 Января 2022, 23:06 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата GameDev2 ()
Но если бы вариантов экипировки как в TESV, например, много, то тут нужна какая-то система, я думаю, т.к. там тысячи моделей пришлось бы делать. Я думаю, что достаточно сделать одежду, которая чуть больше торса, отсекает всё, что выпирает и подчиняется костям анимации базовой модели. Возможно. кто-то сталкивался с этим, подскажет ниже.

Вот это и интересно, ведь движок, по сути, будет обрабатывать и скрытую часть модели.

Ещё один вопрос, допустим, по смене прически или каких-то частей тела, которые должны быть часть модели, сшитой с ней. Как это осуществить? Допустим, разные формы ушей или других частей тел.
Storm54Дата: Воскресенье, 16 Января 2022, 00:12 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Если рассматривать персонажа со скелетной анимацией, то необходимо обозначить вещи, из которых строится конечный анимированный персонаж:
1. Подходящий скелет, обычно какой-нибудь Biped.
2. Заскиненный меш. У такого меша, помимо стандартного набора треугольников, есть привязка этих треугольников к костям скелета и коэффициент влияния движения кости на каждую вершину.
3. Анимация, которая представляет из себя просто набор позиций костей.

В итоге, что мы имеем:

Заскиненный меш "натягивается" на скелет, а кости этого скелета двигаются в соответствии с анимацией.

Каждый элемент одежды и части тела должны быть как раз этими заскиненными мешами, чтобы их можно было использовать вместе со скелетом.

По умолчанию большинство движков позволяют указать только один скелет, один заскиненный меш и стейт-машину для красивого смешивания анимаций.
И Unity - не исключение. Можно указать только один заскиненный меш. Поэтому, придется написать велосипед (всего-лишь десяток строк) и собрать один цельный меш из нескольких отдельных, после чего передать получившийся меш в SkinnedMeshRenderer.
Количество частей может быть абсолютно любым - это практически никак не повлияет на производительность. Просто руководствуйтесь своими требованиями: если нужно скрывать торс, то сделайте его отдельным мешем, если нужно скрывать руки - тоже. Это может касаться и пальцев, ушей, глаз и т.п. Все-равно в результате будет собран один заскиненный меш, из тех кусочков, которые вам необходимы в данный момент.

Производительность же зависит от количества вершин в финальном меше. Обычно CPU или GPU нужно рассчитать позицию каждой вершины в каждом кадре - это основные затраты производительности.

Еще один момент: Скорее всего каждый элемент одежды и части тела будут иметь свою текстуру и даже материал, например, с уникальным шейдером. В этом случае просто объединить все меши не получится, а придется их предварительно разбить на группы по материалам и уже меши каждой отдельной группы объединять и отрисовывать отдельно, что увеличит количество draw calls пропорционально количеству материалов.


Сообщение отредактировал Storm54 - Воскресенье, 16 Января 2022, 00:24
drcrackДата: Воскресенье, 16 Января 2022, 01:55 | Сообщение # 5
старожил
Сейчас нет на сайте
выше расписано как это делается по-взрослому в АА+ играх
но для начинающего разработчика это вряд ли возможно
т.к. нужно уметь и кодить и моделлить (включая скиннинг который здесь не совсем тривиальный из-за необходимости ровно стыковать разные части)
а кроме уметь делать, нужно еще и иметь кучу времени на всю эту работу
более реальный вариант — использовать https://assetstore.unity.com/package....r-35611 или аналог
да, это не так круто, но зато оно работает и ты можешь сосредоточиться на игре, а не изобретении велосипедов
DeeveДата: Вторник, 18 Января 2022, 17:19 | Сообщение # 6
был не раз
Сейчас нет на сайте
Помогите, пожалуйста. Не понимаю что произошло. Редактировал модель в Blender и вот теперь, когда переключаюсь в Edit Mode, все как-будто продублировалось. Все точки не там, где должны быть. При отключении кнопки Shopw Overlays - нормально выглядит, но редактировать невозможно.

Добавлено (05 Февраля 2022, 17:35)
---------------------------------------------
И ещё один вопрос, что тут случилось? Работаю в Blender.

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

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг