Jump to content

HotRockets! Particle FX Replacement + Tutorial


Nazari1382

Recommended Posts

A replacement for stock engine particle FX. If you are tired of seeing the same old effects, HotRockets is for you!

 

Note: SmokeScreen + ModuleManager are required dependencies.

Download the legacy version here (compatible with KSP 1.1):

Download HotRockets

Note that HotRockets is primarily my set of replacements for stock engines. I no longer support FX packs for mod engines, but you are able to use the HotRockets assets for your mods. Many mods now make use of HotRockets assets to improve engine FX; some will add support for mod engines, and some have additional features for stock and mod engines such as resized plumes or easily added preconfigured effects.

Mods using HotRockets art assets

Kerbin Shuttle Orbiter

B9 Aerospace

Space Shuttle System

Realplume

Realplume stock configs

 

Mods with HotRockets support for new engine parts

Vens Stock Revamp

 

License:

HotRockets Art Assets: http://creativecommons.org/licenses/by-nc/4.0/

Powered by SmokeScreen + ModuleManager(by Sarbian): http://opensource.org/licenses/BSD-2-Clause

Screenshots of HotRockets effects in-game:

cNGgPDL.png

 

PuC5mcZ.png

 

yTHQPJS.png

--------------

Sb1mQlS.png

Zrd8XL9.png

9FkKgK5.png

oEDtUEw.png

V5F6CAv.png

4sdWpTx.png

pz728Wa.png

 

Basic guide for getting custom particles functioning in the game

The method for getting custom engine FX working is fairly simple with the new system, but unfortunately was not covered by an official tutorial on the forum. This will be a small guide for getting them working in game and it will leave the details of the effect up to you.

Note: the effect being animated like a heat effect is not necessary with the ModuleEnginesFX system.

1) Game objects

Create an empty game object at the origin that you will use for exporting. This will have a partTools component on it that you will use to write the .Mu file to your FX folder.

Create an empty object as a child of the exporter object. This object will have the KSPParticle Emitter script on it. I call mine 'emit'. This allows you to easily tweak the position of the effect within the actual exported object.

I also make an additional object and name it smokePoint so I am able to move the smoke transform away from the flame transform, but this is not required.

TFxsRwu.png

ErdEvG8.png

2)Texture

Create a new material for each effect you make. This will ensure you don't overwrite the properties of another effect you have. I work with all of my effects in one unity scene by duplicating exporter objects and changing what I need to, so once I duplicate an effect, I create a new material in Unity and add a texture to it.

Assign your material to the particle effect using the "Material" property on your KSPParticle Emitter.

To create the appearance of a glowing flame, you will need to use the KSP/Particles/Additive shader. Create a 256x256 or smaller image file with alpha that you can use for the effect. Creating the actual image file is fairly straightforward if you look at the current files being used, but I will say that for a transparent additive effect even your strongest colors must have extremely low alpha, almost making the effect invisible.

To create a smoke effect, you will want to use Alpha Blended instead of the additive shader.

3) Parameters on the KSPParticle Emitter

This is how you will control the style of the effect you make. It will most likely require a lot of small changes and reloading the game to see your effect, because it will not look the same in Unity. So enjoy experimenting =).

A couple important ones:

Simulate World Space - this parameter, if unchecked, will keep your effect local to the transform it's on. This is how you create a flame that looks like one cohesive effect, and not something that sprays in every direction or curves. While you would use this for smoke, having an effect with the box checked in addition to one without it will cause HUGE errors in the current version of KSP, and is the reason my effects use stock smoke right now. Nothke and I spent tons of time trying every method to get around it, but a plugin or fix by Squad seems to be necessary, and I am not a plugin creator.

Energy - the lifetime of your particles. With the current system, this seems to be one of the parameters along with growth that can only be changed in the Unity editor.

Emission - amount of particles emitted. Use as low an amount as possible while achieving the effect you want. I have used ranges near 150 or as high as 350 for my FX.

Shape - controls the shape of the emitter, mine use Ellipsoid.

Local Velocity - you will want at least 10+ velocity on Z for a fast looking effect.

Most of the other parameters are something that just needs be be experimented with to get the style you want. Try animating the color of your effect, and lowering the alpha as it progresses through each color.

Shadows - all of my effects have Casting and Receiving unchecked.

When you think you have the parameters set the way you want, select the PartTools object and click "write" to export the .Mu file and texture to your chosen folder.

4) Game configuration file

For adding an effect into the part config for an engine, I will typically comment out each line of the old effects, preserving them if needed, then highlight the following lines in the config

MODULE

{

name = ModuleEngines

thrustVectorTransformName = thrustTransform

 

and paste this to replace them:

 

 
    EFFECTS
    {
        powerflame
        {
            MODEL_MULTI_PARTICLE
            {
                name = flamethrust
                modelName = MP_Nazari/FX/flamestandard
                transformName = thrustTransform
                emission = 0.0 0.0
                emission = 0.05 0.99
                emission = 0.75 1.21
                emission = 1.0 1.25
                speed = 0.0 1.70
                speed = 1.0 1.65
            }
            AUDIO
            {
                channel = Ship
                clip = sound_rocket_hard
                volume = 0.0 0.0
                volume = 1.0 1.0
                pitch = 0.0 0.2
                pitch = 1.0 1.0
                loop = true
            }
        }
        powersmoke
        {
            PREFAB_PARTICLE
            {
                name = flamethrust2
                prefabName = fx_smokeTrail_light 
                transformName = smokePoint
                emission = 0.0 0.0
                emission = 0.05 0.0
                emission = 0.075 0.25
                emission = 1.0 1.25
                speed = 0.0 0.25
                speed = 1.0 1.0
                localOffset = 0, 0, 1
            }
        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = sound_vent_medium
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        disengage
        {
            AUDIO
            {
                channel = Ship
                clip = sound_vent_soft
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        flameout
        {
            AUDIO
            {
                channel = Ship
                clip = sound_explosion_low
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
    }
    MODULE
    {
	name = ModuleEnginesFX
	//engineID = rocketengine
	runningEffectName = powersmoke
	directThrottleEffectName = powerflame
	thrustVectorTransformName = thrustTransform

 

Edit the path to any effect files, change effect properties or add modules as needed.

-For the method to add this to an existing engine with ModuleManager, see the actual config file included with HotRockets.

-Note that powersmoke and powerflame are simply what I wanted to name my effects for flames and smoke. You can create your own effect name.

-If you use two flame particles in one effect, give them each a unique entry under "name"

-Remember to make the thrustTransform in the effect match the transform you want in the engine.

-EngineID is used for multiple-mode engines, check the rapier config to see the setup for that.

-Emission curves within each effect: you may have seen curves used in a few other modules when modding KSP. This is also fairly simple. The first number is the level of engine power, the second is the percentage of emission/speed/etc divided by 100.

I believe that covers everything needed to get a custom engine effect working.

Edited by Nazari1382
Link to comment
Share on other sites

You will need to do it manually but its not too hard. Simply put // in front of any default fx & sound lines in the cfg, then copy and paste the EFFECTS module from one of my replacement CFGS. Lastly,copy and paste the first three lines within my engine module to your engine module.

Link to comment
Share on other sites

how did you 0_O

I tried doing that

1wzEm4I.png

BUT it wont show in game. All it gives me is [Error]: ParticleModelFX: Cannot find particle emitter on model of name 'Osprey_Propultion_Technologies/FX/Afterburner_Jet'

when i clearly have the particle emitter RIGHT here. Any reason?

Edited by rasheed
Link to comment
Share on other sites

Nazari, why did you change the SRBs away from the thick smoke effects? Other than that, this is just about fan-ta-stic. Great work, sadly my computer is borked up currently. I'll try to fix it tomorrow, and then I'll be sure to try this out..

Link to comment
Share on other sites

I'd like to do custom thick smoke, but as I said I've run into huge bugs. I can put back the yellow smoke for the srb, I'm just not a fan of it. Nothke and I are both working on this issue.

Hmm, it's not that big of a problem I believe a fix can wait :)

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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...