Замена / преобразование идентификаторов в .FBX с использованием Python - PullRequest
0 голосов
/ 27 августа 2018

Цель наших усилий - заменить некоторые идентификаторы в коде другими идентификаторами, чтобы наш обогащенный экспорт FBX можно было импортировать в Unity. Мы пытаемся использовать следующий скрипт:

https://github.com/ideasman42/pyfbx_i42

Код parse_bin работал как положено. Мы можем преобразовать код в блок Python и изменить идентификаторы в коде. Проблема заключается в преобразовании обратно в код fbx. В кодовом блоке также появляются data_types: 'SS', 'SSS', 'SSSS' и т. Д. Поэтому я предполагаю, что parse_bin преобразовал списки в коде в строки и объединил их. Поэтому мне интересно, что я могу с этим сделать, не испортив полностью код.

Это файл из Autodesk Revit. Вот где это идет не так: Это ['GlobalInfo \ x00 \ x01SceneInfo', 'UserData'] становится 'SS'

<FBXElem, len() = 4>
_fields:('id', 'props', 'props_type', 'elems')
elems:[FBXElem(id='Type', p... elems=[]), FBXElem(id='Version'... elems=[]), <FBXElem, len() = 4>, <FBXElem, len() = 4>]
id:'SceneInfo'
props:['GlobalInfo\x00\x01SceneInfo', 'UserData']   <-------where it goes wrong--------------
[0]:'GlobalInfo\x00\x01SceneInfo'
[1]:'UserData'
props_type:bytearray(b'SS')
[0]:'SceneInfo'
[1]:['GlobalInfo\x00\x01SceneInfo', 'UserData']
[2]:bytearray(b'SS')
[3]:[FBXElem(id='Type', p... elems=[]), FBXElem(id='Version'... elems=[]), <FBXElem, len() = 4>, <FBXElem, len() = 4>]

Надеюсь, кто-нибудь может помочь нам с этим. Если вам нужно больше кода или объяснения, пожалуйста, сообщите нам.

Заранее благодарим за чтение нашего вопроса и любую предоставленную помощь!

Привет

Sjoerd & Ruben

...