Speedtree + Wind + Mobile = Not Working?

Looked everywhere for some sort of assistance and I can’t even find a single person experiencing a similar problem. We need to have some sort of wind in our game affecting the trees. The problem is that the shader that SpeedTree uses does not work on mobile due to the ‘World Position Offset’ set to get data from the SpeedTree node. Disabling this disables wind effects on the tree.
Is there some sort of workaround that is supported on mobile?

Thank you.

Same problem here :).
We use Speedtree to create our flora.
The game, we are working on, will be a mobile game, and we can’t get the Speedtree Materials running.
All Speedtree Assets are displayed as they would have no materials in mobile preview.

If we disable the Speedtree Node inside the Materials, which goes into the World Position Offset, then everything is fine, but then we lose our wind on our plants.
And we need Wind in our scene :(.

Any known Workaround for this?
Thanks for your help :).

What you can do is to set a FeatureLevelSwitch Node between the Speedtree Node and the World Position Offset. This node makes it posible for you to set up different methods, which should be used on specific platforms. With this you can keep the full SpeedTree Features on all platforms excluded Mobile (ES2). Now you can set up an own wind method, which shall be used only on the mobile platform. Therefore i used the SimpleGrassWind Node like you can see on my screenshot. This kind of wind doesn’t nearly look like the Speedtree Wind, but hey…it is wind, and it works on mobile :D.

You can even set up a little system in the Level Blueprint, where you read out the Wind Properties of “WindDirectionalSource”, if you want to use one in your scene to control all your different assets. Therefore you just have to create scalar parameters (like you can see on my Material Screenshot), and make them beeing controled by the WindDirectionalSource Properties like you can see on this screenshot here:

It isn’t really good, but it is a possible workaround for our problem, till Epic or the Speedtree Team get this Problem/BUG fixed. In this [UE4 Twitch Broadcast][4] at 49:00 min they definitely said, that the full Speedtree Material can be used on the mobile platform. We would just have to put down the Wind Property in the SpeedTree Node to “Fast”. But that obviosly doesn’t work!
Let’s hope for improvements :).

ps to Epic:
If i use the Base Color of my Diffuse Texture for the SimpleGrassNode - AdditionalWPO(V3), then the complete Material again doesn’t work for mobile platform, like with the SpeedtreeNode set up. Maybe this is a little hint to track down the problem.

I’ve workaround this issue by modifying UE source code.

File:
Engine\Source\Runtime\Engine\Private\Materials\HLSLMaterialTranslator.h

Function:
int32 SpeedTree(int32 GeometryArg, int32 WindArg, int32 LODArg, float BillboardThreshold, bool bAccurateWindVelocities, bool bExtraBend, int32 ExtraBendArg)

Line:
if (ErrorUnlessFeatureLevelSupported(ERHIFeatureLevel::SM4) == INDEX_NONE)

Change to:
if (ErrorUnlessFeatureLevelSupported(ERHIFeatureLevel::ES3_1) == INDEX_NONE)

Not sure if this change wont break anything in the feature, but for now everything worked fine on iOS device/Mobile preview. I guess it wont work on ES2 devices, but you may try.