Search the Community
Showing results for tags 'particle'.
-
I am working on a part with RCS ports, so I can't use stock RCS effects (they appear to be multiparticle effects, and don't work well with the model in question). Unfortunately, KSP PartTools' particle emitter breaks my saved particle effects, and the "set up particle emitter" button does absolutely nothing. I'm going to see if I can get my effects to work without it, but I doubt KSP will support them. Help.
-
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: -------------- 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. 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.
-
Hi, Basically I want to add dust particles to one of drill animations. When I import animations to unity from blender I cannot edit them (to add smoke to running drill animation), imported animations are displayed as read-only. Please help edit [Solved] couldn't include particles in animation (somehow cannot export particles in animation component - KSP doesn't show the part). However exporting just KSP particles with part works. However you need to write a custom code that activates and deactivates particle emission. Relevant code: private KSPParticleEmitter harvesterParticleEmitter; harvesterParticleEmitter = base.part.GetComponentsInChildren<KSPParticleEmitter>(); ---- function code ---------------------------------- harvesterParticleEmitters.emit = true;
-
Hi, folks. I've been dinking around making my own flame effects for an engine model I've been working on. Everything seems to be what I expect until I uncheck "simulate world space" and then the rotation is wrong. I have a root game object with part tools and an empty with the particle emitter script as it's only child. The engine is an entirely separate game object. With Simulate World Space checked: With world space unchecked: Why does the direction of the emit change? What's even weirder, to me, is that it to get it to emit in the expected direction, I have to rotate the X axis by 45 degrees, rather than 90. If I set X axis to zero, the particles emit in exactly the opposite direction! Thanks, K
-
I'm updating my fuel dump nozzle to 1.2 from 1.1.3. I was using unity 5.4 and in 1.1.3, I could compile my nozzle with ksp particle effect with part tools. but when i try to compile it like that and try in KSP, I cannot fine my part. Did part tools changed? how? Can't we complie the FX with part tools from now?
-
I've been working on fuel jettison nozzle mod. For now, I've done fuel subtracting plugin but now, I can't find way to add effect. Sound seems to be easy to add with fxgroup. but how do i add smoke and fire? My part is not a engine so moduleenginefx seems not appropriate and using KSPADDON seems too complicated. I just wanna know how to add default effects. What I'm gonna make is a fuel jettison nozzle with long smoke trail, and fire trail when heated. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyKSPProject { public class HelloKerbinMod : PartModule { FXGroup fx = new FXGroup("smoke"); [KSPField(guiActive = true, guiActiveEditor = true, guiName = "Status", isPersistant = true)] string status; [KSPField(guiActive = true, guiActiveEditor = false, guiFormat = "F1", guiName = "Fuel Amount", guiUnits = "L", isPersistant = true)] double fuel; [KSPField(guiActive = true, guiActiveEditor = true, guiFormat = "F1", guiName = "Nozzle Size", guiUnits = "cm^2", isPersistant = true)] public float nozzleSize; [KSPField(guiActive = true, guiActiveEditor = false, guiFormat = "F0", guiName = "Tanks found", isPersistant = true)] public int tanks; [KSPEvent(active = true, externalToEVAOnly = false, guiActive = true, guiActiveEditor = false, guiActiveUncommand = false, guiActiveUnfocused = false, name = "toggleNozzle", guiName = "Toggle Nozzle")] public void toggleNozzle() { part.enabled = !part.enabled; if (fuel == 0) { status = "TANK EMPTY"; } else { status = part.enabled ? "Opend" : "Closed"; } } public void consumeFuel() { foreach (Part p in vessel.parts) { foreach (PartResource r in p.Resources) { if (r.resourceName == "LiquidFuel" && r.amount > 0) { r.amount -= nozzleSize / tanks; fx.setActive(true); } if (r.amount < 0) { r.amount = 0; } } } } public override void OnLoad(ConfigNode node) { nozzleSize = float.Parse(node.GetValue("nozzleSize")); if (fuel == 0) { status = "TANK EMPTY"; } else { status = part.enabled ? "Opend" : "Closed"; } fx.name = "fx_smokeTrail_medium"; part.enabled = false; part.deactivate(); base.OnLoad(node); } public override void OnUpdate() { consumeFuel(); if (!status.Contains("TEMP") && part.temperature >= 1000) { status += " TEMP WARNING!!"; } base.OnUpdate(); } public void Update() { EstimateFuel(); } public void EstimateFuel() { double tmpfuel = 0; int tmptanks = 0; foreach (Part p in vessel.parts) { foreach (PartResource r in p.Resources) { if (r.resourceName == "LiquidFuel") { tmpfuel += r.amount; tmptanks++; } } } fuel = tmpfuel; tanks = tmptanks; if (fuel <= 0) { part.enabled = false; } } } } here's the code. and let me ask one more thing.. why status is not refreshed at first time in flight scene? status field is blank when its started and starts to display something after when i activate KSPEVENT.
-
In one of my recently released parts, I have an issue with my KSP Particle Emitters (KPE) disappearing when viewed from certain angles. As it's difficult to describe in text, I'll just post a screenshot: Those are 4 different instances of the same part, each with two 2D oval-shaped KPEs, a green one on the right and a blue one on the left (particles change color to a yellow/orange/red as they move to the center, where they disappear). As you can see from the image, I've pointed out three missing particle emitters, because of the angle from which they are viewed. Additionally, the particle emitters disappear if the part is highlighted (mouse-over). This did not happen in Unity 4 based KSP, and I'm wondering what changed and how I can fix it. At first I thought it was some weird occlusion culling bug, but after reading about Unity's occlusion culling, and the settings it requires in the Unity editor, I don't believe this to be the case. Any help or ideas are appreciated, and if you want to see the problem with the parts in game yourself, you can get them here (it's especially bad on the radial fuel cells).