easyEmit - *Update* 13.06.2013

(ndee) #1

Hello everyone,
I am developing a particle system for my game “Charlie’s Big Adventure”. I thought it would be awesome to have a particle system that is fully integrated in Blender and very easy to use.

I have seen SolarLune’s Particle System XEmitter, and it is great already! Many functions, but imho a particle system should be easy to use. That the task I wanted to tackle in easyEmit.
So, easyEmit handles the complete generation of game properties, logick bricks and so on… Just set it all up in the Panel(Color, size, birth rate,…). Press apply, and it works! The finished particle system will be an addon, that you just have to activate in the addons section, select an emitter and press one button to generate the system. Thats all. You don’t need to worry about setting up particles, emitters, logic, properties and so on. A basic set of particles will be generated automatically.

First tests are very promising concerning usability. Unfortunately python is not so fast thats why I want to optimize it a bit.
Does someone of you know if blender has functions that can tell me if objects are within the viewport/camera? It would be great if I can stop an emitter if it is not seen. I think this would be great for dealing a larger amount of emitter.
It is already optimized, that particle logic can be run only for each 2(3…) tic.

Here are some screens… Maybe this gives you a better idea of easyEmit. I will make a video too.
This Fire is set up in about 2-3 minutes.(from scratch!)

And thats what the system looks like for now!

The system is fairly simple concerning physics and behavior. All particles have no collision detection or anything like that. But I think that still some nice effects can be done with it. Please don’t expect a system with such an amount of features as SolarLune XEmitter has. I am more an artist than a coder ^^
But maybe a small hint for SolarLune to hook up his XEmitter with bpy and integrate it into the ui!

Thanks for your attention!

*** Update 13.06.2013 - API Fixes for 2.67 ***

(JohnnyBlack) #2

I am amazed! The screen looks simply WOW!
Great Job! Can’t wait for video.

(agoose77) #3

SolarLune has implemented frustrum culling [i beleive] though don’t take my word for it!

(ndee) #4

Thanks :slight_smile:
A Video will follow soon :slight_smile:

ok, I hope SolarLune sees this thread and can give me some hints ^^

(Monster) #5

Look at the KX_Camera it provides such functions.

But: an emitter outside of the camera frustum does not necessarily mean that the generated particles are outside too.

(TNSv) #6

Wow, that’s awesome! You should contact SolarLune about this. Combining the ease-of-use of this interface and the features of X-emitter would be oh sooo great :smiley:

(ndee) #7

Thank you Monster,
yes you are right. It doesn’t mean that those are outside of the camera frustum. But maybe I can figure out something. We will see ^^

@ TNSv
yep, I think SolarLune should integrate his XEmitter into the UI too ^^

(Rubbernuke) #8

Very nice! Look forward to the video.

(ndee) #9

Ok… here is a quick capture.
Framerate lacks due to recording.

(JohnnyBlack) #10

I understand this particle system is for your game, and it’s all yours, any chance for us to try it?

(ndee) #11

yep it is for the game, but I will release it when it is in a usable state…
maybe someone has some use for it ^^

(niverik2k) #12

I would love some insight into your process of developing it, and how could other people do similar things. If all of us could learn to make things like this and more, then Blender would be super powerful. Maybe you could post some advice, etc. Thank you.

(SolarLune) #13

Looks very nice - I particularly like the idea of putting it into an add-on. I assume you can ‘take back’ or cancel emitter settings (delete the logic bricks)?

I believe you can see if an emitter or particle is within the view of the camera with the camera.pointInsideFrustum(position) function. For position, use the world position of the object that you want to check.

And sure, I’d like to tie in the X-Emitter to a more simple, user-interface driven add-on. If you’re interested, ndee, I’ll see about doing what I can, though you seem to have quite a bit already (blending between colors, movement, etc).

(Molino) #14

Looks great! One and only comment…it would be great if you could pick the different particle name/types from a drop-down menu. Less chances of type-o’s and stuff.
Nice work, can’t wait to see it in action.

(ndee) #15

@ niverik2k
well… there is no awesome rocket science behind it.
I have a particle script(bge python module), that runs in the game engine. it uses different property settings that controls the movement and other behaviors. This settings can be adjustet…
With bpy I am adjusting and creating those settings.
What is great about bpy python module, that you can have access to all data that is created within blender. You can create logic, properties, and thats all you need. The script is just automating the steps I am doing manually :slight_smile:

Well it would be awesome to see your XEmitter as an addon! I think this could fill in the gap that we have with our bge particles! I think many users would love to see your emitter. I think it is the most advanced we have so far!
Before I have started with my particle Script I have started to write a small integration for XEmitter. But I needed some different features, so I started my own emitter. I can show you what I have so far. Of course you can take a look at my emitter too!

Yep… I have made tests to create a dropdown menu for selecting particles. I think I will integrate it soon. It was a bit tricky… But I have figured it out.

(andrew-101) #16

This looks awesome.

Its obviously in a newish state but I can imagine many people will know about and use this (it looks very easy to use), so do you mind suggestions?

I notice you have some other layers with objects in the scene, do these contain the particle objects and if they are does the addon create them or do they need to be manually added. And like wise with the particle textures, are these made available by the addon or does the user need to make sure they are there.

Is it possible to get emission time and life time in seconds and also for fade in/out times?

How is the direction of emission controlled? I’m guessing thats controlled in the python script and is not editable from the interface. An option for setting the initial velocity would be great.

(Kupoman) #17

I have my own particle script that I have been using, and it is interesting to see the different settings we chose to use. Most of the settings I handle with IPOs (color change, fade, etc.) but my system has variance options for the starting velocity and particle lifetime (to give a more random appearance), as well as gravity.

In case you are interested, I uploaded the script here:

It is set up a little oddly because it was originally a component for Moguri’s component branch that I quickly converted to work standalone. The way I use it currently is to import it into a script that instantiates a ParticleSystem, passes in a dictionary of parameters to the start method, and then on just calls its system’s update.

Good job on your system so far, looking forward to see how it progresses.

(ndee) #18

@ andrew
yep… as already mentioned. the addon contains a basic set of particles. that gets generated automatically.
when you activate the addon you just have to press one button, and everything works out of the box. Or at least thats the plan. Under windows it works so. I hope I won’t have problems with pathes on other operating systems.
You will have access to ALL adjustable settings through the UI. My main goal is, keep it simple and easy to use. ^^
In the screen on the top you can see all settings that can be adjustet.

I thought that python could be more flexable in customizing the particles than ipo, and you won’t have problems with setting up a particle.
I will have a look at your script :slight_smile:
And thanks for your encouraging words! :slight_smile:

(OTO) #19

ndee, you deserve a kiss, even one hundred!
at least, new functions for the GE, easy to use!
Now, to be picky, I would prefer a Logic Brick one…sorry! :wink:
Bye and thank you very much!

(ndee) #20

Ok… So here is the first file to test for you guys! I hope you like it!
There is still some work to do, but I think it is worth a first public release!

The code is not polished yet and pretty messy, I will tackle this in the near future.
Frustum culling for the particles is not integrated yet. So the particles are always emitting, even when they are out of sight.

It is not bundled as an addon yet. Just a blendfile. But preparing this as an addon is not to much work. :slight_smile:

Have fun with it!

Important Note: Blender 2.61 is required! There have been some minor api changes. Without blender 2.61 the Particle List won’t work1