I'm modeling the Dwarf in the Flask and I have tried various methods of emitting particles from the body but they cover the eyes and mouth. This is what it looks like without particles and the image on the left is my source material. Since I'm out of ideas and still learning geometry nodes I figured I'd ask the community how you would create the effect of black particles emitting from the model.
-
1$\begingroup$ What do you mean you have tried various methods? Have you tried using vertex groups to determine where particles should be emitted? Or duplicating only parts of the mesh which should emit particles and then hiding the emitter in render? $\endgroup$– Gordon BrinkmannCommented Aug 5 at 9:36
-
$\begingroup$ I've tried different sizes, and quantity of particles but I can't achieve this effect that it matches the source. $\endgroup$– EndZzCommented Aug 5 at 23:58
-
$\begingroup$ Size and general quantity do not determine where they are distributed... well, I give two possible methods in my answer below. $\endgroup$– Gordon BrinkmannCommented Aug 6 at 7:53
2 Answers
Here's how you create the exact same effect as in the anime:
add a cylinder, delete the top and bottom faces, and scale it down on the Z axis. This will be your emitter object.
parent it to the homunculus body and scale it down until it is just under the surface.
add a "Tract to" object constraint to the emitter with the camera as the target. You might have to change the axis settings of the constraint to get the desired result.
Of course you might still have to play with the particle settings since the emitter area is now much smaller.
-
$\begingroup$ My answer was about hair because that's what it looked like in the reference. Would have been nice of @EndZz to explain this anime effect to dummys like me who don't know it and can only judge from what is visible in the question 😆 $\endgroup$ Commented Aug 6 at 19:54
-
$\begingroup$ @GordonBrinkmann The character has a formless, smokey outline, yet at the same time very well defined eye and mouth. I think it's kinda hard to translate into 3D, that's why I adviced the tracking to camera in my answer. $\endgroup$– Lynx095Commented Aug 6 at 21:16
-
1$\begingroup$ Well, at least my answer still gives some advice on how to emit particles only in certain areas, so it might not be completely useless. $\endgroup$ Commented Aug 6 at 22:06
There are two main methods that I would usually use when creating hair with the standard particle system. The first is a more convenient "one-object-solution", the second might be a bit "better" or "cleaner" in some cases in my opinion.
1: Vertex Groups
Vertex groups are a good way for example to limit where hair is distributed or the length of the hair. Let's say you have this object and you want hair only on the blue parts, not the eye in the center:
What you can do is, in Edit Mode select all vertices (or faces) which you want to get hair, in the Object Data Properties tab create a new vertex group by clicking on the +
button and then click Assign.
This assigns a Weight to the vertices. By default this value is 1 but you can adjust it with the Weight value slider below the Assign button to give the vertices a different value. But if you would now go into Weight Paint mode, the object would look like this, the red part has a weight of 1, the blue part a weight of 0.
This weight can now be used in the Particle System settings under Vertex Groups. You can for example choose it for Density (which I did in the following screenshot) or Length, in both cases this will result in the eye part showing no hair because either the density or the hair length there is 0, while on the rest of the mesh it is 1 or 100%.
But you do not have to stick to this "on and off" method. When using the group for the Length for example, you can have values between 0 and 1 to change the length of the chair in certain areas (might not be so clearly visble in this shot though):
And since you can have multiple vertex groups on an object with each of them assigning different weights to vertices, you can of course combine them to manipulate density, length and other options independently from each other.
2: Separate Hair Object
The problem with the aforementioned method in my opinion is that you sometimes get hair where you do not want it even though you are limiting it to certain vertex groups. Especially since vertices/edges usually can be part of a face that should have hair and a face that should not, this can lead to hairs poking out where they should not be.
To avoid this, you can simply make a duplicate of the whole object and delete the faces that should be without hair or take the original object and in Edit Mode select the faces that should have hair, duplicate them with Shift+D and right-click immediately so that the duplicate stays in place, then separate the selected by pressing P > Separate > Selection. Now you have a second object with just the future "hair faces".
This is the newly created object, the original one is hidden at the moment. You can now give it a hair particle system without the need to define by vertex groups or anything where the hair should be, since these are only faces that should get hair.
The important thing now is, for this object not to interfere with the original object and avoid weird shading error from Z fighting of overlapping faces etc. that you can disable visibility of the emitter object without having to disable the complete object for viewport or render. In the Particle System settings under Render and Viewport Display you will find the option Show Emitter. If you disable them (especially important for the render later, the viewport might not be so crucial), the base object will no longer be visible and only the hair remains:
Unhiding the original object now shows everything is how it was supposed to be. The disadvantage of this method is, changes of the original mesh will not automatically change the hair mesh. Also if you want to move the original object, the hair object has to be parented to the original. Or if deformed by an armature pose, both objects need to be parented to the armature in the same way. (You could also work with linked duplicates and masking the mesh etc. but it would extend this already long answer much too much, if you would need something like this you should probably ask a new question.)
3: Both methods
Last but not least, a third method if you want to combine the advantages of both main methods, if you think a separate object is good but varying the length with a vertex group is useful too, you can of course use vertex group on a separate hair object as well.