Я работаю над проектом, который использует движок Unity3D. Для некоторых требований к конвейеру лучше всего иметь возможность обновлять некоторые файлы из внешних инструментов с помощью Python. Файлы мета и анимации Unity находятся в YAML, поэтому я думал, что это будет достаточно просто, используя PyYAML.
Проблема в том, что формат Unity использует пользовательские атрибуты, и я не уверен, как работать с ними, поскольку все примеры показывают более распространенные теги, используемые Python и Ruby.
Вот как выглядят верхние строки файла:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
...
Когда я пытаюсь прочитать файл, я получаю эту ошибку:
could not determine a constructor for the tag 'tag:unity3d.com,2011:74'
Теперь, посмотрев на все остальные вопросы, эта схема тегов не похожа на эти вопросы и ответы. Например, этот файл использует "! U!" что я не смог понять, что это значит или как что-то подобное будет вести (моя дикая необразованная догадка говорит, что это похоже на псевдоним или пространство имен).
Я могу взломать и вырезать теги, но это не идеальный способ сделать это. Я ищу помощь по решению, которое будет правильно обрабатывать теги и позволит мне анализировать и кодировать данные таким образом, чтобы сохранить правильный формат.
Спасибо, -R