I’m trying to have some deformation happen after some skinning and morphs, and then have more skinning and morphs happen after. I’ve got the deformer graph doing what I’d like, and I can add the deformer to the flow in Control Rig and set the Execution Phase to ‘Before Default Deformation’ or ‘After Default Deformation’ and each does what you’d expect. But I’d like to have it set to ‘After’ and then also have more control rig deformation happen after that, so the flow would be, Control Rig Deformation > Deformer Graph > Control Rig Deformation. Having these things happen in the Forward Solve sequence doesn’t seem to happen, the Add Deformer node always happens after if it’s set to ‘After’. I’ve tried out having a secondary Skeletal Mesh Component in deformer graph which would have a different control rig, and then another deformer graph which adds together the results, but it just crashes. I’m also not sure on the best way to set the secondary components in Deformer Graph from control rig / blueprint?
I think I’ve narrowed the problem down a bit further. I think it’s as simple as not knowing how to layer control rigs so that they add together. If I have a control rig on a character, then add say a lattice deformer control rig in sequencer it’ll all add together even without the track being a layered control rig. But when I make my own control rig that has an Add Deformer node it seems to totally overwrite the previous control rig or animation clip. Is there a node or function to make sure the Read Skinned in deformer graph is reading the mesh including proper animation, or perhaps I need to add something to control rig?
Hey ![]()
Read Skinned Mesh node in the Deformer Graph is what you need to be able to use in order multiple deformers.
Jack explains really well everything regarding the setup of Deformers within a Control Rig (using a Post Process Anim Blueprint, etc..). Check it out!
Thanks, I’ve had a read through that post, interesting stuff but nothing directly solves the problem I’m having. I think the easiest way to make the problem replicable is if you add the Epic Lattice control rig deformer in sequencer, it’s all good, it’s on top of any other control rigs applied, and you can even add multiple versions of that same rig to multiple tracks. Whereas that rigs I’ve made can only be added once, and they’ll force themselves to the bottom of the priority stack in sequencer, even if I change the priority value, they just stay at the bottom, whereas I need them to occur in a particular order.
I think a second part to all of this is whether it’s possible to set the primary skeletal mesh for the Deformer Graph and any secondary components in Deformer Graph via control rig or blueprint? The old system for DG was to set these in the details panel, but can you set these some other way now?
For the Deformer Rigs in Animator Kit plugin, it supports multiple instances of the same rig in sequencer because it has “Allow Multiple Instances“ set to true in Control Rig Editor → Class Settings → Sequencer → Allow Multiple Instances.
Each control rig, when added to sequencer, runs according to the priority order of the track, the higher the number the earlier it runs, layered rigs and regular rigs are sorted separately.
Deformers within each rig are sorted based on execution phase first, then by execution group an then by the order in which the Add Deformer Node is executed.
It is a limitation with Add Deformer node in Control Rig that you cannot explicitly assign a component to a secondary binding explicitly. However you can potentially use component tags to allow the system to automatically find the bind to the secondary component. In Deformer Graph → Component Bindings → Details → You can set a tag for a component binding. Then in your Blueprint, you can select your secondary component → Details → Component Tag → and set the same tag value. In theory, when the deformer instance is created, the secondary component binding should bind to the tagged component automatically.
FYI, we haven’t exposed scheduling for morphs yet so the morph delta you have access to in Deformer Graph is always simply the combined result of all morphs based on the current morph curve values.
Hope this helps!