2016-05-20 3 views
1

У меня есть файл Blender, называемый Assets.blend, содержащий более 100 объектов для игры, которую я разрабатываю в Unity. Когда я вношу изменения, я запускаю скрипт, который экспортирует каждый корневой объект в отдельный файл fbx. Однако у меня нет способа определить, какие из них были обновлены, поэтому каждый раз, когда мне приходится реэкспортировать каждый отдельный объект, даже если я только создал/изменил 1. Время, затрачиваемое на запуск скрипта, составляет около 10 секунд , но затем Unity обнаруживает изменения и тратит более 30 секунд, обрабатывая в основном неизменные готовые файлы.Обнаружить изменения в объекте Blender для более эффективного сценария экспорта

Как улучшить мой скрипт, чтобы он знал, какие объекты были изменены с момента последнего экспорта? Не существует переменной date_modified для объектов или сеток.

+0

Использование майя. Задача решена! Вы можете обновить сцену с Maya. Нет сценария или чего-то еще. Все объекты будут обновляться одним щелчком мыши. – Programmer

+0

yup get Maya. с открытым исходным кодом сосать – Fattie

+1

Блендер бесплатно, а майя - нет. Для некоторых инди-разработчиков это важно. – cjmarsh

ответ

0

Блендер не записывает временную метку модификаций объекта. Мое первое предложение состояло в том, чтобы сохранить каждый объект в собственном файле blend или, возможно, более мелкие группы элементов в каждом файле.

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

for obj in bpy.context.selected_objects: 
    bpy.ops.export_scene.fbx(obj.name+'.fbx') 
0

Другой подход для вычисления CRC-типа подписи значимых значений (геометрии сетки, материалов, то, что вы часто меняются) и магазин, где-то (в каждом объекте в качестве настраиваемого свойства, например).
Затем вы можете легко пропустить объекты, чьи подписи не менялись с момента последнего экспорта.