Jump to content
Tankbuster

create an explosion effect?

Recommended Posts

Guys,

 

I need an explosion effect to cover up my mission hiding large objects, specifically the bridgesea_01_f.p3d (and it's roadpiece). I've tried spawning the cruise missile ammo there and it sort of does the job except the explosion effect is too large and the smoke takes too long to form to obscure the object hiding.

 

I've not got into particles so I'm very much in the dark here. Does anyone have an effect they would be willing to share? I need something big (the bridge is 48 across) and it needs to propagate quickly (less than a second) to full size.

 

I did turn up an existing thread, where someone was able to spawn harmless explosion effects near the player, and I modified it to spawn at a given location, but I broke it while trying to make it bigger and I now can't find the search result.

Share this post


Link to post
Share on other sites

Since you're hiding it, I suppose the bridge itself isn't destructible?

I'm not on my computer right now, but you could take a look at my Contact mission :

 

I use fairly large explosions when the UFO is shot down, crashes onto the ground and destroys everything beneath it. Feel free to take a look, maybe they will better suit your needs.

 

Another alternative : @h - recently released his Emitter 3Ditor : https://steamcommunity.com/sharedfiles/filedetails/?id=1613905318

You can browse all the vanilla particle effects, modify them or create yours.

Share this post


Link to post
Share on other sites

Hello there Tankbuster !

 

There is if you want to check a large explosion if you want to check ( particle effects ) By brians200 in ExplosionEffects.sqf of

 

 

 

Share this post


Link to post
Share on other sites
2 minutes ago, haleks said:

Since you're hiding it, I suppose the bridge itself isn't destructible?

I'm not on my computer right now, but you could take a look at my Contact mission :

 

I use fairly large explosions when the UFO is shot down, crashes onto the ground and destroys everything beneath it. Feel free to take a look, maybe they will better suit your needs.

 

Another alternative : @h - recently released his Emitter 3Ditor : https://steamcommunity.com/sharedfiles/filedetails/?id=1613905318

You can browse all the vanilla particle effects, modify them or create yours.

Yes, I'm sensing "#explosion" using nearestobjects and hiding the bridge. I'll check that out, thanks.

Share this post


Link to post
Share on other sites
2 minutes ago, GEORGE FLOROS GR said:

Hello there Tankbuster !

 

There is if you want to check a large explosion if you want to check ( particle effects ) By brians200 in ExplosionEffects.sqf of

 

 

 

Ah yes, Brians200. I remember him.  I'll have a look, thanks G.

Share this post


Link to post
Share on other sites

I used a modified version of the script from @Brians200. He's long gone from the community now, apparently. 😞

Thanks to @Dedmenfor some help in the discord channel too.

Needs a little tweaking, but you get the idea.

 

 

  • Like 3

Share this post


Link to post
Share on other sites
43 minutes ago, Tankbuster said:

Needs a little tweaking, but you get the idea.

 

It looks quite good and if you want once it's done share your code please !

Thanks Tankbuster !

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Tankbuster said:

Needs a little tweaking, but you get the idea.

That looks great dude.  Please do post your final solution.  You could spice it up by spawning some falling debris objects below the bridge.  Maybe cinder blocks, small grey rocks...anything that looks like cement and metal pieces from a distance.   If they are physics objects you will get some splashes in the water below.

  • Like 3

Share this post


Link to post
Share on other sites
2 minutes ago, johnnyboy said:

If they are physics objects you will get some splashes in the water below.

 

You always do have johnnyboy great ideas !

You may also to add a camshake for the explosion based on distance , - my thought too !

  • Like 1

Share this post


Link to post
Share on other sites

if you want help with particles.... let me know.

  • Like 3

Share this post


Link to post
Share on other sites

This particular secondary mission tasks with players destroying an infrastructure object from distance, ie a deniable explosion. So players are told to be at least a kilometer away when the target is destroyed.

This was partly as I wanted a test of players ability to find a distant oversight position and guide an unlocked missile over long distance. Though in testing players have been using satchels with long timers and running away as well, so I had to allow for that. They use artillery and Venator sometimes too.

The long distance means players are not close when the target is hit and hidden. The mission also tasks players with killing locomotives, pipelines, fueltanks, railway bridges, as well as the more traditional radio aerials, buildings and other such objects that are destructible.

I am going tart it up with debris and stuff. I've experimented with creating a fake object and sinking it into ground, but that has gone less well. I might bin that bit.

  • Like 2

Share this post


Link to post
Share on other sites

How about this one?

playSound3D [ "A3\Sounds_F\arsenal\explosives\grenades\Explosion_HE_grenade_01.wss", player, true, ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], 5, 1, 0 ];

_emitters = [];

_source1 = createVehicle [ "#particlesource", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_source1 setParticleClass "GrenadeExp";
_source1 setParticleParams [
[
"\A3\data_f\ParticleEffects\Universal\Universal",
16,
0,
32,
0
],
"",
"Billboard",
0.3,
0.3,
[ 0,0,0 ],
[ 0,1,0 ],
0,
10,
7.9,
0.1,
[ 0.0125 * 0.3 + 4, 0.0125 * 0.3 + 1 ],
[ [1,1,1,-6],[1,1,1,0] ],
[ 1 ],
0.2,
0.2,
"",
"",
_this,
0,
false,
0.6,
[ [ 30,30,30,0 ],[ 0,0,0,0 ] ]
];
_source1 setParticleRandom [
0,
[ 0.4,0.1,0.4 ],
[ 0.2,0.5,0.2 ],
90,
0.5,
[ 0,0,0,0 ],
0,
0,
1,
0.0
];
_source1 setParticleCircle [
0,
[ 0,0,0 ]
];
_source1 setParticleFire [1,15,0.1];
_emitters pushBack [ _source1, 0.3 ];

_source2 = createVehicle [ "#particlesource", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_source2 setParticleClass "GrenadeSmoke1";
_source2 setParticleParams [
[
"\A3\data_f\ParticleEffects\Universal\Universal",
16,
9,
1,
0
],
"",
"Billboard",
1,
8,
[ 0,0,0 ],
[ 0,1.5,0 ],
0,
0.0522,
0.04,
0.24,
[ 0.013 * 8 + 3, 0.0125 * 8 + 6, 0.013 * 8 + 8, 0.013 * 8 + 10 ],
[ [0.7,0.7,0.7,0.36],[0.8,0.8,0.8,0.24],[0.85,0.85,0.85,0.14],[0.9,0.9,0.9,0.08],[0.9,0.9,0.9,0.04],[1,1,1,0.01] ],
[ 1000 ],
0.2,
0.2,
"",
"",
_this,
0,
false,
0.6,
[ [ 30,30,30,0 ],[ 0,0,0,0 ] ]
];
_source2 setParticleRandom [
2,
[ 0.8,0.2,0.8 ],
[ 2.5,3.5,2.5 ],
3,
0.4,
[ 0,0,0,0 ],
0.5,
0.02,
1,
0.0
];
_source2 setParticleCircle [
0,
[ 0,0,0 ]
];
_source2 setDropInterval ( 0.08 );
_emitters pushBack [ _source2, 5 ];

_light = createVehicle [ "#lightPoint", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_light setLightAmbient [ 0,0,0 ];
_light setLightBrightness 10;
_light setLightColor [ 1,0.6,0.4 ];
_light setLightIntensity 10000;
_light setLightAttenuation [
0,
0,
0,
2.2,
500,
1000
];
_emitters pushBack [ _light, 0.3 ];

_time = diag_tickTime;
while{ count _emitters > 0 } do {
{
_x params[ "_source", "_length" ];
if ( diag_tickTime > _time + _length ) then {
deleteVehicle _source;
_emitters set[ _forEachIndex, objNull ];
};
}forEach _emitters;
_emitters = _emitters - [ objNull ];
};

I use something similar in my mission.

You can tweak its variables to suit your need.

Credit for this goes to Larrow

  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, Leopard20 said:

How about this one?


playSound3D [ "A3\Sounds_F\arsenal\explosives\grenades\Explosion_HE_grenade_01.wss", player, true, ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], 5, 1, 0 ];

_emitters = [];

_source1 = createVehicle [ "#particlesource", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_source1 setParticleClass "GrenadeExp";
_source1 setParticleParams [
[
"\A3\data_f\ParticleEffects\Universal\Universal",
16,
0,
32,
0
],
"",
"Billboard",
0.3,
0.3,
[ 0,0,0 ],
[ 0,1,0 ],
0,
10,
7.9,
0.1,
[ 0.0125 * 0.3 + 4, 0.0125 * 0.3 + 1 ],
[ [1,1,1,-6],[1,1,1,0] ],
[ 1 ],
0.2,
0.2,
"",
"",
_this,
0,
false,
0.6,
[ [ 30,30,30,0 ],[ 0,0,0,0 ] ]
];
_source1 setParticleRandom [
0,
[ 0.4,0.1,0.4 ],
[ 0.2,0.5,0.2 ],
90,
0.5,
[ 0,0,0,0 ],
0,
0,
1,
0.0
];
_source1 setParticleCircle [
0,
[ 0,0,0 ]
];
_source1 setParticleFire [1,15,0.1];
_emitters pushBack [ _source1, 0.3 ];

_source2 = createVehicle [ "#particlesource", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_source2 setParticleClass "GrenadeSmoke1";
_source2 setParticleParams [
[
"\A3\data_f\ParticleEffects\Universal\Universal",
16,
9,
1,
0
],
"",
"Billboard",
1,
8,
[ 0,0,0 ],
[ 0,1.5,0 ],
0,
0.0522,
0.04,
0.24,
[ 0.013 * 8 + 3, 0.0125 * 8 + 6, 0.013 * 8 + 8, 0.013 * 8 + 10 ],
[ [0.7,0.7,0.7,0.36],[0.8,0.8,0.8,0.24],[0.85,0.85,0.85,0.14],[0.9,0.9,0.9,0.08],[0.9,0.9,0.9,0.04],[1,1,1,0.01] ],
[ 1000 ],
0.2,
0.2,
"",
"",
_this,
0,
false,
0.6,
[ [ 30,30,30,0 ],[ 0,0,0,0 ] ]
];
_source2 setParticleRandom [
2,
[ 0.8,0.2,0.8 ],
[ 2.5,3.5,2.5 ],
3,
0.4,
[ 0,0,0,0 ],
0.5,
0.02,
1,
0.0
];
_source2 setParticleCircle [
0,
[ 0,0,0 ]
];
_source2 setDropInterval ( 0.08 );
_emitters pushBack [ _source2, 5 ];

_light = createVehicle [ "#lightPoint", ( player getPos [ 15, getDir player ] ) vectorAdd [ 0, 0, 5 ], [], 0, "CAN_COLLIDE" ];
_light setLightAmbient [ 0,0,0 ];
_light setLightBrightness 10;
_light setLightColor [ 1,0.6,0.4 ];
_light setLightIntensity 10000;
_light setLightAttenuation [
0,
0,
0,
2.2,
500,
1000
];
_emitters pushBack [ _light, 0.3 ];

_time = diag_tickTime;
while{ count _emitters > 0 } do {
{
_x params[ "_source", "_length" ];
if ( diag_tickTime > _time + _length ) then {
deleteVehicle _source;
_emitters set[ _forEachIndex, objNull ];
};
}forEach _emitters;
_emitters = _emitters - [ objNull ];
};

I use something similar in my mission.

You can tweak its variables to suit your need.

Credit for this goes to Larrow

It's not what I was after, but it is interesting to see how it does what it does and learn from it. Thank you very much. I think it was Larrowspost that I was talking about in the OP that I lost, in fact .

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

×