Jump to content

[1.12.x] Waterfall - a framework for continuous, mesh-driven engine effects (Aug 2)


Nertea

Recommended Posts

Also a few bug reports:

As soon as any scale/rotation/position modifier is used the offsets get locked out. So long as a modifier exists the associated offset gets locked out.

using multiple modifiers set to multiply (or anything else) doesn't work properly, tested with scale on the instance, not the mesh: When using a scale modifier to modify the Z axis based on throttle it works, when adding another, seperate modifier that changes x and y axis with both set to multiply both modifiers show no effects when throttle is changed.

the random controller doesn't appear to work properly: using a position modifier with a curve on a single axis and the controller set to random as a controller nothing happened, when then checking the "use randomness" button the effect started moving on all axis, ignoring the set-up axis.

a minor one, when adding a new materialFloat modifier then this one only works on the mesh itself. the instance button gets hidden when selecting material float. However the button does not get hidden when the previous added modifier also was a materialFloat and so materialFloat is already pre-selected as the modifier type.

And a few last words, I truly think this mod is amazing, keep the awesome work up! The more I learn how to use this mod the better my FX get, also thanks to the help I  got here. My plan is to release a patch pack for all airbreathing engines soon.

Edited by HB Stratos
Link to comment
Share on other sites

15 hours ago, HB Stratos said:

As soon as any scale/rotation/position modifier is used the offsets get locked out. So long as a modifier exists the associated offset gets locked out.

This is intended behaviour. The offsets are shortcuts for the root object  only - if you modify it with a modifier, the modifier becomes the primary controller. If you want to use offsets AND modifiers, target the lower objects in the hierarchy with the modifier. 

15 hours ago, HB Stratos said:

using multiple modifiers set to multiply (or anything else) doesn't work properly, tested with scale on the instance, not the mesh: When using a scale modifier to modify the Z axis based on throttle it works, when adding another, seperate modifier that changes x and y axis with both set to multiply both modifiers show no effects when throttle is changed.

This seems to work fine for me (tested this morning).

  • I placed a Scale modifier set to Replace, with values of 1, 1, 1 tied to throttle
  • I placed a Scale modifier set to Multiply, with values of 1, 1, 1 tied to throttle

As expected, this set the plume scale to 1,1,1 and multiplied it by 1,1,1, so no change. Changing the second effect multiplied the values of the first correctly (halved at 0.5, doubled at 2.0).

15 hours ago, HB Stratos said:

the random controller doesn't appear to work properly: using a position modifier with a curve on a single axis and the controller set to random as a controller nothing happened, when then checking the "use randomness" button the effect started moving on all axis, ignoring the set-up axis.

Modifiers don't have a concept of single, double, etc axis at all, so definitely when using the use randomness function - that's a shortcut to allow easy use of randomness. If you want to use specific, axial randomness, you will use a separate modifier set to multiply, using a curve set to 1 on the axes you don't want to multiply. 

When using randomness, ensure the editor has appropriate randomness sample boxes set. Default is 0,0 so you won't see any effect unless you change those. When verifying this I noticed a bug where you can't put negative values in there so I'll look at that.

15 hours ago, HB Stratos said:

a minor one, when adding a new materialFloat modifier then this one only works on the mesh itself. the instance button gets hidden when selecting material float. However the button does not get hidden when the previous added modifier also was a materialFloat and so materialFloat is already pre-selected as the modifier type.

 

I think you really could use some screenshots here, I *think* I see what you mean but it took like 5 minutes of squinting :P

 

 

15 hours ago, HB Stratos said:

I wasn't able to find any resourches that teach how to actually get code and not just models into ksp, if you could show me some that would helpme a lot. And I understand, your projects, your decisions.

 

I learned by looking at other people's projects. Lots of source on Git - check out a simple one to get started.

15 hours ago, HB Stratos said:

Well yes but no, it just isn't possible to spawn enough particles to stop them getting ripped apart on laggy craft. As for black smoke, all shaders ksp provides for particles are as far as I have seen additive and therefore do not allow black smoke.

I disagree, you're operating with the mindset that all that is available is what KSP gives you. That is not true!

15 hours ago, HB Stratos said:

I want to distort a plume based on gimbal deflection, I know that parenting is possible and I already used it on my engines.

 

I see, so you're realistically looking for a way to lock a transform's position to another transform with a specific offset. That's likely possible. 

15 hours ago, HB Stratos said:

And a few last words, I truly think this mod is amazing, keep the awesome work up! The more I learn how to use this mod the better my FX get, also thanks to the help I  got here. My plan is to release a patch pack for all airbreathing engines soon.

Great!

I really suggest you don't release anything until this mod is at least version controlled. 

Link to comment
Share on other sites

I'm not expecting high level mod with all things done already, I understand that this is WIP mod that is new and has a lot of parts that needs to be done. Good luck developing this mod Nertea

Link to comment
Share on other sites

35 minutes ago, GuessingEveryDay said:

I'm looking at the OP, and I see the words:

Will this mean, that if we use a differnet engine, and try to edit it with Waterfall, it will make a new config for that engine @Nertea?

No, you need to follow the documentation. A new module needs to be added in the config first. 

Link to comment
Share on other sites

OK, so big update was deployed. I've moved to a release/version controlled model - please download packages from the Releases page. This means, overall that I will try to preserve stability a bit more with releases, but it does not mean it is ready for public consumption

Major changes

  • Improved templating system (see many examples in the repo)
  • Support for templating in the UI
  • Several new seamless noise textures for use in effects. 
  • New Additive Directional shader that can improve the look of effects from behind in many cases
  • New Alpha shader that is suitable for film cooling effects (but not much else)
  • Changed rotation specification to euler instead of vector. This will cause problems with existing effects. Sorry. Fixes are very easy though.
  • A number of under the hood improvements and fixes
  • New effect replacements, lineup is currently:
    • Squad: Vector, Mammoth, Mainsail, Twin Boar, Poodle, Reliant, Swivel, Terrier, LV-N, Kodiak, RCS blocks, Mk3-1 RCS jets
    • Restock+: Boar, Ursa, Valiant, Pug, large RCS blocks

Likely in the next version this mod will split in two - one to provide stock configuration, one for the plugin+templates only. 

Edited by Nertea
Link to comment
Share on other sites

So, testing out the new effect replacements (using ReStock & ReStock+), and they're pretty good; there's a couple issues, however.
First, at least for the ReStock model, the Poodle's engine plume is rotated to the side and seems a bit undersized. I was able to tweak the offset values to get it looking good, though:

Spoiler

positionOffset = 0,-0.075,-0.17
rotationOffset = -90,180,0
scaleOffset = 0.18,3,0.2

 

The Mainsail uses the stock particle system instead of using a Waterfall plume; I'm guessing a broken config file.
The Terrier also has the same problem as the Poodle in terms of plume rotation & scale. Here's the offset values I found worked well:

Spoiler

positionOffset = 0,0,0.1
rotationOffset = -90,0,0
scaleOffset = 0.28,3,0.28

 

The plumes all look gorgeous, by the way!

Oh, also: on a few engines, the plume model shows up as part of the green selection highlight thingy in flight. Here's a list:

Spoiler
  • Terrier
  • Swivel
  • Pug

 

Link to comment
Share on other sites

1 hour ago, Starseeker said:

So, testing out the new effect replacements (using ReStock & ReStock+), and they're pretty good; there's a couple issues, however.
First, at least for the ReStock model, the Poodle's engine plume is rotated to the side and seems a bit undersized. I was able to tweak the offset values to get it looking good, though:

  Reveal hidden contents


positionOffset = 0,-0.075,-0.17
rotationOffset = -90,180,0
scaleOffset = 0.18,3,0.2

 

The Mainsail uses the stock particle system instead of using a Waterfall plume; I'm guessing a broken config file.
The Terrier also has the same problem as the Poodle in terms of plume rotation & scale. Here's the offset values I found worked well:

  Reveal hidden contents


positionOffset = 0,0,0.1
rotationOffset = -90,0,0
scaleOffset = 0.28,3,0.28

 

The plumes all look gorgeous, by the way!

Oh, also: on a few engines, the plume model shows up as part of the green selection highlight thingy in flight. Here's a list:

  Reveal hidden contents
  • Terrier
  • Swivel
  • Pug

 

It's not that, it's that the Squad method I'm using for parsing offsets seems to fail if there are spaces in the string. 10/10 would hire development team.

I'll write my own and issue a fix shortly.

Link to comment
Share on other sites

27 minutes ago, Nertea said:

It's not that, it's that the Squad method I'm using for parsing offsets seems to fail if there are spaces in the string. 10/10 would hire development team.

I'll write my own and issue a fix shortly.

Ah, gotcha! Yeah that seems like... odd behavior.

On a separate topic, would configurations for engines from, say, Cryo Engines be welcome? Or are you wanting to keep that to the team you have?

Link to comment
Share on other sites

Latest release (0.1.1) seems to have corrected the parsing issue. 

7 hours ago, Starseeker said:

On a separate topic, would configurations for engines from, say, Cryo Engines be welcome? Or are you wanting to keep that to the team you have?

Yes absolutely welcome. I planned to do them eventually but if someone else makes high quality effects, I'll use them for sure. 

The medium term goal is to split actual patches out from this mod and keep it as a framework. This mod should supply primarily templates and resources. So:

  • Waterfall: contains plugin, templates appropriate for all stock engines, maybe a few more
  • WaterfallStock: contains patches applying templates to stock engines
  • Other Mods: contains patches applying templates to their own engines, and their own engines

In this model we would probably place the CE effects in CE itself. 

Link to comment
Share on other sites

2 hours ago, Nertea said:

Yes absolutely welcome. I planned to do them eventually but if someone else makes high quality effects, I'll use them for sure. 

The medium term goal is to split actual patches out from this mod and keep it as a framework. This mod should supply primarily templates and resources. So:

  • Waterfall: contains plugin, templates appropriate for all stock engines, maybe a few more
  • WaterfallStock: contains patches applying templates to stock engines
  • Other Mods: contains patches applying templates to their own engines, and their own engines

In this model we would probably place the CE effects in CE itself. 

Alrighty!

Do you have a list of what engines are based on what IRL ones? I'm guessing the 1.25m, 1.875m, and 3.75m extendable ones are based on the RL-10, and the 3.75m sustainer on the Delta IV's engine(s). (also, should I move that to the cryo engines thread?)

Edited by Starseeker
Found the IRL engines named in the files
Link to comment
Share on other sites

A patch I wrote (well, "wrote" :wink:), while it's successfully applying the waterfall FX module to the engine so that I can play around with the in-game editor, isn't applying the template I'm asking it to.

Here's the patch, targeting the Vesuvius from CryoEngines (copy/pasted from the SSME patch with the relevant names changed):

Spoiler

@PART[cryoengine-vesuvius-1]:AFTER[CryoEngines]
{
  MODULE
  {
    name = ModuleWaterfallFX
    // This is a custom name and should be unique in the config. 
    // It will also be used for UI display
    moduleID = vesuviusFX
    // This links the effects to a given ModuleEngines. 
    // If not found or not specified, it will use the first one it finds
    engineID = basicEngine

    // List out all controllers we want available
    // This controller scales with atmosphere depth
    CONTROLLER
    {
      name = atmosphereDepth
      linkedTo = atmosphere_density
    }
    // This controller scales with effective throttle
    CONTROLLER
    {
      name = throttle
      linkedTo = throttle
    }
    TEMPLATE
    {
      // This is the name of the template to use
      templateName = waterfall-hydrolox-rs25-1
      // This field allows you to override the parentTransform name in the EFFECTS contained in the template
      overrideParentTransform = thrustTransform
      scale = 1,1,1
      rotation = 0,0,0
      position = 0,0.0,0
    }
  }
}

 

The filepath is "GameData\WaterfallCustom\CryoEngines\125\cryoEngineVesuviusWaterfallFX.cfg", do I need to specify the filepath of the template I'm trying to use?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...