Hi!
I suspect I know the answer to this already… but I’m going to ask it anyway, in case anyone else is ever interested in the same topic or it sparks interest within Epic to add additional flexibility to the Interchange system.
Here is my issue: If I wanted to write a new Interchange translator/pipeline/factory for an asset type that isn’t one of the following defined “classes”, do I have any recourse at the moment beyond editing the core engine code?
UENUM(BlueprintType) enum class EInterchangeTranslatorAssetType : uint8 { None = 0x0, Textures = 0x1 << 0, Materials = 0x1 << 1, Meshes = 0x1 << 2, Animations = 0x1 << 3, Sounds = 0x1 << 4, Grooms = 0x1 << 5, };
As I understand it, and please correct me if I’m wrong, I can extend Interchange in a custom plugin to say, write a new translator for a novel 3D Mesh filetype that unreal doesn’t natively support. I’d write the translator, generate an Interchange node for the Mesh payload and then any existing factory could consume that node to generate some asset on the other side.
However… if I wanted to create a plugin to handle something completely new, something that doesn’t fall into the categories of Textures, Materials, Meshes, Animations, Sounds, or Grooms, and import that new thing into the Editor via a set of Interchange Translators, Pipelines, and Factories that I write in C++, then I’d be in trouble, correct?
I realize that these categories likely cover 95% of all assets one might want to import… but I’m very curious why, given the otherwise very flexible design of the Interchange Framework, that this element was not designed to be extendible.
Unless of course I’m missing something completely here! In which case I’m very happy to be told I’m wrong and corrected!