Particle system changes not updating with mobile device launch

Changes I make to my ribbon particle system (such as color and size) are not updated when launching on a mobile device. I can see the changes when launching the game in the editor or the mobile previewer, but it seems like the particle system isn’t being rebuilt when launching on a mobile device (or it’s being rebuilt incorrectly). I’ve tried deleting my intermediate and saved folders, and then recompiling and rebuilding the project, but that doesn’t seem to do anything. I’ve also tried to force a full rebuild and cooking by the book instead of on the fly, but still nothing helps. Changes to anything else other than the particle system file are correctly updated when launching on a mobile device.

The only way to change the particle system is to create a new particle system from scratch (I can’t just duplicate the particle system). But for some reason, sometimes the new particle system won’t even work correctly on the mobile device (it does something totally different from what the values specify, even though the mobile preview works perfectly fine). I’ve checked my project files and there’s nothing wrong with redirectors or missing files. It just seems like there’s something wrong with the cooking process of the particle system when launching on a mobile device. This has happened in a previous project, so I had to create a new project from scratch, but it’s still occurring. Why would my project work fine with the previewer but not the mobile device launcher? Is this a bug, or is there something I’m forgetting to do when launching on a mobile device?

Vle07,

I have tested this on my Nvidia Shield and I have not been able to reproduce this. Could you please check and see if you’re able to replicate this within a new project? Provide me with full reproduction steps if you’ve been able to replicate it.

Thanks!

I tried to replicate this in a new empty project, but I’ve run across another issue. The ribbon particle system is rendering as a completely black material with geometry that doesn’t face the camera. I’m trying to keep everything as simple and minimal as possible. I’m probably forgetting something, but I can’t figure it out…

Here’s what’s in my test project (empty c++ project, default level):

Material_Ribbon: translucent, unlit material with just the particle color connected to emissive color, and particle alpha connected to opacity

Particle_Ribbon: Ribbon Data type, set material to Material_Ribbon, set spawn rate to 0, add spawn per unit module with spawn per unit distribution set at 1, set initial velocity to 0

Projectile_BP: Actor blueprint, add a sphere component as the root with collision set off, add projectile movement component with initial speed at 2000, add Particle_Ribbon component.

Controller_BP: Controller blueprint, add a Touch event that spawns a Projectile_BP actor at the location and rotation of the default pawn.

GameMode_BP: set the default controller to Controller_BP

Finally, change the default game mode under project settings to GameMode_BP.

For some reason, the ribbon particle system is a vertically oriented black ribbon that follows the projectile (rather than a camera facing white ribbon). I’ve tried changing the color under the color over life module, and also setting the material to just a constant color rather than a particle color, but nothing seems to work. Only the default particle material renders correctly. I’ve tried reinstalling the UE4 launcher and engine, thinking something might be corrupt, but nothing has improved in either my test project or actual project. I’m stumped =(

In regards to my original project, here are some more troubleshooting steps I’ve taken. I’ve checked that my content folder has no extra/missing files. I’ve deleted everything in the project folder except for the Config, Debug, Content, Source folders and the uproject file. I’ve generated new visual studio project files, opened up visual studio and cleaned and rebuilt the solution. After that, I open up my project and launch on my android device.

Even after deleting everything, my android device still shows a particle color that was saved many iterations earlier, while my editor previewer actually shows the current color set for the particle system. Does this mean that the particle uasset file itself is somehow storing the old color along with the new color (which makes absolutely no sense)?

I have manually uninstalled my game from my android device to make sure that it’s not just launching an old version of the game. I’ve also made changes to other assets than the particle system. All those assets are correctly updated when I launch on my device, just not the particle system. I’ve tried cooking by the book, cooking on the fly, no cook at all, fully packaging my android project with a full rebuild, restarting my computer, reinstalling UE4, but nothing works. The only thing that remains constant is the particle uasset file and my projectile blueprint that uses the particle, so these files are probably the culprit.

Thinking that my particle asset might be corrupt, I created a new particle from scratch. But once I launch on my mobile device for the first time with the new particle asset, I cannot see any further changes to the new particle system in future launches. It’s like the particle system is permanently cooked after the initial launch.

Sorry for such a long recount of what I’ve tried, but I wanted to be very thorough, considering other assets I’m not aware of may also be failing to update. Do you have any suggestions on where to go from here?

I’ve finally figured out a work around! For my original project, I noticed that it was just the color of the particle system that wasn’t getting updated on the mobile device, so I deleted the color over life module and then just created a new one. Any changes made to this new color over life module is correctly updated on the mobile device. I think this out of sync bug can also happen with other particle modules (I remember my initial velocity module becoming buggy as well), so I believe deleting and recreating the module would work for other modules as well.

In regards to my test project, the material I created was being rendered as black/default by the particle system even though when the material is applied to an actor in the level, it renders correctly. I think this is also an out of sync bug. The way I fixed it was to change the shading model to lit and then plugged in a constant color to the base color. I then saved the material, which forces the material shader to be rebuilt. After that, I can change the shading model back to unlit and use the particle color and alpha to the emission color and opacity. The ribbon was being vertically oriented because I was spawning the projectile directly in the center, so I just needed to offset the particle spawn location vertically.

I was actually able to reproduce my original problem in my test project. After launching on my device for the first time, any changes made to the color over life module would not be updated on subsequent launches. Deleting and recreating the color over life module fixed this.

I think there might be an issue with cascade or the particle system building process. First, sometimes materials are not correctly read by the particle system, so you have to change the shading model to force it to reread the material. Second, some modules get out of sync when launching on a mobile device. I may have found a workaround, but I still feel uneasy that such bugs exist.

Vle07,

Are you using any sort of source control? If so, this could be why your material isn’t updating. You can also open up your material editor and scroll down in the details panel and look for ‘Usage’ and make sure that ‘Used with Particle Sprites’ and ‘Used with Mesh Particles’ is checked.

Let me know if that helps with the issue, thanks!

I’m not using any source control (at least that I’m aware of), but I did forget to select my usage, so thanks for the suggestion! Turns out the “automatically set usage flag based on what the material is applied to in the editor” setting doesn’t work when applying the material to a particle. Maybe this should be updated so applying materials behaves more consistently with every type of object. Ribbon data requires the “used with beam trails” usage setting to be checked instead of the particle sprites or mesh particles usage. I had to guess and check which usage setting to use, so the automatic usage flag setting would’ve been helpful if it worked with particles.

Do you have an idea about why the color over life module was behaving so strangely? I just don’t get why the mobile device shows different results compared to the mobile previewer. After deleting and recreating the color over life module, upon exiting and relaunching UE4, I got an error when trying to launch on my device about an unspecified function. I don’t remember what the full error report was, but I was only able to launch on my device after I cleaned and rebuilt my solution in VS.

Maybe I’m building my project incorrectly for android. When developing for android, what solution configuration (development, development editor, etc) and what platform (android, win64, etc) should I select in VS? If I select android for the platform, it seems like I can’t choose development editor as the solution configuration or it won’t build properly. I’m still mainly testing in the mobile previewer since launching to my device takes quite a bit of time. What’s the best workflow/settings to use when developing an android game? The documentation doesn’t mention much about setting up mobile c++ projects. Thanks again for your help!

Hey!

UE-17616 is a report put in over the Material Usage Flags not updating correctly within the engine. It’s currently backlogged and set as a minor priority since you can set the flag yourself.

Regarding the color over life, we need screenshots of your particle editor. I also wanted to ask whether or not you’re using scale color over life with your color over life modules. If you need to use scale color over life, please use initial color instead.

When I build or Android, I build for: Development, DebugGame and Shipping > Android.

[Mobile Game Development][1] | [Programming Guide][2] | [Video Tutorials][3]

Thanks!

General Mobile Development for Unreal Engine | Unreal Engine 5.1 Documentation
[2]: https://docs.unrealengine.com/latest/INT/Programming/index.html
[3]: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

I’m not using a scale color over life module. I’ve attached a screenshot of my particle system. I’m able to reproduce the problem every single time I create a new particle system with this setup, and I’m able to fix it every time by just deleting and recreating the color over life module.

In case you can’t reproduce the problem with the particle system alone, I’ve also attached my uproject, source, config, and content files/folders as a rar file, so you can rebuild my exact test setup. It could be that one of my blueprints is responsible.

Since the workaround is fairly easy to do, you can backlog this if necessary. Your support has already been very helpful!

Thank you for providing both the screenshots and your project. I created my own project as well as compared my results to your project. Each time, Play in editor, mobile play in editor and launching to a have demonstrated the same results. When it’s not updating on the device, is it any mobile device you try or specific ones?

Thanks!

It happens on both my OnePlus One and . On my OnePlus One, the color over life module doesn’t update. On my , both the color over life module and initial velocity module doesn’t update. Deleting and recreating the modules fixes the problem. Sometimes, other modules won’t update as well.

I’ve also tried using 4.11 preview 7, but the same thing occurs. I thought it might have something to do with the default modules that are created when I first create a new emitter, but it turns out that’s not really the case. Simply deleting and recreating the default modules before doing any modifications to the particle system actually doesn’t work. It’s actually the order of the module creation that matters. I have to create the spawn per unit module and set its values before creating any of the other optional modules. If I don’t set it’s values beforehand, the color over life, initial velocity, and initial size modules can run into update problems.

Maybe if you create the spawn per unit module after you set all the other modules’ values, you might be able to reproduce this problem.

Vle07,

So I have tested this again. In the beginning, I could not get this to replicate but as I continued to try it, it eventually did in 4.10.4.

When I went to test this in 4.11 Preview 8, I was unable to replicate the issue once again. Since this issue isn’t showing itself in 4.11 Preview 8, it seems as though it was gotten fixed by other changes within the code.

Could you please verify that you’ve found the same results for 4.11 Preview 8?

Thank you!

I’m still getting the issue in 4.11 Preview 8 after both rebuilding my 4.11 Preview 7 project and just creating a new project from scratch. I’m glad that you were able to reproduce it in 4.10.4 (at least I know I’m not going crazy). But I’m able to reproduce the issue 100% of the time, so I wonder why the issue rarely happens for you.

I dedicated some additional time to testing this issue. I have not been able to reproduce it in 4.11 Preview 8. I’ve tried on new projects as well as a project that imported your ribbon particle into the level. Not once was I able to reproduce this in 4.11 Preview 8.

Are you saving before you launch? Are you getting this to happen in Mobile PIE? What about packaging?

I am saving before launch, and the Mobile PIE displays the updated particle system correctly. Packaging for android and installing it via the batch file doesn’t work. Forcing a full rebuild for packaging/launching also doesn’t work.

It seems like after adding the spawn per unit module, the other modules actually become corrupted, so rebuilding and packaging doesn’t have any effect. Maybe you’re unable to reproduce the issue because your project settings or the process/order of how you built the particles and other assets is different from 4.10.4. Can you upload your project for me to test? I just need the uproject file, content, source, and config folders.

For comparison, I’ve also uploaded my files for 4.11 Preview 8. If you can generate the visual studio file for my project and rebuild it, you should have a project with the exact config and asset files I’m using. After the first launch (tap the screen to shoot a projectile with a ribbon particle system), try changing the color in the color over life module. If the color is able to update, try deleting the emitter in the particle system and create a new ribbon emitter. Set all the values in the other modules, then create the spawn per unit module last. Launch the game again on your android device. After that, try changing the color and launching again. If you’re able to see the updated color, then the issue might be dependent on our hardware. Thanks for the time you’ve spent testing this issue!

I noticed that the generated visual studio project files are different when comparing 4.10.4 to 4.11 Preview 8. In 4.11, the generated visual studio file also contains a v12.suo file. When setting the solution platform to android, the target platform toolset used is Visual Studio 2013 (v120), which on my system, can’t be found since I’m using Visual Studio 2015. If I delete the .suo file, my solution will retarget to Visual Studio 2015 (v140), but for some reason, the v140 toolset can’t be found either when building for android. I can build perfectly fine for win64.

This didn’t happen in 4.10.4, but then I noticed the android platform solution uses the Win32 platform setting when going to the project properties. In comparison, for the 4.11 project, the android platform has a separate Tegra-Android platform setting defined (strangely, the target platform is windows 8.1 in the general settings for the Tegra-Android platform). I don’t know much about setting up VS2015 for use with android (I’ve only used Eclipse and Android Studio prior to using UE4 for mobile development). I’ve gone through the steps for setting up VS2015 from the UE4 documentation, but it seems like I might be missing something. Maybe I’m getting the issue because I can’t build for Android in 4.11.

vle07,

I still haven’t been able to reproduce it, no matter how many times I attempt. Here is my link][1] and this is the way I was able to get mine to reproduce on an earlier version.

Let me know!

https://www…com/sh//AAAyy_mp_9x0Er6Hemv9k7Wza?dl=0

Thanks for your project files. Are there any spawned particles in the level? I don’t see any when playing them (nor do I see blueprint or c++ code that spawns them). Also, the particle system isn’t a ribbon emitter, and the spawn per unit module distribution is set to 0, so it doesn’t do anything. I also noticed your project target hardware is desktop with maximum quality, rather than mobile with scalable 3D/2D. Not sure if that makes a difference.

If you have the time, could you download my previous attachment “ribbontest.rar”, and generate the visual studio files, rebuild the project, and upload it to ? I’m thinking my build might have issues. Thanks!

Yes, I made mine a bit differently. I put the particle effect on the ground in front of where you spawn in.

Here is the link][1] you asked for. Let me know if it doesn’t work for some odd reason.

Thanks! :slight_smile:

Hey vle07,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you!