text:
Blender 3.1 Node Wrangler preview not working
I have Node Wrangler enabled in Blender 3.1 on Windows 10 on a Mac laptop with numpad emulation. With a texture node, e.g. Gradient Texture selected, I press Ctrl and Shift and I see an icon in the lower left hand corner of the shader editor show the left mouse button with the text "Preview Node". I click and nothing happens. Why?
I have tried uninstalling all previous versions of Blender, deleted the Roaming/Blender preferences folders and completely reinstalled Blender 3.1 to no avail.

Figured it out. You have to click ON the node in question. Even though it seems like it should be creating a node where you click, but it is what it is.

Thanks! I had the same problem with 3.2 alpha and it was solved after reading your answer. I'm not sure it was solved by disabling then enabling node wrangler or by your seemingly obvious where to click but it's ok now.

Of course it requires you to click the node you want to preview: previewing a node is not about adding a node in the first place. You are not asking to add a node somewhere, you are asking to preview a specific node that's already there. Node Wrangler's preview is just plugging whatever node you want into the material output, and optionally pass it through an emission shader if the node you clicked isn't a shader itself. And you can click several times on the same node to circle through its different outputs.


text:
Hotkey for quick switching sculpting brushes
I didn't do sculpting in blender for a while. I remember there's a hotkey to invoke a menu of brush icons under mouse cursor. I can then choose the brush I need without moving my mouse, which is very convenient when sculpting.
It's like a pie menu but it's a list of icons.
However, I forget what is the key and couldn't find any clues on that :(
It's like Ctrl or Shift + some magic key. Does anyone know about it? Thanks

with Shift Spacebar you can have the Tool bar under your cursor, you'll also see associated shortcuts, is it what you want?

Oh yes, that's what i want. Thanks moonboots!

Oh, luckily my finger has its memory lol
It's Shift + Space.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Clothing Split at Seams - Cannot Rig
Hello everyone and thank you in advance,
I know I'll feel dumb when the answer is presented as obvious by one of you, but I cannot for the life of me figure out how to use clothing based assets from Sketchfab in my own scenes.
The specific problem I am having is they come into my scene fine, but nearly every mesh I download has seams( I think we can call it that?). Basically the mesh is split where stitching would exist. Which makes sense if they marked seams there for UVs
My main problem is, I cannot seem to figure out how to rig these articles of clothing as once I apply a rig to them, or try to data transfer it to my existing character, it doesn't work as like I said the mesh is split at the seams and when I rotate a bone the sleeve separates for example from the main body of the jacket for example
This is the exact article of clothing I am trying to rig
https://sketchfab.com/3d-models/cloth-jacket-f880b45cde9f41cf9b4afbfe25ce9887
I very much appreciate some advice as I've spent hours on this... Thank you!

I would merge the vertices (A to select everything, then M > Merge By Distance in Edit mode), make it fit the character in the rest pose, then transfer the weights from the body.
In Object mode select the jacket and the shirt, then the body last (=active object) and choose menu entry Object > Link/Transfer Data > Transfer Mesh Data, then Vertex Group. Use the options All Layers, By Name in the popup.

Thank you so much for the reply! I was trying to do this but oddly enough I couldn’t see overlapping vertices at the seams in edit mode. Is there a trick to quickly do that?

I don't know if there is an easy way to actually see duplicated vertices. The Merge by Distance operation only shows the number of merged vertices in the status bar. I forget to mention that this only works for the selected vertices. You can either select the areas around the seams or just the whole mesh to get them all. My experience was that duplicated vertices cause a lot of trouble when you do the weight paint.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Hair Particles Disappearing into Mesh
I am trying to comb the hair on a bust I made however the hair particles keep disappearing into the mesh.
I added a large amount of hairs to show the issue in the images below.
Before combing:

After combing:

After combing a large amount of hairs disappear leaving bald spots. Does anyone know why this is happening?

If you hit it with the puff brush with a low strength does it come back?

Unfortunately no, not from the outside. I went into the mesh and noticed that for some reason, after i've combed from the outside, some hair particles go into the mesh. when i go into object mode, the children hairs grow on the inside of the mesh. Is there a way to fix this? Maybe a constraint so the hairs don't disappear into the mesh?


text:
How do I scale a letter how it should be?
I would like to extrude & scale the outter edge of my letter like this :

but Actually it looks like this ...

I have no clue how to do it ...
Also  there is another problem,  if I scale a mesh is there a way to deactivate the z axis ?

Hello :). Perhaps related: How to reduce the thickness of letters

I think the linked answer is right, but you have first to extrude the object along Z otherwise the Shrink/Fatten tool doesn't work right. You can delete the duplicate geometry afterwards

To deactivate $Z$ you can scale pressing S followed by Shift + Z.
$X$ and $Y$ will still scale.
Also the transform panel have little lock icons that you can toggle to lock different properties (like $Z$ scale).

I'm not 100% sure, but you can try Alt + S to scale along normals.

For the text you can use the offset value:

hmm . idk so i turned it into a mesh   did Strg+I to do a little invert .. because if i do a bigger one it bugs .. so i wanted to extrude the outter edge  so it gets bigger but idk how .  thanks for the tip witht he Z Axis


text:
How to create inward curve with edge crease?
I build the hull and use a subdivision surface modifier.
I know that if I want to sharpen an angle on the outside, to use Shift + E.
But how can I sharpen that angle so that is inward?
As you can see in the picture, there is a curve. I have tried but can't find a solution.
I would like to remove the curve in the picture and turn it into an angle.
I am grateful if anyone can tell me how to do it!

You have a concave face, + an N-Gon, both are not so great when using subdivision surface modifier. Is it better if you add a creased edge there ? https://i.sstatic.net/UPeSu.png (Use J to join the 2 vertices, not F)

Indeed. I got the desired result using F.  Thanks! :)

This face is an N-Gon which notoriously doesn't bode well with subdivision surface, and it is concave, meaning there is an interior angle > 180°, which also can create artifacts.
By joining the 2 vertices with J or Vertex > Connect Vertex Path and increasing the crease on the new edge, you will be able to make the subdivided mesh adhere more to the base mesh.

Although you now have a triangle to get rid of, but this is another topic :)

To keep your topology clean, you can model the shape as if there were no cutout and use a vertex group with a mask modifier to remove the section.
For this example, I added the two selected vertices to a new vertex group by pressing ShftG and then selected that group in the mask modifier. At first, the mask modifier will hide the part of the model that isn't in the group, but by clicking the ↔ button on the modifier, it will invert the group weights, hiding the correct vertices.

Keep in mind that any vertices that neighbor unhidden ones will still affect you final geometry's curvature.


text:
How to Offset Geometry of a Text Converted to Mesh
I have a text object that has been converted to mesh. Recreating it as text is not ideal. I need to do the geometry offset of the characters (on $X$ and $Z$ axes).
Scaling wouldn't work as it doesn't scale the stroke but the shape overall. For example: I have an 'O' character ($20$m x $30$m) and I need the outer oval to get smaller and the inner oval to get bigger both by $0.2$ .
It is less straight-forward with characters like 'C' or '3'.

Hi, it would be useful if you would [edit] your question and add illustrative images of your problem so that users can see what you are working with.

Timaroberts - will do next time. This time moonboots did it for me :) Thanks

If I understand correctly your question, first simplify your letters topology with X > Limited Dissolve.
For some letters a simple inset (i) will work (and then invert the selection with Ctrli and delete the outer edges):

For some other letters it won't work and you'll have to extrude them, Shrink/Fatten with AltS, and delete the extrusion:

moonboots - thank you ever so much! That works like charm. I can't believe it didn't occur to me :)

Note that you don't necessarily have to convert text (or curves) to mesh to extrude and bevel. Those operations can be done on the geometry of the text itself.
Or you can even create a different profile to customize the edges.

Read also:
How to make a bevel on text
Round beveled text

Thank you. I know that and I usually work non-destructively. It is just that I am editing other person's work and everything is converted to mesh. Thanks again


text:
cycles bake seems to have lost some UV data
I have modelled and textured a simple object using separate materials on the different parts of the object.  I then created a separate texture and baked diffuse AO and normal all saved as separate textures using a 2nd UV map.
This all worked fine.  I then deleted all the materials and the original UV map.
I created a new material with just one texture (the baked diffuse of all the sub materials) This material only seems to map to the UVs of the last sub material I deleted the rocks and grass. In edit mode I can see the UV mapping seems to include all faces.
here is the object in edit mode with all faces selected......

Have I missed something obvious with assigning the UVs ??
As you can see in the top rendered view only the rocks and grass on the ground  show the texture . In the lower image all faces appear to have correct uvs so why is the texture not appearing on all faces in the rendered view ?

I don't understand your issue. Could you please clarify?

Is it possible you could upload your .blend (with packed textures?)

Solved..........
Even though I deleted all the sub materials that I baked into the one texture,  the material slots were still there.
Once I deleted all the no longer required sub material slots the face textures appeared as expected.

In the top render I can read the word mail on the box, so I think the texture is there, you just need some more lights so it shows.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Creating dynamic, shaded backgrounds for animations
I am still new to blender and am working on an animation of a light-responsive protein network in blender-python. I have been asked to create a shaded background whose color changes in accordance with the frequency of light shining on it. My question: how do I code a shaded background in python whose color I can change over the course of the animation:

Implementing the basic background using Blender's UI was straight forward: add blend-sky to the world and adjust its color's accordingly (Picture 1). Using the info tab, I attempted to recreate these commands in python:
 bpy.context.space_data.context = 'WORLD'
 bpy.context.scene.world.use_sky_blend = True
 self.world.horizon_color = (0, 0, 0)
 self.world.zenith_color = (1.0, 0.0, 1.0)

This however only results in "AttributeError: 'SpaceTextEditor' object as no attribute 'context'".
Next, I used a snippet of code from a previous answer I found on this very site (source: Creating cycles background light (world lighting) from Python), which produced a colored background but lacked the shading of the desired result (Picture 1).
 enter codbpy.data.scenes['Scene'].render.engine = 'CYCLES'
 world = bpy.data.worlds['World']
 world.use_nodes = True
 bg = world.node_tree.nodes['Background']
 bg.inputs[0].default_value[:3] = (0.5, .1, 0.6)
 bg.inputs[1].default_value = 1.0e here

Even if one of these two methods had worked, I would still be unsure how to program a change in background color. Can I create background animations using keyframes similar to object animation?  How do I even create the desired type of background in the first place?
Your help is much appreciated.
Pictures: https://i.sstatic.net/D6qkp.jpg

Which render engine do you want to use (BI or Cycles)? The solution will be slightly different depending on that.

See, this is where I out myself as a blender noob: considering all my animations are done with keyframes, is one preferable to the other?

Cycles is preferrable if you need photorealistic lighting and shading. Your sample scripts seemed to be targeting the older BI render engine.  The world shader is different in Cycles as well.

Since I do not need photo realistic lighting or shading (indeed the animation is going to be very stylized) would you recommend going with BI? If so, can you recommend a way to achieve my goals?

Do you need to keyframe the background colour change in python, or would it be enough to keyframe it through the UI?

I need to keyframe everything in python itself. I have been tasked to not involve the UI at all.

Perhaps it would be helpful to manually keyframe the effect you want in the UI, and then post the blend file here. That would help us recreate the effect in python more accurately.

To be honest I wouldn't even know how. I can attempt to explain it verbally: given certain wavelengths of light, the program must, at given time-points, change the color of the background accordingly, e.g. the zenith color (from Picture 1) changes from green to red. This transition should be instantly and requires no gradual changes or anything of the sort.

Here's my solution. It provides for altering the Horizon Color and the Zenith Color, and assumes you are using the Blender Internal render engine.
It also allows you to provide a list of frame numbers and colour values for setting up multiple keyframes.
Also, the default interpolation type for animation curves is Bezier which would give you smooth transitions between colors. Because you want abrupt color changes I added code to alter the interpolation mode to Constant for the new animation curves.
import bpy

scn = bpy.context.scene
world = bpy.context.scene.world
world.use_sky_blend = True

#bgColorList[frameNumber, horizonColor, zenithColor)
bgColorList = [
[1,     (1.0, 1.0, 1.0),    (0.8, 0.8, 0.8)   ],
[15,    (0.8, 0.8, 0.8),    (0.8, 0.8, 0.8)   ],
[30,    (0.5, 0.5, 0.5),    (0.2, 0.2, 0.2)   ],
[45,    (0.8, 0.8, 0.8),    (0.8, 0.8, 0.8)   ],
[60,    (1.0, 1.0, 1.0),    (0.8, 0.8, 0.8)   ],
[75,    (0.5, 0.5, 0.5),    (0.2, 0.2, 0.2)   ]
]

#set up all keyframes for background colors
for bg in bgColorList:
    frame = bg[0]
    hColor = bg[1]
    zColor = bg[2]

    scn.frame_current = frame
    world.horizon_color = hColor
    world.zenith_color = zColor
    world.keyframe_insert("zenith_color")
    world.keyframe_insert("horizon_color")

#modify the interploation mode of the animationt curve to be consant for immediate changes on frame entry
for f in world.animation_data.action.fcurves:
    if f.data_path == "zenith_color" or f.data_path == "horizon_color":
        for kf in f.keyframe_points:
            kf.interpolation = 'CONSTANT'

Hey, no problem!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Setting a plane to clip and hide parts of objects
I want to use a plane to hide parts of an object as they come into collision with it. For example the image below: the cone would not be showing the left side where it is "cut" and the monkey would not for the eye and ear that goes through the plane. I don't want to change any properties of the objects themselves, just a plane that functions as a "portal" on both sides if that makes sense.

Another example, only the left side monkey and right side cone would be showing here:

have you tried a Boolean modifier? https://blender.stackexchange.com/questions/190225/how-to-use-masking-to-hide-an-object/190228#190228

Yes I've tried to apply boolean but since the plane is 2d wouldn't it only cut into a small slice into the objects?

you juste need to create a big cube that you place on the right and that you make invisible, it will act as if the plane makes things invisible while in fact it will be the cube

I understand your thinking but it must be a plane that clips, I deliberately put objects on both sides in my example

so create 2 cubes, one for each object?

I don't know what objects I'll have ahead of time during simulation and I don't want to dynamically generate a cube for each object... is there another method to create plane "portal"? I want during simulation for whatever collides into the plane to be "eaten" away.

you don't need a cube per object but a Boolean for each object and choose the left or the right cube, depending on what part of the object is supposed to be invisible. There might be other solutions, maybe someone will tell...


text:
Get center of geometry for a group of objects, then point camera to that coordinate
New to blender here, as the title suggests how would I use blender to do this without resorting to mathematical calculations?
To be clear center of geometry of a group of objects means the center of a box fitting the furtherest bounds of all objects.
EDIT: Yes, this is using python, I'm automating my renders

There is no tool to do exactly what you're asking for, as you have worded it. However I think this answer, may in practice do what you want. - http://blender.stackexchange.com/questions/51563/how-to-automatically-fit-the-camera-to-objects-in-the-view/51566#51566 I think this question may be being unnecessarily spesific, if you do want to perform this operation, exactly as worded, then you would need to write a Python script to perform the task.

@ideasman42 sorry forgot to add that I would be using Python scripting. Thanks for the link, it sort of is what I'm looking for but I would still like to point the camera to the geometric center of objects.

This is possible, but you will have to calculate the center.
The example below uses a rough approximation based on the volume of the objects bounding boxes.
from bpy import context
from mathutils import Vector

def point_the_camera(obj_camera, look_at, epsilon=1e-8):
    camera_matrix = obj_camera.matrix_world.copy()
    view_axis_src = camera_matrix.col[2].xyz.normalized()
    view_axis_dst = camera_matrix.to_translation() - look_at

    if view_axis_dst.length_squared < epsilon:
        print("looking into ourselves!")
        return
    view_axis_dst.normalize()

    axis = view_axis_src.cross(view_axis_dst)
    if axis.length_squared < epsilon:
        print("already aligned!")
        return

    axis.normalize()

    from mathutils import Matrix
    camera_matrix_rot = Matrix.Rotation(view_axis_src.angle(view_axis_dst), 3, axis)
    obj_camera.matrix_world = (
            Matrix.Translation(camera_matrix.to_translation()) *
            (camera_matrix_rot * camera_matrix.to_3x3()).to_4x4())

def derived_objects(scene, obj_base):
    obj_base.dupli_list_create(scene)
    obj_matrix_list = (
        [(obj_base, obj_base.matrix_world.copy())] +
        [(dob.object, dob.matrix.copy()) for dob in obj_base.dupli_list]
        )
    obj_base.dupli_list_clear()
    return obj_matrix_list

def main():

    scene = context.scene
    obj = context.object
    obj_camera = scene.camera

    center_accum = Vector()
    center_accum_volume = 0.0

    # objects without a bound-box (camera, lamp, etc).
    # have zero volume so won't influence the outcome.
    for obj_iter, matrix in derived_objects(scene, obj):
        print(matrix)
        box = obj_iter.bound_box

        # diagonal
        b_0 = matrix * Vector(box[0])
        b_1 = matrix * Vector(box[6])

        diag = b_0 - b_1
        diag_volume = diag.length ** 3.0
        diag_cent = ((b_0 + b_1) / 2) * diag_volume

        center_accum += diag_cent
        center_accum_volume += diag_volume

    # we have our center
    center = center_accum * (1.0 / center_accum_volume)

    ## Quick test
    # scene.cursor_location = center

    point_the_camera(obj_camera, center)

main()


text:
Render a layer only once for all 1800 frames?
I tried searching, but I honestly don't really know what to search for, because I'm a total noob and this is my first animation.
I made a planet a few days ago (see this Reddit post, which includes the tutorials I used), and right now I'm working on a simple animation that spins the planet 360°.
I made the planet using two UV spheres, one for the surface of the planet including the image texture and some surface cracks, and then another UV sphere for the atmosphere scaled to 1.001 times the size of the planet.
Then, in compositing, I do the glare and blur effects to get a nice atmosphere. Only the planet spins in the animation though, so what I'm wondering is if I can just render the atmosphere ONCE, and then composite each frame of the planet to that one atmosphere render layer frame, instead of re-rendering the same atmosphere for all 1800 frames, which would cut down on my render time by a significant amount.
EDIT1:
I tried the method @cegaton suggested, rendering only the camera, sun, and atmosphere layers as an EXR (I also tried PNG), saving and then importing that into the compositor, replacing the render layer input node with an image node.
Here are the results of that method (again, using an image input node in the compositor)

And what it's supposed to look like (using a render layer input node for the atmosphere):

Obviously I've misunderstood, but I can't figure out where I'm going wrong.
EDIT2:
I think I figured it out. Okay, so I rendered all the layers together the first time, but with compositing checked off. Then in the image result viewer I selected only the atmosphere render result (which rendered properly, with the planet terminator superimposed), and saved only that layer as a PNG. Then I deleted the atmo object, and the materials. Now only the planet is being rendered, which is good, but the compositing seems to be taking a bit longer using the image node than the render layer node.
Still, it took 5 minutes 11 seconds to render 27 frames, and the old method took 8 minutes 17 seconds to render as many frames. So, looks like my nigh 14-hour render will take closer to 9 now. Was hoping for more of a reduction, but that still strikes me as pretty good.

Just so I understand, do you mean render just the atmosphere layer as an EXR, and then load that in the compositor using an image node?

@cegaton why did you comment instead of posting an answer that I could mark as correct? I'm pretty unfamiliar with Stack Exchange meta...

As an aside, what, if any benefit could I expect from rendering that atmo layer as an EXR instead of a PNG?

Okay, so I rendered all the layers together for the first frame, but with compositing checked off. Then, in the image result viewer I selected only the atmosphere render result, saved that layer as a PNG, and then imported that PNG into the compositor as an image input node, replacing the atmo render layer input node and its connections.
Then to render the animation, I will uncheck or entirely delete the atmosphere object and render layer from the project, and Blender will now render the planet for each frame and composite that render layer with the single atmosphere image.
I did a quick test of render time for 27 frames (just an arbitrary number of frames I decided to stop on), and for this method, the render time was about 62% that of the old method.
Many thanks to @cegaton for the help, I feel weird answering my own question though.


text:
curve intersection with volume in animation nodes
How can we detect the intersection of a spline with a volume? I've been trying to create edges from the splines to detect the crossing between lines and planes but I'm not sure if thats the correct approach.
What I am trying to accomplish is to detect where a curve enters and exits a volume, any ideas?
EDIT
I'm trying to reproduce the solution but I found that my evaluation spline node doesn't look like yours, it actually has the parameters from "Get spline samples" node, but also differs in its outputs. Checked hidden parameters but all is unhidden.
EDIT
seems "get spline samples" does the job fine. Might be a custom naming issue
EDIT 2
After downloading @Omar Ahmad blend file I noticed that this method is far more efficient but still produces inconsistent results. When a play with the spline points moving them around and increasing all evaluate and get sample nodes to resolution up to 5000 the problem persists. I'm sorry if I'm being too strict with this detail (which could be due to a resolution factor) but is very important for me this works as foreseeable as posible. Here the screenshot showing the problem:

Try to reduce the Jump Width, i.e. the value added to the parameter after one intersection.

Spline Marching
Theory
Spline marching is a technique in which you move along the spline in discrete steps until you intersect a polygon. One determines—or guesstimate—if one hit a polygon if the distance between the current position and the nearest surface point is less than some small value epsilon. In which case, one can raycast along the tangent at the current spline point or project on the surface of the mesh to get a rather accurate intersection, this argument is supported by the fact that for some small step size, the spline becomes almost linear, that is, straight. However, the final raycast or projection may not be needed as we might see.
Marching using a constant step size is not very efficient, to understand why, consider the situation where the step size is 0.1 unit and the start of the spline is 10 units away from the mesh, then to intersect the mesh, one would need at least 100 steps. A better approach would be to make the step size variable, that is, large in size when you know the mesh is far away and small in size when you know the mesh is near because a large step size near the mesh might pass it without reporting any intersection. So in conclusion, we need the largest step size that is guaranteed not to make the point pass the mesh. The euclidean distance between the current spline point and the nearest surface point is the length of the shortest path, meaning that this distance if used as the step size is guaranteed not to make the point pass the mesh.
Implementation
We construct a loop with an initially zero float input that represents the initial parameter of the spline point, the loop also takes the length of the spline, a BVH tree representing the mesh, the spline itself and a small float input epsilon. In the loop, we evaluate the spline at the parameter and find the distance between the spline point and the nearest surface point on the mesh, this distance is then normalized by divided it by the spline length to remap it to the parameter range [0,1]. The normalized distance is added to the input parameter and the result is assigned to the initial parameter input. What we just did is effectively moving the spline point along the spline based on the distance to the nearest surface point by incrementing its parameter. Finally, we check if the distance is larger than epsilon and break the loop otherwise. The output shall be the input initial parameter which is, when the loop break, the parameter of the spline point whose computed distance is less than epsilon, on other words, the parameter of the point we consider an intersection.

Basically we keep increasing the parameter until we find an intersection. The number of iterations in this case act as the number of steps after which the loops gives up on finding intersections. To try the loop, we set the initial parameter to zero, epsilon to 0.001 and compute the parameter of the intersection, we then evaluate the spline at the computed parameter to get:

Which is the intersection we expected. If we increased the initial parameter to 0.5, that is, the marching should start from the middle of the spline, we get:

Which is the intersection we expected. If we increase the initial parameter further to 0.75, the loop will execute to the maximum iteration because there are no intersection from this point onward, to avoid this, we are going to implement another condition to check if the end of the spline was reached and break the loop then.

Now the loop is working perfectly. Next step is to implement a loop that generates all intersections automatically. This loop is simple and very similar to the one we create before, we basically find an intersection using the march loop, append it, add a small value jump width to the initial parameter and reassign it. The loop breaks if the parameter became more than 1.

Which gives us exactly what we want.

This method is better because it is significantly faster in most cases (the example intersections described above only needed about 4 BVH surface projection), it is consistent so results are exactly as you expect it and it is controllable.
Note:
It is essential that the Evaluate Spline and Get Spline Length nodes to have high resolutions in the Advanced Node Settings this ensures our calculations are accurate as possible.
Blend File:

@JuanManuelLynch binweg is right, the Jump Width should be reduced in this case. Did that solve the problem?

Naively intersecting lines with planes could be problematic as the Intersect Line Plane node, or the Python function behind it, considers the plane to be infinite. Therefore, as a second step, you would have to check if the intersection really is on the polygon.
I suggest using the BVHTree > Ray Cast node instead.

With the Evaluate Spline node (for Aimation Nodes v2.1; Get Spline Samples for AN v2.0) and two different slices of the node's Locations list – vectors[:-1] and vectors[1:] – I create small line segments along the spline.

start vector and end vector of these segments (as iterators) as well as the BVH Tree of the object (as parameter) are fed into a loop. Within this loop I call Ray Cast with a maximum distance of the segments' lengths and a minimum distance of zero. (The minimum distance by default is 0.001 or something which might result in some missed intersections.)
With the Condition input of the loop's Vector List output I collect all location vectors of ray casts that resulted in a hit.

The Ray Cast node also has a Normal output that lets you align objects on the face where there is an intersection – e.g. by using the Direction to Rotation node. If you also want to distinguish entries into and exits from the volume then you can calculate the angles between the normal and the segment and check if it's smaller or larger than 90°.

Good solution. It is worth noting that the Hit boolean can be used directly as the condition of appending. The Vector List Generator has a hidden condition input. This will be more speed and memory efficient.

Done, indeed nice solution

@OmarAhmad Thank you for the reminder. Apart from the mentioned reasons for using the condition it looks definitely more clean now.

@JuanManuelLynch Sorry for the confusion. I was using Animation Nodes version 2.1 and in this version Evaluate Spline has been merged with Get Spline Samples.


text:
Pass dir.path to a diferent script
I'm building an addon which is a collection of scripts, and I have my UI coded as one of this scripts. On of my tools (script) requires a user input, in this case a folder path, but I don`t know how to pass it onto my export tool so it knows where to export the selected objects. Here is how it is written in my UI script, I just copied it:
# root for export
    scn = context.scene
    col = layout.column(align=True)
    col.prop(scn.my_tool, "path", text="")

It shows great in my Panel but I'm not sure how use the string it gives in another script.
Thanks
EDIT
Following @WhataMesh pointed out here is what I did. In my UI script I added a class with a string property and changed the layout to fit, also had to register and unregister the new class and the property.
class MySettings(PropertyGroup):

path = StringProperty(
    name="path",
    description="Path to Directory",
    default="",
    maxlen=1024,
    subtype='DIR_PATH'

def draw(self, context):
    layout = self.layout

# root for export
    scn = context.scene
    mytool = scn.my_tool
    col = layout.column(align=True)
    col.prop(mytool, "path", text="")

def register():
    bpy.utils.register_class(UI)
    bpy.utils.register_class(MySettings)
    bpy.types.Scene.my_tool = PointerProperty(type=MySettings)

def unregister():
    bpy.utils.unregister_class(UI)
    bpy.utils.unregister_class(MySettings)
    del bpy.types.Scene.my_tool

You can add properties to the scene that can be retrieved by all scripts. In the code you can find different 'variabletypes' (I think you can also make custom properties/variables yourself). To actually retrieve the value you will have to write bpy.data.scenes['Scene'].Annotation.my_bool
import bpy
from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Operator,
                       PropertyGroup,
                       )

class Annotation(PropertyGroup):
    my_bool = BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default=False
    )

    my_int = IntProperty(
        name="Int Value",
        description="A integer property",
        default=23,
        min=10,
        max=100
    )

    my_float = FloatProperty(
        name="Float Value",
        description="A float property",
        default=23.7,
        min=0.01,
        max=30.0
    )

    my_string = StringProperty(
        name="User Input",
        description=":",
        default="",
        maxlen=1024,
    )

    my_enum = EnumProperty(
        name="Dropdown:",
        description="Apply Data to attribute.",
        items=[('OP1', "Option 1", ""),
               ('OP2', "Option 2", ""),
               ('OP3', "Option 3", ""),
               ]
    )

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.Annotation = PointerProperty(type=Annotation)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.Annotation

If I understood correctly, this class should go with my UI script? and once done calling any variable (for instance my_string) in any other script it will be read?

@JuanManuelLynch Yes

For a folder path can use path = StringProperty(subtype='DIR_PATH')  Which will give folder selection widget in ui.  Worth noting with 2.8 around the corner bpy.utils.register_module(...) has been phased out in 2.8. Instead use register_class(...) on a per class basis.

@WhatAMesh it took me a while to make it work as I think that the register function is not correct as you state it and also how you call it didn't work. Still I managed to make it work. Check my edited question to see if I actually undestood what I'm doing.


text:
vertex weigths onto a generated mesh
I'm generating a mesh from a list of locations and normals, for each vector a create a simple triangle. What I would like to do is to edit the weight of each triangle into a vertex group. I manage to do it in edit mode (painting) but when I get back to object mode, as its being generated procedurally, all weigths reset to 0.
I've checked some answers where they loop throught the weights but I want to stablish them. here is how it looks now:

It would be great also if I could choose between feed those weights from a list or paint the manually.
EDIT

Animation Nodes doesn't have a node that can write vertex weights yet. So we will have to use some python to implement that ourselves. Given an object obj with a vertex group vertGroup and a float list weights containing the weights for each vertex, one can use this expression to set the vertex weights:
[obj.vertex_groups["vertGroup"].add([i], w, 'REPLACE') for i, w, in enumerate(weights)]

It is essential that the input object of the expression node be the output of the node used to set the mesh, this ensures the vertex weights to be set after the mesh is set.
Now, if you want to paint the weights by hand and have it preserved even when you are resetting the mesh each execution, you can do the following:

Disable the Mesh Object Output node temporarily.
Paint the weights.
Cache the output of the Vertex Group Input node (caching is described in the documentation here)
Enabled the Mesh Object Output node and use the cache in the node tree we described above.

I'm getting expression error, the output seems to be the problem, you specified that the expression output should be linked to a object Mesh Object Output which at the same time is the object of the input in the expression? check answer update  image

@JuanManuelLynch You got it backwards, I said the output of the Mesh Output should be the input of the expression. Remove that last node and let Animation Nodes type the output itself.

ohhh, ok. I tried that already but i had the random number node badly configured, that's why I tried to put that object node at the end. Thanks


text:
Baking normals results in blank normal map
Following this tutorial on making a Lego-type of character but I'm having an issue where I'm trying to bake detail into an image. Specifically, I sculpted additional detail onto this hair object and now trying to bake but the resulting normal map image is always just blank. I know it isn't a problem with my UVs as I set them up previously and can paint using them just fine.
I've had this same issue before so I thought it was a bug with Blender but after updating (version 2.9 to 2.91) I'm still having the same problem.
Here are the exact steps I am doing after having finished sculpting:

Create a new material and remove all previous materials from the object

Create a new image at a 4K resolution (to be downsampled later) for the bake

Added this image to the material as an Image Texture

Go to the render tab
4a. Switch to Cycles
4b. Set Bake Type to Normal

Ensure hair object is selected while in Object Mode

Bake the image, the resulting image does in fact change but is just a blank normal map with no detail captured.

What I've already tried:

Adding drastic detail to the sculpt just in case my details were not being picked up, made no difference.
Messed with various settings in the Bake options. As a quick note, if I change the Influence-Space from Tangent to Object I DO get something in the image (which is positioned properly based on my UVs) but its certainly not what I want (not sure what this setting is even for?).

Any ideas? I'll gladly hand out my blender file too but I'm not sure where to upload it to share it.

How did you sculpt the details? Multres or high poly mesh?

@Blunder I added a multiresolution modifier to it and then sculpted. I did also apply the multires modifier after I was finished before I started baking (not sure if that was a smart move or not but it is what I did haha). Should I not have applied it?

I've created a new image, opened and closed Blender and it worked for me. Make sure the image node is not connected to the base color node.

I went back through and did everything again except this time I did not apply the multi-resolution modifier as I did before and then baked it without the multi-res option in the bake (having it checked wasn't generating properly) and it worked!
However, perhaps I have a misunderstanding of what this tool does as I'm still confused as to why having applied the modifier prevented it from working? Shouldn't the bake just bake whatever information is present? Or does it only bake based on the difference before what an object is with and without its modifiers?

No, the bake is not just baking whatever is present, the "normal" way is to to bake the multires sculpt onto the low-res UVs to add the high-res detail by a normal map.


text:
Problems rendering camera motion (Euler angles) and lighting
I am having trouble rendering camera motion and lighting. In the example below, my scene contains a sphere and a plate, and some light. But while rendering, the light does not seem to lit the plate. And I can't seem to move the Euler angles of the camera. I must be doing something wrong there, but I can't see what. I'd appreciate your help. I am using Blender 2.79.
import bpy,math
scene = bpy.context.scene
# A sphere
bpy.ops.mesh.primitive_uv_sphere_add(location = (2,-100,2),size=20.5)
bpy.ops.object.shade_smooth()
ball = bpy.context.object
mat1 = bpy.data.materials.new("mat_ball")
mat1.diffuse_color = (1,0,0)
ball.data.materials.append(mat1)

# A plate
bpy.ops.mesh.primitive_cube_add(location = (0, 0, 100))
bpy.ops.transform.resize(value=(200, 20, 100))
cube = bpy.context.object
mat2 = bpy.data.materials.new("mat_plate")
mat2.diffuse_color = (0,1,0)
cube.data.materials.append(mat2)

# if I remove this, I do not even see the ball in the rendering
scene.render.resolution_x = 1200
scene.render.resolution_y = 800

# camera
cam1 = bpy.data.cameras.new("Camera 1")
cam1.clip_end = 10000
cam_obj1 = bpy.data.objects.new("Camera 1", cam1)
cam_obj1.location = (0.0, -500.0, 2.0)
cam_obj1.rotation_euler = (math.radians(90),math.radians(0),0.0)
scene.objects.link(cam_obj1)
# If I add this, the default camera is used for rendering, why?
#bpy.data.scenes['Scene'].camera = cam1_obj1

# light
light_data = bpy.data.lamps.new(name="mylight-data",type='SUN')
light_object=bpy.data.objects.new(name="mylight",
       object_data=light_data)
light_object.location = (0, -500, 500)
scene.objects.link(light_object)

angle=90

scene.frame_start = 0
scene.frame_end = 10

bpy.context.scene.camera = bpy.data.objects['Camera 1']
for frame in range(0,10):
    bpy.context.scene.frame_set(frame)
    #cam_obj1.location.z+=1
    # IF I ONLY CHANGE THE EULER ANGLES,
    # THE CAMERA DOES NOT SEEM TO MOVE BETWEEN THE FRAMES
    cam_obj1.rotation_euler =
             (math.radians(angle),math.radians(angle),0.0)
    angle-=2

    for ob in scene.objects:
      ob.keyframe_insert(data_path="location", index=-1)

bpy.ops.screen.frame_jump(end=False)

I found the problem of the Euler angles, I had forgotten cam_obj1.keyframe_insert(data_path="rotation_euler", index=-1)

I also solved the problem of the light. It had to do with the attenuation. I added such lines as light_data.energy=1
light_data.falloff_type='LINEAR_QUADRATIC_WEIGHTED'
light_data.linear_coefficient=10.0
light_data.quadratic_coefficient=10.0

see https://docs.blender.org/manual/fr/2.79/render/blender_render/lighting/lights/attenuation.html and https://docs.blender.org/api/blender_python_api_current/bpy.types.PointLamp.html


text:
Can't move in the 3D view with mouse
I thought that I was able to use my mouse to navigate in the viewport before. I can only seem to rotate the project view via the numpad keys. I have tried to Google for my problem but can not seem to find any answers.

What buttons are you trying? middle click is used to orbit, left for setting the 3D cursor, and right is for selecting.

Also, shift+middle click to pan

Middle button does nothing but zoom when i use scroll wheel.. i have pressed shift+middle and it does nothing..

Go to file>user preferences>input>3D view>3D view (global) and make sure all the settings are correct. The orbit setting should say "middle mouse" if this is right, and you still can't get anywhere with it, than your mouse may be busted, and that's out of my scope :)

I had the same problem, first sr for my bad english but the only thing what u need is to unplug ur mouse and w3 3 Sec. and then plug in back without closing the blender file. And its gona work again, i think its a bug

You can try one of the following

View > View selected or . on Numpad
If that doesn't work try Shift + C

It seem that with some blend files "zooming to much" locks the 3D view and you can only rotate the view, not pan or zoom in or out, with other .blend files it is OK... don't know the real source or how to fix the file, anyway if you still want "free zoom, pan and rotate", you can copy the objects that you need to a new .blend.

Shift-C worked, thank you

With Corsair Scimitar pro I had to modify the mouse settings in the ICUE dashboard:

Add an Action
In the drop down menu for action and remap I clicked "Mouse Button" under the Remap column
Mapped it to the "Middle Click" in the Devices area above that.

This seemed to fix the problem.

I figured out another reason, as for panning left, right, up, and down. Check the clip start under view (shortcut N on keyboard). If that is set too low it might cause an issue for you to pan.

If you're using Razer products for peripherals, you will need to open up Razer Synapse and change your middle mouse button from left click to scroll click, save your profile configuration and try this again in the 3d viewing window. Other Manufacturers that do not use the windows default drivers but rather their own software may have a similar problem with their configuration/keybind. Hope this helps, took me 30 minutes to think of.


text:
Why do I have to set my displacement map strength so low?
I'm finding my displacement maps displace my object by an inordinate amount, I've got some of them set to .0005 strength (most to .001) which is off the scale (although doable anyway) and I feel like this isn't right. I wouldn't worry about this normally except this project has to be done professionally and I'm worried I'm not doing it right
I've set my texture to use non-colour space and it was generated in X-Normal.

It's a purely modifier based displacement, here are some pictures: https://imgur.com/a/5B1He

Is the object really really small? That could mean that the displacements have to be proportionally smaller too.

It tells "Can't load texture" which generally means Blender can't open the file. Hence all the displacement is made with black color (values of 0). Did you try to open the image and preview the displacement with the texture being accessible? Note also that Middle level which means no displacement is by default 0.5, probably that could change a bit

Oh my days that's it! Ha thankyou :D I can now fix the issue by changing the unit scale and scaling up everything :)

Yeah I've been messing with that middle level, helps with some thinner areas. As it turns out though it was all about the scale anyway ha. Thanks anyhow

@cegaton Ack I used to be so good with doing this by routine XD Thanks


text:
Why do my faces look as if normals are inconsistent when they are consistent?
In my viewport, some faces look like they are either disconnected from the rest of my mesh by means of duplicate vertices or edges, or they look like their normals are opposite to the rest of the mesh.

But the tools for fixing these problems fail to find such problems. According to these tools, there's no duplicates to merge, and the normals ARE consistent.
What other strange geometry problems could make my faces look inconsistent in my viewport?
Added a share of my file as requested:

maybe share your file: https://blend-exchange.giantcowfilms.com/

Visual problem with the normals is probably due to the length of the normals, so that they intersect with faces. Just decrease the size of the normals to get a better vision

Some of your faces are shaded "smooth" and others "flat", select your mesh and hit either flat or smooth under the Tool-Menu -> Shading


text:
Distribute Keys Dope Sheet
I would like to automate a few dope sheet keys animation, I setup the initial location of the elements and the end location:
Now I need that they can be distributed between those frames 0 to 115 like these, created manually:

How can I achieve something more automted, I've tried to select only the first element and on keyboard hit G 115 (number of frames) /6 (divided thru 6, thats the number of elements and dont work), but the Delta X dont accept math calculations like that only numbers.

You need to press = before entering numbers to enable calculations, like = G 115/6

Ok, thank you it helps somehow. But still the question remains distributes all the key on that span of frames can be done without some kind of addon?


text:
Scale-able/rotate-able 2x4 wood plank with 45-degree cut end - is there a better way?
I'm using Blender to do some architectural modelling for a house.  (Yes, I know Blender isn't really designed for architectural modelling, and there are probably better tools, but it's what I'm using for now.)  This model is going to be "hyper-accurate" in the sense that I'm planning (hoping / trying) to have every single concrete brick and every single 2x4, 2x6, etc, modeled one way or another (although I'm drawing the line at nails and dustbunnies - not including those!)  Just to give you a sense of what I mean, here's what I have so far:

For the 2x4s with square-cut ends, I created a simple cube mesh with the long-dimension along the Z-axis, and placed the object origin at the center of the 2x4 face at one end of the plank mesh (nominally at 0,0,0).  I also lock the X and Y scale in the "Transform Locks" section of the object data.  This allows me to place the 2x4 by using vertex snapping, and then subsequently use the scale tool to adjust the length of the 2x4 as needed, even on objects that use a linked mesh (that is, I always create new 2x4s by using Alt-D on an existing 2x4).  No problem so far.
But now, I'm trying to create 2x4s with a 45-degree cut on one side, and running into difficulties getting it to work simply.  Here's what I've tried:

Create a mesh that has the expected 45-degree cut on one end.  Rotations of the object (which I do often) work great.  However, when I try to scale the length of the plank, the scaling also affects the cut-end disproportionately, so that it is no longer a 45-degree cut.  I've tried putting the object origin at the center of both the face that is far away from the 45-degree end and the center of the face that makes the 45-degree cut - both have the same problem.  I'm not looking for an explanation of why this is happening - I think I understand pretty well.
"Locking the vertices" on the mesh by using a Mask, and also using Shape Keys, as described in this article, but this seems to be relevant only to sculpting, as when I tried it, scaling the object still deformed the 45-degree angle cut.  However, I'll admit that those techniques may have been a bit over my head, so I may not have implemented them properly.
I've created a simple 45-degree triangular object, and parented it to the 2x4, placing the triangular cap at the appropriate end of the square-end 2x4.  In this case also, rotations work very well.  However, scaling the parent 2x4 (to adjust its length) still affect the scale of the triangular cap, even if I lock all three scale settings for the cap, resulting in a cap that isn't 45 degrees.  (Note that this is a visual effect - the numerical values of the scale setting for the triangular cap object do not change!)
Instead of parenting the triangular cap to the 2x4, I've tried adding two constraints: Copy Location and Copy Rotation.  This works, but is cumbersome because I have to do this for every cap I add.  So far, this is my preferred solution.
Skipping any kind of linking, and just representing caps as separate objects that get placed in the right spot.  This will also work, but is also cumbersome because if I move or rotate or re-scale a plank, I now have to move the cap as well.

As I said above, the method I like best so far is to add the two constraints, even though it's a bit of a pain.  Also, I think that technique will only work for a 45-degree cut on one end - there are some cases where I need 45 degree cuts on both ends (but not many).  But being a bit of a Blender n00b, I don't want to assume that there are other better ways to achieve what I'm trying to do.  Please remember my key objectives for an ideal solution (which may not be possible): I would like to end up with a single object that can be duplicated using Alt-D and that I can scale the length of the object without deforming the 45-degree angle at one or both ends.  If I can't get that, I'll take the best I can find.
Thanks in advance for any and all suggestions!!

Did you try using Boolean Modifier?

No - haven't tried a Boolean modifier.  At first thought, it's not clear to me how this would accomplish my goal any better than the other options I've tried.  Can you elaborate?

@brasshat: I'm using both.  I first use G to place the 2x4 where I want it, specifically by placing the object using vertex snapping with one of the vertices that's on the face that has the object origin.  That way, when I press S to scale, the end of the 2x4 that I placed (with the object origin) stays in place while the other end moves to the scale I need.

Thinking about what you wrote, " ... place the 2x4 by using vertex snapping, and then subsequently use the scale tool to adjust the length of the 2x4 as needed ...". The only way this makes much sense to me is if you're trying to make the whole model using only object mode editing. If this is the case, after placing the 2x4, switch to edit mode to make the angle at the end of the 2x4.

@brasshat: That's half-correct.  I have a common mesh that I use for ALL square-cut 2x4s, no matter how "long" they are because the cross-section is always 2" x 4" (actually, 1.5" x 3.5" but who's counting)...   In this way I hoped to save some memory.  It works great.  I thought I could do the same for the 45-degree cut 2x4s by creating a new mesh with the 45-degree cut, but that's when I ran into the scaling problem.  It just doesn't work the same, and every way I've found that works has something wrong or annoying about it...  that's what I'm hoping to resolve.

@brasshat: Also, I don't want to edit the mesh for every 2x4 that has the 45-degree cut...  I have enough work set before me as it is.  :)

So take one 2x4 object, and edit the mesh so that one end has desired 45 degree diagonal end in edit mode, then use that as a master, and copy from it as needed.

Yes - that part is easy...   what I'm trying to avoid is having to do that for every 2x4 w/ an angle-cut.


text:
Head and hair of object not rendering
I just finished an animation of the Hulk. When I try to render the animation, the top of the head and the hair don't show up even though they do in my workspace. I asked another question regarding how the hair mesh on hulk doesn't move properly with my armature, and I have a feeling this has something to do with it. I temporarily fixed that issue by creating a skull and turning on "Bone Envelopes".
Here are some pictures illustrating my issue:
Workspace:

Rendered png:

Blend File

The first issue is that you have set the hair material to be a 'Mask' material. You can disable this by going to the 'Transparency' panel in the material options for the hair material and un-ticking the box next to 'Transparency':

If you want to use transparency for the hair you can set it to 'Z Transparency' or 'Raytrace'.
To get the hair to render as transparent you need to tell the material to use the transparency of the image you are using. On the hair material go to the texture panel and under the 'Influence' panel make sure 'Alpha' is turned on.

You can then turn the 'Alpha' value in the first screenshot to '0' as you are giving full control of the alpha over to the image.
Finally, because you are now using transparent textures, which will cast transparent shadows, you need to set both materials to 'Receive Transparent' in the 'Shadow' panel of the material options:

Hey! Thanks for the help.
That seems to have solved my problem while in the workspace. But, when I try rendering, the hair appears as a grey helmet over Hulk's head: http://imgur.com/4oC3CLM
I think this has something to do with how the hair doesn't move properly with the armature. Hulk gets a big visor of hair when I turn off the transparency: http://imgur.com/o9dBqPe. (Even with transparency on, he has dreadlocks in front of his face).

That is because the hair isn't in a vertex group, so isn't being controlled by any bones, it's staying in place while everything else moves. But this is a separate issue to your question so I would suggest asking a new question if this comment doesn't help.

I've added the hair vertices to groups controlled by bones and it works likes a charm! But, back to the original problem, the rendered Hulk still has a grey helmet over his head: http://imgur.com/i4uvR8y. He looks a little better in the workspace with a full head of hair: http://imgur.com/4fTEGfH, but I really want him to render out as he looks with transparency turned on for the hair: http://imgur.com/8AbWVxj

I have updated my answer.


text:
How can I convert a node made material into an image texture?
I have a sphere having a planet material MADE WITH NODES, and I want to convert this material into an image texture; because this material is made with nodes and only works in Blender, but I want to use in another software.
This is my sphere material :

For Example :
This is Jupiter :

And this is the texture :

In this case I used a downloaded image for Jupiter to be the material but I want the opposite, I want to change the material to image texture Like The shape of Jupiter texture.
Is there anyway in Blender that can achieve my goal ?
This is the file with my sphere material .

Textures Needed :

Albedo / Color / Diffuse
Normal Map
Roughness
Glossines

I am using normal nodes and I am not useing the new Principled-shader

You can successfully bake the output of any view indipendent nodetree, but you'll not get good results by the view dipendent nodes. Could you explain better what you mean by "convert a material into an image"? Is the intended image meant to reproduce the whole nodetree or only a part of it?

@Carlo  I mean that i want the material of my sphere to be only an image texture, and yes i want all my nodetree to be baked to an image texture.

There are some peculiarity in your shader that doesn't go well with baking. You have a glossy shader (and the mix shader controlled by viewing depth...), that is reflecting. Think of a mirror: if you take a still of of what a mirror is reflecting, it would be a good representation of the behaviour of the shader only from that precise point of view. I'll suggest you to read https://blender.stackexchange.com/questions/62026/baking-glass-and-glossy-materials-cycles

You can bake your material to an image. "Render" tab, at the bottom.

The method of creating textures is called Texture Baking. Different kinds of textures (normal map, specular map, albedo map, etc.) take different sources, from which you 'bake' the texture - it can be surface normals, materials, lights, etc.
How do I bake a texture using Cycles bake
Not every material can be easily baked into single image without visual loss.
Many materials have properties like refraction, surface normals, roughness and many others, which rely and change with lighting. Usually you need to bake several textures from a single material to be able to re-create it in other app's shader system.
You might need textures like:

albedo
normals
transparency
emission
sub surface scattering color
and others..

plus if the shader system is modern PBR based engine, you will also need:

roughness
metalness

and if it's specular based, you will need:

specular
glossiness

Cycles materials can have very complicated node networks, so what I recommend is to build your material using the new Principled BSDF shader, and when you are satisfied with the result, bake all the inputs of this shader one by one into textures with 1st method (to not do this manually you can also search for addons that bake textures for specific engines, like this Unreal texture baker):

1st method - bake as Emit pass - anything that goes in, you get exactly out:

pass through emit shader

fool-proof method for any RGB, B&W, Value or Vector shader input.

2nd method - render the surface into a texture - it's like rendering into UV space instead of Camera space:

You can choose to bake with direct, indirect (bounce) or both lighting and to include or exclude different render passes (diffuse, glossy,..).
This is useful when the other app's shader engine is not that powerful and you would like to bake lighting, shadow or other information into the texture(s).

3rd method - You can choose each pass from 2nd method as a separate Bake Type option. It's the same as Combined and leaving only that one pass enabled. There is however an extra option to bake Color only without any lighting taken into account:

4th method - Bake Type: Shadow. Bakes shadows, but only in B&W. For colored bounced shadows the surface has to be baked twice as type: Combined - with light source on and off - and then the result obtained with difference of those 2 textures.

5th method - Type: Environment - bakes environment lighting into texture

6th method - Type: Normal - bakes normal map. Depends only on geometry in the scene. Rendering samples do not influence this baking process.

For anyone not familiar with Render passes this might be confusing. This is how the passes work and how they are combined into the final render:

More on this and image used is here: Cycles Passes

Since you uploaded your .blend file, I can show you the steps in a practical way.
If you want a rectangular output like in your Jupiter example, we need to redo your UV unwrap. Left is how it is now, right is what we need:

Unfortunately a sphere geometry cannot be unwrapped like that, but a warped plane can. The more geometry towards the poles, the better it will be:
Rectangular plane into a sphere
Download the file attached, append the plane, unwrap it to the whole UV space (unwrap from top - Project from View (Bounds)), move to frame 60, apply all the modifiers and scale the sphere to your liking. Since your material is procedural, it will look on this new sphere the same (left original, right fixed UVs):

As a side note, there is an issue with the material. There are black lakes, that behave like a sharp mirror. These areas will likely generate artifacts when trying to bake some information from them:

Now comes the baking. Every equirectangular texture has to have a ratio of 2:1 (like in the Jupiter example), so I will create a new texture for baking with dimensions 2048x1024, color black (does not matter), no alpha channel.
Since I don't know how you want to use this sphere in the other application, I will go through several baking options and results:

Bake everything. Type: Combined, all passes and lights enabled. The resulting texture:

As you can see, the light is baked in, so is the darkness. If you view this texture on the sphere, you get exactly what you would render from the camera:

To fix the darkness, we can delete the light, light the sphere from all directions with the environment, and do the same bake again:

Now when we add this texture to a sphere and we light it with a lamp, we get this:

The lighting will behave correctly, but the material not. We lost the specularity and roughness information. The oceans are no longer shiny, everything behaves the same.

I guess the previous one is what you wanted. But if you would like to create all the diffuse, roughness, normal from displacement, etc. textures for some game engine for example, it is best to bake it from the Principled BSDF shader (very easy to get PBR textures). Luckily I was able to optimize your material - turns out it is just a glossy shader and some redundant nodes, you can delete them:

From this we have 3 inputs - glossy color (specular), glossy roughness (by inverting it we get glossiness) and displacement. First two bake using 1st method through Emission shader and Type: Emit option:
Specular:

Glossiness (in Blender Internal this is called Hardness):

For the normal map select Type: Normal and let the displacement be connected to the Material Output Node as is. But add a diffuse as shader, else it won't work (don't ask me why:) :

Normal:

Albedo texture is black, there is no diffuse component.
Now when using these 3 textures this works much better and closer to how the Cycles material behaves:

Where did you find that Render passes flowchart?

@ScottMilner Yep good idea to add the link. Should have done it, it's fixed.

Can you please add a sample finish image , And tell me how to combine the finished texture images like normals,diffuse,roughness ?

@ShamsEl-Deen what other software will you use for the planet? You will be combining normals, diffuse, roughness in that software. Otherwise you loose lots of the surface properties. I will demonstrate on the file you provided and will make examples.

@Jerryno Yes i will combine the textures together,(Problem) I only don't know how to unwrap the sphere as a plane as you did , can you tell me how To Do it manually ?

@ShamsEl-Deen From top view go into edit mode, shortcut: U > Unwrap from View (Bounds). Here is the file that I ended up with: https://blend-exchange.giantcowfilms.com/b/3953/ (you might need to turn on the light:)

You can bake your material to an image. "Render" tab, at the bottom.
Edit 07/10/17: just saw that you want a rectangularly shaped texture map.
Then don't define the seam along the equator but rather from one pole to the other. You will get some distortion due to the projection of a sphere to the recangle, but this should be fixable by adjusting the UV map of the sphere on the output image. Here is the result of a test, the dark spot is a shadow from a lamp in the scene:

Important to get to proper rectangular UV map: when you create your sphere check the option "Generate UVs" (see my 2nd answer below). This is the output from your blend file when I do the baking from your file:

Edit 06/10/17: request for more Details on baking process.
This is a summary from this video tutorial: https://www.blenderguru.com/tutorials/introduction-baking-cycles
I assume you are using Cycles as render engine
First you need to UV-unwrap your object

Select your object (the sphere)
Go to edit mode
Select the equator edges of the sphere and make them a seam for UV unwrapping:

Select all faces ("a") in edit mode
Open UV/Image editor in addition to 3D editor window
Add a new image to UV/Image editor:

of desired size e.g. 1024x2024. The empty image should be double as wide as it is high, as you will have to place to circular meshes from UV unwrapping on the image:

With all faces selected, click on UV unwrap in the mesh menu of the 3D editor window
--> as a result, two circular meshes should appear in the UV/Image editor:

Place the two meshes side by side on the area of the new image
Select your material in the material tab
Open a node editor window and add a new Image texture node. Do not link the new node to anything, but leave it highlighted.
In the Image texture node select your newly created image as linked image:

now find on the "Render" tab the "Bake" submenu (bottom of the panel).
select your baking method (combined should be ok) and check the options to your needs
Click on the "Bake" button.

Now Blender should start to render the unwrapped sphere to the new image. The image can be saved and edited in an image editor.

I respect your answer but,when i bake it didn't bake the whole mesh , it only backed the part which is in front-of the light source (And i do not want this), i want the whole mesh to be backed.

Hi Shams, I guess you have a scene with the sphere and a light source illuminating the sphere with your material. To fix that, change the surface color in the World settings to all white, strength at 1. Remove the light. Now your sphere should be evenly lit by the environment (world) light. Check that by observing your scene in rendered display mode.

Unfortunately I am not yet allowed to comment to Sharks and Jerryno's discussion. I am relplying to Sharms' question:

@Jerryno Yes i will combine the textures together,(Problem) I only
  don't know how to unwrap the sphere as a plane as you did , can you
  tell me how To Do it manually ? – Shams El-Deen 1 hour ago

To get a proper rectangular unwrap create a new UV sphere and make sure "Generate UVs" is checked:

By doing so you do not even have to define a seam. When switching from object mode to edit mode the rectangular UV map will be there right away:

To get artifact free top and bottom of the baked image (where the poles are), the triangles should be ideally smaller than the image pixels. This results in a very high sphere polycounts. I find the advantage in the "sphere from a plane" method in the ability to add some loopcuts near the poles to get fine poly resolution to avoid baking artifacts, but to leave the rest of sphere unaffected.


text:
how to check if a vertex group is empty or not with python
I am figuring out a way to check if vertex group is empty or not. if it contains at least 1 vertex or totally empty.
I am trying to make if condition to check for empty vertex group and delete the vertex group if it's empty
can I do this with vertex group data or should i use functions from bmesh

it looks like there is a script here: https://blender.stackexchange.com/questions/16517/how-to-quickly-remove-all-zero-weight-vertex-groups

Using list comprehension
similar to that  used in this answer
Because we are only interested in empty group will use python any to move on quickly when a non empty group is found.
import bpy
ob = bpy.context.object
me = ob.data
for vg in ob.vertex_groups:
    mtvg = not any(vg.index in [g.group for g in v.groups] for v in me.vertices)
    print(vg.name, mtvg)

Then if vertex group vg is empty can remove with
ob.vertex_groups.remove(vg)


text:
Video faster than audio after rendering?
So I'm trying to edit this funny video from 2 years ago... And when I render the video the video is a lot faster than normal but the audio is normal. Also everything seems fine in preview.. I have audio sync, audio shredding and frame dropping on and the frame rate is correct. So any ideas what might cause this?
EDIT: Ok it seems to have something to do with the beginning of the video because if I render a random part of the video that doesn't include the beginning it will be fine but if I start the rendering from the beginning it will all be messed up... Any ideas on
 how to fix this?
Thanks in advance,
~Jere

That kind of thing can happen if the video you're editing was shot with one frame rate (say 30 fps) but you're rendering at a different setting (like 24 fps.)

@PatrickMarchand Yeah that's what I ment by "frame rate is correct".. So the video is shot in 50 fps and I'm rendering at 50 fps

Can you include your .blend, video, and audio?

@ShadyPuck Do you mean the whole project? If so no... I don't want to show peoples' faces sorry.

Welcome to BSE @Jere , please don't include the answer in the question, you can answer your own question and accept it.

@Georges I didn't answer the question... The problem is still unsolved

OK, I got the impression that it's solved, when you said it's only when you skip the beginning, may be other people will get the same impression and skip the question, can you edit it in a way to show that you're still expecting an answer?

@Georges ok i put a question in the end of the edit even though a bit late :/ kinda rage quitted blender for a while... It's just so hard to use.

Try exporting the footage to an Image Sequence first (maybe with an external tool) and then import that if that helps. Guess, the internally used ffmpeg codec just has problems with the proper decoding.

You are not in playing back at real speed. Go in the Timeline Window > Playback menu, and enable Frame Dropping option. It will respect the real speed but at the price of some frame droppings.


text:
Unable to export exe from BGE
I'm really sorry for being such a noob, but I made this game that a bunch of people are waiting for :-/ Upon exporting, it worked on my mac as an app, but then when I opened the blend file on my Windows 10 PC, it gives me these errors and doesn't show up anywhere where I try to save it to when I export the exe. I think it's in the code based on the errors but if someone can actually read this and understand it, maybe you could help me.
I can provide a link to the file via dropbox but I'm pretty sure technically I'm not supposed to do that because all the content in the game is copyrighted and is only supposed to go back onto the site. If someone can help me or point me in the right direction it would be so appreciated and you would be seriously saving my butt..
Note to self: never promise a windows version again because I don't know what I'm doing:(
Below are the errors I get, the movies not being packed is normal because I have to put them in the library resources afterwards, the png not being packed is okay because I ended up reloading a different one, it's all the other stuff and the location -1 that is probably the problem..

Read new prefs: C:\Users\alexa\AppData\Roaming\Blender Foundation\Blender\2.72\config\userpref.blend
  found bundled python: C:\Program Files (x86)\Blender Foundation\Blender\2.72\python
  read blend: C:\Users\alexa\Desktop\AdventureThroughUmbrafinal.blend
  Error, region type 5 missing in - name:"File", id:5
  Error, region type 6 missing in - name:"File", id:5
  Saving runtime to 'C:\Users\alexa\Desktop\adventure through umbra\AdventureThroughUmbrafinal.exe'
  Warning: Image 'angloria-2811892.mp4' skipped, movies and image sequences not supported
  Error: Unable to pack file, source path 'C:\Users\alexa\Desktop....\C:\Users\kbrow\Desktop\AmuletTextures128\flower_Purple_01_128x128V003a.png' not found
  Warning: Image 'gloamflicker.mov' skipped, movies and image sequences not supported
  Warning: Image 'gloamflicker.mov.001' skipped, movies and image sequences not supported
  Warning: Image 'introvid.mov' skipped, movies and image sequences not supported
  Warning: Image 'introvid2.mp4' skipped, movies and image sequences not supported
  Info: Packed 1 files
Traceback (most recent call last):
    File "C:\Program Files (x86)\Blender Foundation\Blender\2.72\scripts\addons\game_engine_save_as_runtime.py", line 226, in execute
      self.report,
    File "C:\Program Files (x86)\Blender Foundation\Blender\2.72\scripts\addons\game_engine_save_as_runtime.py", line 112, in WriteRuntime
      copy=True,
    File "C:\Program Files (x86)\Blender Foundation\Blender\2.72\scripts\modules\bpy\ops.py", line 188, in call
      ret = op_call(self.idname_py(), None, kw)
  RuntimeError: Error: Unable to pack file, source path 'C:\Users\alexa\Desktop....\C:\Users\kbrow\Desktop\AmuletTextures128\flower_Purple_01_128x128V003a.png' not found
location: :-1
location: :-1

New screenshot of new errors::

Okay... I repacked that file, got that error related to the .png to go away, but then the exe still won't run on my PC, and also tried to Save as Runtime from the blend file again from the PC, still get some errors that I have no idea what they mean, one including a "Memory Error" it looks like it can't pull the blender player or python script or something::

ughh bummer town:(

I figured it out you guys!! If anyone ever comes across this error again, make sure you have the 64 bit version of Blender installed not the 32, which is where I was getting the "Memory Error".. in an effort to make a version that would work on everyone's computer I kicked myself in the butt. It works now!!:D thanks to you guys who took the time to try to help me.

It looks like you have some files it can't find that are linked as directories on your computer that don't exist. I would try re-uploading 'flower_Purple_01_128x128V003a.png' and other images. Also, it doesn't seem to be able to accept video files, so that may be a separate problem.

Yes the movies and the image I'm aware of and aren't the issue because I need to add the movies in afterwards directly to the library, it would still export just those parts would be missing. If anyone knows about the other "linking directories" error in the beginning and the location -1 thing that would be really helpful.. I'm going to try to reinstall blender again but I think I'm making it worse.


text:
Third Person: Rotate camera around player
I am trying to make a 3rd person game in the blender game engine but I do not know how to make a third person camera. So what I want is: Make the camera follow the player (cube) and rotate the camera around the player (cube) just like other 3rd person games like Uncharted and Grand Theft Auto.
Is something like this doable with Logic bricks? (if not then python code would be alright)
I am also quite new to the blender game engine, so please try to explain it as good as possible.
Blender Version: 2.76

It is the same principle as with first person view:

parent the camera to the character you want to follow
use the mouse actuator (or any other method) to turn the camera according to you needs

The difference is:

you do not place the camera around the (virtual) eyes - but somewhere behind the character.

Already tried that but the camera doesn't move around the object. It just stays in the same place and moves there and doesn't keep pointing at the object.

Does you character really move? Or are you playing an action that makes the bones move? This moves the mesh but not the object.


text:
How to make Noise modifier on f-curve loop?
I am trying to make a looping animation. I am animating the camera movement using the noise modifier of an f-curve. I would like my start keyframe and end+1 keyframe to be the same so that the animation loops.
I can accomplish this by setting the Restrict Frame Range setting to the start and end+1 frames. However, this just makes the value linearly jump back to the value for those frames which does not result in a smooth animation.
I would like the slopes of the fcurve before these two points to be match up so that the animation is smooth.

You could try setting Restrict Frame Range > End to end - 1, to ensure starting and ending frames are the same. For more finetuning it's also possible to set In and Out values to something like 5 or 10 frames, like here.


text:
Blender 2.82a bug? Some faces always shading flat even though all faces were set to shade smooth?

This started happening randomly. I was in edit mode tinkering with the mesh and merging a few vertices. When I came out of edit mode I noticed the shading was messed up. No matter what I do, I can't seem to get the faces to shade smooth again.
Has anyone run into this problem? Here is the file:

Hi. Please use blend-exchange if you want to provide files for us to check. Random file sharing services won't keep them up long enough. Also, read this, if you want to know more.

Done....................

Turn off autosmooth.

@Leander Yes! Thank you.

TL;DR: The polygons (quads) in your mesh are bent diagonally.

Bent or distorted quads will produce shading issues, because Blender (or any other 3D software, including Game Engines) does not know, in which direction the light has to bounce off. These issues cannot be resolved in any other way than

either triangulating your mesh
or straighten the bent polygons

Triangulating doesn't fix the shading, it's still flat. Also it doesn't explain why this started happening all of the sudden. I wasn't even touching this part of the mesh when the shading broke like this.

I want to emphasize the fact that all faces were smooth at first. This mesh was built using a cloth simulation, and everything looked fine. Then I was in edit mode in and out for quite some time and at one point the shading broke like this.

I redid the cloth simulation and it produced a bunch of bent quads, but the smooth shading looks fine. This isn't the issue.

I had something like this happen and it was double verts.
Removed them by selecting all verts and pressing Alt + M Merge > By Distance

It says "Removed 0 vertices". Looks like it wasn't the problem.

What about normals? Recalculate in Edit Mode, select all faces and then Ctrl+Shift+N.

I've considered normals, too. Recalculating or flipping doesn't help. I attached the file, by the way.


text:
How Can I Instance an Animated Cycles Gradient Material?
I am attempting to create lightning storm from a particle system that instances an object. For the material, I the base object has an animated color gradient, animated using the mapping node.
I have successfully instanced the base object on to the particles using the Animation Nodes addon. Now I want to offset the texture animation based on the birth time of the particles. At first I thought I could use the "Cycles Material Output" node, but I can't seem to do anything to the vector mapping node in the material with it.

I think you should use 'particle info' node in the Cycles side. Cycles rendering will be frame based, not particle based, so I don't think the information you want can be transmitted from AN to Cycles.So the calculation has to be done in Cycles.

I was eventually able to solve the problem using the particle info node. However, it can't be hooked up to the mapping node to any effect, so I have to use a Separate XYZ node to isolate the Z vector.

Try the setVertexColor Node.
It seems not so intuitive at first, but it's the per object iterator way to assign the color to instanced geometry. You need to set the value to 'Col' and then back in the Material Node editor use the Attribute node and put 'Col' (for Name field) or what-have-you there too.
Hope I understood your problem. Seems I ended up here so maybe others will find that useful.
I was actually looking for a color ramp node in animation nodes, but I suppose you could take a different single value in this way and pass it through a ramp too.


text:
Texture appears to "flake" off the model at certain camera angles. Image renders those areas as transparent
Example of issue
As you can see above I get this white streak and thing that looks like its just a reflection with a lamp that's too bright.
It changes as I adjust the camera but no matter what happens if I render that whole area is transparent. I can adjust the camera and remove the lamps and the issue persists
I went through to make sure that I did not have any overlapping geometry which I confirmed.
I tried rebuilding the chessboard model. As soon as I started the second step and began extruding from the plane I placed it happened even before applying a material or texture.
Has anybody encountered this before, or have an idea on what might be causing this?
I had an idea while typing this that I might rebuild it again but this time use a cube and scale it as I need instead of extruding from a plane as I had weird issues before this while doing that as well. I would still appreciate thoughts or idea.

Image with materials tab open.

Can you share a screenshot of your material's node tree and settings?

I posted a screenshot with my materials tab open. I never messed with any settings below roughness.

I just got confirmation that this issue is due to my hardware being AMD.

you might want to delete your question then.


text:
What is the most efficient way to match green screen footage to a Blender scene?
I have green screen footage I chroma keyed, color corrected, and exported in DaVinci Resolve. I matched it to a still image of a Blender scene (Cycles).
When I import the footage into the actual Blender scene (Image as Plane), the footage no longer has the proper color because Cycles affects the light of the plane. So it's always either too bright or too dark depending on how I import it (Principled, Shadeless, or Emit).
I know I can add some extra lights to a collection, move them around, and turn on/off to make it look proper, but that's a bunch of extra steps and I'll bet there's a smarter way.
What would you do?

Read https://blender.stackexchange.com/a/146606/33589 Short answer, set your image texture color space to RAW

Thanks, but unfortunately that doesn't work. Instead, that makes it look more like RAW footage: very flat, low contrast and low saturation. Though you gave me an idea... I know that the gamma from my camera to my editor had to be converted from I think linear into something else so it was easier to view with the LUT in the editor (or else it's very dark)... Which makes me think maybe Blender does something similar without telling us, and there might be a node I can use to convert it back... Will do some research on nodes I've never used before.


text:
How to make a road with border?
I want to make a road with a border as shown in the image below:

Currently I do the next steps:

2 main loop cuts vertically, 6 horizontal loop cuts for curving

Select horizontal edges and manually move each of them to the left

Additionally, accurate road width by moving vertices

Select
faces and extrude them down

Is there another methods to do this, maybe more accurate/easier? Also, For example, I badly imagine what will I do if need to extend the existing area.

there must be a way to do it with Geometry Nodes as well...

@Luciano, yeah, but, Geometry Nodes...You know...It means I need to learn how things work. Not a solution

add a box as ground and size it

e.g. Add cube -> Tab -> S Z 0.2 Return -> S Shift-Z 20 Return -> Tab

add a bezier curve -> model your street as you want to have it

add 0.6 as extrude value here

add solidify modifier and choose thickness value as wide as your street should be

hide your street like this:

select your box from 1) and tab on geometry nodes

press New

add these nodes:

now you can move your ground along the z-axis like this in edit mode:

the big advantage of this node setup is: you can still change your bezierpath/street:

if you want to have a more flat border, you could add a cube, and use these modifiers:

then you would get this:

Cool, seems to be the best solution. I will wait a bit for another answers, and probably accept Yours

Keeping the steps non-destructive  is very helpful.

One way it could be done is by modeling a bezier curve to fit your desired road pattern, then creating a square bevel profile in the curve parameters.
You could then convert your curve to mesh, and boolean it from an object such as a cube.
A duplicate bevelled curve could be resized in the Z axis to make the road.
You could also put a  shrink-wrap modifier on the road, projecting the road to the surface if there was displacement.
An advantage of this way of doing it would be that geometry nodes have some of these functions.

Thanks for answer, can You, please describe the steps more?

Thanks, I thought it was a good method but I hadn't quite thought about how you would make it a routine work flow.  Other responses  will describe that better.

Been experimenting a while, and currently I can admit, that the most comfortable (for me) method is to use Knife tool on plane.
It is way more faster and more easier than using any modifiers, curves and all this stuff. Also, using modifiers requiers cube instead of plane, which gives extra geometry.
The main advantage of cutting is easy-made complicated patterns: curves, unfortunately can't have "branches", so You need to use booleans, or just duplicate stuff. Using knife, it is very simple to cut any pattern you need.
The only advantage I see in modifiers, is, that they are non-destructive, although, fixing stuf with plain "cutted" plane is harder but possible.

Go to Edit mode (tab), and make a cut using knife tool:

Select face, and choose Extrude region

Extrude down

That's it. Now, the bordures can be placed


text:
How do I combine two textures?
I need to combine two textures of a Gun Sight while maintaining transparency.
Please ive been trying to do it for 4 hours

If one of your textures has an alpha channel, you can connect it like this. In the image below, I mix a Moss Texture (with transparency) with the BaseColor of a Concrete PBR Material, using a MixRGB node, and the Moss Texture's alpha channel as a mix factor.


text:
Gizmo replaced with Arrows when using shortcuts (size, rotation, position)
So this one is hard to describe so I'll use screenshots
This appears when I use Size tool shortcut S

This is when I click on size tool
This happens with all of the main shortcut tools
I tried factory reset on preferences. New scenes. I even tried to repair the app from the original install.
Does anybody have a clue what this is about?

I don't think anything's amiss here - I think that's how it's supposed to be. When you scale with a shortcut, you can define the scaling axis by using a letter (ex: x, y, z), and define the extent (distance) by dragging the mouse - therefore there is no need for a gizmo. The gizmo appears when you choose (click on) the scale tool because some people just choose to work that way - scaling by grabbing the handles instead of typing an axis. In other words, they're not supposed to be the same - the toolbar tools offer a slightly different "look" for many of the same operations.

This is a pretty good answer by itself, Christopher.

Right, so apparently it's a behaviour tied in with using the Blender shortcuts instead of Industry standard. Thanks Christopher for clearing this up. I wanted to switch binding to be able to follow tutorials more easily, but it was my undoing :D


text:
Inconsistent Topology Problem
I have a pretty consistent problem every time I model a character and I feel like its largely to do with the topology.

The amount of faces is different on the other side which gives me the impression that if I were to extrude the legs then the number of faces would be uneven for the two sides.
Are there any tips on topology for future reference? I've been a blender user for years but I could never find the modelling technique that suits me best - I tried modelling from a cube but that only meant I'm restricted to the amount of faces that I subdivided it with.
I also attempted to model using a reference and using planes to surround the drawing, which gave me this weird problem. The faces get really small behind the head so when I model the torso the faces get even smaller.

To be honest, I can't figure out what picture 1 shows. I see that the left marked area has fewer edge loops than the right marked area. What does "The amount of faces is different on the other side" mean? Which side? Left <=> right? Front <=> back? You're using a mirror modifier. Shouldn't the extruded legs have then the same number of faces?

I didn't really explain it well, yeah I used the mirror modifier but I only made it go to one axis since I was making the face. (by other side i was referring to the front and back, haha)


text:
How can we change the particle size in Blender 2.8?
I was watching the motion graphics tutorial, and there's a size adjustment for 2.78, but not 2.83. Where do I go to change the particle sizes now?

you can change particle size from the Render drop-down in the particle properties or by scaling the instance object itself.

Thank you so much!!!! <3


text:
How to Stop Join From Creating Doubles of Objects?
Situation
I am trying to import a Collada model with many individual pieces to Blender. I have thus far successfully imported the model, added color to the individual parts, and I am now trying to join the objects into groups to allow for easier manipulation.
Problem
When I try to use Join, it creates doubles of whatever selection I make all over the model. The doubles appear to link themselves to pieces that are the same type as the parent of the joined group, so wherever else that kind of piece is, another double of the joined model occurs. (Pics for reference: Parent piece is the red cross directly under where it says Ctrl+J in the menu)

End Goal
I want to be able to join pieces together without this occurring, so for example, I want an individual group for the pieces on the right (in the picture) and another for the pieces on the left. I am new to Blender and I am not sure if I am missing something simple or if what I am trying to do isn't quite possible or how I should even start going about solving this. If it helps, I am using the most recent version of Blender.
Files
https://drive.google.com/file/d/1zafk_p7AWDsxO4HvJfTho2Mws4glOBe9/view?usp=sharing

hello, maybe share your file? https://blend-exchange.giantcowfilms.com/


text:
Copy materials and material indices to instances which aren't copies of anotther object
From this question: link I learned how to transfer UV maps from one object into a new instance. How can this be done with materials and material indices?
AN in 2.8 seems to have a new system but I'm still stuck in 2.79.
EDIT
@Omar Ahmad offered a solution which works great for the materials but material indices aren't transfered correctly here is how the graph looks like.

Use linking. Select them and hit CTRL+L, then choose material.

The Mesh Object Input node have a Material Indices output, you can use that as the input material indices of the Mesh Object Output node as follows:

Alternatively, you can use the following expression to get the material indices:
[p.material_index for p in object.data.polygons]

Where object is your object. To apply modifiers first, you can use the following expression:
object.an.getMesh(bpy.context.depsgraph, True).an.getPolygonMaterialIndices()

As for copying materials themselves, the 2.8 version have a system to set materials to object. But if you are on an older version, you will have to use a python script. Something like this should work:
target.data.materials.clear()
for material in source.data.materials:
    target.data.materials.append(material)

Where source and target are you source and target objects.

I accepted the answer too fast… sorry, but the material indices aren't been copied. I managed to transfer all the materials correctly though. Check the edit to see how the graph looks.

@JuanManuelLynch I see. This would be a bug in Animation Nodes. I just fixed it, but the fix won't be available for older versions. I edited the answer to include another way to get the indices.

now works as expected. There is still an issue... my root object, from where the instances are created, has a modifier (bevel), this modifier seems to get applied when the object instancer gets fed with my root mesh mixing all the polygon indices. Is there a workaround for this?

@JuanManuelLynch I would have to see the node tree responsible for the instancing. But some nodes/options return meshes that have modifiers applied, could you make sure that no such option is enabled? If not, maybe you can ask another question with a minimal example illustrating the issue.

you can check the tree in the EDIT of my question. Yes, I have the Apply modifier option enabled in my meshObjectInput node, and it actually works, the output mesh has the modifier correctly applied but the with incorrect polygon indices. I'll try to create a new question later with a more simple example.

@JuanManuelLynch Oh yes of course, sorry. Let me see if we can get around this.

@JuanManuelLynch Added another expression to get you the indices after the modifiers are applied.

where should I link this expression? and to which object? to my root object or to my created instance?, before entering the loop?

Let us continue this discussion in chat.


text:
How do I create new objects from a mesh created from animation nodes?
Considering this limitation of AN here I'm trying to create one object for each mesh generated with AN, but as show in the link, the object instancer won't help. I also tried expressions and custom script but an error pops up saying that animation nodes data structures aren't accepted as arguments.
Is there any other approach?
EDIT
Ok, after reading the answers and checking the comments I'm going to try to be more specific. Bare in mind that this question comes from a bigger Graph of nodes therefore it may be difficult to explain clearly why some decisions have been taken.
So, for a list of objects I generate a list vectors for each object (which are the result of an operation that calculates the number of points inside a volume and that belong to another list of splines), with this list of vectors I generate a mesh composed of one triangle for each vector. Now, each of the elements in this list of meshes needs to be linked to a different object.
The problem with @Omar Ahmad solution is that he is feeding to the loop a list of objects but in my case as I'm already inside the loop for the mesh generator I cannot place an object instancer. Here is that part of the graph:
May be I just need to create a list of the generated meshes and put them out of the loop in order to use the instancer but I'm not sure how it will index it and if it will be in sync with object indexes.
I'm uploading the .blend if it helps.

I have seen similar issues with Blender Animation Nodes (BAN).  Can you describe more fully what you are trying to do?  The link your provided is not an interesting read and is 2015, perhaps relevant.  Please show some of your work.

Use the Object Instancer node to create n empty objects where n is the number of meshes you have. Then loop over both meshes and the empty objects and write each mesh to each empty object using the Mesh Object Output node. For example:

Notice how each mesh is its own object.

Ok the solution was actually very simple, As I thought passing the mesh list out of the loop and applying @Omar Ahmad proposal did the job. What if I wanted to name each object from the Object Instancer with a specific name? When I try to edit the attribute name the Object Instancer keep creating duplicates

@JuanManuelLynch If you change their name, Animation Nodes won't be able to keep track of them. If you want total control, add the objects to a group, unlink them from the Instancer Node from the advanced node settings and replace the instancer node with an Objects From Group node.

Consider creating objects without Blender Animation Nodes BAN and using them as needed.
Python can create objects and you have the manual options.  Visibility can be managed with or without BAN.  Use all your options.  Python has a large body of people working to make in complete and exists prior to BAN.   BAN depends on Python.
You have not written any of your specific needs. The reader of your question does not know how many objects are failed by BAN so it is difficult to talk about efficiency.