• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS20 Wakes with the SDK visual effects editor - How to?

Messages
439
Country
unitedkingdom
I need to get some wakes going.

After a bit of fiddling with the SDK effects editor I've managed to get some unconvincing smoke to spout, but I've absolutely zero idea about how to use it to make a wake. What few resources there are out there, including the SDK docs, are entirely about airborne stuff.

It seems nicely geared for particles that float away. I can't see any settings that do anything with water.

Is there anybody who has done this successfully able to share some ideas and settings?

Or maybe it's not possible at all. I have no idea.
 
Definitely possible, but I'm just using default Asobo wakes with a little parameter tweaking. If you want to reverse engineer someones custom wake effects, check out Henrik's Global AI Shipping package.

Kunlun.jpg
 
I've been fiddling a bit with those too.

There's something weird going on with empties/nodes in the models I'm attaching them to. Placing them at water level places the Asobo ones I've messed with high up in the air.

I have managed to create a fairly cruddy water effect in the editor now, I didn't realise there was a VFX menu to tap with water effects, but I'm still having strange empty/node behaviour. My effect shows up at water level on one model with a node 20 metres up in the air, but doesn't with nodes placed at water level. And visibility is all over the place compared to the Asobo ones. It's coming and going depending on where you look.

The Asobo effects are rock solid and visible forever. This one is either veering off at all sorts of weird angles, or disappearing completely. And it only shows up a short distance away. Hmm.

Shame Asobo couldn't supply a sample visual effect of this type, just a pic of the settings would clear it up.
 
Last edited:
I greatly admire the skill and extensive work done by Henrik and his fellow A.I. Ship enthusiasts, with porting their FSX / P3D packages to MSFS.

AFAIK, the current package build runs in "FSX Compatibility Mode"; thus Fx files are in legacy format, so that may result in Fx display anomalies.


But, we may see some more fully MSFS compliant "wake" Fx files in the upcoming 40th Anniversary release of the Hughes H-4 Hercules "Spruce Goose".

https://en.wikipedia.org/wiki/Hughes_H-4_Hercules

See... 01:21 elapsed time: ;)


GaryGB
 
Last edited:
Whelp, they are "AI ships" and it is my belief that rabbit holes like the Visual Effects Editor, help to create the illusion of, to simulate if you will, a flight simulator that allows customers to custom(er)ize it.

Effect files are distressingly simple to the point a red strobe can be made with about two paragraphs of code and FXTool in P3D/FSX allowed direct, real time editing of effects within the sim environment.
It seems nicely geared for particles that float away. I can't see any settings that do anything with water.
The original effects system was written to create smoke trails, like startup smoke and contrails. Individual effect units were and probably still are called "particles" and they were given both a "temperature" and a "rate of cooling," so that customizing customers could have some fidelity over the "arcs" theses particles made, since all particles of smoke eventually fall to the ground.

Things like campfires and water drop effects, were pretty easy to do and we are seeing those pop up in MSFS sceneries lately, as well. But things like bullet tracers and water waves, were a lot harder to make and still are. The old complaint about the tracers, was that people could never eliminate that arc sufficiently, the rise and fall and the critics would just tell them "that is the drop that all marksmen must account for and after all, who needs bullets in FSX when there is DCS?" Ah, good times.

As to aeroplane driven wakes, Asobo implemented those some time ago


and we already have fully MSFS compliant wake effects that are attached to all default AI ships, but Spruce Goose will really spice up my planned McMinnville simulation. I'll make sure the glass is nice and clear for that hangar/museum building it is stored in and hopefully they will have fixed that glitch when people fly by, they won't see it's propellers spinning. Not to sound overly sarcastic and I get it, "an iconic plane" and all, I'd have preferred they picked one that worked. Concorde, or X-15 would have gotten my vote, even Constellation or TriStar, but you know, "LM."
 
I greatly admire the skill and extensive work done by Henrik and his fellow A.I. Ship enthusiasts, with porting their FSX / P3D packages to MSFS.

However, the current package build runs in "FSX Compatibility Mode", and thus Fx files are in legacy format; AFAIK that might result in Fx display anomalies.

I currently have a wake floating 40 metres above a ship that I can't figure out how to get on ground level that's from the Asobo carrier.

It's so flawless I'm wondering whether it's done in a different way to the methods available in the SDK. It doesn't match any wake I've seen made by anyone else. Or perhaps they're just virtuosos.
 
However, the current package build runs in "FSX Compatibility Mode", and thus Fx files are in legacy format; AFAIK that might result in Fx display anomalies.

I probably forgot to tell you that I don't run anything legacy with this buggy software.

gaist.jpg
 
I probably forgot to tell you that I don't run anything legacy with this buggy software.

View attachment 84850

Hi Rick:

Your screenshot shows "gaist-ultra-BETA"; this does not correlate with any version package name that I had seen thus far for this add-on.

Regarding my assertion that the current package build runs in "FSX Compatibility Mode", and thus "Fx files are in legacy format; AFAIK that might result in Fx display anomalies":

Definitely possible, but I'm just using default Asobo wakes with a little parameter tweaking. If you want to reverse engineer someones custom wake effects, check out Henrik's Global AI Shipping package.

View attachment 84847

* My inferences are based on your citation of "Henrik's Global AI Shipping package" above in this thread prior to seeing your screenshot.


* My inferences are also based on correlation of available add-on package names / URLs for "Henrik's Global AI Shipping package" cited above


A Google search found a flightsim.to version (AFAIK, this requires website registration for data mining and direct or indirect financial gain).


Apparently that is the same URL cited in this flightsimulator.com forum thread:

https://forums.flightsimulator.com/t/maritime-traffic-lanes-in-the-channel-gaist-ultra-beta/505209

Global AI Ship Traffic MSFS V2​


...which curiously shows this download URL with "V1" as the version number:

https://flightsim.to/file/9529/global-ai-ship-traffic-msfs-v1


Note as well, the closing statement on that web page:

"Referencing or any other use or sharing of the models included in Global AI Ship Traffic can only happen after written permit by the copyright holders."


Another Google search found the flightsimnorway.com version:

Global AI Ship Traffic MSFS v1

...which congruently shows this download URL with "V1" as the version number:

https://flightsimnorway.com/addons/default.php?key=cFp6YzJWYXdmdjRaMjl6Mlh3R09Hdz09

global_ai_ship_traffic_msfs_v1_flightsimnorway-jpg.84853


Note the disclaimer on the flightsimnorway.com version:

It is important to understand that this is not a native MSFS package, but instead an updated conversion of the P3D version


Where did you download the "gaist-ultra-BETA" cited in the screenshot attached in your post immediately above ? :scratchch


UPDATE: I now find this reference in an AVSIM thread:

https://www.avsim.com/forums/topic/621692-gaist-msfs-v2/page/2/


This still does not explain the download URL at flighsim.to that cites a "V1" of this add-on package ? o_O

Even more confusing is this subsequent post: :yikes:

https://www.avsim.com/forums/topic/621692-gaist-msfs-v2/?do=findComment&comment=4810245

"

Todd2


PS: As I am an amphibious aircraft enthusiast, having flown in one IRL for years, I want to implement more "realistic" MSFS SDK compliant VFX. :cool:

GaryGB
 

Attachments

  • Global_AI_Ship_Traffic_MSFS_V1_flightsimnorway.jpg
    Global_AI_Ship_Traffic_MSFS_V1_flightsimnorway.jpg
    419.2 KB · Views: 1,072
Last edited:
I need to get some wakes going.

After a bit of fiddling with the SDK effects editor I've managed to get some unconvincing smoke to spout, but I've absolutely zero idea about how to use it to make a wake. What few resources there are out there, including the SDK docs, are entirely about airborne stuff.

It seems nicely geared for particles that float away. I can't see any settings that do anything with water.

Is there anybody who has done this successfully able to share some ideas and settings?

Or maybe it's not possible at all. I have no idea.

Hi Spud:

I have only just begun looking at the VFX SDK Docs, but I found this:

https://docs.flightsimulator.com/html/Developer_Mode/VFX_Editor/Menus.htm?agt=index

"
  • Asset System
    The Asset System Tab Of The Templates/Instances Debugger


    This tab is for showing any system effects. These are effects that have been added and/or created using means other than the Visual Effects Editor and the XML templates (eg: from a DLL or within the actual Microsoft Flight Simulator code base)

  • Spawner
    The Spawner Tab Of The Templates/Instances Debugger


    This tab is for controlling and debugging a single particle effect within the simulation itself. At the top is the name of the currently selected effect file, and then you have various options for choosing how and where to spawn it for testing in the world.

Since all effects need to be attached to a SimObject that's the first option, and you can select any of the available SimObj from the current camera position. If the object is a custom model that is part of the package, you can specify a Node Name to attach the effect to. If you are using an aircraft SimObject, then you can - instead of a node - select a Contact Point to spawn the effect on.

You may also set the Offset and the Rotation Offset relative to the chosen spawn point.

Once set up, clicking the Spawn button will spawn the particle effect in the world, and add an extra section to the tab with information about the spawn point. Note that you can change the current effect at any time by clicking on it in the Effects Editor window, and the information on this tab will change permitting you spawn multiple different effects at the same time in the simulation for testing."


Although your posts thus far do not specify what exactly you are working with, IIUC, "airborne stuff" refers to aircraft SimObjects ?

That begs a question as to whether or not you are working with a aircraft Carrier or other ship (either static or moving) as A.I. Traffic..

AFAIK, if the object you are working on is 'airborne', IIUC, attach VFX via a "Contact Point"; if not airborne, attach VFX via a "Node".

In either case, IIUC, one may set the Offset and the Rotation Offset relative to the chosen spawn point.

GaryGB
 
Last edited:
Thanks for this.

It's for moving aircraft carriers indeed.

Airborne as in things that float away in the air like smoke and steam.

I'm finding an awful lot of quirks with moving landable surfaces.

With the central ship that the worldscript is centred around wakes work and you can land and stay put.

With the same simobject ship when attached as an additional object to the main one - a la the frigates in the Top Gun addon - the wakes don't work and the landable surface continues moving underneath you while you slide off.

That's why I didn't think the empties to attach wakes were working. They do, but only when it's the main ship.

If you add a ship that's a standard scenery object and not a simobject the landable surface works as it should. But no wakes of course.

The Asobo Frigates don't have any of these issues and I can't see any difference in code. It's still doable but is going to wind up a bit messy.
 
Where did you download the "gaist-ultra-BETA" cited in the screenshot attached in your post immediately above ? :scratchch
I went ahead and crawled the data miners to get this capture that hopefully will clear things up. It was a bit dicey, but overall I consider it a win win, I got my image but have a lingering urge to browse Etsy.

gaist to.jpg


Technically, I am only a legal referencer by name, I could not actually find anything of mine in this package, so gracious of Henrik, but I intend to provide suitably improved versions from my current stable. What I mean to say, is that not only the current version number may need to be edited.
 
Thanks for this.

It's for moving aircraft carriers indeed.

Airborne as in things that float away in the air like smoke and steam.

I'm finding an awful lot of quirks with moving landable surfaces.

With the central ship that the worldscript is centred around wakes work and you can land and stay put.

With the same simobject ship when attached as an additional object to the main one - a la the frigates in the Top Gun addon - the wakes don't work and the landable surface continues moving underneath you while you slide off.

That's why I didn't think the empties to attach wakes were working. They do, but only when it's the main ship.

If you add a ship that's a standard scenery object and not a simobject the landable surface works as it should. But no wakes of course.

The Asobo Frigates don't have any of these issues and I can't see any difference in code. It's still doable but is going to wind up a bit messy.

I have not yet attempted to work with MSFS VFX Nodes as attachments in MCX Object Hierarchy Editor, but one might wonder whether Arno may have some insight as to how / where such VFX may best be attached within a "composite" object-attached-to-an-object, and whether one may otherwise be able to work with a MSFS extended glTF 3D model via the MCX Attached Object Editor ? :scratchch


BTW: The quote in Red above says it all about the constantly changing MSFS SDK update pattern, whether documented or not.

Consistently, the "ground" is moving under our feet; our achivements may suddenly have the 'carpet' pulled out from under our feet. :banghead:

GaryGB
 
Last edited:
I'll wing it until something works, but I really don't get why some things do work and some don't with non Asobo stuff.

This code was never meant to be out in the world anyway so who knows what they themselves did differently. I got sent it by Touching Cloud and Jayshrike who both got the original carrier moving in the open world. I don't understand a line of it. I just move things around until something sort of works.

I will post a working example project on here, if it ever works properly.
 
I will post a working example project on here, if it ever works properly.

Thanks, Spud.

BTW: I read a bit more in the MSFS SDK Docs for VFX, and found this:

https://docs.flightsimulator.com/html/Developer_Mode/VFX_Editor/Nodes/Emitter.htm

"

Emitter​


The Emitter Block


The Emitter block is what defines where an effect will be created as well as how many particles should be in the effect and a few other details related to how the entire effect will be generated. This block must be a child item of the VisualEffect block and you may have multiple emitters in a single effect. Note that once a VisualEffect block has been linked to the emitter, the Referenced From section of the Inspector will show a button: EmitterList. Clicking this will pan the Node Graph to the VisualEffect block that is the parent of the Emitter.


When you add an Emitter block item to the VFX Node Graph, the Inspector window will change to show the editable properties for the block (some of which can be edited within the block itself):

The Inspector For An Emitter Block


The options available are as follows:

  • EmitInLocalSpace​

    With the parameter unchecked, particle positions and velocities are expressed in world space. World space is considered as ECEF - "Earth-Centered, Earth-Fixed" where directions and orientations are calculated using the center of the earth as the base location. This means that particle/emitter positions are oriented by world space axes but are used as an offset from the position of the emitter, so [0, 0, 0] is still where your VFX is spawned, but directions are based on the vector from the center of the earth, where the Y vector would be from the center of the earth to the north pole. It is most likely you will always use helper nodes - like LocalDirection - when using positions with the EmitInLocalSpace parameter unchecked. Note that using world space in your nodes means that the rotation offset for your VFX will be ignored.

    With the parameter checked, positions and velocities are expressed in a space local to the VFX instance (by convention [X = left/right, Y = up/down, Z = forward/back]). Local space takes into account the transformation of the object it is attached to and the potential position and rotation offsets you have defined when spawning your effect or attaching it in a model behavior file.

    Note that position and rotation offsets are always expressed in the space of the object the VFX is attached to, and you need to be careful with some nodes as their output may not be what you expect if the emitter is set to emit in local space. Also note that the following nodes will change their output automatically to match this emitter setting:

I am not certain whether Arno may be up to the task of implementing a way to work with this much MSFS complexity via MCX' GUI. :oops:

GaryGB
 
Last edited:
This code was never meant to be out in the world anyway so who knows what they themselves did differently. I got sent it by Touching Cloud and Jayshrike who both got the original carrier moving in the open world. I don't understand a line of it. I just move things around until something sort of works.

IIUC, you refer to this: :scratchch

https://fselite.net/content/freeware-moving-aircraft-carrier-for-msfs/

https://flightsim.to/file/35879/mov...wimscuDnYt9lSKg6O0eJ4AMZEMWYk1CobnnohY8qWJegU



Regarding FX on Alex Marko (aka "thealxEECH") Touching Cloud web site, IIUC these are for "converted" A/C in FSX Compatibility Mode ? :alert:

If so, those Fx files would be legacy format Effects, "that may result in Fx display anomalies."


https://msfs.touching.cloud/mods/effects-lib/

https://github.com/thealx-eech/msfs-effects-lib

GaryGB
 
Last edited:
Still trying and failing to add (enough) effects. I'm not going to bother refining them until I solve this.

For some reason the worldscript this needs only allows two self made effects. That's in total. So it's not possible to have wakes with multiple ships.

Asobo's own effects code is different for this. It doesn't use GUIDs. If I simply copy and paste the xml code from their frigate simobject its wakes are added to all simobjects, but they all float about 30 metres above the model. Changing the empty/ node height in the model on the Z axis doesn't change the height. Moving it along the Y and X axis in the model does move the wake.

This is the code that works and it's the complete code for the effect -

<Component ID="AIRCRAFT_CARRIER_WAKE_FX_Back">
<Parameters Type="Override">
<FX_GRAPH_PARAM_0>Pos_F_B, 0</FX_GRAPH_PARAM_0>
</Parameters>
<UseTemplate Name="ASOBO_WATER_NODE_FRIGATEWAKE_FX">
<FX_NODE>HMSWAKEBACK</FX_NODE>
</UseTemplate>
</Component>

And I assume it's the FX_GRAPH_PARAM Pos bit that has something to do with the height, but I've no idea what it is or how it works.

Does anyone have any experience of that bit?




Edit - Given up on that. Importing the info from the other Asobo standard simobject boats to your own xml does work. No need for empties either as far as I can tell.

<Component ID="BOAT_WAKE_FX_Back">
<Parameters Type="Override">
<FX_GRAPH_PARAM_0>Front_Back, 0</FX_GRAPH_PARAM_0>
<FX_GRAPH_PARAM_1>Life, 19</FX_GRAPH_PARAM_1>
<FX_GRAPH_PARAM_2>Pos_Z, -56</FX_GRAPH_PARAM_2>
<FX_GRAPH_PARAM_3>Clamp_Wave, 1</FX_GRAPH_PARAM_3>
<FX_GRAPH_PARAM_4>Clamp_Wave_Min, 15</FX_GRAPH_PARAM_4>
<FX_GRAPH_PARAM_5>Clamp_Wave_Max, 35</FX_GRAPH_PARAM_5>
</Parameters>
<UseTemplate Name="ASOBO_WATER_NODE_BOATWAKE_FX">
</UseTemplate>
</Component>

<Component ID="BOAT_WAKE_FX_Front">
<Parameters Type="Override">
<FX_GRAPH_PARAM_0>Front_Back, 1</FX_GRAPH_PARAM_0>
<FX_GRAPH_PARAM_1>Life, 25</FX_GRAPH_PARAM_1>
<FX_GRAPH_PARAM_2>Pos_Z, 63</FX_GRAPH_PARAM_2>
<FX_GRAPH_PARAM_3>Clamp_Wave, 1</FX_GRAPH_PARAM_3>
<FX_GRAPH_PARAM_4>Clamp_Wave_Min, 5</FX_GRAPH_PARAM_4>
<FX_GRAPH_PARAM_5>Clamp_Wave_Max, 100</FX_GRAPH_PARAM_5>
</Parameters>
<UseTemplate Name="ASOBO_WATER_NODE_BOATWAKE_FX">
</UseTemplate>
</Component>
</Behaviors>

The only uncertainty is the 'Pos' value as it relates to the coordinates in their own model so you have to guess and some orientations are reversed. Luckily this live updates with each build in the sim so you can experiment. Clamp wave min is the size of the start of the wave, max is the end of it, so you can adjust size per boat.

Life is how long the wave lingers.

Those measurements are for a Type 23 frigate which works well enough.
 

Attachments

  • image_2022-11-05_153617220.png
    image_2022-11-05_153617220.png
    3 MB · Views: 249
Last edited:
Hi Spud:

I still have not had time to delve into MSFS SDK VFX, but a search at the online MSFS SDK Docs web page turns up these hits:

https://docs.flightsimulator.com/ht...s/Visual_Effects.htm?rhhlterm=FX_GRAPH_PARAM_


IIUC, VFX requires Model Behaviors to be used with SimObjects (either static or dynamic ?) and with Parameter Values or RPN (aka "Reverse Polish Notation") code. :scratchch

https://docs.flightsimulator.com/ht...s/Visual_Effects.htm?rhhlterm=FX_GRAPH_PARAM_

https://docs.flightsimulator.com/html/Developer_Mode/VFX_Editor/Nodes/GraphParameter.htm

https://docs.flightsimulator.com/ht...ects/Visual_Effects_Examples.htm#graph_params


As much as I am concerned over a out-of-control role for XML in the MSFS SDK, we already had a simpler way to use Fx in FS2Kx via BGLComp XML via AttachPoints. :rolleyes:

GaryGB
 
Last edited:
The thing that gets me about the sdk documentation is they explain things to a point and then fade out.

Or they explain how to do something but didn't start off by explaining what you're actually doing and what the results are.

That's the case for an awful lot of stuff.

I have no idea what rpn it is or what the numbers applied to it affect.

Can't be that much of a stretch to tell me in a simple manner.

They can an add a dimwit offshoot site to keep the main one clean for those in the loop already.
 
Indeed, a substantial part of the MSFS "would-be" developer community might prefer not having to become a coder to enhance their use of the sim (not "game").

The point is made in the intro to VFX that the < FX_CODE > RPN is a very short string (not 'fuse' :laughing:) required to toggle VFX On / Off.

One must supply additional VFX Template parameters for VFX to run ...as we also did in FS2Kx to use Fx ...via up to (3) total files. ;)

The VFX are implemented in a Node-based sub-system:

"Note that the Node attribute is mandatory. Its value must match the name of a node in your model mesh. If you don't want to attach to a node the attribute must still be present - you can put a placeholder value such as "__NO_NODE__" to make sure you don't accidentally match a node in your model - and you must provide a contact point to spawn on with the <FX_CONTACT_POINT_ID> template parameter."

Hopefully, after an easier to comprehend / utilize MSFS VFX SDK GUI is developed, manual coding may not always be required.

GaryGB
 
Last edited:
Hello and best regards :)

I'm currently facing a small problem. A small boat is supposed to be sailing in the port of Rotterdam, and it's supposed to have a wake effect.
As described by @superspud in post #16, I've added a corresponding section to the model.xml:

Code:
<ModelBehaviors>
    <Include ModelBehaviorFile="Asobo\Generic\FX.xml"/>
    <Component ID="BOAT_WAKE_FX_Back">
        <Parameters Type="Override">
            <FX_GRAPH_PARAM_0>Front_Back, 0</FX_GRAPH_PARAM_0>
            <FX_GRAPH_PARAM_1>Life, 12</FX_GRAPH_PARAM_1>
            <FX_GRAPH_PARAM_2>Pos_Z, -3</FX_GRAPH_PARAM_2>
            <FX_GRAPH_PARAM_3>Clamp_Wave, 1.5</FX_GRAPH_PARAM_3>
            <FX_GRAPH_PARAM_4>Clamp_Wave_Min, 1</FX_GRAPH_PARAM_4>
            <FX_GRAPH_PARAM_5>Clamp_Wave_Max, 5</FX_GRAPH_PARAM_5>
        </Parameters>
        <UseTemplate Name="ASOBO_WATER_NODE_BOATWAKE_FX"/>
    </Component>
</ModelBehaviors>

Everything works very well, the effect fits the boat very well and looks great. And I'm very grateful for the good information here.
But what bothers me, and doesn't quite fit the small boat, is that there's a "hole" in the water:

little_boat_wake_effekt_1.jpg
little_boat_wake_effekt_2.jpg


Question: how do I get rid of this hole effect?
 
Back
Top