Добрый день. Столкнулся с неприятной проблемой: при импорте .fbx-моделей в Maya (проверил в 8.5, 2010, 2012, без разницы) появляются дублированные материалы. Если подробнее, то устроено всё так: 1. Модель изначально была создана в Sketchup, где была разбита на компоненты, т.е. группы с инстансингом и разной там многоуровневой иерархией. Всё корректно затекстурировано, число материалов равно числу текстур. 2. Модель экспортируется в .fbx. 3. Модель импортируется в Maya. Всё идеально, компоненты Maya воспринимает как группы: без иерархии (на одном уровне) и инстансинга, но корректно. Проблема только одна: на каждый компонент, использующий такой же материал, как другой компонент, зачем-то был создан дублирующий материал. Ну, то есть, представьте, скажем, здание с сотней окон, у которого при импорте в Maya за каким-то чертом создалось сто материалов от текстуры этого окна. Простой пример. Две текстуры, два кубика, две группы, два материала на каждом. http://img.gameru.net/img/867ca.jpg http://img.gameru.net/img/8c7f3.jpg В Hypershade -> Materials их четыре. *** Собственно, вопрос: как избавиться от этого странного дублирования? Оно мало того что неудобно при настройке модели, но и попросту делает некоторые модели слишком тяжелыми вообще для открытия в Maya. Либо, по-крайней мере, поведайте, как слить эти материалы обратно в один Заранее спасибо. P.S.: Вряд ли проблема в каких-то там экзотических особенностях формата SU, т.к., во-первых, не напрямую из него же импортируется модель, а из родного .fbx, во-вторых, при импорте в 3ds Max ни следа дублированных материалов не было.
В гипершейде Edit > Delete Duplicate Shading Networks Только, кажись, перед этим нужно выделить все Shading Groups
http://img.gameru.net/img/336aa.jpg ^ К сожалению, не срабатывает. Возможно, я не вполне верно понял, как именно выделить Shading Groups. В логе на скрине есть перепробованные четыре варианта.
Собственно в гипершейде есть закладка Shading Groups. Но если их очень много, то можно запустить такой скриптик Код: string $listSG[] = `ls -typ shadingEngine`; select -r -ne $listSG; removeDuplicateShadingNetworks( 1 );
О, спасибо, нашел. К сожалению, убрать дубликаты Maya всё еще не соглашается Код ошибки такого плана: Код: // Error: No object matches name: Mesh2SG.miMaterialShader // Это звучит странно, т.к. объекты, соответствующие этим shading groups, еще как имеются - при удалении одной из них пропадают соответствующие фейсы в модели. Скриншоты с ручным выделением и вашим MEL-скриптом: http://img.gameru.net/img/230ec.jpg http://img.gameru.net/img/cf7f1.jpg Либо я в чем-то исключительно туплю, либо эти дубликаты какие-то не совсем дубликаты