Physics applied on a skeletal mesh renders differently between movie render queue and viewport preview
I am having a problem rendering physics on a skeletal mesh within movie render queue, which produces distinct results compared to viewport preview. For your information, physics is added to the skeletal mesh to counter intersection issues, because I am retargetting mocap animation to a customized character.
Throughout testing and the help of Problem rendering physics simulated objects, I was able to get a basic idea of the key influential parts, but the outcome is still imperfect. To summarize, Anti-Aliazing plays an significant role throughout the process.
To start the discussion, here is a screen record directly from the viewport. I’ve applied physics only to the arms of the character. The simulation performs regularly with no errors.
Here is the blueprint to set up the physics of the arms:
The problem occurred as follows:
-
When Temporal Sample Count is set to any number except 1, the skeletal mesh initiates a tremendous flickering in the render:
Users from the forum Problem rendering physics simulated objects have already provided valuable solutions to this problem, involving tuning up motion blur or keeping Temporal Sample Count as 1. The accepted answer of that forum suggests that tweaking engine frame rate and physics sub-stepping will enhance the matter, but unfortunately I do not found that effective on my project. Nevertheless, I found that keeping Temporal Sample Count at 1 will omit the flickering, but there is still another problem. -
Arms are locked to a certain level as if they are constrained in the render.
In the video above, it’s obvious to see that the arms are stuck at a certain angle (around the section of a T-pose). For this render, temperal sample count is at 1 so it dissolved the flickering; however you can still see this problem occurs in the previous video when TSC is not set to 1. I later discovered that this is connected to the blueprint where I set the physics to initiate starting from the upper-arm joints, a combination of apply physical animation settings below and set all bodies below simulate physics. I learned this setup in Epic’s Physical Animations | Live Training video. If I disconnect the nodes that initiates the physical animation, and only fire the part that runs the physical constraint, the renders works out pretty fine, though of course no collision will happen but only physical constraints.
I tried diving into the elements of the nodes that construct the physical animation part, but did not found any of them to have a direct connection with this issue. It is as if the whole node set up works as a filter that forced the arm to perform this way in the render.