different assigned materials into one texture?

When you UV unwrap and create a new image, save the black image as whatever you want your final map to be called. Then add an image texture to any of those materials (it doesn't matter which one) and open up the file you just saved. You don't have to plug it up to anything, just make sure it's selected. Now make sure your object is selected, then tell it to bake. If you only want the colors and want to add your lighting another way, make sure you only have 'color' selected in your options. When it bakes, it should appear on image texture, but make sure to save it (you can do this in the UV image editor).

Now you can delete all your materials and use your mapped colors as the color input for any node that accepts a color input!


How do I fix this weird material/ texture of the glass?

The lower faces of the liquid are interfering with the lower faces of the inside of the cup. You can fix this by scaling the liquid in the Z axis so that these lower faces are a little above the lower inner faces of the cup.
To do this:

Select the Liquid object and in Edit mode with Face select mode active, select the face in the middle of the top face of the Liquid.

With the keyboard shortcut Shft + S choose the  Cursor to Selected option.

In the Header change the Pivot Point to 3D Cursor (see screenshot below).

Still in Edit mode select All of the Liquid object.
Now scale a little along the Z axis so that the bottom of the liquid is not touching the bottom of the cup.

Tab out of edit mode and try a render :


Is it possible to create many random people faster than creating each one of them solely?

You may do it by randomizing the shape keys values using a script.

Create some shapekeys for your model (change head, body and other body parts parameters).

In Text Editor window click the New button.

Copy the script from here: How to set a random value for multiple shape keys? and paste it to the editor window. As you can see, all the shapekeys values changed randomly, creating the unique mesh.

Go to User Preferences (Ctrl+Alt+U) and enable the Corrective shape keys addon.

In the Shape Keys panel click on the arrow icon and choose Create duplicate for editing option. Now you have new unique mesh, with all the shapekeys applied. You can generate many of them very fast. The more shapekeys you have, the more combinations there are. Good luck :).


What is the coding alternative for double edge loop select?

Bmesh script.
With a single boundary edge selected in edit mode, the LHS of question images can be achieved calling bpy.ops.mesh.loop_multi_select() directly from the python console.
>>> bpy.ops.mesh.loop_multi_select(
loop_multi_select()
bpy.ops.mesh.loop_multi_select(ring=False)
Select a loop of connected edges by connection type
>>> bpy.ops.mesh.loop_multi_select()
{'FINISHED'}

The mesh.loop_select operator is a different kettle of fish and requires context override if called from outside the 3D view.
This is a matter of giving the context override dictionary a 3d view "area", "space_data" and "region"
However even then, with all combos of options it still did not perform as did the alt double click on my test mesh.
Use bmesh.
IMO edit mode mesh operators can become mind-numbingly annoying to code when they cannot be "made to perform" as desired
Touched on some  other reasons to avoid operators Element indices messed up after switching from Edit to Object Mode
Can instead create our own methods
The boundary select function below takes an edge, tags it, looks at all untagged boundary edges linked to its two end verts, tags them and so on until it can go no further, then returns the edges.
Test script, run in edit mode with a single boundary edge selected.
import bpy
import bmesh
from collections import defaultdict

context = bpy.context

ob = context.edit_object
me = ob.data

bm = bmesh.from_edit_mesh(me)

edge = bm.select_history.active

assert isinstance(edge, bmesh.types.BMEdge), "Select an Edge"

def boundary_select(edge):
    tag = defaultdict(bool)
    tag[edge] = True
    grow = True
    edges = [edge]
    while grow:
        more = [
        el for es in edges
        for v in es.verts
        for el in v.link_edges if not tag[el] and el.is_boundary
        ]
        edges.extend(more)
        for e in more:
            tag[e] = True
        grow = bool(more)
    return edges

for e in boundary_select(edge):
    e.select_set(True)
bmesh.update_edit_mesh(me)

Persistence of element tag and select using bound bmesh
How to detect disconnected parts within a selection?


First of all, you need to join all this character's meshes into one object by selecting them all then pressing ctrl+J. This will confuse the normals, so in edit mode select all then press ctrl+N. The armature and mesh need to share the same origin point. Press ctrl+S to snap the cursor to the center. Select the mesh and press ctrl+alt+shift+C. Do the same with the armature. Meshes downloaded from the Internet or generated from a different program can have some funky reactions when they're parented to a rig. I'm not sure why that is, but to fix it, you can scale down the mesh in object mode then apply the transformation by pressing Ctrl+A. Automatic weights aren't always guaranteed to work properly, especially if it has to deform an object made of separate meshes. You'll have to manually weight it. Be sure to convert those tris to quads (ctrl+F) to make that process easier. Cut down on those vertebrae too- only two to four are really necessary. Hope this helped.


Blender uniform Bezier curve without using its shape

You can do the following:

Convert curve to mesh.
Loop Tools -> Space (edges).
Convert mesh to curve.


Is it possible to execute an add-on when choosing 'New' to open the default file?

You can capture the event like:

import bpy
from bpy.app.handlers import persistent

@persistent
def new_file_handler(scene):
    if not bpy.data.filepath:
        print("New file!")

bpy.app.handlers.load_post.append(new_file_handler)

In order to run a popup dialog, a little hack is required to delay the operator invocation (because there's no valid context for a dialog at the time of the load_post callback):

bl_info = {
    "name": "New file prompt",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 69, 0),
    "location": "File > New",
    "description": "Open a popup dialog after a new blend is created",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "System"}

import bpy
from bpy.app.handlers import persistent

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    bl_options = {'REGISTER', 'UNDO'} #?

    prop = bpy.props.StringProperty(name="Material", maxlen=63)
    mats = bpy.props.CollectionProperty(type=bpy.types.PropertyGroup)

    @classmethod
    def poll(cls, context):
        return not context.blend_data.filepath

    def execute(self, context):
        print(self.prop)
        return {'FINISHED'}

    def draw(self, context):
        layout = self.layout
        layout.prop_search(self, "prop", self, "mats", icon='MATERIAL')

    def invoke(self, context, event):
        self.mats.clear()
        for i in range(1, 7):
            self.mats.add().name = "Material %i" % i
        return context.window_manager.invoke_props_dialog(self)

@persistent
def scene_update_handler(scene):
    bpy.app.handlers.scene_update_pre.remove(scene_update_handler)
    bpy.ops.object.simple_operator('INVOKE_DEFAULT')

@persistent
def new_file_handler(scene):
    if not bpy.data.filepath:
        print("New file!")
        bpy.app.handlers.scene_update_pre.append(scene_update_handler)

def register():
    bpy.utils.register_class(SimpleOperator)
    bpy.app.handlers.load_post.append(new_file_handler)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)
    bpy.app.handlers.load_post.remove(new_file_handler)

if __name__ == "__main__":
    register()

You may want to remove

bl_options = {'REGISTER', 'UNDO'}

so it doesn't appear in the Redo panel afterwards.

It also shows the dialog on Blender startup (needs to be installed as addon and enabled by default). This may not work with older versions, which did not trigger load events for the startup.blend. Note that the dialog may overlay the splashscreen, but there's no real problem with that.


How do you limit property value without constraints?

You can use a driver to do that:

Right click on the X location in the object's property panel and choose "manually create later (single)".

Now open a view with the graph editor (1)

Set it to drivers mode (2)

Select the X Location on your object (3)

Make the right panel appear (4) N, choose the driver tab, set the type to "scripted expression", check "use self" so that we can use object's own data. For instance here X location is "self.location[0]".

Then enter the wanted expression. To be between 0 and 1, type: min(1,max(self.location[0],0)).


How to get the volumetric display not to show overlapping triangles

You need to reduce the 'End' setting to increase the number of volumetric 'slices' that are cutting through your volume.
Eevee renders volumes by effectively sampling a number of "slices" through the volume and combining the results. The samples are spread throughout your scene starting from the 'Start' volumetric distance and ending at the 'End' volumetric distance. By having your Start and End very far apart you are spreading out those samples and effectively wasting them over parts of your scene that don't include volumetrics.
Reduce your End until you just start to see your volumetrics "clipping" out of view (I'm guessing it will be around 5-10 (rather than 1000 that you have set). This will concentrate the volumetric rendering within your actual mesh rather than far beyond it - thereby drastically increasing the detail within your volume.
It's hard to tell scale from your screenshot - I'd assumed it was perhaps the default cube. Anyway, the key is to set Start and End each to just before it starts clipping your volume - so reduce End until you just start to lose some of your volume and then increase it slightly so it appears again. Then increase Start until it also just starts clipping your volume - then decrease slightly again so it just reappears. This way the Start is just on the boundary needed to see your volume while the End is also on the far boundary.
Note that if you're using the Viewport, the Start and End are in relation to the current view position in the scene - moving the viewport will potentially move your volume outside the Start/End clipping range and your volume will disappear. Same applies to camera view and when rendering.

Discovered during investigation that there seems to be a bug when the volume is purely emissive - adding any density changes the behaviour in ways it should not. Reported bug https://developer.blender.org/T85778 to allow this to be investigated as it results in odd results when adjusting the Start/End and/or Distribution Volumetrics settings.


Where is the edge loop hotkey set in the keymap section of 2.8?

The ⎇ Alt-Select can be found under "Loop Select" and should exist in the default settings.

Edge loop select refers to edges that are connected end to end, while edge ring is a ring of parallel edges between two edge loops.


How can I animate object properties in Blender?

If you right click on a property and click Insert Keyframe, you can animate that property like you would the location, rotation, scale, etc.

This method works with almost all the properties including all values and most checkboxes.

EDIT: Gwenn commented and noted that you can also insert the keyframe by using the I key. Also, you can Remove keyframes with Alt + I


Black turns transparent in Blender texture

Plug the "Alpha" output in the Image Texture node to the "Factor" input in the Mix Shader node, and swap diffuse shaders if necessary.


How can I stop the 3D cursor hopping around when positioned in top, front, and right view?

New versions of blender have added a default option on the cursor, snapping it to object's surface. In user preferences (Ctrl+Alt+U or File menu) interface tab, uncheck "cursor depth" to have your cursor free again!


How to make node group of an existing material into a new group? (in python)

I have one method May be this is what you wan't this may work for you
if you do not wan't to use bpy.ops. .... then you have to create a node group

import bpy

for mat in bpy.data.materials:
    if "Material" in mat.name:
        nodes = mat.node_tree.nodes
        for node in nodes:
            if node.type != 'OUTPUT_MATERIAL':  # skip the material output node as we'll need it later
                nodes.remove(node)
group = bpy.data.node_groups.new(type="ShaderNodeTree", name="Test Group")

#Creating Group Input
group.inputs.new("NodeSocketShader", "Input1")
group.inputs.new("NodeSocketShader", "Input2")
input_node = group.nodes.new("NodeGroupInput")
input_node.location = (0, 0)

#Setting Default Values For Node Sockets

group.inputs[0].default_value = (1.000)
group.inputs[1].default_value = (2.000)

#Creating Group Output
group.outputs.new("NodeSocketShader", "Output1")
group.outputs.new("NodeSocketShader", "Output2")
output_node = group.nodes.new("NodeGroupOutput")
output_node.location = (500, 0)

# Creating Principled bsdf Node
#You can create any node here which you think are required to be in the group as these will be created automatically in a group

Principled_Bsdf_node = group.nodes.new('ShaderNodeBsdfPrincipled')
Principled_Bsdf_node.location = (100, 0)

#creating links between nodes in group
group.links.new(input_node.outputs["Input1"], Principled_Bsdf_node.inputs[0])
group.links.new(Principled_Bsdf_node.outputs["BSDF"], output_node.inputs[0])

# Putting Node Group to the node editor
tree = bpy.context.object.active_material.node_tree
group_node = tree.nodes.new("ShaderNodeGroup")
group_node.node_tree = group
group_node.location = (-40,0)

#connections bewteen node group to output

ShaderNodeOutputMaterial_node = tree.nodes["Material Output"]
links = tree.links
link = links.new(group_node.outputs[0], ShaderNodeOutputMaterial_node.inputs[1])


Can cycles Wireframe Input be coerced into displaying Tris, Quads and Ngons

As of yet it hasn't been implemented. Although there was no specific mention of improving the wireframe node, Thomas Dinges is working on some Cycles things this GSoC. I think it's just a matter of time before he, or another developer, gets to it.


Unwanted Lines when rendering using GPU and OpenCL (RX 580)

Seems to be a bug in version 2.83.

https://developer.blender.org/T77095


How do I displace only outside of cylinder and exclude interior of cylinder mesh?

Create your cylinder with a reasonable amount of subdivision, (which will eventually separate vertex groups), and give it 2 vertex groups; mine are called 'Shell' and 'Rim', for convenience. You don't need to allocate to them: they're placeholders.

Give the cylinder a Solidify modifier. In the modifier there's an 'Output Vertex Groups' section. There, you can set 'Shell' to Shell, and 'Rim' to Rim.
The resulting 'Shell' vertex group is shown on the left, 'Rim' on the right.

In this case, using a Vertex Weight Mix modifier, I added the 'Shell' group to the 'Rim' group. This was to isolate a region (the blue one, below) from the rim, which would displace more neatly. I have a Bevel (by angle) modifier below the Solidify, to harden the edges of the rim of the roller.

Now, you can aim the Displacement at the inverse of the mixed group, (using the little double arrow) to displace only in that outside region.

With this sort of result:

This keeps all your modifiers live. But, as @moonboots has commented, it may be simpler, for this project, to work more destructively, applying modifiers as you go along.


Blender 2.8 translate vertex using scaling

Double check this. Scaling in 2.8x works similar to 2.7x:

if you still have problem with it, provide more information and screenshots.


Thanks to @leander for this: The way to do this is to first select the object whose bone influences you are looking to modify. You can then go into edit mode and into the object data properties.
From there you can see a list of the bones affecting the object and by clicking on each one you get to see what vertices it has an influence on (the vertex groups of the bone). You can then remove any unwanted influence or assign an influence it doesn't currently have.


Since the 2.8 version, the interface has changed, now you can find all the normal functions in the header menu > Mesh > Normals (or AltN):

To see the faces orientation, open the Viewport Overlays panel and enable Face Orientation, the faces of the objects will appear blue or red, depending on their orientation:


Does blender have the concept of instances and params?

This can be accomplished with Node Groups.

Grouping nodes can simplify a node tree by allowing instancing and hiding parts of the tree. Both material and composite nodes can be grouped.
Also nested node groups are supported. I.e. a node group can be inserted or created inside another node group.

For example, creating a 'GlossyMaterial' shader group with an input for color. Node Groups can be linked/appended across files and shared between many material instances.
Further resources:

Introduction to Node Groups


What are the shortcuts for the pie menus?

Mode

Ctrl+↹ Tab

Proportional Editing Falloff

⇧ Shift+O

Snapping

This one is not a pie menu, but its shortcut seems to be missing from the tooltip as well, so I included it in the list:

Ctrl+⇧ Shift+↹ Tab

Snap

⇧ Shift+S

Pivot Point

.

Transform Orientation

,

Shading

Z


Is it possible to change the IOR inside a volume?

I'm working on a project faking the atmospheric disturbances that bother anyone using a telescope.  This is the sort of distortion that adaptive optics systems compensate for.  It is not much different from heat haze.

I accomplished this with a plane placed between the camera and a "far away" starry image on another plane.  I gave the plane a Refraction shader (using Cycles), a small IOR maybe 1.02 or something like that, and a Noise or Wave texture and a Bump node to supply a normal vector to the shader.  I animated this by adding a linear increasing value to the x coordinate of the vector given to the texture. The normal vectors have to be kept close to the usual perpendicular direction - just small wobbles.  At least for my setup.

There are actually four of these wobbled-normal planes.  Two have normals up, and the other two have normals down.  Not sure that's necessary, but I figured it would help make things messier.  The texture animations and texture scales are all different, with all roughly a tenth of a wavelength to one wavelength spanning the view.

The bottom layer is an astronomical image - but for a hot desert scene, it could be distant mountains roads and buildings. (There's another layer just above it for another special effect unrelated to this question.)

I have not tried modulating the IOR value of the Refraction node. If the IOR were to vary spatially or with time, the effect would be similar to varying the amount of wobble of the normal vectors.  Either way, I expect rendering to go much faster than any attempt to do volume interactions of any kind.

In my case, the wobbling-normal planes are sized to be larger than the camera's field of view.  In case only part of the scene needs the effect, a mask image could be used to switch between the wobbling-normal Refraction shader, and a plain Transparent one.


Why can't I have an inflow with an animated mesh output to local coordinates?

As far as I can tell this is a limitation, and I can't see a workaround.

Ideally you would be able to animate the inflow mesh shape, and at the same time use its motion to give the fluid a starting velocity like the local coordinates option does. This can work in principle but no one seems to have gotten around to implementing it.


How to change object geometry over time in the same model from the command line?

Well, I still can't find a way to change an object, but I did find out how to delete the current object and create a slightly altered object for every frame.

The key is to use bpy.app.handlers:

import bpy, math

#remove all default objects
bpy.data.objects['Cube'].select = True
bpy.data.objects['Camera'].select = True
bpy.data.objects['Lamp'].select = True
bpy.ops.object.delete()

#Define box
verts = [(0,0,0),
         (0,0,0),
         (0,0,0),
         (0,0,0),
         (0,0,0),
         (0,0,0),
         (0,0,0),
         (0,0,0),
         ]
faces = [(0, 1, 2, 3),(4,5,6,7),(0,4,7,3),(1,5,6,2),(0,1,5,4),(3,2,6,7)]
edges = []

my_mesh = bpy.data.meshes.new('Meshy')
my_object = bpy.data.objects.new('Objey', my_mesh)
bpy.context.scene.objects.link(my_object)

my_mesh.from_pydata(verts, edges, faces)
my_mesh.update(calc_edges=True)

def change_geom(scene):
    #assign frame number
    f = bpy.context.scene.frame_current
    #assign vertex values
    d = 5*math.sin(f/1000*180/3.141592)
    z = 1+math.sin(f/(250)*180/3.141592)

    #delete previous geometry
    bpy.data.objects['Objey'].select = True
    bpy.ops.object.delete()

    #create new geometry
    verts = [(-d,d,z),
             (d,d,z),
             (d,-d,z),
             (-d,-d,z),
             (-d,d,-z),
             (d,d,-z),
             (d,-d,-z),
             (-d,-d,-z),
            ]
    faces = [(0, 1, 2, 3),(4,5,6,7),(0,4,7,3),(1,5,6,2),(0,1,5,4),(3,2,6,7)]
    edges = []

    my_mesh = bpy.data.meshes.new('Meshy')
    my_object = bpy.data.objects.new('Objey', my_mesh)
    bpy.context.scene.objects.link(my_object)

    my_mesh.from_pydata(verts, edges, faces)

#calls the function every time you change frames
bpy.app.handlers.frame_change_pre.append(change_geom)

Still looking to find a way to alter existing geometry instead of re-creating it (which is way less efficient)!


Change camera from rectangle to square by center

The camera property Sensor Size is a measurement in the largest camera dimension. Therefore, to keep the same scaling, if you change the largest dimension (in this case, reducing from 1920 to 1080 leads to a reduction to 56.25%) to match the smaller dimension (eg, 1080) you simply need to adjust the Sensor Size to match te reduction in the maximum dimension.

Therefore, for default render dimensions of 1920x1080 changed to square 1080x1080, the largest dimension is reduced to 56.25% of its original size (1080/1920 = 0.5625) - so to keep the same scaling the Sensor Size of 32 should be similarly reduced as 0.5625 x 32 = 18.


Difference between a mist pass and a normalized z-buffer?

Some differences:

The Mist pass is antialiased. The Z pass is not.

The range for the mist pass is set independently of the camera's clip point.

(To visualize the mist pass select the camera and enable mist on the Viewport display settings)

Start sets the black (0) portions of the image. Depth sets the range in which the mist pass will convert the distance to a grayscale. Past that range everyting is white (1).

The falloff on the mist pass can be changed to quadratic, linear or Inverse Quadratic. The Z pass is always linear.

Comparison
If you set the clip distance and a mist pass to the same range and set the falloff to linear, the only difference is the antialiasing.


Encoder Timebase is not set - audio duplication error, FPS problem

As suggested elsewhere I managed to export the audio as a .wav and then remove the audio track, set to 60fps and then overlay exported .wav file. I’m just animating at a higher quality than last time so I will know if this worked soon :)


How do I mirror what I am doing on one part/side of the mesh onto the other?

Basically you need to add Mirror modifier to your object. As mirror center you can use object origin point on any other object by select it in Mirror Object.

You can adjust object origin using Object > Tranform > Affect only > Origins


Render Animation on still scene, No BVH reloading

In the performance panel of the render tab, check Cache BVH:

This will make Blender use the last BVH built when you press F12.

If you want faster render times for the viewport, change Dynamic BVH to Static BVH:


inserted a rotation keyframe but need to move the starting position

I'm sorry if this isn't what you were asking, but to make a keyframe with location and rotation press I, then "LocRot"


How would you curve the edges of a 3D shape?

Here's a 3D version of your Plane.

Add some subdivisions by pressing CTRL + "R" The more subdivisions you use the smoother the curve you are after will be.

Select two edges (You could also do one at a time). Turn on Proportional Editing and choose a "Falloff" type. I choose "Smooth" here.

Press "S" to scale and the Axis you want to scale on. I pressed "S" + "Z". Use the mouse wheel to affect more or less vertices.

Add a Subsurface Modifier and "Smooth Shading" if you want a smoother look. *You can use the same method with a plane.

EDIT You could also do this with a "Bezier Curve". Create your shape and change the curve to 2D to fill the shape.


You find an easy way to move the pivot to the center of the unmasked part
at the menu item
Sculpt (right next to Sculpt Mode and View) > Set Pivot > Pivot to Unmasked.


import bpy
context = bpy.context
scene = context.scene

obj = context.object.copy()

bool_mods = [m for m in obj.modifiers if m.type == 'BOOLEAN']

if len(bool_mods):
    mod = bool_mods[-1]
    if mod.operation == 'DIFFERENCE':
        mod.operation = 'INTERSECT'
    elif mod.operation == 'INTERSECT':
        mod.operation = 'DIFFERENCE'

scene.objects.link(obj)


Exporting Motion Tracking Data from Blender to After Effects

There is a plugin for this:

http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Adobe_After_Effects

Setup

To enable it you can use the user preferences File>User Preferences (CtrlAltU)

Go to the addons tab

Search for "After Effects" if the plugin pops up, enable it.

If nothing comes up, download the addon, and install it using these steps:

https://blender.stackexchange.com/a/1689/3127

Usage

Select the objects and camera etc that you wish to export, and go to File>Export>Adobe After Effect (.jsx)

Save the file.

Open After Effects (Version > CS2)

File>Scripts>Run Script File and select your file. It will ask you to name the comp. Any name will work

Next, after it is done, go into the Project panel and open up your comp. A bunch of nulls and a camera should be there, matching the motion of the ones in blender.


Cycles render starts black and then renders as white

You are viewing the rendered image in the Alpha mode, so it's showing you the transparent data. To toggle back to the Color view, select the checker-board icon in the image viewer:


Assigning parameters or constraints to a model?

You could add Shape Keys to change the size of things in the object. Also you could try to do it with hook modifiers. Another way to do that thing with the hole you mentioned would be to add a boolean modifier to the main mesh and set it to difference. Then add a Cube (Or whatever the Hole has to be shaped like) and translate it to the correct position. Put the name of the cube in the boolean modifier field and then you can control the hole by scaling that cutout object.

But your task sounds more like a thing to do in scad.


Cycles Render: Light reflections black in render

The mistake is in your shader. You are mixing two glass shaders depending on the viewing angle. This causes the physically incorrect resut. Strip out the dark glass, the mix shader and the layer weight node and everything renders fine.

Edit

There are comments mentioning poor rendering optimization, so I took a closer look at your file and reduced the rendertime from estimated 1,5 h to just over 14 minutes at 5760 x 3240 pixel.

The changes:

replaced all mesh lights with area and point lamps, they are much less expensive to compute (less noise)
deactivated the direct and indirect clamping. This reveals, that your lights are way too bright and cause the reflections to blow out. reduced all lamps so the reflection values stay below 1.
deactivated "progressive refine", this slows down your final render significantly
raised tile size to 1024 x 1024 pixel (this might be GPU-dependent and slower on your machine, you might leave it at 512 px².
reduced samples to 512. Without the mesh lights we can get away with less samples
deactivated denoising, it is not necessary here, imho. The image is virtually noise free after 512 samples.

The optimized .blend:


How to Rotate and Animate object every other angle?

Driver Approach

You can type a driver directly into field using #.  Typing

#radians(137.5 * frame)

into the rotation.z field of an object will make it spin at 550rpm at 24 fps.

In the added file I've set up two custom properties "spin", how many degrees per frame, and "rpm".

The rotor rotates

radians(spin * frame)

and the rpm is calculated via a driver by

rpm = fps * spin * 60/360

Original post: https://blenderartists.org/forum/showthread.php?229688-Helicopter-Rotor&p=1937512&viewfull=1#post1937512


How do you create a dashed circle in blender?

The answer is pretty simple and in the link which you provided. Add a circle object, go to the bottom left, click on the triangle thingy, and set fill type from nothing to N-Gon, or if you prefer nothing, I don't mind, that is your choice. Then rotate the circle 90 degrees. Then, add an array modifier and set the values to this:

You can change the count to how much you like depending on the number of dots you want. I just set it to 15.
Here's the rendered result:

Hope it helps.


How can I make a single photorealistic bird feather?

Creating the stalk thing:
To make the the stalk of the feather (or whatever it is called), create a UV sphere. Then, switch to wireframe view, go into edit mode, select the entire sphere and scale it down a bit. Next select the upper half of the sphere and move it upwards and make it smaller.

Setting up the actual feathery bits:
First, subdivide the middle bit by pressing ctrl + r and then scroll downwards a lot to get about 200 or 250 divisions. To set up for feather creation, use alt + RMB on one of inner edges . Then select the same face on the other side with shift + alt + RMB. Once you have the faces selected, create a new vertex group, and click the assign button. You can rename your vertex group if you wish by double clicking it.

I decided to remodel the tip of the feather to make it a bit longer and less spherical with proportional editing. This step is optional:

Particle system settings:
Now for the exciting bit.

Create a new particle system
Switch the particle type from emitter to hair
Enable advanced settings
Switch to vertex mode
Uncheck the box marked "random"
Set the density group to the vertex group we made earlier
adjust the length to something that you like

Combing:
Now for the super exciting part.

Switch to "particle edit" mode

Change the brush to "cut"

Cut away excess hair

Switch the brush to "comb"

Comb to satisfaction

And now you are done!
The only thing left to do is to change the hair render settings to whatever you want!
Here are the cycles thickness settings that I used:

And here are some renders:

In the macro render, you will notice that the feathers aren't quite attached to the stalk. You can fix this by adding a solidify modifier to the shaft and making it a bit thicker.


How can i add an object when the mouse is released?

here is how to detect a mouse button release and activate an actuator, using a Boolean property:

    mouse_Lclick = cont.sensors["Mouse_leftclick"]

    if mouse_Lclick.positive :
        if not own['hold'] :
             # just pressed
             own['hold'] = True
        else :
             # button is held
    else :
        if own['hold'] :
            # button released
            own['hold'] = False
            cont.activate(actuator)  #activate the actuator


2.9.X Theme to for 2.76b... our lab pc can't run version upper from 2.76b

Here is a 2.8 theme from Blendswap
Here is a 2.8 theme from Blenderartists.org
Please keep in mind that Blender 2.8+ also has a new Collection system (instead of layers) - which can't be changed using a theme.
Good luck :-)


How to set the value of a MeshPolygonStringProperty to a string?

Use the bmesh API
Suggest using bmesh for polygon string layers.
import bpy
import bmesh

context = bpy.context
ob = context.object
me = ob.data

bm = bmesh.new()
bm.from_mesh(me)
str_layer = bm.faces.layers.string.new("Foo")

for f in bm.faces:
    f[str_layer] = bytes(f'Face {f.index}', 'utf-8')  # b`foo`

bm.to_mesh(me)
bm.clear()

for s in me.polygon_layers_string:
    print(f" Layer {s.name}")
    for p in s.data:
        print(p.value.decode())


Ok I found a solution - select all objects, make the object with desired settings active and do f3 and type copy rigid body settings.


How to replicate UE4 material in Blender?

If you are using the Cycles Renderer, it's practically node-for-node, with slightly different names.  I assumed "Lightness" was a texture:

Note that the grayscale/normal map images should be set to "Non-Color Data" so Blender doesn't gamma-correct them.  You might even want that for the colored image in the lower left.

I also didn't know what the empty Lerp would do exactly.  You might need to change the colors on that to black (0,0,0) and pure white (1,1,1) to duplicate an empty lerp node.

If you are trying to use Blender Render, then I don't know if this is possible.


The python API for combing hair is not very complete.  You can adjust the control points for individual hairs using code like this:

def comb1(obj):
    ps = obj.particle_systems[0]
    dx =10
    dy = 10
    for i in range(dx):
        for j in range(dy):
            idx = i*10+j
            particle = ps.particles[idx]
            dz = len(particle.hair_keys)
            for k in range(dz):
                x =  k*0.1*i
                r = math.pi*dy/(1+j+1)
                theta = k /r
                y =  (1-math.cos(theta))*r
                z = math.sin(theta)*r
                particle.hair_keys[k].co_local = (x,y,z)

That is an intermediate result from my research.  It successfully sets the control points for the parent hairs.

It does not update the UI.  You have to toggle between Particle Edit and Object modes for the UI to refresh.
You can not really adjust the position of the root using python.  While there is a "location" property on the python particle object, it is just a computed value.  The real value is a barycentric coordinate "fuv" for the face indexed by "num", and both are only accessible from C (or a version of blender with hacked dna).  Using "displaced" values in co_local works for the parent hairs, but child hairs will not be interpolated correctly.

As of blender 2.71 the python API for editing particle systems has some shortcomings.  A chat with some folks in #blendercoders came up with a reference to some past work on editing the point cache, although the previous work was with the cloth sim and significant work would have to be done to adapt it for the particle cache (and it requires that you enable Hair Dynamics).


How do I set point density node for smoke?

Q: I knew of a function named voxel data in the textures that would allow to achieve this result , but I can’t find it in the new version of blender . Does anyone know what I should do , once I got the smoke from the particles emitter ?

Texture > Voxel Data is feature until Blender 2.79
Since Blender 2.83 you can use a new type of object Volume

For more see Blender Manual (plus properties


How to get the correct size of the image texture in Blender 2.8 with python?

Based on batFINGER's response, this ended up being the solution.

#-----------------------------cameraview paint

class PAINT_OT_CameraviewPaint(bpy.types.Operator):

    bl_idname = "image.cameraview_paint"
    bl_label = "Cameraview Paint"
    bl_options = { 'REGISTER', 'UNDO' }

    def execute(self, context):

        scene = context.scene

        #toggle on/off textpaint

        obj = context.active_object

        if obj:
            mode = obj.mode
            # aslkjdaslkdjasdas
            if mode == 'TEXTURE_PAINT':
                bpy.ops.paint.texture_paint_toggle()

        #save selected plane by rename
        bpy.context.object.name = "canvas"

        #variable to get image texture dimensions - thanks to Mutant Bob http://blender.stackexchange.com/users/660/mutant-bob
        #node solution from batFINGER

        for ob in bpy.context.scene.objects:
            for s in ob.material_slots:
                if s.material and s.material.use_nodes:
                    for n in s.material.node_tree.nodes:
                        if n.type == 'TEX_IMAGE':
                            select_mat = n.image.size[:]
                            #print(obj.name,'uses',n.image.name,'saved at',n.image.filepath)

        #add camera
        bpy.ops.object.camera_add(view_align=False, enter_editmode=False, location=(0, 0, 0), rotation=(0, 0, 0))
        #ratio full
        bpy.context.scene.render.resolution_percentage = 100

        #name it
        bpy.context.object.name = "Canvas View Paint"

        #switch to camera view
        bpy.ops.view3d.object_as_camera()

        #ortho view on current camera
        bpy.context.object.data.type = 'ORTHO'
        #move cam up in Z by 1 unit
        bpy.ops.transform.translate(value=(0, 0, 1), constraint_axis=(False, False, True), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

        #found on net Atom wrote this simple script

        rnd = bpy.data.scenes[0].render
        rnd.resolution_x, rnd.resolution_y = select_mat

        rndx = rnd.resolution_x
        rndy = rnd.resolution_y

        if rndx >= rndy:
            orthoscale = ((rndx - rndy)/rndy)+1

        elif rndx < rndy:
            orthoscale = 1

        bpy.context.object.data.ortho_scale = orthoscale

        bpy.context.selectable_objects

        #deselect camera
        bpy.ops.object.select_all(action='TOGGLE')

        #select plane
        bpy.ops.object.select_all(action='DESELECT')
        ob = bpy.data.objects["canvas"]
        bpy.context.view_layer.objects.active = ob

        #selection to texpaint toggle
        bpy.ops.paint.texture_paint_toggle()

        return {'FINISHED'}


You can do it using Animation Nodes (link to the site here):

Get the text as object transform input in order to have its coordinates.
Convert the location to text.
Use it as text object output.


How to change the color of an image while keeping its nuances?

Here is one of many ways to do this:

Add Color ramp node - use it to adjust whites/blacks
Add Mix node set to Screen - it will filter out the black parts
Connect RGB node and select your desired color


Setting the correct Python data_path for vertex motion?

Handler workaround.

Personally would  lean towards using shape-keys for this.

Not sure why the animated mesh doesn't update, hopefully someone will answer with a required setting, or it is an oversight in deps graph and may change up in future.

As a work-around, calling mesh.update() on a frame change via a handler gives the desired result

import bpy

def animate_meshes(scene):
    meshes = set(o.data for o in scene.objects if o.type == 'MESH')
    for m in meshes:
        m.update()

bpy.app.handlers.frame_change_post.append(animate_meshes)

clear all frame_change post handlers with

bpy.app.handlers.frame_change_post.clear()


I wanted to change my computation device, but there is no dropdown menu to change it

Additionally to installing the drivers and Cuda, I had to choose the NVidia card as the card used for rendering (hybrid card), by runningsudo prime-select nvidia and log off and in again, afterwards it works.
This is now really off-topic.


Sample Color From Viewport in Texture Paint Mode

The hotkey is S.

It functions two ways, by holding S the current paint colour will be set to whatever is under the cursor. By clicking  RMB while holding S a new swatch will be added to the pallette. (see the end of these release notes)


Speed up bpy object creation with "for loop"

Using array modifier

Using array modifiers will speed up the processing because it will lower the overall io between Blender and Python and also lower bpy.ops usage:

Create a base cube object.

Create and apply three array modifiers on it.

The code is commented below, but if not clear enough, please ask in the comments.

import bpy
import bmesh

def apply_modifier( obj, count, vector ):
    # Add an array modifier with its wanted parameters
    m = obj.modifiers.new( name = "Array", type = 'ARRAY' )
    m.use_relative_offset = False
    m.use_constant_offset = True
    m.constant_offset_displace = vector
    m.count = count
    # Apply it
    bpy.ops.object.modifier_apply( modifier = m.name )

def create_base_cube( context, name, size ):
    # Create an object
    mesh = bpy.data.meshes.new( name )
    obj = bpy.data.objects.new( name, mesh )

    # Add a cube
    bm = bmesh.new()
    bm.from_mesh( mesh )
    bmesh.ops.create_cube( bm, size = size, calc_uvs = False )
    bm.to_mesh( mesh )
    bm.free()

    # Link the object to the scene and set it active
    context.scene.collection.objects.link( obj )
    context.view_layer.objects.active = obj

    return obj

name = "CubeMap"
size = 2

obj = create_base_cube( bpy.context, name, size )

N=100;
interval = 3

apply_modifier( obj, N, (interval, 0, 0) )
apply_modifier( obj, N, (0, interval, 0) )
apply_modifier( obj, N, (0, 0, interval) )

Using dupliverts (proposed by Jackdaw in the comments)

An alternative is to use dupliverts, which seems to be faster and allows to define any patterns (not only cubic).

The principle is to create an object with vertices at the positions you want, then make it parent to a cube and use dupliverts as instancing method.

import bpy
import bmesh
from itertools import product

def create_base_cube( context, name, size ):
    # Create an object
    mesh = bpy.data.meshes.new( name )
    obj = bpy.data.objects.new( name, mesh )

    # Add a cube
    bm = bmesh.new()
    bm.from_mesh( mesh )
    bmesh.ops.create_cube( bm, size = size, calc_uvs = False )
    bm.to_mesh( mesh )
    bm.free()

    # Link the object to the scene and set it active
    context.scene.collection.objects.link( obj )
    context.view_layer.objects.active = obj

    return obj

def make_result_object( context, name, cube, vertices ):
    mesh = bpy.data.meshes.new( name )
    obj = bpy.data.objects.new( name, mesh )

    # Associate the vertices
    obj.data.from_pydata( vertices, [], [] )

    # Link the object to the scene and set it active
    context.scene.collection.objects.link( obj )
    context.view_layer.objects.active = obj

    # Make the object parent of the cube
    cube.parent = obj
    # Make the object dupliverts
    obj.instance_type = 'VERTS'

    return obj

name = "CubeMap"
size = 2

cube = create_base_cube( bpy.context, name, size )

N=3*100
interval = 3

vertices = [(x, y, z) for x, y, z in product( range(0,N,interval), range(0,N,interval), range(0,N,interval) )]

result = make_result_object( bpy.context, "result", cube, vertices )


'Child of' constraint not working on armature

The hand bone you're trying to constraint is a connected child of another bone, so it isn't free to move.
Try to do the opposite, and make the main gun bone a constrained child of an appropriate hand bone.
After settign up the constraint, press its "Set inverse" button.


How to make an inventory system for the Blender Game Engine

Okay, what you are asking is quite a big task and you first need to make a saving function so that items are saved for later on and don't just disappear. That needs python, and luckily this exists: https://www.youtube.com/watch?v=ffws4ijjk-0

Then you need to make a second scene that has the HUD, which is basically just an image of some boxes where items would go. Then you would add an empty in each slot, and then set it up so that when you pick up an item (or interact with an item) the empty would add the object into the HUD slot where the empty is located. And then you would make a property for each item you can possibly get, so that when you have the item it can add 1 to the property. When you use the item, it would take away the 1 from the property and get rid of it from the HUD, by ending the object that represents the item. Finally, you need to add a property that keeps track of how many items you have. For example, if the HUD could hold 6 items, then you need to set it up so when you try to pick up a 7th item, it would not let you because the value is 6 already. Once this value is decreased to 5 or less, then it would let you pick it up.

This is mostly just my ideas and I have't actually ever done this, but I strongly believe it would work. It might be a bit tricky setting up which empty adds the HUD object though.


I think the displacement map not working properly is a side effect of the colour in the image. You probably want to convert that into grayscale before using it as a displacement map.

Well, with a quick bit of photoshop work, here's what I came up with. It's not perfect and you can see the pixels if you zoom in a bit too much, but it works somewhat.

Displacement map:

Colour:

Node Setup:

Final Result:

Edit:

Typically you won't want to plug in the normal map node. I did that because there were some shading issues that cropped up in Eevee, and it seemed to fix it. In cycles, it works fine without the Normal Map node.


is it because your filepath is not a valid filepath?

Either use a prefix r to make the path raw, or use forward slashes. Backslashes have special meaning in programming languages like python. valid paths are

   # windows
   filepath = "C:\\some\\folder\\file.mp3"
   filepath = r"C:\some\folder\file.mp3"
   filepath = "C:/some/folder/file.mp3"

   # posix style (linux, osx)
   filepath = "/home/folder/file.mp3"

This bug is fixed as of today: this error will now return 'File not found', which is better:
https://developer.blender.org/rB39b85e452faae543d10831e4fa66fdffbc22e0a1


Blender 2.8x Outliner - Manually Reorder Objects within Collection

As you've mentioned, uncheck 'Sort Alphabetically' first to allow manual arrangement. After doing that you should be able to reorder the layers by clicking and dragging them around.
The dark highlight over a collection indicates that you're joining your current selection to another and the dark line indicates that you're placing a collection above/below another collection.
Holding down control while dragging a collection parents the current selection to the one you're dragging it into but still allows it to be higher up the hierachy.

Maybe this question was asked before a newer Blender release and a potential issue was resolved. (Using Blender 2.81a)


Looking for software to make an Interior 3d Rendering

Just to add a real world testimony in addition to what is already sated in the comments.

Blender is perfectly capable (and quite good at it too) of doing realistic architectural renderings; I am an architect and happily use Blender for what you describe on a daily basis.

You can import plans in DXF format directly from a CAD drawing using the default shipped in DXF imported addon.

As already mentioned before there is a well known steep learning curve compared to other software. It will requite effort and time from your part to learn it, and will also require additional time to get proficient with it.

If this is a one-off thing I am sad to say that Blender is probably not the software for you. The initial investment might just be too big for a single use and the difficulty too much to get you anywhere in a short time.

In that case Sketchup or other "lighter" software might be a better option.

If you plan on doing this in the long run and want to invest some time into it, then it might be very rewarding further down the road to endeavor in the Blender road.


You're in luck, since you are Blender Internal. This can be fixed using the Shadow Bias sliders in the materials tab. It will recalculate the blocky shadows taking the smooth shading into account. Render times will be just a bit slower, but not by much.


How do I get my -Project from View- image back in Blender v2.83?

That pink color means “missing.” The blend project cannot find the source image. Try using “find missing files“ and going to the new location of the image, or trying to put it back where it was before.
If the image or video clip is small, sometimes I pack it in the blind files so I can move it about without having problems.


Is there a way to hide/remove parts of a fluid sim mesh so they won't show in render?

In case of Particles System type Fluid, there is not a direct way to hide part of particles. You would have to convert sim to mesh.
In this example I used Metaball as particle (because Icosphere object keeps particle system after export).

export into Alembic format
import back and use Boolean Modifier

EDIT
OK I got it, you mean particles generated by Fluid Simulation (Mantaflow) - Liquid and Spray.

Yes, particles are not affected by Boolean Modifier.

So there does not exist a way to hide a part of released particles. So only way I know is to use Mball as particle and export-import it as Alembic and use Boolean.

Note: In theory - to exclude some particles from render you can influent particles size by Texture, so classic particle system can do this, but fluid sim particles doesnt have such feature.


Group particles not showing up in Cycles

This should fix it, but I suggest watching some tutorials how to create grass in Blender.

Usually it's done with hair particles, either by manipulating the hair
https://www.youtube.com/watch?v=mZR_WKVYiX8

or duplicating mesh grass using the hair particles
https://www.youtube.com/watch?v=eshOzshjt90&t=58s


Blender 2.90.1 Keying Node doesn't seem to work. Am I missing a switch somewhere, or does keying need to be added to the clip like a mask?

I FINALLY got to the bottom of it. There was a video loaded in the sequencer that was rendering INSTEAD of what was set up in the compositor. Once I deleted the clip from the sequencer, all was good. Hope this helps!


Normals Not Applying Correctly Onto Model (Strange Placement)

Hi its pretty hard to tell without the project file or a Uv overlay, but it doesn't look like a mapping issue. Looks like there were ray distance issues in the actual bake, try slightly increasing the the Ray Dist value. If that doesn't work try also using a cage mesh and check if there are any intersections in you model


Ctrl + 0 (or 1,2,3, and so) is to add a Subdivision Modifier, but Ctrl + Numpad 0 is to use an object as camera


On this vase you have three materials in the material slots tab. As you can see in your screenshot, you are editing the second one at the moment. Trouble is, that material (I know that from the last file you provided in another question Half of my mesh/texture is blurred) is not assigned to any face of your model, that's why you do not see the texture.

Either select all faces in Edit Mode and click the assign button in the material tab. This will assign the currently active material to the mesh faces. Or alternatively, delete the other materials (if you don't plan to use them). Then make sure the image texture node is selected in the Node Editor, and the 3D View is set to textured. That should do.


Blender won't install correctly on one of my computers

Have you installed the necessary MSVC Redistributable packages after installing Windows?

I am not sure but you may need a few different ones from across the years to run Blender. Try at least the newest one

https://support.microsoft.com/en-us/kb/2977003


Where can the viewport clipping parameters be changed?

It's in the 3D View area's Properties N menu > View tab:

It doesn't affect Orthographic view, where there's no view distance.
How to set the the view port clip parameters per Python script is described in an answer to the question "Setting camera clip end via Python".
Older Blender 2.7:


Change multiple custom properties simultaneously

I don't believe it's possible by selecting both of the object. For a simple reason, one of the object may not have the property.

If you want to change multiple property at once you can add a driver between the property of the two (or many) objects.


Shrinkwrap modifer + Duplifaces

Green cone is instanced while snapped to Suzanne's geometry:

Add a Plane, scale it down in Edit mode to something like 0.01
Add Shrinkwrap modifier to the Plane, switch to Project mode, enable both directions to shrink, set Target mesh and enable Adjust edit cage (all icons near modifier's name)
Add object to be duplicated, parent it to the Plane
In Plane's object settings enable Duplifaces

Now in Edit mode you can start copying Plane (SHIFT-D), move copies and in realtime see result of their placement. If direction of Dupli gone wrong then flip normal of a plane (Edit Mode->W->Flip Normals)


Like moonboots assumed correctly you have no image for the texture node. You need to create one.

Press the "+ new" button to create an image. Give it a name
Select the image in the image panel on the left side so you can see the image
Save the image either with Save as... or with Pack

Save and Save as... will save your image in a separate file. Alternatively, you can use the Pack. This will pack your image into the .blend file.
Caution! Whatever you choose your image will not be saved when you save your blend file! You need to use the 'save image' (ALT + S) command individually. If you close Blender it will remind you when you have unsaved images. But if Blender crashes or freezes your unsaved changes of the image are lost.


To select every object in the scene press A. This makes to select / deselect everything depending on whether something was already selected. So if there's something already selected press A twice.

Note that there can be hidden objects in the scene, which won't be selected without unhiding them. You can do that by pressing Alt+H to unhide and then proceeding to select. See hiding / unhiding everything but selected objects; also toggling visibility of object in Outliner.

If you'd like to select everything in scene depending on some category then you should use Select Grouped menu which can be accessed by Shift+G when in Object mode. To select only meshes select one, access menu and choose Type entry. Same with any other type of objects.

See more about selecting in selection tools wiki


Selection of vertices surrounding a vertex (only the the ones directly touching)

You can use Ctrl+ numpad + to select more vertices connected to the intitial selection.

Or use the


How to rig a bone that moves the entire object?

Enter Edit Mode of the armature and parent every bone that doesn't have a parent yet to your main bone with offset.


Intermittent Error: EXCEPTION_ACCESS_VIOLATION when using Python script

Toggling pose mode / imports / rendering scene, many situations
in blender can break pointers,

for example

foo = bpy.data.objects["Cube"]
bpy.ops.posemode_toggle()

foo can now cause crash!

full documentation
https://docs.blender.org/api/2.78b/info_gotcha.html#help-my-script-crashes-blender
https://docs.blender.org/api/2.78b/info_gotcha.html#edit-mode-memory-access


how do you create a meta-strip (group of strips) in the VSE using python?

There might be no low-level RNA method to create or make a meta strip, but you can still use the operator:

bpy.ops.sequencer.meta_make()

Make sure you select all relevant strips before you call it.


Renderman works fine but rendering in 'it' just shows 'it' showing 'Empty' and does nothing

I have been using RM for a month or so now.

Make sure your IPR is running before you render. Using your viewport is almost pointless for viewing your renders.

Everything is run through "IT".

Make sure you have Blender rendering to "IT"

If you want to upload your blend file I can test it out.

I would recommend going through the RM forums

https://renderman.pixar.com/forum/forumdisplay.php?s=&forumid=166

They are awesome, they usually respond very fast for any problems.

PS Not sure what you meant by installing the MAYA version to get "IT". That might be the problem. I didnt do it that way. "IT" should just come with RM. I did NOT install the MAYA version, I still have "IT".


Combine 2 objects to 1 object with animations

As Nascent says you can select the object with animation at last, you can also join and the action will still be available in the Dope Sheet > Action Editor and look into the dropdown menu:

But your question is a bit more complex as you want to join a lid to a box object and I guess you want the lid to keep its animation, and you don't want the box to move. In that case you have 2 solutions:

Don't join the 2 objects, just parent the lid to the box (select the lid, shift select the box, then CtrlP to parent). When you'll move the box, the lid will follow, and it is still animated.

Join the 2 objects. In that case you can't count on your current animation anymore as it will move both the lid and the box, but you can use bones to animate the part of the object you want.


VSE: How to Reuse an Animation or how to Create an Animation Template?

Consider

Change Data Files ... a single button in the VSE Panel
Copy and Paste from the Graph Editor Window

Additional

Archive your software by Duplicating the file or entire Scene to Duplicate all VSE Strips.
Duplicating the Strips in the Particular Scene to test new animations.
A Python Script solution by searching BSE or the internet in general. Obtaining a new Python Script written by someone or you.  Your expertise with Python will be a factor in determining the cost of this.

A Python Script can handle this situation.  The cost could be searching the internet or someone writing it.  You might be that someone.
Sometimes a manual solution may be more time cost or other cost effective depending on arrangement and quantity of data.  If you get lucky.  Probably more people on the BSE site are familiar with Copy and Paste rather than writing a Python Script.

Please know keyframe data can be copied and pasted from the Graph Editor Window.

Copy and Paste from the Menu or use the indicated standard keystrokes.  Image Above.

You might also have a manual copy and paste solution depending on your data quantity and the time cost or other cost of getting a Python Script.  Just like spreadsheet data or text data has a copy and paste with a cursor ... the Blender User may copy points of the one data graph (A) and paste them to a certain target data graph (B) with the graph timeline frame cursor.

Lets imagine an optimistic hypothetical situation. Suppose your Blender Scene situation has 3 independent video strips in a set named [A] in VSE each with 88 transparency keyframes each and 3 dependent video strips in a set named [B]. Next the scene is duplicated and [A] has been given a new animation by you.  Next you may only need to copy and paste actions 3 times to give [B] a new animation.  In this scenario you did [not] manually duplicate the work of thinking about the 88 keyframes individually.


How to subdivide mesh with Python and Blender 2.8?

bmesh equivalent

Using bmesh can manipulate a mesh in either object or edit mode.

There is generally a bmesh operator equivalent of bpy.ops.mesh... in this case

  bmesh.ops.subdivide_edges()

  Subdivide Edges.

  Advanced operator for subdividing edges with options for face
  patterns, smoothing and randomization.

An example of 1 cut subdividing all edges of the context objects mesh.  Select a mesh object run the script in object mode.

import bpy
import bmesh

context = bpy.context
ob = context.object
me = ob.data
# New bmesh
bm = bmesh.new()
# load the mesh
bm.from_mesh(me)

# subdivide

bmesh.ops.subdivide_edges(bm,
                          edges=bm.edges,
                          cuts=1,
                          use_grid_fill=True,
                          )

# Write back to the mesh

bm.to_mesh(me)
me.update()

To use bmesh in edit mode, load the bound edit mesh, (instead of new and from_mesh)

bm = bmesh.from_edit_mesh(me)

write back (instead of to_mesh)

bmesh.update_edit_mesh(me)

How to use "bmesh.ops.subdivide_edges" on selected edges

Subdividing cubes at different intervals


How to tilt the edges to a particular angle

I did it by using rotation so I rotated the arms along Y-axis then it looked weird as the arms were rotated as so far from the body, then I used the provided axes to set the position of arms back to the position relative to body.
Now it looks correct as I wanted:


How to get illumination pass from a Smoke Sim with Cycles?

One solution is to add a material index to your fire's material, and then, on the compositor,  you can take the Emission pass, and multiply it with the Object Index one.

Go to the Properties panel, then switch to the Materials tab, and under the Settings subsection, change the material index.

Then, still on the Properties panel, switch to the Render Layers tab, go to the Passes subsection and activate Material Index and Emission.

Then, in the compositor, multiply the output of a IDMask set to 1 and the Emission pass.


Close to this question

If you extrude your base shape and select the edges corresponding to the vertices you want to round, then you can bevel CtrlB the shape:


How to add hollows on the surface of mesh and don't make it too complicated for future modelling

Composition.  One might think a sphere/cylinder needs more vertices than a cube. If you place a sphere next to a cube and both are children of an empty then each can have different numbers of vertices mininal to their shape. They might not share any vertices at all.  The location closeness can make them seem as single connected mesh even though they are disconnected.
Consider searching Blender Parent Empty at some well known video website.
See videos on Blender armatures if rotation is necessary.
Single Mesh Example in edit mode.  The sphere vertices have not effect on the cube vertices.

The above can be a single mesh.  Yet the composed meshed share no vertices.
I see textures in your image above.  For low levels of detail you can replace vertices with textures.  All the metal texture and decal paint appearing in your image are probably usefully and sanely done with Blender textures.  You can use a texture to imitate a protusion or indentation especially if that area will not be seen close up.
Another search here will probably locate more questions on the same topic.


This is because of what modifiers are. They take the existing thing, and do a “last minute” operation before rendering it. This is great for deforming things in animations or doing a basic change (like beveling) that you may want to tweak much later without going through 32 Undos. The mesh’s actual data will not change unless you apply the modifier. You can turn on “show in edit mode” on the modifier header, but it will still have a ghost overlay of the actual mesh data you are working with.


It's because you have Dynotopo enabled in sculpt mode Tools option.It causes generating new geometry each time you use brush. Disable this option to avoid that.

And here is the way, you can make the element you need in much faster and easier way:


Weird lines on mesh after exiting sculpt mode

Simply the multires modifier wasn't set high enough. Another level and an overall smooth fixed it. Still strange tho since i set preview and sculpt to the same level.


How to make / generate the trailing effect?

I can't fully get you reference to your freestyle setup, but a simple way could be using a mesh deformed by and also following the curve, using a blend texture influencing the mesh alpha.
This is a single color example, but it should be possible use a rainbow style texture...

you could combine such a trail with the freestyle based animation, perhaps... maybe using different render layers.
edit: since you asked here is a possible similar setup with cycles (renders a bit slower)

edit: since you asked, here is the .blend related to the last example (cycles)

Note: the animation is not done with follow path here, but animating the Y location after setting a curve deform modifier... the effect is similar, though.


To help troubleshooting, select the mesh and check what's on its parent field.

Then, as thibsert suggested, try to use the menu instead of the shortcut, it looks like you're telling the computer "Alt P" and not "Ctrl P". Did you switch phisically the two buttons on your keyboard? Or wrongly mapped them in your OS?

If the problem persist, try uploading your file.


I clicked on Mirror object but it went to a wrong place

After some testings I figure it out - this must be your case, I think.

Before you use any modifier, ever apply transformations.

I rotated my mesh in object mode and applied the mirror and I got a bad mirror.

But after applying the rotation I got the desired mirror.

See the image below:


Is there a way to change the default Booean operation type?

This has been asked before in 2015: Where are the modifier scripts in the Blender package contents folder?
They are part of the main app coding, so unless things have changed, not easily modified.
I would like to do this, too, as I use Booleans a lot for 3D print drawing.
Not changing dimensions from millimetres to CM would be good as well.


Object Shows up in the rendered tab but not in the actual render

Your cup influencing plane, but is not visible.

Check your render layer settings:

On the left - all active layers

On the right - active layers for "RenderLayer" named render layer. You have one of them (with cup) switched OFF. That's why cup influence scene, but is not visible.


Which render engine renders faster? Blender Internal or Cycles?

Blender internal is much faster is the jist of the situation. However the topic of which is the fastest is much more complex than that.

Blender internal renders completely differently, using a 'biased' method. This means it is biased as to which light rays it follows (the important ones). This is generally faster and cleaner than cycles renderings but less realistic. It uses short cuts to simulate the flow of light. Its lighting model is more simplistic and easier to compute.

Cycles is 'unbiased'. It shoots light rays everywhere and you have to wait for the image to become acceptable in terms of random noise. If noise is okay in your image, it may be possible that cycles can render faster than blender internal. Most people dislike noise in their images, and to clean up all the noise it can take a very long time, especially for certain light rays like reflections and refractions.

Comparing the two in terms of performance is not really a useful exercise because they will give different results. It will be comparing apples to oranges best case. You use cycles if you want very close to realism. Blender internal can be used for less realistic rendering. Blender internal can be made more realistic if you have a great deal of skill.


Is there a python command to package all the files in an existing .blend without it being opened?

You can do it using Blender in the GUI-less mode:

create a new Python script like this one (I'll call it pack_GUIless.py):

import bpy

bpy.ops.file.pack_all()
open the Command Prompt (Windows) or Terminal (Linux) and run the command blender --b [path_to_file]/test_file.blend -P [path_to_script]/pack_GUIless.py. You might have to put the blender path as well if you have a portable version of Blender. More info here:https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html

This will open blender in the terminal and close it as soon as the files of the test_file.blend project are packed, so it will be fast and clean (no GUI loaded).
If you need to do it do it many times you might want to create a .cmd script to make it easier, like this one I made for rendering purposes (so you edit the script with the path to the .blend file and run it, and it will do everything by himself).

Please mind that I didn't test this specific case, so you might have to tweak something


Python copy animation from armature to another armature different rest pose

Make constraints to visualize, then convert.
Not at all sure how the code in question is going to even be close to what you wish to achieve.
Would look at doing something akin to answer here.
PoseBone local rotation values to global with axis changed
The last example of which shows how to run thru pose bones, convert space, change the alignment and convert back.
Create pose from existing armature
This one has two armatures with two distinct rest poses, (the one with animation is an abomination)  To create the animation on t pose rig from other have added constraints to copy the transforms from source to target, then loop thru and create the animation.
For your example since the bones are not using same axes, could instead copy location to but "Incorrect" bones heads at "Correct" bones heads, and use a track to constraint.
Script to constraint target pose bones to source.
import bpy
from math import pi
context = bpy.context
scene = context.scene

source = scene.objects.get("Correct")
# Incorrect (sp)
target = scene.objects.get("Uncorrect")
target.animation_data_clear() # remove any ad

for pbc, pbi in zip(source.pose.bones, target.pose.bones):
    # clear  for testing
    while pbi.constraints:
        pbi.constraints.remove(pbi.constraints[0])

    # locations

    cl = pbi.constraints.new('COPY_LOCATION')
    cl.target = pbc.id_data
    cl.subtarget = pbc.name
    cl.owner_space = 'POSE'
    cl.target_space = 'POSE'

    # rotations

    tt = pbi.constraints.new('TRACK_TO')
    tt.target = pbc.id_data
    tt.subtarget = pbc.name
    tt.owner_space = 'POSE'
    tt.target_space = 'POSE'
    tt.head_tail = 1
    tt.track_axis = 'TRACK_X'
    tt.up_axis = 'UP_Z'
    tt.use_target_z = True

Script to convert constraints to keyframe animation
import bpy
from math import pi
context = bpy.context
scene = context.scene

remove_constraints = True

source = scene.objects.get("Correct")
# Incorrect (sp)
target = scene.objects.get("Uncorrect")

action = source.animation_data.action

f = action.frame_range.x
# add a keyframe to each frame of new rig
while f <= action.frame_range.y:
    scene.frame_set(f)
    context.view_layer.update()
    r2 = target.evaluated_get(context.evaluated_depsgraph_get())
    for pb in target.pose.bones:
        #pb2 = rig1.pose.bones.get(pb.name)
        m = r2.convert_space(
            pose_bone=pb,
            matrix=pb.matrix,
            from_space='POSE',
            to_space='LOCAL',
            )
        if pb.rotation_mode == 'QUATERNION':
            pb.rotation_quaternion = m.to_quaternion()
            pb.keyframe_insert("rotation_quaternion", frame=f)
        else:

        # add rot mode checking
            pb.rotation_euler = m.to_euler(pb.rotation_mode)
            pb.keyframe_insert("rotation_euler", frame=f)
        pb.location = m.to_translation()

        pb.keyframe_insert("location", frame=f)
    f += 1

for pb in target.pose.bones:
    # clear  for testing
    while pb.constraints:
        pb.constraints.remove(pb.constraints[0])


Creation of Node Setup with python, missing some commands

Cycles material nodes are accessible through the node_tree attribute of the material.

Example: get the node tree of the active material on the active object:

node_tree = bpy.context.object.active_material.node_tree

Add a node in the material / node editor

You have to know the bl_idname (a string) of the node you want to add. Then you can do:

node = node_tree.nodes.new(bl_idname)
# Example, add a "Diffuse BSDF" node:
node = node_tree.nodes.new("ShaderNodeBsdfDiffuse")

I think you can find all bl_idnames of Cycles nodes here: https://docs.blender.org/api/2.79/bpy.types.ShaderNode.html#bpy.types.ShaderNode

Remove a node in the material / node editor

# node is of type bpy.types.Node
node_tree.nodes.remove(node)

Link an input and an output

Assuming you have two nodes left_node and right_node.
output and input can be indices or strings.
For example, on a Diffuse BSDF node you can access the output by node.outputs["BSDF"] or by node.outputs[0].

node_tree.links.new(left_node.outputs[output], right_node.inputs[input])

Since you edited your question:
You should read the Blender API docs I linked above.
Cycles shader nodes inherit from bpy.types.Node.
You can get a specific node if you know its name: https://docs.blender.org/api/2.79/bpy.types.Node.html#bpy.types.Node.name

If you add the nodes via script, you already have a reference to the new node returned by the add() method (see above point "add a node").


Starting with Blender version 2.8 the blender internal render engine has been discontinued. So there is and will not be an option like halos or wireframe anymore.
versions 2.79 and older:

To use something similar in the cycles render engine read:
Halo particles don't render in Cycles
How do you create an aura, or halo effect, like what was possible with the internal Blender Render Engine, in 2.80
Blender cycles won't render halo particles
and
What is a Point Density texture?


Camera: Keep perseptive by changing focal length?

If

d1 is the distance to the object viewed by the camera with a focal length f1
d2 is the wanted distance when the focal length is f2

Then:
d1 / f1 = d2 / f2

So that:
d2 = f2 * d1 / f1

If you want to focus on an object, you need to drive the camera on its local Z axis considering this distance shift. So we need to get the distance at the starting point and calculate the new position when the focal length is changed.
A way to do it in Blender is to use drivers.
As we want to keep the original camera position (which corresponds to d1), we can use delta transforms to do it.
These drivers will use some Python functions:
import bpy
from mathutils import Vector

def calculate_delta(self, initial_focal_length):
    cube_location = bpy.data.objects['Cube'].location
    location = self.location
    distance = (location - cube_location).length
    focal_lens = self.data.lens
    delta = distance - (focal_lens * distance / initial_focal_length)
    return delta

def in_world(self, delta):
    matrix = self.matrix_world.copy()
    matrix[0][3] = 0
    matrix[1][3] = 0
    matrix[2][3] = 0
    return (matrix @ Vector((0, 0, -1))) * delta

def move_delta(self, initial_focal_length):
    delta = calculate_delta(self, initial_focal_length)
    return in_world(self,delta)

bpy.app.driver_namespace["move_delta"] = move_delta

The script calculates the delta from the given formula, translates it in world space to shift the camera. And returns the wanted vector.
Then, it binds the function to the driver namespace.
Run this script once in order to use it in drivers.
Attach a driver to each component of the delta location:

The drivers use the function giving self (the camera), the initial focal length (50) and get the corresponding componant: x, y or z.

Note: the cube which is focused on in this example has its origin placed at the front plane.


I tried your file. I changed the render engine to Cycles and in physics properties - chase from modular to replay (this allows you rendering during your animation - so you haven't to waitlists till the end of the render).

I deleted your flow object and created it new.
Type: Flow
Flow Type: Liquid
Flow Behavior: Inflow
nothing else

activated liquid

It works :)


I haven't tested this, but the 3ds import has an option for size constraint that controls the model scale while importing, setting it to zero should stop the scaling from happening.


The material is assigned to the faces of the eyes, but the coordinates for the texture are wrong.

Set them to UV...

The other eye is a mess too... it needs to be UV unwrapped.


Pinning may be your answer.  Go into EDIT MODE and select some vertecies where you want the cloth to remain, [CTL][G] to group them and under your Cloth Simulation settings in the Physics Tab, select Pinning and the group which you formed.  This will at least keep the spots pinned to the locations where you want them to remain while allowing the remainder of the simulation to flow as normal.  I've used this before and it may require a little playing to get the pinning correct to keep from some weird artifacts forming in the sim, but it should be helpful for you.  If you have to, you may need to add a HOOK to the vertecies you have pinned and parent the hook to your mesh (I don't recall if pinning stays in one selection of 3D space or moved with the animation, therefore the possible use of the hook)


What advantages does Fly-Mode have over Walk-Mode?

There are some key differences that make fly mode better in some situations.

Motions are smoother turning and changing direction are not instant, this may be nicer for recording camera animations.
Speed is handled in a relative manner, so you dont have a fixed speed, it means you can naturally navigate large scenes or a small room in a large scene.
Some controls are different, MMB pans for example.
Walk mode isn't compatible with absolute pointing devices, eg - tablets.
Walk mode uses fixed horizon angle, fly mode allows navigation in all directions with optional z-up alignment.


It finally worked! I was trying to recalculate normals of the base but I was not recalculating for the tracks which were being duplicated. So the steps are the same for all objects and related objects to the curve

View 3D > Edit Mode > Toolbar > Shading/UVs > Recalculate Normals


in sculpt mode the circle disappears when brushing

As of July 2020, there does not seem to be an option in Blender to display the sculpting circle cursor during a stroke.
This seems like a huge oversight and workflow regression in my opinion. Sculpting with pressure-dependent radius feels like I'm trying to paint using an invisible brush.
However, there is a code contribution on developer.blender.org that adds this functionality back in:
⚙ D6324 Sculpt: Sculpt plane cursor preview (https://developer.blender.org/D6324)
It appears to be in need of work. They want some code changes, as well as explanations of why it's a positive change.
If you'd like to see this feature added, and you know how to code or just have time to spare, maybe consider leaving a thoughtful comment or helping with the maintenance on the linked code.

As a workaround, I've been enabling "Falloff Opacity" under "Cursor" in the brush settings. Running this line in a Python Console view will do it for all brushes: [[setattr(b, 'use_cursor_overlay', True), setattr(b, 'cursor_overlay_alpha', 5)] for b in bpy.data.brushes.values()].


In the latest release the tool options header is hidden by default. However, the same options can be accessed from the Property panel.

From the panel, go to the Active Tool and Workspace settings tab > Options header > Transform > Affect Only and then uncheck all (Origins; Locations; Parents).


white edge around objects with alpha - cycles

After a while I found that problem is the .tiff format.
The solution is very simply resave the .tiff to .png with transparency.


On your second screenshot we can see the gizmo showing 3 axes:

The green Y axis is cut off and goes up/down (the letter is up, so the Y coordinate increases up and decreases down), X axis goes right/left (increases towards the right), and Z is in middle - because it goes towards you / away from you.
Rotating something around an axis is like pretending there's a real, physical axis going through that object, think of a wheel in a car and how it rotates around its axis. In other words, if you choose to rotate around a particular axis, every point of the object will remain within the same distance to the axis during the rotation.
  rotation around Z axis; all vertices stay at same distance (and in this case they share that distance which is the same as the radius of the black circle)
It seems you either want to rotate around the red X axis or green Y axis:

But since you want to make it flip over, with the lower end not moving, you need to move the axis of the object around which you rotate. All axes go through the origin point, so you move the X or Y axis by moving the origin point. Keep in mind the green and red lines in the viewport won't move, as they represent the X=0 and Y=0 in the world coordinate space, and not object coordinate space:

The effect is the same as if you moved the mesh (in Edit Mode) up to be above the XY axes (both local and world as in this case the origin is at 0;0;0 coordinates):

Keep in mind you don't actually have to modify the origin/mesh of the object. You can position your 3D cursor wherever you want and rotate using this cursor as Pivot Point, instead of Origin:

For a still image it doesn't really matter which technique you use, but for an animation you might run into different problems for each, so I recommend to try each of them and see which of those problems you like the most. Often you will use empties and parent your objects to them, for an additional control.


Percentile alpha control in the Compositor?

Yes by using math.

The alpha channel is a value from 0.0=transparent to 1.0=solid. A math node can be used to multiply alpha values by the value you want to use. Which you then feed into the alpha over Fac to combine the images. You can also use a CombineRGBA to join together depending on your needs.

While multiplying a zero value by 0.5 leaves it zero you can use math node to get values greater than 0.99 if you wish to only effect a non-transparent area.

You can also use less than to pass through unaltered values and add them together before the alpha over.


If you select in edit mode a bone whose "pointing" you want to change, you should be able to go to the tab that looks like a single bone in the Properties panel. Then, under Relations, go to the Parent: drop down menu, clear the current parent, and select the new desired one from the list. Repeat this process until finished.

I used this website when learning to rig. There are many good pointers on it.

Update:

To answer the question in your reply, select the offending foot, and go to the Bone Constraints tab in the Properties panel. Where it says punta_zampa_ant_dx, click and change to punta_zampa_ant_dx.001, the other empty. Repeat for the other offending foot, but select its empty instead of punta_zampa_ant_dx.001.


Blender crashes on baking (ambient occlusion)

Well, Although I've only Baked once, I notice you have the width and height of your texture map set at 4096, I would suggest maybe lowering that to 2048. According to Darrin lile's videos on Texturing, he encountered glitches when using a number that high.

Now if this is the same as your other textures you should probably scale them down too, just for the sake of them matching up. I could be totally wrong, but I'm just telling you what I think may work. I hope I'm helping here!


How do I get the glass material to stop weirdly showing the object inside the glass?

The problem you are having is that if you set no thickness to the glass then your object becomes a solid piece of glass:

If you give the glass some thickness (in this example I used a solidify modifier) then it will behave like an object that has glass panes, but is empty inside.

But the problem is not solved, because the default glass shader has problems dealing with direct light going through it.

Using the tricky glass shader detailed in this post: How to illuminate the darkness inside glass objects in Cycles? will give you more realistic results.


Can i add a cube to the top of every selected face of an object using Python?

You can use particle systems for that. You can even put multiple models of trees in a collection and then distribute them randomly while picking them randomly from that collection:


How do I reduce the poly count of an existing 3D model?

Another way to reduce vertex count is by sculpting out the excessive geometry.
note the low strength and the detailing mode set to collapse edges.

result :


Version 2.8 or 2.79 to start learning Blender?

It might seem like a waste of time when 2.8 is supposed to come out in early 2019.

Yet...

Both versions are not entirely different, many aspects and concepts will remain the same and there's one major benefit to 2.79:

There's abundant information on it available right now. Look at SE here. Most answers use pre 2.8 as their foundation.

And it's not too helpful to wonder whether something was your fault or a bug.

So I claim that it's easier to get roughly familiar with 2.79 and then 2.8

It's also a good thing to be able to compare the differences. I started with 2.12 and I had to deal with the 2.3 and 2.5 revolution. Not counting the animation overhaul in 2.2x. Now I'll add the 2.8 revolution. Can't shake me anymore. it's 0.1 versions late anyway!!

And as crazy as it sounds: limitations aside, I feel happier opening 2.28 than any later version. I'm glad that I know the past.

Btw, why not learn the basics in both and then decide? 15 hours for A and 15 hours for B. What's the worst that could happen? A broader perspective?


Play a sound triggered from emitting a particle

In 3D animation the sound and video are generally two separate things. Supposing you did get your sound to play with the particle system, you would still need to out put the whole animation to a video format including sound. Which rules out a image sequence, the best way to render an animation.

It will be easier to just render out your animation of the ship firing its lasers. Then in something like the video sequence editor (or any other video editor) just add the sound file at the right time to match the firing lasers.


When I select a material in doesn't appear in the Compositing Editor

Material appears in Shader editor. In Compositor appears render.
If you dont see nodes in Shader editor, go to View > View All


We start by creating a helix using the following equation:

$$
\begin{aligned}
x &= \cos{ft}\\
y &= \sin{ft}\\
z &= t
\end{aligned}
$$

Where $t\in[-1, 1]$ and $f$ is a factor of frequency. This is implemented in Animation Nodes as follows:

We then vary the radius of the helix such that it lies on a unit sphere. To do so, we note that since $t\in[-1,1]$ represents the z location of the points, then $\sqrt{1-t^2}$ represents the $x$ location of the point if the point lie on a unit circle, or in our case, a cross-section of a unit sphere. This is due to the fact that:

$$
\cos^2{t} + \sin^2{t} = 1
$$

Hence our equation become:

$$
\begin{aligned}
x &= \sqrt{1-t^2}\cos{ft}\\
y &= \sqrt{1-t^2}\sin{ft}\\
z &= t
\end{aligned}
$$

which can be implemented as follows:

This gives us only half of the spiral, to get the full spiral, we flip the spiral and combine it with the original as follows:

We then use those vectors to construct a spline:

We then replicate the output spline by rotating it along the z axis with angles of:

$$
\frac{i\pi}{n} \ \forall \ i \in \{0\dots n-1\}
$$

Where $n$ is the number of splines. This is implemented as follows:

Which gives this result:


How to isolate edits to an area in Blender 2.8?

The Shortcuts are the same, unless you are using some non-default keymap.

H in Edit Mode hides the selected geometry.

ShiftH in Edit Mode hides the un-selected geometry.

AltH un-hides the hidden geometry.


How to connect N number of values to RGB combine node and to have all possible variations

Here's the script I came up with. I called the panel "Socket Arranger", and I put it in a new tab called "Socket" in the node editor.

Here's the main logic behind creating the links:

Focus on two groups: 1. the output sockets of one node and 2. the
input sockets of another node.
I created sets from the output sockets. Each set should be unique (it
shouldn't share sockets with other sets). That way, I can consider
each set separately when thinking about how they should be connected
to the input sockets. Therefore, use itertools.combinations.
The size of all sets made from itertools.combinations should be the
same as the amount of input sockets. For example, only 3 output
sockets can connect to 3 input sockets. (I didn't consider
disconnected sockets. I don't know if you need it. Plus it sounds
hard to do haha.)
For each unique set, I'm looking for as many input setups as
possible, so it doesn't matter what order I connect them to the input
sockets. When I dealt with the input sockets, I used
itertools.permutations.
Each unique set made from itertools.combinations contains the same amount of input socket possiblilities (since we're only doing itertools.permutations on the same set of input sockets). So to find the total amount of output/input
combinations, I multiplied len(itertools.combinations) of output sockets with len(itertools.permutations) of input sockets. Basically, in this case, "21 C 3" * "3 P 3" = 7980 unique combinations.
@PGMath was right.
Overall, the code was about mixing a combination of output sockets with a permutation of input sockets.

Code:

import bpy, itertools
from bpy.types import Panel, PropertyGroup, Operator
from bpy.props import StringProperty, IntProperty, PointerProperty, CollectionProperty, BoolProperty
#I make my own term called a 'node map'. I call it a list of tuples with information about how the sockets should be linked. A larger CollectionProperty() stores a list of node maps.'

def updateBeforeFrame(scene):
    '''force update of node setups before the frame is rendered'''
    #This looks repetitive, but apparently this explicit assignment calls the proper "update" functions. Otherwise, it doesn't work, even if you see the index inputs in the Socket Arranger Panel changing
    if scene.inputGroup.combOrIso == True:
        scene.inputGroup.combIndex = scene.inputGroup.combIndex
    else:
       scene.inputGroup.isolateIndex = scene.inputGroup.isolateIndex

bpy.app.handlers.frame_change_pre.append(updateBeforeFrame)

def linkNodes(self,context):
    '''get all the node maps generated from the "Set Up Combinations" button, and interface with "Combination Index" slider to access the maps'''
    mt = bpy.data.materials[context.scene.inputGroup.mat]
    nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
    nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

    intIndex = context.scene.inputGroup.combIndex

    set = context.scene.combSet[intIndex]
    lst = eval(set.miSetString) #convert list earlier converted to a string back to a list
    for output, input in lst:
        mt.node_tree.links.new(nIn.inputs[input], nOu.outputs[output])
    mt.node_tree.update_tag()

def linkIsolatedNodes(self,context):
    '''same as linkNodes, but with the "Isolate String" button and the "Isolate Index" button'''
    mt = bpy.data.materials[context.scene.inputGroup.mat]
    nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
    nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

    intIndex = context.scene.inputGroup.isolateIndex

    set = context.scene.isoCombSet[intIndex]
    lst = eval(set.miSetString)
    for output, input in lst:
        mt.node_tree.links.new(nIn.inputs[input], nOu.outputs[output])
    mt.node_tree.update_tag()

class CombinationSet(PropertyGroup):
    '''a holder for each list of node maps generated from "the "Set Up Combinations" button'''

    miSetString = StringProperty()

class IsolatedCombinationSet(PropertyGroup):
    '''same as CombinationSet, but for "Isolate String button'''

    miSetString = StringProperty()

class InputGroup(PropertyGroup):
    '''hold inputs for the script's panel here'''
    #I can set soft_min to 0 for all IntProperties here since when I index any CollectionProperty, it always starts at 0

    combIndex = IntProperty(name="Combination Index", soft_min = 0, update=linkNodes)

    mat = StringProperty(name="Material Name")

    nodeOut = StringProperty(name="Node for Outputs Name",
    description="The name of the node to get output sockets from. (in the Node Panel)")

    nodeIn = StringProperty(name="Node for Inputs Name",
    description="The name of the node to get input sockets from. (in the Node Panel)")

    inOrExclude = BoolProperty(name="Must Contain All Listed?",
    description = "If yes, isolate only the combinations containing all of the sockets. If no, look for items with at least one of the sockets listed. (The original combination list won't be affected.)",
    default = False)

    isolateString = StringProperty(name="Isolate String",
    description="Type in the names of either input or output socket node names, separated by commas, to choose specific combinations. (Leave empty to get the original combination list)")

    isolateIndex = IntProperty(name="Isolate Index", soft_min = 0, update=linkIsolatedNodes)

    combOrIso = BoolProperty(name="Render combination keyframes? (else isolated keyframes)",
    description="If yes, the scene will render out keyframes put on the 'Combination Index' slider. If no, it'll render out the 'Isolate Index' slider.")

class SetUpCombinations(Operator):
    '''set up a list of "node maps"'''
    bl_idname="custom.set_up_combinations"
    bl_label = "Set Up Combinations"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        mt = bpy.data.materials[context.scene.inputGroup.mat]
        nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
        nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

        nOuNames = []
        nInNames = []
        for socket in nOu.outputs.values():
            nOuNames.append(socket.name)
        for socket in nIn.inputs.values():
            nInNames.append(socket.name)
        miniSetSize = len(nIn.inputs.values())

        comb = list(itertools.combinations(nOuNames, miniSetSize))
        permu = list(itertools.permutations(nInNames, miniSetSize))
        cSet = context.scene.combSet
        cSet.clear()

        for com in comb:
            for per in permu:
                newSet = cSet.add()
                miniSet = list(zip(com, per))
                newSet.miSetString = str(miniSet) #convert to string so can be stored in a StringProperty for long-term usage

        context.scene.inputGroup.maxIndexLabel = str(len(cSet) - 1)
        return {"FINISHED"}

class IsolateCombinations(Operator):
    '''same as SetUpCombinations, but with the option to isolate certain node maps by socket name'''
    bl_idname = "custom.isolate_combinations"
    bl_label = "Isolate Combinations"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        iCoSet = context.scene.isoCombSet
        iCoSet.clear()

        stringLst = context.scene.inputGroup.isolateString.strip('[]').split(',')
        for i in stringLst:
            stringLst[stringLst.index(i)] = i.strip()

        if context.scene.inputGroup.inOrExclude == True:
            for set in context.scene.combSet:
                add = True
                for string in stringLst:
                    if string not in set.miSetString:
                        add = False
                        pass
                if add:
                    newSet = iCoSet.add()
                    newSet.miSetString = set.miSetString
        else:
            for set in context.scene.combSet:
                add = False
                for string in stringLst:
                    if string in set.miSetString:
                        add = True
                        pass
                if add:
                    newSet = iCoSet.add()
                    newSet.miSetString = set.miSetString
        return {"FINISHED"}

class SocketArranger(Panel):
    bl_idname = "socket_arranger"
    bl_label = "Socket Arranger"
    bl_space_type = "NODE_EDITOR"
    bl_region_type = "TOOLS"
    bl_category = "Sockets"
    bl_context = "objectmode"

    def draw(self, context):
        lt = self.layout
        iGroup = context.scene.inputGroup

        length = len(context.scene.combSet)
        maxIndex = length - 1
        if length == 0:
            maxIndex = 0

        lt.prop(iGroup, "combIndex")
        lt.label(text="Max Comination Index: " + str(maxIndex))
        lt.label(text="(Max Combinations: " + str(length) + ")")
        lt.prop(iGroup, "mat")
        lt.prop(iGroup, "nodeOut")
        lt.prop(iGroup, "nodeIn")
        lt.operator("custom.set_up_combinations")
        lt.prop(iGroup, "isolateString")
        lt.operator("custom.isolate_combinations")
        lt.prop(iGroup, "isolateIndex")
        lt.prop(iGroup, "inOrExclude")

        length = len(context.scene.isoCombSet)
        maxIndex = length - 1
        if length == 0:
            maxIndex = 0
        lt.label(text="Max Isolate Index: " + str(maxIndex))
        lt.label(text="(Number of Isolated Combinations: " + str(length) + ")")

        lt.prop(iGroup, "combOrIso")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.inputGroup = PointerProperty(type=InputGroup)
    bpy.types.Scene.combSet = CollectionProperty(type=CombinationSet)
    bpy.types.Scene.isoCombSet = CollectionProperty(type=IsolatedCombinationSet)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.inputGroup
    del bpy.types.Scene.combSet
    del bpy.types.Scene.isoCombSet

if __name__ == "__main__":
    register()

I also added some options to allow you to isolate certain socket set ups to experiment with. I thought it might help you, especially with 21 output sockets. This doesn't work for nodes while you're editing a node group. If I can get it done, I'll try to add that in, maybe along with the "disconnected sockets" scenarios.