Morph Targets flicker Randomly in Slave Mesh

There is a problem with morph targets on master-slave meshes. The problem seems to be that the slave mesh, when it is morphed, shows the basic form randomly for a frame or two before going back to the morph targets. No input or activity whatsoever is necessary.

Please see the linked video for a demonstration here

I have a character which consists of a head and a body, both built on the same skeleton. The head is the master mesh and the body is the slave. I connect the two in OnEventBeginPlay with the master pose node as is standard practice to use this sort of setup. The video shows my begin play event setup and also how I set one morph. The morph is set on the head mesh because it is the master, which will then forward it to the slave meshes.

With this all working, all you have to do now is to run the game and wait. Eventually, the body will flicker back to the base form for a second or two. The video shows two such occurrences towards the end.

This is not a problem with the morphs per se, as the body alone, when seen in the Persona editor and with the same animation, does not show the flickering. It only occurs when the body is slave of the head.

Also, I applied some morphs to the head in such a scenario and the head would not show the flicker effect. Only the slave mesh.

EDIT: I updated the video link, the first wasn’t working

Hi ,

Your video link says that “the requested video is not available.” However I believe this bug has already been reported from this AnswerHub link:
[4.9 and 4.10 Set Morph Target not being sent to children of Inherited Mesh! - Programming & Scripting - Epic Developer Community Forums][1]

Please review the answer on that post and let us know if this is the same issue or if you feel you are experiencing something different.

Thanks
[1]: 4.9 and 4.10 Set Morph Target not being sent to children of Inherited Mesh! - Programming & Scripting - Epic Developer Community Forums

Sorry, I don’t know what happened, I was sure I uploaded it right. Here is a working link to the video : - YouTube

You see the effect at 50 seconds and 1 minute into the video. Sometimes it happens more, sometimes not so often, but it always happens at some point.

The link to the other problem does not describe this effect. The other one seems to have problems getting slave morphs to work at all which was never a problem for me strangely.
My problem may or may not be related to his, but it shows in a different way.

Thanks for the clarification. I have not been able to recreate this using our morph target assets. Can you send that sample project here to see if we experience the issue on our machines? You can send it as a zip file as an attachment here, via dropbox, or in a Private Message to me on the .
-Thanks

Ok, I sent you a private message in the forum with the dropbox link. I wasn’t able to add a file in the forum private message.

The thing is really strange, today it seemed to flicker much less. I moved my main project to another computer with another graphic card and thought the fliker did not occur there but after a while it did flicker.

I think it might have something to do with the UI or the mouse movement. I think it happens more often when you move the mouse, but it took several minutes today before I could see it. I tried with or without load on the computer, I also let a a second UE run in the background to see if that changes anything but it didn’t seem so.

It’s really something for which I can find no causality, it seems to happen randomly

I was able to open the project with the character, but there were a number of errors with the blueprint, “DesignCharacterBP” -so the morph controls did not actually work. However, since the character’s muscles were enlarged, I assume I am viewing the character as intended.

I left the project open for a long time and moved the camera around the character, zooming in and out etc.and experienced no flickering whatsoever. This, in addition to your last notes, leads me to believe this is related to your hardware and not a bug with the engine. I’d suggest trying to add various light sources and especially adding a “Lightmass Importance Volume.”

You can also try lowering the Resolution Scale under Settings or try turning off “Realtime” in the Viewport.

Let me know if any of these suggestions resolve the issue.

Thanks

It still flickers on my machine, yet on another it seems steady.

Would you be able to give me a list of locations in the engine code where the morph targets could be reset to 0 or in general where morphtargets are changed? I would then set breakpoints here and hopefully be able to capture the event in the debugger.

Just browsing the engine and searching for such locations would be impossible for me so I would have to rely on advice from you. Idealwise there should be only a handful low level locations in the engine where morphtargets are ultimately changed so it may be an easy task

I will try to get that information for you. In the meantime, did including a Lightmass Importance Volume, lowering the Resolution Scale and/or turning off “Realtime” in the Viewport have any effect?

Hello and thanks. I tried all these things (never had Realtime turned on but it happens in the running game anyway), so none of these made a difference.
I really think there is something going on there that only happens under rare circumstances and for some reason it happens more on my machine than on others, but it must be lurking somewhere.
If you can get me some code locations where I can set breakpoints, I will definitely try to catch the change in morphtarget strengths settings.

Hi ,

I have not been able to track down where in the code you can reset the morph targets to 0. However, we have received another report of morph targets flickering from another user who said they did not experience this with the same assets in UE4.8.

Can you try this with your assets in 4.8? If you can verify that this is does not occur in 4.8, we will enter this as a bug.

Thanks

Hi ,

I had to remake the assets for 4.8 from the original FBX files, but I did that and during my test I did not see any flicker. I then converted the same project to 4.9 and was able to see the flicker a few times. How much flickering is there seems to vary. Sometimes it’s hardly anything, sometimes it’s a lot. I THINK it happens more when you release the mouse with shift-F1 and move the pointer, but I am not sure.
I’m glad that I am not seeing ghosts here and that others have the same problems, thanks for working on it.
I sent you a new link to your forum account with both projects so you can use them as test objects.

Hi ,

I was finally able to reproduce this by releasing the mouse with shift-F1, as you described. I used this information and your test projects to enter the following bug report: JIRA [UE-21684]. Once this issue has been addressed we will notify you with an update to this post.

Thanks for both reporting this issue and providing workable samples so this issue can be identified and addressed.

Hello,

is there any news on when this is scheduled for fix? I just got a complete new computer with NVidia 960 graphic card and the effect is still there, so it has nothing to do with the hardware.
My game depends heavily on customizing characters with morphs, and though it’s not going to be shipped for a while, I would like know that this is planned to be fixed sometime next year, otherwise I will have a problem

Thanks for your help

W

I’m having morph target flickering as well, in 4.10, and it seems only the Server is affected, the clients connected don’t have a problem (in PIE).

Hi ,

I have upped the community interest and requested this issue be given higher priority. That said, due to the intricacy of the Engine I am unable to provide an estimation of when this will be corrected. It has not, however, been forgotten.

Hi ,

This appears to have been fixed by a correction with another bug as I am no longer able to reproduce this in the 4.11 preview. Please verify that this working for you in the 4.11 preview.

Thanks,

.

Hello,

thanks for the message. I got 4.11.0 Preview installed and here is what I found:

  1. I changed the project in place to 4.11. Now, when starting, the project does NOT find two DLLs anymore that are in the search path. There was no problem finding them with 4.10, now they are not found. Adding them to the EXE search path in the project has no effect. I also added the path again to the Windows path variable and restarted the IDE, same result. The only way I can start the program now is when I copy the additional DLLs into the same directory where the game dll is created.

  2. Now there are NO morphs whatsoever. I can open the body with the morphs itself and see the morphs. However, my game setup is such that I have a skeleton with a head mesh and then a body with the same skeleton that has the morphs. The body is then attached to the skeleton of the head as slave actor and I change the morph channels on the head skeleton/mesh which is the master.
    This setup worked perfectly under 4.10 now, no morph shows up whatsoever. You can verify this with the testprogram I sent to you. The character in that project is set up the same way. It should show as an athletic character with muscles, instead it only shows the regular basic character

So summarizing, The morphs dont show up so I cant test if the flicker effect is gone, plus there is a problem with loading third party DLLs that was not there before

Add On:
I changed the blueprint part where I apply the morph weight to the head mesh (master) in the way that I also add the same morph value to the body mesh. This too shows NO morphing on the body.
It seems, that now morphing of a slave mesh is completely disabled which break my complete setup. If this remains so, I will not be able to use the new version of the engine at all

Thanks for the feedback and additional information. I have verified that the morph targets are no longer propagating to child meshes which has already been reported as UE-[20602] and is also being currently worked on.

In regards to the the problem of not loading third party DLLs, which dlls are not loading? I did not get any errors opening a 4.10 or 4.11 copy of your sample file other than the Substance plug in not loading for 4.11 -which isn’t supported yet.

No, my sample program does not contain any DLLs, this is here now with my main program. I am using a network and a tool DLL. I link the LIB part like so:

#pragma comment( lib, "D:/Data/Mikaboshi2/Programming/Output/Network_64.lib")

in a cpp file and then, when the game starts, the respective DLL files are loaded. This worked with 4.8 - 4.10 without problems from the current location of the DLLs, but for the first time, after an upgrade of the engine, a “missing DLL” error happened at startup. When I copied the DLLs to the same directory where the game DLL is, it is found.

Maybe there is another way to instruct UE where to look for DLLS, I dont know, but so far, it worked well with the DLLs in their original location