Jump to content
Sign in to follow this  
VonNexus

How to make a wreck smoke

Recommended Posts

Hello everyone,

I'm working on a mission based on close quarter combat in a half destroyed village filled with wrecks. I'd really like to have smoke billowing from some of the wrecks because it would help getting a good atmosphere, plus learning how to spawn the smoke effect could come in handy when doing Search and Rescue missions.

I'm not pretty new to this kind of stuff, as I've used that effect in some ArmA 2 scenarios.

In ArmA 2, I've always used two methods:

The first is the "infamous"

BIS_Effects_Burn=compile preprocessFileLineNumbers "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";

which is suggested in almost every ArmA 2 post about having things smoking.

The second one would be using a smoke.sqf containing the following:

private ["_obj","_Smoke","_smoke2"];

_obj = _this select 0;

_smoke = "#particlesource" createVehicleLocal getpos _obj;
_smoke setParticleCircle [0, [0, 0, 0]];
_smoke setParticleRandom [0, [0.1, 0.1, 0.1], [random 0.5,random 0.5,random 0.5], 0.1, 0.1, [0, 0, 0, 0], 0.1, 0];
_smoke setParticleParams[["\ca\Data\ParticleEffects\Universal\Universal",16,7,48,1], "", "Billboard", 25, 35, 
[0,0,0],[0,0,0], 0, 1, 0.96, 1, [10,15,30,45], [[0.1, 0.1, 0.1, 1],[0.9, 0.9, 0.9, 1],[0.9, 0.9, 0.9, 0.9],[0.1,0.1,0.1,0.5]], [0.3], 0.2, 0.2,"", "", _obj];
_smoke setDropInterval 0.8;

_smoke2 = "#particlesource" createVehicleLocal getpos _obj;
_smoke2 setParticleCircle [0, [0, 0, 0]];
_smoke2 setParticleRandom [0, [0.1, 0.1, 0.1], [random 0.5,random 0.5,random 0.5], 0.1, 0.1, [0, 0, 0, 0], 0.1, 0];
_smoke2 setParticleParams[["\ca\Data\ParticleEffects\Universal\Universal",16,7,48], "", "Billboard", 1, 25, 
[0, 0, 0], [0, 0, 0.5], 1, 1, 0.75, 10, [10,30,40], [[1, 1, 1, 0.3],[1, 1, 1, 0.2],[1, 1, 1, 0.1]], [0.1], 0, 0, "", "", _obj];
_smoke2 setDropInterval 1;




waitUntil {apu_stop_smoke == 1};
deleteVehicle _smoke2;
deleteVehicle _smoke;

exit;

This plays around with particles and I haven't made it, I just took it from a BI mission or somewhere else.

In ArmA 3 things are different. None of the two methods would work. The first one would display an error when used, stating that burn.sqf can't be found in the game directory (they probably have changed some things). The second method also leads to an error, this time implying the fact that the particles used in the script are nowhere to be found.

I did come across a way to make fire and smoke togheter using a blank helipad and typing

this = "test_EmptyObjectForFireBig" createVehicle position this;

This works, but it's not ideal for my mission because players should be allowed to take cover behind the smoking wrecks, but since fire in ArmA 3 harms people, that wouldn't be possible. Also IAs could run into it, and that's not good.

It is somehow possible to have wrecks smoking in the game, as can be seen in the first mission of the "Adapt" single player episode where Aggelchori is almost burnt to the ground and several wreckage has smoke billowing from it.

I tried searching for what I'm looking for on the Internet and on the forum. Found nothing but ArmA 2 scripts which won't do the trick.

Is anyone out there familiar with ArmA 3 particles' system and new ways to handle smoke, fire and effects?

Thanks in advice.

Share this post


Link to post
Share on other sites

There is also an object for smoke only like test_EmptyObjectForFireBig. Don't know the name now... use config Browser.

Maybe it is test_EmptyObjectForSmokeBig

Share this post


Link to post
Share on other sites
There is also an object for smoke only like test_EmptyObjectForFireBig. Don't know the name now... use config Browser.

Maybe it is test_EmptyObjectForSmokeBig

I won't lie, I'm still pretty new to the ArmA 3 config browser. What should I search for in particular?

Share this post


Link to post
Share on other sites

You can take a look at my IED script and see how I created different kinds of smoke there.

http://forums.bistudio.com/showthread.php?170703-Randomly-generated-roadside-IEDs

Look in the IedSmoke.sqf

If you want a tool that helps change the particle array systematically, check out super-truites particle editor

http://forums.bistudio.com/showthread.php?157226-Particle-Editor

Share this post


Link to post
Share on other sites

this = "test_EmptyObjectForSmoke" createVehicle position this;

Try this

Share this post


Link to post
Share on other sites
this = "test_EmptyObjectForSmoke" createVehicle position this;

Try this

Where do you put this? in the objects init field?
What about the smoke and fire modules.
Arent they only in dev branch?
  • Like 1

Share this post


Link to post
Share on other sites

Right, looks like I've figured this out.

The easiest way is the one that sion suggested.

I got to something similar to this:

Put down a game logic (it can also be an object, a small object, a blank helipad, a random object which you will hide via script, anything will do). Then put down your wreck and name it, I have chosen smoking_wreck for example. The code goes straight into the game logic init field:

smoke1 = "test_EmptyObjectForSmoke" createVehicle position this; smoke1 setpos (getpos smoking_wreck);

By doing this, you'll have a nice smoke column (also influenced by wind) billowing from the wreck. You can also type the above code in the wreck init field, but I've noticed that this results in having the column slightly far from the actual object. That explains the setpos. I have tried just with adding the setpos after the createVehicle, but that results in having the wrong position aswell.

F2k Sel, what do you mean by "fire and smoke modules" ?

I do know that you can find modules for spawning smoke grenades, chemlights or tracers, but didn't notice any ambiental smoke related module.

Share this post


Link to post
Share on other sites

They may be only available in Dev Build, last time I checked you could adjust a few of the parameters. They may also have been removed as modules do keep appearing and then get removed.

Share this post


Link to post
Share on other sites

It was mentioned after the last update that smoke (didn't know about fire) would be released in module form, just like chemlights, smoke grenades etc. But as already stated, it hasn't made in to stable build yet.

Share this post


Link to post
Share on other sites

Here is the code I used for a similar effect:

fire = "test_EmptyObjectForFireBig" createVehicle (position this); 
fire attachTo [this, [0, 1.5, 0]];

Just put this in your wreck init. Maybe you'll need to adjust the position [0, 1.5, 0] (it's a simple x,y,z grid] to fit what you're expecting.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×