Графический дизайн, арт игры, концепт, персонажи, текстуры, анимации, модели
GameDev.ru / Графический Дизайн / Форум / Unity, префаб не подхватывает изменения в .fbx

Unity, префаб не подхватывает изменения в .fbx

Поделиться
Grim OrkПользовательwww26 сен. 201720:12#0
Не только в .fbx, .max тоже пробовал, ничего путного не вышло.
Суть проблемы в том, что есть уже полностью готовый префаб персонажа с коллайдерами и другими компонентами. И вдруг возникает потребность немного изменить дизайн персонажа, добавить одежды, например, или форму подкорректировать. То есть редактировать объект со Skinned Mesh Renderer, с весами. Я уж не говорю про изменения в скелете, рассмотрим просто геометрию.
Подкорректировали модель, перезаписали .fbx. Однако сам префаб персонажа как был, так и остался со старой геометрией! Как так вообще получается, в нем ведь ссылка на файл? Кто-нибудь имеет опыт успешной борьбы с этим багом? 
arte_de_mortПостоялецwww26 сен. 201720:19#1
Такого не бывает. Не гони на Юнити, ищи где сам напортачил.
Скорее всего сдублировал файл. Префаб ссылается на один файл, а вы перезаписываете как угорелые другой файл.
Grim OrkПользовательwww26 сен. 201720:29#2
arte_de_mort
> Префаб ссылается на один файл, а вы перезаписываете как угорелые другой файл.
Я не идиот, чтобы в файлах запутаться. .fbx только один, ссылка одна.
Проблема эта далеко не только у меня происходит. Вот похожая тема: https://forum.unity.com/threads/prefab-breaks-on-mesh-update.282184/ На юнити-форуме их с десяток наберется, решения нигде не нашел. Люди пишут скрипты для обновления прифаба.
MisanthropeПостоялецwww26 сен. 201721:09#3
Grim Ork
> Однако сам префаб персонажа как был, так и остался со старой геометрией!
так надо
ParhelionПостоялецwww26 сен. 201721:40#4
тыкните меш настроенный и в инспекторе вверху кнопку select, убедитесь что меш ссылается имеенно на ваш фбх
Grim OrkПользовательwww26 сен. 201723:17#5
Misanthrope
> так надо
Так не надо. Почему я должен собирать заново префаб персонажа, если внес правки в модель? Это явный баг.
Parhelion
Все верно ссылается. Старого фбх просто не существует в папке, я его удалил.
arte_de_mortПостоялецwww27 сен. 20171:14#6
Grim Ork
> Вот похожая тема:
Серьёзно?
Our issue is simple; if we add vertices or have a vertex skinned on a bone it wasn't previously skinned on, there's the chance the prefab would break down and not properly be animated.

Похожая в чём?

Grim Ork
> Так не надо. Почему я должен собирать заново префаб персонажа, если внес правки
> в модель? Это явный баг.
Ты можешь вручную убрать из префаба модель и выставить новую всегда.
Но бага здесь точно нет. На каком-то этапе что-то сделал не так. Может просто перетащил модель в сцену, а не создал префаб по-человечески, или ещё какая-то ошибка.

LucasitoПостоялецwww27 сен. 20178:25#7
Может он удалил префаб из юнити, вместе с метафайлом, а потом копирует новый fbx как совсем новый?
KumoKairoПостоялецwww27 сен. 201715:16#8
Старого фбх просто не существует в папке, я его удалил.

Удалили старый и перелинковали новый меш в старый skinned mesh renderer? Закиньте копию проекта куда-нибудь чтобы можно было посмотреть и воспроизвести ваш случай.
В идеале чтобы изменения мешей подхватывались сами можно пересохранять новый fbx поверх старого (я обычно делаю именно так). Если внутренняя структура файла менялась не сильно (не было разбиения или слияния мешей), то префаб сам подхватит все изменения сразу на импорте новой модели, поскольку все гуиды и файл айди останутся старые. Такая замена возможна если работать с файлами через проводник или finder, либо экспортировать из моделингового приложения в конечную папку в проекте. Главное не перекидывать новый FBX с тем же названием в Project View в Unity, иначе Unity сделает копию, переименует файл в (1) и не затрёт старый (то есть назначит новые файл айди и гуид)
Grim OrkПользовательwww27 сен. 201716:15#9
arte_de_mort
> Ты можешь вручную убрать из префаба модель и выставить новую всегда.
Могу. Но если мне надо, к примеру, 100 юнитов сделать, то я что ли должен каждому новые объекты в префаб вставлять? Нет, спасибо, не хочу так.
> Похожая в чём?
Да там их куча была, похожих тем, просто выбрал одну с самыми интересными ответами. Вот еще пример: http://answers.unity3d.com/questions/1075177/fbx-prefabs-fail-to-reimport.html


KumoKairo
Я уже пробовал и сохранять в новом файле и перезаписывать старый напрямую из 3ds max. Префабу безразлично, остается старым, и только если извлекать новый меш из .fbx и вставлять его в префаб и указывать ссылку на кость в префабе, что-то начинает получаться (зачастую, тоже баги возникают, меш может внезапно вообще исчезнуть или повернуться на 90 градусов).
Наверное, если в файле не создавать новых полигонов и не удалять, то все будет нормально. Но толку от таких ограниченных возможностей для редактирования?

Походу, придется решать проблему кодом. Надо вывести все коллайдеры и прочие компоненты в отдельные объекты, которые будут при инициализации находить нужные кости и к ним чайлдиться. 

KumoKairoПостоялецwww27 сен. 201717:58#10
Наверное, если в файле не создавать новых полигонов и не удалять, то все будет нормально. Но толку от таких ограниченных возможностей для редактирования?

Полигоны добавлять и удалять можно. Не желательно создавать новые сабмеши которые непонятно потом чему должны соответствовать в существующем префабе. У меня воркфлоу именно так построен, подхватываются даже последующие мерджи внутренних сабмешей у модели, только надо не забывать удалять пустые компоненты renderer которые после мерджа остаются без меша

Скиньте всё таки мини копию проекта чтобы посмотреть что там у вас

Grim OrkПользовательwww27 сен. 201719:22#11
KumoKairo
> Скиньте всё таки мини копию проекта чтобы посмотреть что там у вас
Спасибо за предложение, но проект коммерческий и персонаж самодельный, так что не могу.
Я попробовал редактировать модель без изменения весов вертексов. Все отлично обновляется в префабе. Судя по всему, только изменение модификатора Skin в исходном файле ведет к разрушению связи.
В общем, проще написать скрипты для исходной сборки персонажа, чем разбираться с этим. 

/ Форум / Графический Дизайн / Моделирование

2001—2017 © GameDev.ru — Разработка игр