MoPA
MoPA copied to clipboard
Use keyframes to prevent pose shaking
I found that the avatar will shake drastically when running the webcam demo. And I set the mode =1 to insert keyframe record the webcam results for playback.
Now, if we set one more condition for inserting keyframe, only the frame_idx % 3 == 0 or frame_idx % 5 == 0. This would allow the avatar to move along these keyframes much smoother.
However, is there a way to let the webcam demo runs in real-time using the keyframe strategy I said? This skip keyframe strategy only seems to work with the recorded playback. The character is still moving on each frame when we are actually running in real-time.
I don't know how to improve it. Because only when each frame is played can the intermediate interpolated frame be displayed. Instead of playing each frame, the real-time drive directly changes the action of the person in the current frame.
I don't know how to improve it. Because only when each frame is played can the intermediate interpolated frame be displayed. Instead of playing each frame, the real-time drive directly changes the action of the person in the current frame.
Yeah, so this is difficult. I don't know if we could set something like delay or a lag in the animation to let it act in this manner. For example, insert keyframe 0 at the beginning, when the third or fifth frame comes in, we set it as keyframe 1 and start to play animation from the beginning... But the real-time drive will directly changes the action without waiting for the next keyframe is inserted.
Anyway, interpolation is really useful and I will add it to the next version, thank you.
As for real-time driven interpolation, I'll look into it and see if bpy supports multiple processes or running a process in the background.
I tried to do multi-process programming in Blender, but I kept getting errors and querying for a long time but couldn't solve them, so I couldn't do it for now.
As for the real-time smoothing pose, the ROMP author has done some work, but his focus doesn't seem to be there (not much scientific value), so I don't have a good way to optimize it.