1. Yeah but why do you want to do this? There may be other ways or things to consider when changing bounds. What is the end result you are after? And with bounds I mean the bounding box, not the spawn area, to be clear. The bounds are used for rendering occlusion.
Hey man, thanks for the quick response !
I've got a material that bends visual level portions backwards to create a fisheye effect., but the visual particles vanish since the bounding boxes move off-screen as the character runs left and right. (this happens because the vertex shader does not move the bounding box along with the verts. Check the video to see the fisheye effect.
Anyways I had to boost the bounding boxes for all the smaller objects like rings and such to 10 or 30 depending on how far of a draw distance was needed.
[ame="http://www.youtube.com/watch?v=kAEg94TrAJc"]http://www.youtube.com/watch?v=kAEg94TrAJc[/ame]
anyways we set this up in our emitter class:
Begin Object Name=ParticleSystemComponent0
BoundsScale=50.0
End Object
ParticleSystemComponent=ParticleSystemComponent0
The player pawn class is what triggers the placement with this code:
{
SpinDashEmitter = Spawn(class'XGDKEmitter',self,,Location,GetRotation());
No compile errors. and the particle system shows up fine. but the bounds does not work.
Ok so you got a material that offsets the vertices, on a particle, thus the particle doesn't understand the vertices are not outside the bounds? Correct?
It is not the best for performance, but can't you simply set a huge bounding box on those particles then? So big that it will never be occluded? Easier than changing the boundsscale in real time.
Alternatively you could do a hack on this. If you can make the particle thing it is bigger than it is, it would extend its bounds to that further away location. So if you'd add a second emitter within, with just 1 sprite, which is invisible. And you offset that using a parameter or just scale it up to the size you want the bounding box to be, you'd presumably also force it to change its bounding box by using an easy to use particle parameter.
Ok so you got a material that offsets the vertices, on a particle, thus the particle doesn't understand the vertices are not outside the bounds? Correct?
It is not the best for performance, but can't you simply set a huge bounding box on those particles then? So big that it will never be occluded? Easier than changing the boundsscale in real time.
Alternatively you could do a hack on this. If you can make the particle thing it is bigger than it is, it would extend its bounds to that further away location. So if you'd add a second emitter within, with just 1 sprite, which is invisible. And you offset that using a parameter or just scale it up to the size you want the bounding box to be, you'd presumably also force it to change its bounding box by using an easy to use particle parameter
This idea is pretty good, although it did not work. Attempted it without the invisible texture. The particle system vanishes even when the particle is still on screen. ( when moving away from the particle spawner dropped by the player pawn)
Okay I found something in the cascade editor related to bounds, I can't believe that I missed it, because I kept selecting one of the particle options attribute properties like "Required" and didn't notice cascade had options when nothing was selected.
Yeah those were the settings I meant for manually setting a huge box. That would work, just not the best for performance but that probably wouldn't be a problem for you.
The other idea should work also though. You can display bounds in game and in the viewports to get a better view on what it does.
Replies
2. Add a Lock Axis module. It is in Orientation in the right click menu. http://udn.epicgames.com/Three/ParticleSystemReference.html#Orientation%20Modules
I've got a material that bends visual level portions backwards to create a fisheye effect., but the visual particles vanish since the bounding boxes move off-screen as the character runs left and right. (this happens because the vertex shader does not move the bounding box along with the verts. Check the video to see the fisheye effect.
Anyways I had to boost the bounding boxes for all the smaller objects like rings and such to 10 or 30 depending on how far of a draw distance was needed.
[ame="http://www.youtube.com/watch?v=kAEg94TrAJc"]http://www.youtube.com/watch?v=kAEg94TrAJc[/ame]
anyways we set this up in our emitter class:
Begin Object Name=ParticleSystemComponent0
BoundsScale=50.0
End Object
ParticleSystemComponent=ParticleSystemComponent0
The player pawn class is what triggers the placement with this code:
{
SpinDashEmitter = Spawn(class'XGDKEmitter',self,,Location,GetRotation());
No compile errors. and the particle system shows up fine. but the bounds does not work.
It is not the best for performance, but can't you simply set a huge bounding box on those particles then? So big that it will never be occluded? Easier than changing the boundsscale in real time.
Alternatively you could do a hack on this. If you can make the particle thing it is bigger than it is, it would extend its bounds to that further away location. So if you'd add a second emitter within, with just 1 sprite, which is invisible. And you offset that using a parameter or just scale it up to the size you want the bounding box to be, you'd presumably also force it to change its bounding box by using an easy to use particle parameter.
This idea is pretty good, although it did not work. Attempted it without the invisible texture. The particle system vanishes even when the particle is still on screen. ( when moving away from the particle spawner dropped by the player pawn)
The other idea should work also though. You can display bounds in game and in the viewports to get a better view on what it does.