Войти
ПрограммированиеФорумОбщее

смена одежды в юнити

Страницы: 1 2 Следующая »
#0
7:22, 16 фев. 2020

Привет
Подскажите как все-таки оптимально реализовать смену одежды в юнити. Мне известно два способа:

1) Дизайнер выдает один файл с одним скелетом и кучей мешей одежды, привязанных к нему. В движке просто скрываем/показываем нужное. У нас этот метод нереализуем, так как дизайнер не может выдать один файл с кучей всего

2) Дизайнер выдает много мешей одежды, привязанных к своим скелетам в разных файлах. В юнити расставляем объекты (меш+свой скелет) на свои места и анимируем каждую часть отдельно - получается, что в сцене будет одновременно работать несколько animator controller для персонажа. Главный минус такого подхода - иногда бывает рассинхрон в анимациях для разных частей.

Может быть есть вариант, чтобы использовать исходные раздельные по отдельным файлам меши с одеждой, а в движке собрать все в один объект с одним скелетом ?


#1
8:36, 16 фев. 2020

Cattleya
очевидно, что первый вариант правильный в принципе, судя по формуле 1 скелет х много мешей.
> так как дизайнер не может выдать один файл с кучей всего
увольняйте дизайнера.

#2
8:47, 16 фев. 2020

programina
> увольняйте дизайнера.
lol я хотел предложить прописать дизайнеру люлей.
Но очевидно автору нужно решение

Возможно ли смержить их ?
https://blenderartists.org/t/any-way-to-merge-two-armatures/636673
Или будет лучше автоматически перенести веса ?
Для прискинивания есть ассет к юнити что вроде автору должно помочь
http://polyflow.studio/

ИМХО все способы это костыли, единственный верный это сменить дизайнера или заставить прежнего сделать свою работу

#3
9:09, 16 фев. 2020

endeavour_pr
спасибо, плагины глянем, пока не знаю, что лучше, главное, чтобы заработало

дизайнер просто на стоках модельки продает, получается, другие люди тоже страдают, когда получают все по отдельности ? А как же ему тогда продавать отдельно сеты одежды... То есть он выдает такое (можно бесплатно модель скачать и глянуть): https://skfb.ly/6QvNo . Ну и бывали разговоры, что покупателей все устраивает, получается, они все-таки с этим как-то работают...

#4
10:00, 16 фев. 2020

А что, использовать один скелет из разных файлов теперь запрещено законом?

#5
10:04, 16 фев. 2020

Delfigamer
а как его использовать ? скелет во всех файлах один

#6
10:16, 16 фев. 2020

В TF2, например, применяется вот такой метод надевания одежды - в файл рубашки дублируется часть скелета человека, релевантная для рубашки, меш рубашки развесовывается по скопированному скелету, и затем в самой игре кости рубашки следуют 1-в-1 за одноимёнными костями человека.

#7
12:09, 16 фев. 2020

endeavour_pr


все способы это костыли, единственный верный это сменить дизайнера или заставить прежнего сделать свою работу

почему костыли? Ты просто не представляешь какаой это адов труд вручную прискинить одежду, так что бы тело ее нигде не прорезало.
Мой SkinTools (который ты имел ввиду) в 90%  случаев вообще позволяет прискинить одежду к телу в один клик.
А вот  https://skfb.ly/6QvNo такую модель SkinTools прискинит идеально. Но самое главное - это то, что  можно распаралелить работу по созданию тела и одежды и сделать процесс создания персонажа не линейным,  то есть на любом этапе возвращаться и править одежду или тело без потери скина.
Моделеру одежды  достаточно  иметь статичную биндпозу персонажа и моделить так, что бы тело не прорезало одежду - и все. Все остальное сделает SkinTools автоматически. На стороне юнити можно только повыключать те кости, которые не участвуют в скиннинге одежды.

Единственное, с чем SkinTools не справится автоматичски - это юбки, плащи, но для этих целей там есть возможность скиннить с помощью карт-весов.
Это, я считаю тоже киллер фича которой нет ни в одном софте.  Я этот способ сначала попробывал в 3дмаксе с помощью макскрипта, и потом реализовал в юнити. С помощью нее можно единожды нарисовать текстуры-маски весов (где угодно нарисовать, в том же збраше) и продолжать редактировать персонажа, и просто применять скиннинг по окончания редактирования.  Главное что бы были нормальные юв координаты. 

#8
14:42, 16 фев. 2020

Если я правильно понял задачу, то это же просто

      SkinnedMeshRenderer newMesh = Instantiate(_NewMesh, targetMesh.transform);

      newMesh.bones = targetMesh.bones;
      newMesh.rootBone = targetMesh.rootBone;
      newMesh.localBounds = targetMesh.localBounds;

Аниматор будет один, мешей сколько угодно.

Не самый оптимизированый способ, можно ещё запекать в один меш, но на базовом уровне, это работает.

#9
16:58, 16 фев. 2020

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

#10
18:22, 16 фев. 2020
Не понимаю по каким причинам я считала раньше, что так не получится

Интереснее узнать что считает уволенный дизайнер :)
#11
18:40, 16 фев. 2020

ronniko, дизайнер очень рад, что не придется все переделывать. Да и уволить саму себя очень сложно Изображение

#12
18:41, 16 фев. 2020
Да и уволить саму себя очень сложно

Такая вот не легкая женская судьба :)
#13
0:23, 17 фев. 2020

Polyflow3d
> Единственное, с чем SkinTools не справится автоматичски - это юбки, плащи, но
> для этих целей там есть возможность скиннить с помощью карт-весов.
Шёл 2020 год. На свете ещё не перевелись люди, которые считают, что юбки и плащи без cloth physics могут считаться серьёзным бизнесом.

...На всякий случай уточню мысль. Мысль заключается в том, что оффлайн-подгонка - а SkinTools, как я понял, тем и занимается - бесполезна для тканей, которые должны болтаться в динамике. Даже если бы SkinTools что-то и сумел бы, все результаты похерятся после первых же секунд симуляции. А без динамической симуляции юбка будет выглядеть, как картон, каким инструментом её не подгоняй.
Так что пусть не справляется, ибо не его эта задача вовсе.

#14
10:46, 17 фев. 2020

Delfigamer
это в твоих влажных анимешных снах одежда симулируется физикой, а тело анимируется через софт боди, потом все это рендерится рейтрейсом.
А реальность намного прозаичнее.

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.