The best way would be to use a series of curves with a custom bevel. Create your paint patterns as a texture (with transparency enabled), and apply them to the curves.
It should take (except for the textures) just a few minutes.
Make your curve(s), adjust them using both handles and vertex weight and tilt, then in the curve tab apply bevel (half) (rounded) or whatever profile you want.
I did this with a very simple paint smear.

This is the node setup for the transparency

And this is the png I used. I had to adjust the z rotation to make the stripes the long way.
To get brush texture--not shown here--you can just run the image into a bump node for height and throw that into normal on the principaled BSDF shader.


Weights are quite sharp try Smooth Vertex Weights

BTW - If you check vertex per vertex in this jaw area, single vertex affected by 20 groups? It doesnt sounds good :)


Weird shadow colors / saturation in a Copper material (Principled BSDF)

Filter Glossy
After doing a little bit of testing, I found that the problem seems to stem from this little booger in the render settings.

Filter Glossy is designed to reduce noise in reflective caustics by "adaptively blurring glossy shaders," but it seems that one of the side effects is very inaccurate recursive reflections.
Tests:

All 32 samples and denoised with OpenImageDenoise.
12 glossy bounces
Glossy BSDF set to Multiscatter GGX
Color: RGB (1.0, 0.485, 0.352)
Roughness: 0.15

Filter Glossy set to 10.0 (maximum):

Filter Glossy set to 1.0:

Filter Glossy set to 0.1:

Filter Glossy set to 0.0:


Is it possible to apply textures of different color to a surface on each side? blender 2.9

You can use "backfacing" from the "geometry" node:

Here is something closer to your setting:


Blender moving bij +n actually moves by +n.nnnn

I had the coordinates set on local instead of global, that explains all.


Take a look into the Properties panel > Object > Transform > Delta Transform, you've accidentally given Delta Transform values to your objects. Delta transform is used to move, rotate or scale the objects without affecting their original location, rotation and scale, it can be useful sometimes.

If you apply the LocRotScale of your object, it looks like it applies its Delta Transform values as well, but it doesn't reset them, so the object undergoes these Delta Transform values again, therefore it may automatically move, rotate or scale, that's what happens here.
I don't know if there's any easy way to fix the issue, as I'm not sure there's any way to apply the Delta Transform values alone (?), so you probably need to bring these values back to their default value (0/0/0 - 0/0/0 - 1/1/1), then move, rotate and scale your object to correct its new location, rotation and scale, and at last, apply.


I can't pull up my reference image's on blender

You are not in the same location. "Pictures" is not "My Pictures". Click on your windows address bar to get the actual path.

it should be something like: C:\Users\USERNAME\Pictures


Casting shadows for transparent textured material

The problem seems to be the lighting. Both the ambient occlusion and the environment lighting are ignoring the transparent part of the outer cube, leaving the inner part completely shadowed.
To work around this, you could:

Use lamps. Lamps seem to illuminate the inner cube through the transparent texture fine.

Use cycles. The transparent part of the texture is lets light from environment lighting and AO as well as lamps through correctly when rendered with a node setup like this:

Bake AO in cycles (this is currently only available in development builds, but it will be in 2.71) and then use it in BI.

Model actual geometry for the outer hat instead of using an alpha texture.


Is there a way to make a node property value the default?

I'll post another answer since this one will actually solve your problem (I hope). Use this script to set the interpolation of each and every one of your "Image Texture" nodes to "Closest" :
import bpy

for mat in bpy.data.materials:
    if not mat.node_tree:
        continue
    for node in mat.node_tree.nodes:
        if node.type == 'TEX_IMAGE':
            node.interpolation = 'Closest'

How to run a script


Why do I get large bevels on a curve with such a small bevel object?

You will have to :

apply the scale Ctrl+A
select all point of the curve and reset the radius back to 1 :

Note : to avoid applying the scale just set the radius to  1/scale


CUDA Compute Device says "(dislplay)" beside it. What does that mean?

If your GPU is connected to a monitor (or multiple ones), then you'll see the (display) notice. That only means that the GPU is also being used to display images on a monitor.

Blender will still use it to render, just know that some of the resources of the GPU are going to be used to refresh the screen(s). If you have multiple GPUs you might see the difference.

In this example both GPUs are used for rendering, but one of them is using some resources to feed my monitors, while the other is used exclusively to render.


Tube Deformation Animation with Pill Passing Through

I looked up the Dynamic Paint approach that @vklidu cited and it worked very well. Blender 2.8+ changed a few things, which actually made this task easier. There's a displacement option directly in the canvas settings for the object, and when everything's set up right, it works great, and procedurally, is flawless.


Check your neck bone influences: that line probably arise where vertices with "head only" weight are contiguous to vertices with "head and neck" weights. Use the smooth brush and the smear brush to even out the transition on both vertex groups (Head and neck). Check also if there are influences from vertex groups others than head and neck.


It is your UV editor, it's just showing your rendered image.

See the image popup at the bottom of the pane, that says "Render Result"? Just click that, and select another image.


How to reduce Noise in a Dark Cave scene

I've followed that same tutorial a while ago when I was just starting, and I might be able to help a tiny bit. This is what my result looked like:

That is 1440p. I think I used 2000-3500 samples for the final render. And I only used that much because I left my computer on overnight and while I was at school. It took a long time, somewhere in the realm of 14 hours.

That being said, I realized fairly early on that there is a limit to how good a picture can look given the scene and settings, no matter how many samples you use. I think my picture would have just as much noise if I used 10000 samples; after a certain point it just doesn't matter.

That being said there are several things you can do to increase quality and time of your render, and I highly recommend that you look up how to do all of these. Here are just a few of them:

Use GPU rendering rather than CPU.
Change the tile size to accommodate the type of rendering (CPU or GPU).
Turn down the amount of light bounces.
Use portals.
Bake the Lighting.
Decrease the resolution.

The most important thing you can do as a beginner at your stage is this: don't judge your render until you are closer to being finished, there is a lot you can edit along the way. Also there's absolutely no point to using an absurd amount of samples to preview an image, (again, until you're closer to being finished) you're going to add more to it anyway, and the preview isn't supposed to look like the final result.

If you're an absolute beginner, I would highly suggest starting somewhere easier. tutor4u (youtube) has some amazing step-by-step tutorials for a lot of things. As a novice myself, my main advice is to not overload yourself with scenes as advanced as the one you're trying to do, (and don't use 1 million samples, even 2500 is too much).


Viewmode changes from orthographic after using mousewheel. Blender 2.8 (Release candidate 3)

The default setting is to automatically go back to perspective. To dissable this, uncheck the Auto Perspective checkbox in the Preferences/Navigation.


Geometry nodes attribute sample texture precision?

oops i figured it out. for anyone confused by this, unlike the textures you can use in particle systems, sample texture uses your texture as an attribute, which is similar to vertex colours or weight maps. thus the amount of vertices of your mesh is the resolution. subdivide it to make it more precise.


From your Blender file, i've done the following node setup, if you do the same, just change a bit your camera position or lightsource position, so the fluid can have something to reflect:


Blender 2.83 Displacement - Cycles and Eevee

The reason there's no error in the displacement in EEVEE is that there is no displacement in EEVEE.

So, if you like what you see there, the simplest solution is to unplug the displacement. But that's not an explanation of what's happening.

If a vector is plugged straight into the Displacement input of a Material Output node without going through a Displacement node first, what you get is a displacement of the shading-points by that vector, in Blender Units, in Object Space. (That is, along the object's local axes, and taking the object's scale transform into account).

You can get the feel of that by plugging a Combine XYZ node into the Displacement input, and playing with the numbers.

It looks as if you would probably want simple displacement along the normals of your surface here -  there are no undercuts. So, if you did want to displace the inside surface of the glass, you would have a UV map of the lens which separated the inside and outside surfaces, and, covering the region of the map representing the inside surface, have an image which would serve as a height map, with 0 values interpreted as no displacement, and 1 values as full displacement.

You would then plug that map into the Height input of a Displacement node, and in turn, plug the Displacement node onto the Material Output.


Automatic weights deforming my character rig

You have got multiple problem with your model.

Your Character's head has half an extra meshes with the mirror modifier.
I select the extra vertices and deleted them.
You have overlapping faces on within the model.
I removed the extra faces with W key, then select "remove double"
The body of your character have normals facing in the opposite direction.
I corrected the the normals with CtrlN.

Here is the blend file after I corrected those issues. The weights are now correctly applied.

Extra note
I must say I have noticed that your have rigged the hand IK object to the hand bone. Shouldn't it be on the lower arm bone, you might have to get a better tutorial on the subject. Your bone objects are not rotated to the correct front facing position at rest. Always check your bone orientation with it's local axis turned on.

Here is the improved rig.


Scale a 3D beveled bezier path vertex on 1 axis, not 3

When you scale a control point you're scaling its radius around the curve, which is inherently circular. The only way to get a flat profile is to use a second bevel object with a thin rectangular shape. Once you apply that bevel object, scaling the cp radius only affects width in the way you want.

In my example, I found a better result with a low curve resolution (4-5), and then applying a subdiv modifier with level 3.


I've been through your frustration - thought a step by step 'walk- through' might also help...

Texturing for Newbies -

Start up Blender with the default cube.

Select it with RMB. (Right mouse button)

at the right there is a horizontal line of icons. (If not press SHIFT-SPACE)

Select the little cube icon to confirm you've selected the cube in the 3D window.

Move further right to the little brown ball icon. (material properties)

Select that and press the "New" button.  That will create a material slot for the cube which will be given the default slot name "Material" strangely enough.  You can rename this if desired.

Move one top icon to the right select that. Its a tiny little checkered square.

(and this is where the story really starts!)

Press the "New" button below and that to create a texture slot for the 'Material' slot you created just prior.  By an amzing coincidence this slot is given the title "Texture".  You can rename that too if you're so inclined.

Immediately under the new title you can see that it's defaulted to
"Image or Movie"

Scroll down and open the tab called "Image".  It's probably open already by default.

Click on "Open" and select an image file in your machine.

Chances are nothing is going to be seen straight off, but the image should appear up top where you created the slot.

Close the image tab for now.  You don't want too much clutter.

Go down further and open the "Mapping" tab.  It's probably open already.

For a security blanket, select "Generated" instead of the default UV option so you can see your image appearing correctly on the top and bottom of the cube.  The sides however will probably be just coloured lines.

This is because we need to map the image for each and every side of the cube.

Change the "Generated" option back to "UV".

At the top right of the 3D window, drag down a new window, which should be a duplicate of the 3D view.

Go to the lower one one and expand it's icon at bottom left, select -
"UV Image Editor".

At the UV editor's lower border, expand the menus at left-of-center and select your image.  It might be the only one listed.  When you select this, it will appear large as life in the editor.

Place your mouse cursor back in the 3D window and with the cube still selected, get into "Edit" mode. (TAB)

In Edit mode press CTL-TAB and select "Face".  All faces should be highlited.  If they're not, press A.

At the bottom border of the window click on "Mesh", then "UV Unwrap", then "UV unwrap" a second time.

Presto!!!  Your texture should appear at all sides of the cube!

When a contiguous texture is required, you could try "Smart Unwrapping"
and in fact experiment with all the unwrap options.  For now stick to what you've got.

Reflective light called 'Specular' can upset texturing at times, so try turning this off or reducing it to see the effect,  Get back to the top icons, select the Material icon again. (little brown ball)

Just below the diffuse slot is the "Specular" one.  Drag it's slider back to zero for now.

Under the "shading" tab just below that, click on the "Shadeless" box.  That can brighten up surfaces markedly.

-=========-

It could be that the images are all topsy turvy, however each of the cube's surface images can be adjusted and rotated from the UV editor without affecting the cube's geometry itself.

From the 3D window, make sure you're still in edit mode and select a single face.  Go to the UV editor's lower border and two icons on from the "View" option is an icon that when highlited, will keep the 3D window's surface selections in synch with those highlited in the UV editor, and vice versa.  Click on that to highlite.

The image in the editor should also glow.  That's the surface that's going to be affected by what you do next.

Place the cursor in the UV editor and press R.  Drag the image around to the desired angle.  Typing R90 will (would you believe?) rotate the image 90 degrees, R180, 180 degrees.

You'll notice that the UV editor works in 2D.  X & Y axis only.

You can also scale images by pressing S and move the mouse without dragging.

SX, SY will scale surfaces in the X or Y axis respectively.  Make sure you're in the UV editor each time!!!

GX and GY will "Grab" an image and drag ts in those axis also.  Just pressing G will drag it around as you like.

and that I hope, will get you going -


How to get wind to affect hair particles with group or object render

Finally I understand what @Brenticus was getting at when he kept using the word "deform"! If you use either the "Object" or "Group" methods to render the particles, you can in fact affect the rotation and/or location of the objects. Here is a video showing that much:

But what is missing is (in this case) the grass stems deforming along the hair particles. Here is the comparison:

So the answer to my original question is outlined below in my previous answer. I only need to add that you must rotate the object(s), generally 90 degrees along the y-axis because "hair particles use the global +X axis as 'up'". That is the case for either method.

That method works if it's not important to deform the object(s) along the hair particles, and you get the benefits of "Group" options, which are quite powerful. However, in making the comparison videos I noticed that the render time was considerably longer using that method, which is another thing to keep in mind.

If it's important for the objects to deform along the hair particles, then I strongly suspect Brenticus is right and that using a particle instance modifier as per this post is just not the best but the only way of doing it. I spent several hours looking for a way to get group objects to deform and could not.

Previous answer (for Group and Object render method)

The first part is the "initial orientation" which I had set to "Global Z" so that the grass grows straight up. Changing this to "Velocity Hair" was one necessary change.

The second part is in the force field wind settings. Under "Effect point", I had deselected "Location" because I only want to affect the rotation of the grass stems. I guess that thinking was faulty. Selecting "Location" got the grass moving.

So I now have the wind affecting the grass.


Why is Shift+D Duplicate creating linked duplicates?

So I discovered what the problems was. In the User Preferences > Editing tab, the Mesh option was unchecked under Duplicate Data. After enabling it the Shift+D duplicate functions normally. I unchecked it again just to make sure that it was indeed what was causing my issue.


I would suggest baking the high poly mesh to a normal map in Cycles and plugging the generated image into the material for the low poly box using the node editor. There are many great tutorials on this workflow, including: https://youtu.be/BOYRCI-dtjU. It produces consistent results.

You may want to triangulate the low poly mesh first if you are going to export it to a game engine such as Unity, as they may calculate triangles differently.


Nodal Setup for Diffuse, Emission, Normal and Specular map in Cycles Render

This node setup works and it's a very basic one, tell me if you understand. Note that all the Image Texture nodes are supposed to be in Non-Color Data mode except the one for the Diffuse node. Also, I needed to put a ColorRamp node after the Specular Image Texture node to give more strength to the Diffuse node against the Glossy one.

If I explain quickly: I mix the Diffuse Image Texture with the Glossy, and use the Specular as the factor. This is basic: the Specular picture will determine what part of the object is glossy, what other part remain matt. But as the object was super glossy I had to adjust with a Converter > ColorRamp node after the Specular. Also, as I want both the Glossy and the Diffuse to be affected by a Normal map to give some fake 3D details, I needed to put the Normal Map in both the Diffuse and the Glossy. Now to finish the object you need to switch on the lights with an Emission shader: Just add a last Mix Shader and mix the Emission node and use the Emission map as the factor.


Unless I am misunderstanding you. In cycles this is just a black diffuse shader.

This picture the sun is set to 1.

This picture the sun is set to 1000.

The material doesn't reflect or anything if you don't add fresnel or gloss to it.


How to figure out kind of link and seperate / make single?

It seems to be that you don't use the object data, for this keyboard shortcut to be useful. Then using group duplication use function Make Duplicates Real instead (Shift+Ctrl+A)


Export to wavefront always gives white for ambient ka

Okay, it appears that the export script just applies the ambient property in the shading sub section, which is a single value between 1 and zero that's just a multiplier for how much the global ambience the material receives.  It puts the single value as the component for each of the RGB values for ka upon export.


Yes, it is possible. An hdr environment texture is actually just like a sphere with a texture and emission shader assigned to it (kind of). And of course, you are standing in it. So if you have a solid black environment  texture (hdr or not), there will be no light in the rendered scene.

So to get shadows on the ground, you would have to have an environment texture with some darker areas that don't emmitt so much light. But I think that it would be easier to just put a plane that would cause a shadow where clouds are.

Something like this would do:


Why multiple blender animations are not showing up in unity when imported

I don't have unity to check but I see a difference that may help.

The right armature has keyframes on the bone (done in pose mode)

The left armature has keyframes on the armature itself (done in object mode)

It may be that unity doesn't support object animation on armatures which are expected to be animated in pose mode.


How to include files like images and others to be installed with an addon in its folder?

I was answered this in a forum:
" make your script an addon module, basically a folder with a init.py script, which may include the entire code, or you can separate code logically into multiple files. Put the image inside the folder and zip the entire dir. On installation, blender will unpack and copy the content to %appdata%\Blender Foundation\Blender\2.XX\scripts\addons\ (on windows; xx = subversion, i.e. 66)"


How can I make a cone of light be more realistic?

You could use the material created for this answer https://blender.stackexchange.com/a/72010/29586 and use an image to mimic the lens of a torch such as this :

Adjusting the material variables can produce a result like the following :

Blend file attached

To include the material in your own project, simply download the Blend file, open your own project, got to File, Append, select the 'torch' Blend file and navigate to the material ('Material'). Set the two Image nodes to your torch lens image (use the above one if you don't have anything more suitable) and adjust the various variables (the material nodes marked in Cyan) until you get the desired effect.


I just got consistent behavior (after 2 days) by selecting both pieces, going to edit, and recalculating the normals to be outside, then back to object and performing the operation.
Do you need a picture for that?


Searching for 3 posing buttons in Blender 2.8


well you could use like a python script.
set the origin point of the needle to its bottom and.

why not something like this tied to an always actuator?

    import bge
    from bge import logic
    from math import degrees

    cont = logic.getCurrentController()
    own = cont.owner
    own_rotation = own.worldOrientation.to_euler()
    POINT=own["AMOUNT"]
    MAXPOINT=1
    MINPOINT=0
    if ( POINT < MAXPOINT) & ( POINT > MINPOINT):
        own.worldOrientation = (0,0,POINT)
    elif POINT > MAXPOINT:
        own.worldOrientation = (0,0,MAXPOINT)
    elif POINT < MINPOINT:
        own.worldOrientation = (0,0,MINPOINT)

it should set the rotation every time a value changes. you can change the Amount property every time you want the meter to go up or down, and the meter will follow it.
NOTE: this takes in RADIANS not DEGREES! and Sets it in RADIANS!


First time using bevel tool, doesn't bevel evenly. What am i doing wrong?

Your object has been scaled in object mode but the transformation has not been applied, so your mesh has a non-uniform scale that will prevent you from doing a clean bevel the way you want it.

Exit Edit mode (Tab) and press CtrlA and apply the scale (you can also use the menu: Object>Apply>Scale).

Back in edit mode the bevel should work evenly centered on the edge...


You just can go into the UV editor and choose Export UV layout. This is a good texture for wireframe Objects. Just combine it with your diffuse map (Gimp) and you have your wireframe Texture.


Different vertex coloring behavior depending on vertices painted

Indeed, this is due to the triangles which make up the quads. The 45° angles, two of which make up two of the corners of the quad, receive vertex coloring differently than the 90° angle. Basically, the corners made of two 45° angles get twice the amount of coloring.


I'm trying to do something similar. This video might help you. https://youtu.be/Kx4IU8lUCDs?list=PLxQxoABIf8KYi8c_gVqUGSfIUyxX-NrKf

Basically, put a displace modifier with 0 influence on the object you want to export to trick blender into exporting it as an alembic cache properly.

Let me know if you found a different way to do this. I'm still experimenting and trying to find a good workflow.


It is likely that there are easier ways to achieve the effect you want. However, here's how you can combine the two planes:

1 - Select both of the planes and join them (ControlJ). The two planes are now one object, but we need to take care of the overlapping ends.
2 - Enter edit mode (Tab)
3 - Select the vertex editing option:

4 - Move the two inner points towards the other planes:

5 - Select the two vertices and merge them (AltM + Enter)
6 - Merge the outer corner vertices the same way.

You should now have this:

Note that merging the planes in this way is a bit tedious. Consider using another technique to model your object that does not require joining.


Problem with the grid fill result not the way i want

It appears that Grid Fill takes into account the active vertex when determining how to fill the loop. If you select a corner vertex last (or deselect and re-select one) Grid Fill should behave nicely.

You can also achieve the same result with the Span and Offset settings. Span tells Blender how many columns there should be in the filled grid. In your case there is 6 (you can tell by counting the edges on one side). The offset will tell Blender how to connect the edges. This option depends directly on the active vertex when you did the fill. Count the number of edges between the active vertex, and set the offset to that.


Avoid rendering hidden objects (blender 2.8)

In the Outliner you can toggle visibility and renderability of objects.
Click on the funnel icon on the top right and enable different filters.
The Eye icon determines visibility in the 3d viewport.
The Monitor icon disables the object in all viewports.
The Camera icon determines if the object is rendered or not.

Read: https://docs.blender.org/manual/en/latest/editors/outliner/interface.html

Alternatively
The visibility of an object can also be set in the Visibility controls Object Properties.


One mesh can be projected onto the surface of another, by adding a Shrinkwrap modifier to it.

  The Shrinkwrap modifier allows an object to “shrink” to the surface of
  another object. It moves each vertex of the object being modified to
  the closest position on the surface of the given mesh (using one of
  the four methods available).

  It can be applied to meshes, lattices, curves, surfaces and texts.

For your example, the shrinkwrap modifier should probably be set to project, with the X and negative options checked.


The problem is that your rest pose is different from your pose position. To fix this:

Switch to Pose Mode
Select all Bones with A
Hit Space bar
Select Apply Pose as Rest Pose
Switch to object Mode
Select Your mesh first then select the armature using Shift+Right Mouse Click
Hit Ctrl+P then choose Automatic Weighting and this will fix your problem as shown below


Yes, here you go: Blender Room Scale VR Viewport on the HTC Vive

Source can be found here:

https://github.com/cedeon/hmd_sdk_bridge/tree/cedeon-vive
https://github.com/cedeon/virtual_reality_viewport/tree/vivetest

For a real project you should consider using Unity3D and creating assets with Blender.

See also:

Blender VR
- https://blendervr.limsi.fr/doku.php


Shape keys in blender allows you to translate and  scale different vertices, edges and faces of a mesh. Even though Shape keys changes the structure/geometry of a mesh, they always maintain the same number of polygons.

So any changes involving changes in poly count usually won't work well for Shape Keys. So for this situation, Shape Keys cannot be used.

However,you could try animating the iterations/ratio/angle limit of the decimate modifier. Just press i on a slider and the slider turns yellow which means the slider is Keyframed.


Let say the object A has a lot of linked duplications, and object A has a mesh called A'. Let say you have a B object with a mesh called B'. You want B' to be part of A. If you select B object, then select A, then ctrlJ, the A object is now made of the A' + B'. All the A linked copies are now made of A' + B'. It won't explode any memory as a linked duplication doesn't weigh on the file.

Now, if B was also linked duplicated and you need to delete all the now useless copies of B (considering B' is now part of A), you can select one of the B objects and press shift L Select Linked > Object Data and it will select all the Bs. Then X to delete.

Does it answer?


How to get Enumerations correctly right aligned

You can use layout.split() to split a row into two columns based on percentage. The first item on the row uses the percentage of the width specified in the split, then the following items use the remaining width.

Then by adding the label as a separate item to the menu you get each in their own column.

class testPanel(bpy.types.Panel):
    bl_label = "Test Panel"
    bl_idname = "OBJECT_PT_tester"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    def draw(self, context):
        layout = self.layout
        obj = context.object
        box = layout.box()

        col = box.column()
        title_size = 0.6

        row = col.split(percentage=title_size, align=True)
        row.label(text='Character Mesh')
        row.prop(obj, "mesh_type",   text='')

        row = col.split(percentage=title_size, align=True)
        row.label(text='Rig Type')
        row.prop(obj, "rig_type",    text='')

        row = col.split(percentage=title_size, align=True)
        row.label(text='Weight Variant')
        row.prop(obj, "weight_type", text='')


Beginner's help with topology? (Extruding and beveling letters)

You have 2 ways:
Converting your letters to mesh and working the topology so that it works fine when you bevel, but in your case it's more a matter of how your topology is than a problem of tris and ngons. Here I've made a X > Limited Dissolve and tried a bevel, then create new edges where I saw that the bevel failed:

Or keeping your letter vectorial and giving it extusion and bevel in the Properties panel > Object Data > Geometry, then converting it to mesh (then, same thing, you can simplify the topology with a X > Limited Dissolve):


How can I protect my addon code from scammers?

Especially if it's targeted to a specific community, your best shot (IMO) would be to advertise what you are doing as widely as possible. Post about your addon in forums, on your homepage/blog (if you have...), maybe also Blender Market etc. as early and transparently as possible.
Then, whenever you encounter one of the scammers trying to make money of your code, put out a comment linking to your original post and tell everybody that they can get the same value for free.
Spreading knowledge about your work helps others to spot such fraudulent offers early.
Having traceable proof of your original code ownership might come handy if some of the scammers turn real nasty and try legal action.
Other that that, I dont't think that you have a real chance by obfuscating your code. All you do is make life difficult for yourself and the legitimate users.
P.S: You might find this an interesting read in the context: https://www.blender.org/press/re-branding-blender/


I want to remove one object from my render so that it leaves just a transparent background

I'm not a very advanced Blender user so take this for what it's worth... Could you not render the scene without the water (using Cycles, I assume) and then simply take that image and the "pool" from the LuxCore render and merge the two in Photoshop?
Theoretically, you could also remove the water from one image and replace with colour corrected water from the other image in P'shop, too.


To stop the loop you can install your own handler for the SIGINT signal which is executed by the main thread. (see signal module)

The rendering of the current frame will not abort.

import bpy
import signal

abort = None

def hndl(signum, frame):
    global abort
    abort = True
    print("\nAbort")
    #uncomment to call the default handler
    #raising the KeyboardInterruption exception
    #signal.default_int_handler(signum, frame)

def run():
    global abort
    signal.signal(signal.SIGINT, hndl)
    count = 0
    abort = False
    while not abort and count < 10:
        count += 1
        print(count, abort)
        bpy.ops.render.render()

def reset():
    signal.signal(
        signal.SIGINT,
        signal.default_int_handler
        )

if __name__== "__main__":
    run()
    reset()


Mantaflow render with transparent background turns out be white screen

Ok, I found another solution for this transparency, It seems like it's some kind of bug or workflow that for me is totally not understandable.
I render it normally as a RGB and in the compositor I'm changing the black pixels to transparent one like this:


Images used as background in the 3D viewport are used for reference only and will not render unless you choose to combine them with the scene using the compositor.

Open a Node Editor window. Add a movie clip node and select your video clip. Set the movie clip to be used as the background input on an Alpha Over node and plug the render layers as foreground.

For Blender Render the setup is like this:

(click on the image to enlarge)

To Render using cycles this is the node setup:

Make sure that the compostitng box is checked:


I figured it out. A kind person on Reddit suggested that I should tweak with the settings and he was right. Like with Clamping,I noticed that the Denoising filter has Direct and Indirect settings,both of which are always turned on. I tweaked the Glossy pass of the Denoising filter and it helped me out a lot. To prevent the Noise texture from blurring,you have to turn off the Direct pass and leave the Indirect pass alone.


Assign the 'base material' to the desired object and click Add a new material button:

This automatically creates a copy of the 'base material'.

Blender 2.7x


Go into edit mode, select all, and then press Ctrl N to correct your normals. Then try painting and see the paint show up.


You need to press N on your keyboard and go to Tool. There, make sure that under Options is Transform. You need to uncheck Origins and the two others. That should fix your issue.


In layman's term, what exactly is the difference of vertex paint and UV mapping?

Vertex painting is much more limited. Your mesh's resolution is the upper boundary to the texture detail you can have, since essentially you only have one color per vertex (this color can be a compound of several colors for each edge loop that a vertex is on, but it sums up to just one RGB value).

UV textures enable you to map a 2D image to your 3D mesh. This means you can have a big, complex image with a whole lot more detail on a low poly, low resolution mesh.

As far as I know, modern game assets (especially for higher end games) are almost always UV textured. Vertex painting might be simpler, and does not take as much time to wrap your head around it as UV mapping, but in my opinion the latter is a more important technique, that you should get familiar with as soon as possible.


Rotate group of duplicate bones in edit mode

I think I've worked out a solution. I duplicate the bones then separate them into a new armature. I can then rotate the the armature in object mode. I then combine the separate armatures back into one.


How to maintain per-node instance state?

Generally it is not a good idea to store the state of a node in Animation Nodes. The execution of a node should not depend on the executions before. This is also important because nearly all nodes have to work inside of loops - so they can be executed many times with different input in the same node tree execution.

Beside that I agree that it is sometimes useful to store some information (cache data etc.) which cannot be stored in Blenders properties (bpy.props). You cannot use the python dictionary of a node as you noticed. However, it is possible to create a dictionary in the module (file) that contains the node. You can use the identifier of a node (myNode.identifier) as key in the dict. Animation Nodes ensures that each identifier only exists once. The disadvantage of this approach is that the data will not be stored in the .blend file. For eg caching that is no problem though.

This is a 'problem' that is caused by Blender. Animation Nodes (or other addons) cannot change this behavior. Personally I don't care that I can't use the instance dictionary. Maybe it is even better the way it is because so we cannot confuse the data that is stored in the .blend file and other variables.


It seems to be in percentage or fraction of the render size (in pixels).

That means that a lens shift of 1 shifts the camera exactly one frame unit in a certain direction, making it frame exactly outside the previous default framed area.

This is measured however in relation to the largest dimension of the rendered frame size. So lets say you are rendering in Full HD, that is 1920 x 1080 pixel image; a frame shift if 1 unit will shift exactly 1920 pixels in any direction, that is up/down/left/right.

This may seem obvious while shifting sideways towards the X axis, but might seem random while shifting in the Y axis.


hair particles disappear when joining objects

Joining the meshes is making the Particle modifier disappear.
When you join two meshes the active object modifiers are preserved. The active object is the last one you selected, and will be outlined in a lighter orange. In your case you're selecting the eye last, and its modifiers are being preserved, not the eyebrow's ones.
You need to select the eyebrow mesh last, then join.
Also, to avoid hair getting scattered everywhere when you join the meshes do the following before joining:

Select the eyebrow, go into Edit mode.
Select the area that should have hair.
In the Object Data panel, create a new Vertex Group, rename it to your liking and click on "Assign".
In the Particle panel, scroll down to the Vertex Groups and set the vertex group you created as Density.
Now you can leave edit mode and join the meshes.


Applying animated compositor to pre-rendered animation frames

There doesn't need to be a big change, the compositor can read a sequence of images just as easily as a single image.

I would recommend saving your render files as openexr multilayer. The files are larger but they can include all render layers and output sockets that you normally use in the compositor. If you specify a full filename remember to add some #'s to get a frame number included.

After saving your animation frames, create a new scene and in the compositor start with an Input->Image node and open all of your images. This leaves you with one scene to do the heavy rendering and one for only compositing and it's all in the one blend file. As the same nodes will apply to the entire sequence you may want to create several scenes for compositing to get different effects in different shots of your animation.


Today I found an easy way to start using OpenCV in Blender without any (manual) compilation steps. My OS is Ubuntu 18.04 (64bit) and I run Blender 2.79b.

It may be also important to say, that I did not installed Blender from repository (e.g. apt), but simply downloaded the archive and extracted in a sub-folder of my home directory.

I performed following steps to start using OpenCV:

Open Terminal
Change directory (cd) to [blender]/2.79/python/bin
Executed ./python3.5m -m ensurepip (to become pip available)
Executed ./python3.5m -m pip install --upgrade pip (upgrade pip)
Executed ./python3.5m -m pip install opencv-python (Though an unofficial build the version I got was 3.4.2.17)
Executed ./python3.5m -m pip install opencv-contrib-python (I needed SIFT features and they are only available in the contrib package)

After these commands were executed I started Blender and performed a test where I extracted SIFT features from one Image and wrote an augmented result image to filesystem. Worked without issues.

It is that easy, that I would expect it somewhere to be written down in the internet, but unfortunately I have found only instructions which are far more complicated.

Hope this help someone!


Check that a displacement node is used before displacement and that your preview and render options allow for 1 pixel detail. Max subdivisions allows your displacement to be further refined at render time.
Don´t forget to add a displacement modifier on simple mode and check adaptive.


Well, I got it working, but I'm still not quite sure why it works now.  I started by getting rid of all the extraneous crap but where it was crapping out seemed to be at the bpy.ops.object.select_all(action='DESELECT') statement, which still seems to me to be harmless.  Anyway, here's the code that works:

import bpy

#deselect all objects
bpy.ops.object.select_all(action='DESELECT')

ob= bpy.data.objects['Tuxedo Shirt']
arma = bpy.data.objects['Armature']
arma.select = True
bpy.context.scene.objects.active = arma

bpy.ops.object.mode_set(mode='EDIT')

parent_bone = 'CC_Base_BoneRoot' # choose the bone name which you want to be the parent

arma.data.edit_bones.active = arma.data.edit_bones[parent_bone]

bpy.ops.object.mode_set(mode='OBJECT')

bpy.ops.object.select_all(action='DESELECT') #deselect all objects
ob.select = True
arma.select = True
bpy.context.scene.objects.active = arma    #the active object will be the parent of all selected object

bpy.ops.object.parent_set(type='BONE', keep_transform=True)

I kind of hate it when it looks like magic and I don't understand why, but at least I'm not going to worry about it for now (if anyone has an explanation for it, though, I'd love to hear).


Simple Question Why Does Pressing P not start the BGE?

Until Blender 2.49, P key put you right into the game engine.

Blender 2.5 introduced a special concept called Render Engine (Internal, Game, Cycles), and you must choose the right engine to configure it. When you choose the game engine render engine, the properties editor and some other ui menus and panels will update. Pressing P will also now put you in the game engine mode.


Makehuman pose broken between 2.69 and 2.7x

If you had auto run python scripts enabled in your preferences for 2.69 and you haven't enabled it or copied your user prefs in the new version, then it might be because some python drivers are being blocked.

If this is the case, there should be a message in the info header (at the top of the window by default):

You can either press Reload trusted each time you open the .blend, or make sure auto run python scripts is enabled in User preferences > File > Auto Execution:


Some sculpting brush hotkeys change the view rather than the brush

It seems like you pressed Shift+Numpad 4 which is shortcut to rotate / roll the viewport camera.
Brush shortcuts are numbers on keyboard, not on Numpad. So to activate Sculpt brush from 10 to 20 you press Shift+number on the row of keys above letters on the keyboard. In case of Polish brush this will be Shift+4.

See for more brushes shortcuts Switch between sculpting brushes


How do I turn on brush diameter display in texture paint mode?

In Texture Paint Mode, Go to Options Panel >> Appearance >> and Select the Show Brush check box.


2.79 Hair dynamics bake didn't write in cache

It's ok for me.

For other people, think to not check "Regrow" when you want animate hair, and you didn't loss a time like me ^^

Care this !


Way to control mesh volume for character animation

Blender does not currently support anything like implicit skinning, or any dedicated tools for character self collision.

Dual Quaternions are simply a different way of calculating bone transforms on vertices and prevent some artefacts, but have no concept of intersection or volume (although they make the results appear to preserve volume better under some conditions).

However there are a number of ways these effects can be mimicked in blender:

corrective shapekeys driven by bone rotations/positions (see https://www.youtube.com/watch?v=f3JWNIkwBZ8). This is probably the simplest way, but can be time consuming.
soft body or cloth on skin (possibly with collider objects underneath)
supporting soft body muscle meshes, using shrinkwrap to fit the skin too
extra bones using various constraints.

All of these methods tend to be very time consuming and fiddly to get good results with.

I agree that it would be great to see something like this in blender, however for the time being it is not likely.


OK,

Figured it out. After disabling MeasureIt addon since that wasn't related and disabling edge-length display in 3d viewport I noticed the protractor icon (measure tool) was selected on the left.

Playing around I realized that you select a vertex point with the left mouse button and drag it towards another vertex. Only after you start dragging you can hold down the Ctrl key to have it snap to another vertex. The result is the measurement in white text highlighted in a black box as displayed in the above attached image.

Some notes:

After selecting the first vertex, make sure not to drag or Ctrl+Drag
the left mouse button while over empty space or it might select a
vertex hidden below the one you need to select. (Inconsistent)
To delete a measurement, tap on the measurement or the ruler line it
created and press X on the keyboard


Use evaluated object in 2.8+

Example for 2.8+ adds an empty at each hair key location. Note: since it adds an empty via op, test on an object with lowish hair count

import bpy

context = bpy.context
dg = context.evaluated_depsgraph_get()
# evaluated object
ob = context.object.evaluated_get(dg)
mw = ob.matrix_world

for p in ob.particle_systems[0].particles:
    for k in p.hair_keys:
        bpy.ops.object.empty_add(location=mw @ k.co)


Use multiple bl_space_types to place the same toolbar on multiple locations

You can do this using a loop to generate dynamically named panels, each with the desired bl_space_type (based on this nice answer):

import bpy

def panelFactory( spaceType ):
    class NewClass( bpy.types.Panel ):
        bl_space_type = spaceType
        bl_region_type = 'TOOLS'
        bl_label       = "add_item_%s" % spaceType

        def draw( self, context ):
            layout = self.layout
            layout.operator( "mesh.primitive_cube_add" )

    NewClass.__name__ = "add_item_%s" % spaceType
    return NewClass

spaceTypes = ['VIEW_3D', 'IMAGE_EDITOR', 'NODE_EDITOR']

for spaceType in spaceTypes:
    panelFactory( spaceType )

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

This code will add the "Add Mesh Cube" operator in a new panel to the "Misc" tab in each of the desired windows (space types).


Symmetrize Weight Paint Inconsistency (Video Included)

I think your problem is that in the old file you had consistent naming convention and in the latest file you have small and large letters mixed:


Python: How to display per render layer properties in a UI list?

SceneRenderLayer cannot be assigned a bpy.props property.

From the docs on property defininitions

  Assigning to Existing Classes

  Custom properties can be added to any subclass of an ID, Bone and
  PoseBone.

Run a little check in console using builtin issubclass (don't need to consider bone or pose bone in this case)

# bpy.types.Scene.prop = ...
>>> issubclass(bpy.types.Scene, bpy.types.ID)
True

# bpy.types.SceneRenderLayer.prop = ...
>> issubclass(bpy.types.SceneRenderLayer, bpy.types.ID)
False


How to remove interior faces while keeping exterior faces untouched?

Update, this is working in Blender 2.81 (see: T68401)

Use the following steps:

Enter Editmode
Set the Selection type to Faces
Select all
Vertices -> Merge -> By Distance
Deselect all
Select -> Select All by Trait -> Interior Faces
Delete

You say Select -> Select All by Trait -> Interior Faces didn't work; I expect it's because you didn't remove doubles first.

Tip

After this, try Limited Dissolve, it gets rid of redundant geometry which can be useful in examples like this (if you don't have UV's or per-face materials set differently on each face).


Removing dotted assist lines? Problem only occurs when Appending!

You can hide that in display tab by deselecting Relationship Lines.

Press N while in 3D-view, then uncheck the option in "Display":


Cutting an Object with a Plane Using Boolean Modifier

Since Blender 2.91, you can boolean with manifold objects like a Plane.
There are two methods now. The Exact method should solve your issue.
old 2.9x Fast (2.8 method)

new 2.9x Exact

It is cut out in inside normal direction (red color when Face Orientation overlay enabled).

If you still need to work in 2.8 you would have to use Solidify modifier or other tech to create non-manifold object as you mentioned.


Attempting to convert a model with "bones" - how to find the coordinates of each rotation point?

With the armature selected switch to Edit Mode, select the bone you want, and the location of the point it rotates around is displayed in the Properties panel (N) under Head:

To automate this open a Text Editor window and run this code:

import bpy

obj = bpy.context.active_object

if obj.mode is not 'OBJECT': bpy.ops.object.set_object_mode()

for bone in obj.data.bones:
    print("Bone: {0} origin is at {1}".format(bone.name, bone.head))

It will output into System Console. You can rewrite it to output to a file in a custom format your engine will understand.

The values will be relative to the armature centre of origin and with Z axis pointing up.


Auto show/expand outliner to selected objects

So we know that if the object is already visible in the outliner (not buried in a hierarchy like bones), it will be "highlighted", but the outliner will not auto-scroll to display it.
If you hover your mouse over the outliner window and enter '.', it will scroll and expand hierarchy to display the selected object.
Sometimes I set up another copy of the outliner, and in the filters select to show "Selected" Objects, instead of the default "All".  However, if I selected a hierarchical child object (like a bone), it will still not cooperate fully unless I enter '.' (will then expand to the selected child).
Note that Shift-"right arrow" will expand the complete child hierarchy from the selected parent.

For those of us 3ds Max converts, blender disappoints here.  I may update if I come up with a python script to "sync outliner to selection" in the 3ds Max way.


You want a mirrored copy of your horn, right? Select your horn, apply its rotation and scale with ctr A, duplicate it with a shift D (or alt D if you want a linked duplication), then press S, Y and -1, the duplication will be mirrored.


How to Save OpenGL Viewport Animation in Blender 2.8?

You have to specify where the file is gonna be saved before you render it from the viewport! Otherwise it doesn't work, I had the same issue.


After further research.

The Simple Deform modifier modes are in fact basic operations of rotating (Twist & Bend) and scaling (Taper & Stretch). The code for the Taper function is given above.

The calculation of the deformation is performed in the local coordinate system. The parameters r_co[0] … [3] are thus the local X, Y en Z coordinates of the object. Depending on the location of the origin of the object, these can be positive, negative or both. In the figure below, the origin is at the bottom of the object, so all local Z coordinates are positive.

Originally, the parameter Factor comes from the user (0.750 in the example) but is adjusted somewhere else in the code for the size of the object in the Deform axis. It is also influenced by the parameter Limits. In the example, the deform axis is Z and the object has a size of 3 units in this axis. So, the factor used in the function is 0.750/3 = 0.250; e.g. the total amount of deformation is spread over the entire deform axis.

So, all vertices are scaled in the local X and Y axis. The local Z-coordinate remains unchanged.
Following the given formula the deformed vertex is calculated as follows:

Vertex (-0.5,0,3);  -0.5 + (-0.5*(3*0.250)) =  -0.875
Vertex (-0.5,0,2);  -0.5 + (-0.5*(2*0.250)) =  -0.750
Vertex (-0.5,0,1);  -0.5 + (-0.5*(1*0.250)) =  -0.625


What's Better: One Large PC or Many Small Ones?

I agree with Duarte that there is no universal good answer for this. In fact the real answer will depend on what time you ask this e.g. the GTX 10 series brought in a swathe of cheap GPU power where [1] a GTX 1060 is the best bang for your buck in terms of FLOPS/$.

Just bear in mind that if you do decide to opt for a bunch of smaller gpus, the amount of onboard memory will limit the size and complexity of your blender scene.

If you are looking to drastically reduce render times, check out airenderer.com. I used it a couple of times, it is good for most scenes and they claim can reduce your render times by up to 97%...[2] it is more like 90% but still very good.

sources:
[1] geforce.com official FLOPS versus RRP
[2] airenderer.com


How to make Blender keyboard shortcuts work in a non-Latin keyboard layout?

If I can accidentally get it to work on my French keyboard (most confusing, btw), then you can get it to work for your computer.  Just get the keyboard, and set the keyboard (usually under language preferences, bottom right for windows, idk for a mac) up for the language that you want, and the computer will use that keyboard for everything, you don't need to do anything in blender.  That should do it.  Also, idk if this is just a Windows thing, but if you press alt-shift, it switches languages, which is annoying if you accidentally press it, then all of your shortcuts are messed up.


Ok so real answer is that in the video you link he's using an addon by Pitiwazou and he gives the links in the comments:

https://gumroad.com/l/pie_menu_editor

https://gumroad.com/l/wazou_rmb_pie_menu_v2

Old answer:

Maybe he was snapping a vertex to another one, with the Snap option (Vertices mode) and the Automatically Merge Vertices option enabled? You can even activate the snap tool with ctrl.


Is it possible to bake to a texture with animatable alpha gradient?

I had no success with baking, but could achieve the desired effect by rendering the image.

Set the materials alpha channel to initial transparency

Materials properties

Add a plane with an alpha gradient as texxture behing the scene

In Gimp create an image with the required dimensions
From the layer context menu select  Add Layer Mask

Use the Blend Tool to create tha gradient

Export to .PNG

Set camera to orthographic

Render and save the image.


You can do this by creating a special new material of the texture coordinates and baking it, then using the baked image for the texture coordinates of your split objects.  Note thatt this should be done before cell fracturing your object.

First unwrap your object.  It doesn't have to be a super clean unwrap, just something not too distorted.

Now create a new material and name it something like "MappingCoords" or whatever makes sense to you.  For the material just plug the Object texture coordinates into an emission shader.  Since color and vector datatypes are no different from each other the XYZ texture coordinates will now be represented by RGB values.

Now go to the UV/Image Editor and add a new blank image by clicking on the New button at the bottom.  What resolution to use will depend on how big your model is and the resolution of the texture you will be using.

Next go back to the node editor and add an Image Texture node.  Don't plug it into anything or modify your nodes, just select the blank image you just made and make sure the node is selected.  Now go to the Render Properties tab and scroll all the way down to the Bake Rollout.  Select Bake Type Emit and hit the Bake button.

The bake should look something like this:

Now go to the UV/Image Editor and save the baked image as an OpenEXR file (other file formats will undesirably clamp the <0 and >1 values to 0 and 1).  You can then load the image and plug it into the Vector of the image texture for your material.

Now when you cell fracture the object each fractured piece should retain its UV unwrapped coordinates, which are being used to map the baked texture coordinates for the actual image texture.

Here is my .blend so you can take a closer look at what I did:

You will have to either re-bake the coords or download the above image (it's a PNG not EXR, but it will work in this case since I used generated coords which are in [0,1]) since the file was too big to fit on Blend Exchange.


Can I use an image sequence with offset frames as a texture on array items

Instead of using the the Array modifier

Link the material to object.
Create a individual linked duplicates.
Select the duplicates, Object | Make Single User | Materials+Tex (or UT)

You might want to setup a nodegroup first to make future changes to the material easier.

Now increment the texture offset for each material.


I can't render on blender using a GPU on mac

Macbook Pro sometimes have 2 graphic card available for it's system. An intergrated one and a standalone GPU. Make sure the GT750m is selected in
your user preference with CUDA turn on.


How would I make an indent that runs on all sides of the object?

You can simply Inset the faces

Select your loop
Inset it by 0, set depth as desired
Check Offset Even


Linked duplicate of parent/children: how to link transform properties of children?

To duplicate multiple objects in different positions and keep the relationship between each instance, you want to use DupliGroups.

Select the objects you want to duplicate.
Add them to a group ⎈ CtrlG
You can rename the group so that it is more meaningful.
Add an empty
Set the empties Duplication setting to group and choose the group you created.
Repeat the last two steps as needed.


Create a segmentation picture with each object class rendered in different color ?

Give each object a unique 'pass index'. You can use the compositor, the Object Info node, and some math nodes to convert it to a colour.

This happens when you divide the object index by the maximum index you're using (to get it to a 0-1 value), and apply it to a diffuse material:

By using a Colour Ramp you can take that 0-1 value and map it to discrete colours:

By swapping out the Diffuse shader with an Emission shader, you just get the straight colour values:

This is the final material:

This is the blend file I used:

See the manual for more info.


JPEG does not support alpha channels. This will mean that the Alpha returned by the Image Texture node will be a constant 1.0.

The only simple solutions will be to either convert your image to a PNG or similar and add an alpha channel or to use the properties of the image to simulate alpha - for example, if the ‘background’ is pure black and the curtain doesn’t contain any black then simply use a Greater Than node set to 0.0 to generate “alpha” directly from your color data (ie, wherever Color is not 0.0 you’ll get 1.0 for alpha).


Armature not completely moving head mesh

I noticed that marios right arm gets twisted when the armature gets parented.
To fix that, you need to go into pose mode of the armature, press CTRL + A and select apply pose as rest pose.

Even though the eyes,mustache, and face are one object, the eyes/mustache arent connected to the face but floating in mid air. So the automatic weights didnt work perfectly. You can see that because when in weight paint mode, the eyes are blue (meaning the vertices arent assigned to that bone) and the mustache is green (meaning it is only partially controlled by that bone)

You can easily fix that by manually selecting all the vertices in the face with A  and assigning all of them to be fully controlled by the head bone in the Properties Editor->Data->Vertex Groups->Assign. I also noticed the mustache is partially controlled by the chest bone so I removed it from its control.

The process is called "weight painting".


It's called the Navigate Gizmo

It can be switched on/off in Viewport Gizmos menu
Shortcut: Ctrl+`


Problems with Baking (three materials into one texture)

Nevermind, I just watched an online tutorial of baking. I forgot to add a little space for the objects before baking. **Margins


Noob in BGE Just have anything work with python script

The show console menu is only available on windows, on other systems you start blender from a terminal window to see the same output as the windows console.

Programming languages are very strict when it comes to interpreting the code you give them. As Chebhou pointed out, you are missing a : at the end of the if statement, you also have an extra [ before the keyboard.events. Any small error like this will prevent the script from working.

The error you got says there is an error on line 11, many times it is a line or two before that that has the mistake that needs to be fixed. In this case it says the player.applyMovement() is incorrect because it doesn't fit in what it accepts next, it wants either a : to end the if statement or a boolean operator like and to join the function result with the previous test condition.


How to compute the centroid of a mesh with triangular faces without using Blender's built-in functions?

Bmesh approach

The bmesh module has for faces the methods to calculate centre and area.

There are three methods to calculate the centre of the face.

  calc_center_bounds()

Return bounds center of the face.
Returns:  a 3D vector.
Return type:  mathutils.Vector

  calc_center_median()

Return median center of the face.
Returns:  a 3D vector.
Return type:  mathutils.Vector

  calc_center_median_weighted()

Return median center of the face weighted by edge lengths.
Returns:  a 3D vector.
Return type:  mathutils.Vector

I've used calc_center_median() for $x_i$ and BMFace.calc_area() for the weight $w_i$ for each face of index $i$ the weighted mean is

$$\tilde x = \frac {w_0x_0 + w_1x_1 + ... + w_nx_n}{w_0 + w_1 + ... + w_n}$$

import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.object
me = ob.data
bm = bmesh.new()
bm.from_mesh(me)

weights = [f.calc_area() for f in bm.faces]
weighted_centres = [f.calc_area() * f.calc_center_median()
        for f in bm.faces]

local_weighted_mean = sum(weighted_centres, Vector()) / sum(weights)
print(local_weighted_mean)

# set as new origin
for v in bm.verts:
    v.co -= local_weighted_mean
mw = ob.matrix_world
mw.translation = mw * local_weighted_mean
bm.to_mesh(me)
me.update()

Result of running on newly added Suzanne. Scene cursor shows old origin.

Note: if modifiers are used on the object to triangulate, or subdivide, can (for example) use

bm.from_object(ob, context.scene, render=True)

to calculate weighted origin of modified mesh.


Operator bpy.ops.rigidbody.object_add.poll() failed, context is incorrect

Just in case this is useful for somebody in the future, here's what seems to work for me:

import bpy
from bpy.app.handlers import persistent

@persistent
def load_handler(dummy):
  obj = bpy.data.objects['obj']
  obj = C.scene.objects.active
  obj.select = True
  bpy.ops.rigidbody.object_add()
  obj.rigid_body.type = 'PASSIVE'

bpy.app.handlers.load_post.append(load_handler)
bpy.ops.wm.open_mainfile(filepath=task_path+ str(x) +".blend")


bge - EditObjectActuator.time changed at will?

Yes, not only you can change the actuator.time attribute in realtime, but you can add an object without an actuator.

Change the time based on a property

import bge

cont = bge.logic.getCurrentController()
own = cont.owner

act = cont.actuators["AddObjectActuator"]

act.time = own["MyProperty"]
cont.activate(act)

Adding object through script

import bge

cont = bge.logic.getCurrentController()
own = cont.owner
scene = own.scene

# Both objects can be from scene.objects instead of names
scene.addObject("ObjectNameToAdd", "ObjectWhereToAdd", time=own["MyProperty"])

More info about this method here.


The fonts on the interface are too small, how can I make them bigger?

Open Blender's User preferences by going to File > User Preferences or pressing Ctrl + Alt + U and under the System tab the first option under General > DPI should do what you want.

Just increase the DPI to the desired value or to match your display


Blender Game Engine - Shadeless Textures?

Is this what you're looking for?

Just check the small box that says shadeless in the materials tab.


Is it possible to change the opacity of wires in version 2.8?

Go to the Edit menu on the top left of your screen, and select User Preferences. Under the tab that says 'Themes' you will find settings for the Wire and Wire Edit. These are the ones you want to change.


This code creates 10 materials and appends it to the active object (should be a mesh). The diffuse color of every material is random. The .material_index poperty is set to the new materials by index (even if the object has materials assigned before the operation).

import bpy
from random import random

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

mat_offset = len(me.materials)
mat_count = 10

mats = []
for i in range(mat_count):
    mat = bpy.data.materials.new("Mat_%i" % i)
    mat.diffuse_color = random(), random(), random()
    me.materials.append(mat)

# Can't assign materials in editmode
bpy.ops.object.mode_set(mode='OBJECT')

i = 0
for poly in me.polygons:
    if poly.select:
        poly.material_index = i % mat_count + mat_offset
        i += 1

If you want to use UV mapped textures, you'll also have to deal with me.uv_layersand me.uv_textures. It's not enough to assign materials to faces, you also need to set the texture image for every face.


How to convert coordinates from vertex to world-space?

Multiply the world matrix by the object-space vector for world space coordinate:
import bpy

ob = bpy.data.objects['Cube']

v = ob.data.vertices[0].co
mat = ob.matrix_world

# Multiply matrix by vertex (see also: https://developer.blender.org/T56276)
loc = mat * v  # note: use `loc = mat @ v` for Blender 2.8+

# Don't do the reverse!
loc = v * mat  # wrong!

`Object.matrix_world is a 4x4 transformation matrix. It contains translation, rotation and scale. A 4x4 matrix can also be used for mirroring and shearing (not covered in my answer).
[a] [b] [c] [d]
[e] [f] [g] [h]
[i] [j] [k] [l]
[m] [n] [o] [p]

The translation is stored in the first 3 rows of the 4th column of the matrix (d, h, l):
mat.col[3][:3]

You can also use:
# Create new Vector object
mat.to_translation()

# Access the original matrix' translation
# (assignments will change the matrix, thus the object location!)
mat.translation

Rotation and scale are sort of combined. The rotation is stored in a, b, c, e, f, g, i, j and k. The scale is stored in a, f and k. The values in a, f and k of the rotation are taken and multiplied by the scale factor to store both pieces of information.
To get only the rotation, you need to normalize the 3x3 matrix:
mat.to_3x3().normalized()

To get only the scale, you can use the utility method:
mat.to_scale()

Or manually, normalize the matrix and divide each of the un-normalized by the normalized components (a, f, k):
# you could do this manually like
# vec / sqrt(vec.x**2 + vec.y**2 + vec.z**2) for every matrix column
nmat = mat.normalized()

scale = Vector((mat[0][0] / nmat[0][0], mat[1][1] / nmat[1][1], mat[2][2] / nmat[2][2]))

If you need the world coordinates of all vertices, it's more efficient to use the transform() method:
me.transform(mat)

It will apply the transformation matrix to the mesh, so multiply the world matrix with all vertex coordinates. You may wonder about the change in orientation of a mesh object in viewport if you do the above. It can be fixed by resetting the matrix_world (otherwise the transformation will be done twice):
ob.matrix_world = Matrix()  # identity matrix


How to detect scene strips in the VSE on frame changes?

This works, but I guess it could be more elegant and faster if ".strip_elem_from_frame" would work with scene-strips and nonactive strips. The current strip will be written in the Console.

import bpy

#update at frame change
def syncSceneLength(*pArgs):
    scn = bpy.context.scene
    seq = scn.sequence_editor
    cf = scn.frame_current
    for i in seq.sequences:
        try:
            if (i.frame_final_start <= cf
            and i.frame_final_end > cf
            and not i.mute):
                print("Current Strip: "+i.name)
        except AttributeError:
                pass

def attachAsHandler():
    for f in bpy.app.handlers.frame_change_pre:
        bpy.app.handlers.frame_change_pre.remove(f)
    bpy.app.handlers.frame_change_pre.append(syncSceneLength)

def detachAsHandler():
    bpy.app.handlers.frame_change_pre.clear()

syncSceneLength()
attachAsHandler()
#detachAsHandler() #Uncomment this to stop handler


Once you have your model done, then do the unwrap. It looks like you are trying to do the unwrap as you go, and the model is not square and level in relation to the vertex positions. If you select all the faces there in the front of the object and in the matching view select 'project from view' then the texture should not warp - but you will need to do this for each side of the model, and you will have to adjust for scale matched to the texture.


For a pipeline friendly way to solve this problem, I would use an armature to rig the box and then combine the box and rig into a Group.

Then in another file you can link the group, make a proxy of the rig and constrain other scene objects.


How do I get objects with visibility toggled off in a file saved in Blender 2.79 to be visible in Blender 2.8?

There are a few visibility options in Blender 2.80 that confuse new users (and also experienced ones). By default, you can only see the hide in viewport one, which is represented by the eye icon. However, there is also another option called disable in viewport. You have to enable a filter option first from the filter popup on the right to even see this icon (looks like a small TV screen):

Then you'll be able to see and toggle it from the Outliner:

Its purpose is to hide an object from a collection instance. So if you instance Collection from the example in the screenshots, the Plane object would be hidden. If you only used the eye icon, the instance will show the Plane object regardless.


Normal map seems fine, but shades completely wrong (2.8 Beta)

What is missing is a Normal Map node between the Image Texture node and the Principled Shader node:


Can I use a programmable gaming mouse for modelling

There is no problem, just press the mouse button when setting up the shortcut and Blender will recognize it as Button5 Mouse for example.

You can also set the mouse keys in most mouse management software to act like Ctrl, Alt, etc.

Lastly check if there are good drivers for your gaming mouse if you are on Linux or MacOS.


How to retrieve the thumbnail from a .blend file?

Yes, this is possible and infact has been done already,the script to do this comes bundled with Blender: see blender-thumbnailer.py.

This Python script runs without Blender, eg extracting a PNG image from my.blend:

blender-thumbnailer.py /input/my.blend /output/thumb.png

Details

To extract the thumbnail from a .blend file you have to use a basic .blend file parser, however - this is written in such a way that its quite simple to extract the data without having to understand the entire blend file format, instead - you only need to read one of the serialized BHead blocks. (See link above).

Using blender-thumbnailer.py as a reference: writing this in another programming language, or saving as a different image format should not be a very big task.


You can keyframe colour values the same as any other value, the catch is it will only keyframe the rgb values, not hsv.

To keyframe a colour either press I with the cursor over the colour or right-click  RMB and select Insert Keyframe.

While you can then bake a sound into any of the keyed colour channels, it will be an erratic change, not a smooth fade that you most likely want, so you will want to manually key the fade that you want at the right time.


Tips and Tricks with using blender with one hand

Not that I can say it is a solution, but Pitiwazou over on blenderartist.org has a thread concerning his Wazou's RMB Pie menu, and theoretically it could help a lot towards enabling more to one hand.


Unwanted sharp shadows when using a point lamp

You can also try changing the shadow's Soft Size to affect how sharp or blurred the shadows will be.  If you are using Blender Render(Internal), the samples for the shadows are right next to the soft size.

For Cycles, the lamp size can be used to alter the softness of the shadows.


easiest way to do this? (Amplifier Grid)

Edit: Robin Betts inspired me a simplification. You could do it with arrayed meshes:

Build your segment, move up the middle with the Proportional Editing option, duplicate and turn it upside down.

Give it 2 Array modifiers to duplicate the segments on the X and Y axis. Duplicate and rotate the whole thing 180°.

Keep a copy somewhere, rotate all 45° on the Z axis, apply the modifiers, join everything, delete the mesh so you only keep a square grid.

To finish, curve the edges with a Curve modifier.


Script/API - Snap selection to grid, but only one axis

Ditch the operator

IMO far simpler to ditch the operator and round the desired axis component to the nearest gradation.

Test script, Run in edit mode, moves all selected verts local z coordinate to nearest multiple of 0.125

import bpy
import bmesh

context = bpy.context

ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)

grid_spacing = 0.125

sel_verts = [v for v in bm.verts if v.select]

for v in sel_verts:
    v.co.z = round(v.co.z / grid_spacing) * grid_spacing

bmesh.update_edit_mesh(me)

Considering the grid to be a global system, will convert the vert coordinate to global mw @ v.co find the nearest gradation point, then convert back to local mwi @ v.co

Please Note script written for and tested on 2.8. For prior replace  @ with *

import bpy
import bmesh

context = bpy.context
ob = context.edit_object
mw = ob.matrix_world
mwi = mw.inverted()
me = ob.data
bm = bmesh.from_edit_mesh(me)

grid_spacing = 0.125

sel_verts = [v for v in bm.verts if v.select]

for v in sel_verts:
    g = mw @ v.co # use * prior 2.8
    g.z = round(g.z / grid_spacing) * grid_spacing
    v.co = mwi @ g

bmesh.update_edit_mesh(me)


Rendered image is different than Camera view

Thanks for your help but I found what was wrong.

the Sequencer box was checked in Post Processing. So i just unchecked it and Checked the Border button and it is working fine now.


You need to select the right texture from the menu in order to see it in UV editor


I never had that and I can't imagine what the cause of it could be.

As a workaround I suggest to replace the object, with another one. You can copy the logic via space copy logic bricks to selected (in a similar way you can "copy game properties").


How to combine transparent environments with alpha masks?

I found out that you can get this effect with freestyle rendering. It's exactly what I was looking for.


Make a new window and change it to UV/Image editor
In the 3D view go to edit mode and select the face u want fix the texture and press U and select Unwrap
Go to the Properties panel next to material there is texture layout
Below in type change to image or movie
And in the Image open the image as shown in .gif
Now in the UV Editor Select the image u want to focus from drop down.
And in the 3D change from solid to texture.


how change background color in the diffuse color mode?

This pass is technical, used for checking renders, not for working. If you look up for texture editing with no shading affecting, you should try Flat shading with texture display:


How to set a certain scene if object fall below a value?

You have a syntax error because you forgot the double point at the end of if statement.
You can change state of an actuator with current controller actívate or deactivate.

Your script should look like this:
import bge

# get the controller
controller = bge.logic.getCurrentController()

# get the game object that the controller is attached to.
obj = controller.owner

# get actuator attached to the controller named switchScene
act = controller.actuators["switchScene"]

# Detects player's z position is equal or minor then zero
if obj.worldPosition.z <= 0:
    # set scene name
    act.scene = "Main"
    # scene actuator mode: change to = 0
    act.mode = 0
    #change scene
    controller.activate(act)

Related : Python API controller.activate, Python API KX_SceneActuator
EDIT
Hi again.
About chicOrtiz comentary:
That error its because you dont have an actuator named "switchScene" conected to the current controller in the logic editor window (panel). as shown in the next image:

So i decide to make a blend example and found our next error.
We need to set actuator mode before set the scene. So the script should be:
import bge

# get the controller
controller = bge.logic.getCurrentController()

# get the game object that the controller is attached to.
obj = bge.logic.getCurrentScene().objects["Cube"]

# get actuator attached to the controller named switchScene
act = controller.actuators["lascene"]

# Detects player's z position is equal or minor then zero

if obj.worldPosition.z <= 0:
    # set actuator mode :
    # 0 = ?restart? ;   1 = ?restart?? ;
    # 2 = set Scene ;   3 = set camera ;
    # 4 = overlay   ;   5 = underlay
    act.mode = 2
    #set camera, it has to be in the same scene.
    act.camera = bge.logic.getCurrentScene().objects["Camera_main_scene.001"]
    #Set actuator Scene
    act.scene = "Second_Scene"
    #active actuator
    controller.activate(act)

Note: About if you need to use bpy or bge,
if you want a game always use bge
if you want animation movie, addon, etc use bpy
bpy and bge cant work together in anyway (in my understanding)
bpy only used inside blender (internal, cycles) dont bge


White lines problem texture bake; render engine

Found it out. Turns out it solves it when you uncheck the box use alpha in the texture panel.


how do I work with LAB color space in the compositor?

You can't, not without adding a whole different reference space, and you don't actually want to. The explanation for this is very long winded, and I'm willing to explain, but the short version is as follows.

Proper mixing of colour relies on modeling our real-world of physics. That part includes using linearized systems that orbit around the spectral locus. Lab is strictly a perceptually uniform model based off of XYZ. As such, it is a nonlinear space, which makes it absolutely one of, if not the, worst possible choice for manipulation of images. No really, it is that bad[1].

So what you are actually requesting is a method to manipulate a dual axis model that works in conjunction with the default tristimulus (RGB) linearized reference model. At the current time, there is no OpenColorIO node, so you can't transform the data along the nodal pipeline.

Further, even if you could perform an OpenColorIO transformation along the pipeline, this would be an awful idea to take your reference RGB data to Lab for the reasons identified above. So is there a reasonable dual axis system that could work in conjunction with a linearized tristimulus reference space? In theory yes, you could change to xyY, which is a scaled version of XYZ. The problem with xyY is that the range of values that can be produced from the primary lights are largely imaginary, and as such, there are many other pitfalls that come along with that sort of a choice that have to be closely managed.

Perhaps sometime soon on the horizon, Blender will be fully agnostic and the colour pickers and such will be properly set up to enable a changing of viewing transforms on the UI elements. This would allow you to use whatever colour transformation you wish only on the view of the UI element, while leaving the actual reference values in their established state. That would permit using something like a Lab 3D LUT to view the picker, and give you the RGB values transformed for the reference space.

The key takeaway here is:

Lab is an awful choice for manipulation of images, and a questionable choice for colour based selection.
A clear division of reference / working space and UI / View space alleviates any artistic reasoning for (1) above. That is, as long as your reference remains strictly scene linearized, and the view / UI permits one-way only transformation of those values, the correctness of the image manipulation pipeline is preserved.

[1] The great granddaddy of misinformation was a tome written for a commercial image manipulation program that has since become infamous among imagers. It has some of the worst advice, some of the biggest misinformation, and some of the most dire concepts delivered to imagers in perhaps the past twenty years. Lab is a fool's errand.


My advices:

Your scene and that scene has different type of hdris.
Install hdri addon like gaffer (it's free) and change/rotate different hdris until you find what looks most similar.
If you want the most similar look you wil have to use exact same hdri image, if it's possible but in most cases it isn't possible.
That scene has hdri of clear noon sky and you have hdri of evening or something like that.
So both images represent different time span of the day.
You image looks darker so after you change the hdri, you should increase the strength of hdri before tweaking the sun lamp
The image you are using is already post processed image

So you will have to concentrate on post processing as well as lighting of your scene

Blender has good composition system but i would recommend adobe lightroom for this. I use it's free android app to do the post processing.
He has used some soft area lamps


BGE - Calculate Acceleration from Velocity

"I need to know how to make it work correctly."

that will take some work on your script.

First off, there are many problems with your script. The most obvious being a syntax error. you should have another ) after Vector((0, 0, 0). Second, you do not define own or ob. But the worst error, is you can not define a vector on a game property. There is no property type called vector

The five property types are Boolean, Integer, Float, String, and Timer. If you try to assign a vector to a game property, the only one that would come close to working is the String property, and that wouldn't do much in the realm of usefulness.

I would not actually use the method you are trying to use. I would calculate Acceleration like this:

import bge
from mathutils import Vector

controller = bge.logic.getCurrentController()
obj = controller.owner

previous_velocity = Vector(obj.worldLinearVelocity)

def main():
    global previous_velocity

    current_velocity = Vector(obj.worldLinearVelocity)

    acceleration = (current_velocity - previous_velocity) * bge.logic.getAverageFrameRate()
    print(acceleration)

    previous_velocity = current_velocity

Also, you must reference this bit of python by calling it from a module controller, not a script controller.


Exact Math formula of the MixRGB Node (Multiply Option)

color1 *= ((1.0 - fac) + fac * color2)
/* r_col = current value, col = new value, (fac == 0) is no change */
void ramp_blend(int type, float r_col[3], const float fac, const float col[3])
{
    float tmp, facm = 1.0f - fac;

    switch (type) {
        case MA_RAMP_BLEND:
            r_col[0] = facm * (r_col[0]) + fac * col[0];
            r_col[1] = facm * (r_col[1]) + fac * col[1];
            r_col[2] = facm * (r_col[2]) + fac * col[2];
            break;
        case MA_RAMP_ADD:
            r_col[0] += fac * col[0];
            r_col[1] += fac * col[1];
            r_col[2] += fac * col[2];
            break;
        case MA_RAMP_MULT:
            r_col[0] *= (facm + fac * col[0]);
            r_col[1] *= (facm + fac * col[1]);
            r_col[2] *= (facm + fac * col[2]);
            break;

From GitLab:
https://gitlab.com/ideasman42/blender/-/blob/dyntopo_knife/source/blender/blenkernel/intern/material.c


Construct surface model from atomic force microscope data

Probably long time since this is done but here goes:
open your AFM data with Gwyddion.net, export as ascii txt file, use open SCAD to plot the data and export as STL file. Import STL file into blender or your 3D printer slicer (to get the gcode for example).

Gwyddion and openSCAD are python scryptable as far as I remember. Will work better on *ix systems than windows.


Ben Morrison offered this solution (specific to blender2.80) for selecting objects that don't have UV here. If you know other solutions not involving scripts I'd like to know them.

import bpy

bpy.ops.object.select_all(action='DESELECT')
mesh_objects = [o for o in bpy.context.scene.objects if o.type == 'MESH']
for o in mesh_objects:
    if not o.data.uv_layers:
        o.select_set(True)


Animation nodes color output - how to bake to keyframes as base color

You need to use the Set Keyframes node. Link to the docs.
It is designed to keyframe transforms (Loc, Rot, Scale), but you can keyframe other properties by choosing Custom in the first dropdown.
Click on the + icon to add a new field, and type color (implied object.color, that is to say the object viewport color) because that's the property you want to bake the keyframes to.
Check Enable to, well, enable the node's behavior.

Now if you play the animation, it will bake the keyframes to ALL frames.
How to restrict the baking to a certain frame range :
Add a Time Info node and a Compare boolean node.

Result :


3D modeling of blood vessels from 2D stack of labeled cross-sectional images

FIJI helps me to get required .obj file from the stack of scans that fixes the problem.


Blender doesn't render anything on my laptop

I'm guessing you have an AMD GPU in your laptop? Your symptoms look identical to an issue AMD users were having recently regarding the latest Adrenalin drivers. You may be able to correct things by checking (enabling) "High Quality Normals" under Render Properties > Performance. If that doesn't work, try rolling your graphics drivers back to an earlier version.


Need help to recreate this shape in blender

Use Boolean modifier to do such Hollows in Mesh:

See how it woks:

You can do these on Default cube when Blender is Opened with Default Settings.
Just add two modifiers:
1. Bevel:

Add Subdivision Surface(Subsurf) Modifier..
And change the view and render both to 3.

Scale it according to your object by pressing S. If you want to scale your object particularly on one axis (after pressing S)pressX/Y/Z respectively.

Now Duplicate your object by Shift+D and pressY to move it only on Y axis.

Now scale the Duplicated cube down to Z axis, it depends on how much you wish the hollow size to be.Make sure you scale more on X axis to make whole visible from outside of the actual cube.

Now take the duplicated cube and move it inside the Actual cube by moving it on Y axis.(PressGandY)

  Now this is important.

Select the Actual cube and add Boolean modifier to it.

Go to Boolean Modifier Settings and select the duplicated cube. There's only one so it will show it only one. Select it.

Edit:
Click on the drop down in side of the selection:
Change it from Intersect to Difference.

Now apply the Boolean modifier of the Actual cube.

Now you can delete the duplicated cube you will see the Hollow in the cube.

You are done.

  If Bevel and Subsurface Modifiers don't work well for your mesh, you
  can just go to Edit Mode, Press A if your mesh is  not selected and
  Press Shift+Ctrl+B and scroll Mouse
  wheel to make changes, you will notice some changes in corners of your
  Cube, Plane,etc. It works same as the combination of Bevel and Subsurface Modifiers

Check out this Boolean.blend file.
Check Modifiers Stack.

  It is not necessary to duplicate and hollow, you can add any object
  like UV Sphere and do the same. But now UV sphere will act as
  Duplicated cube.  Imp: Add Boolean Modifier only to the object you
  want to hollow. Not which you are using to Hollow.

Happy Modelling!


Camera flips 180 degrees following the path

Nice car, that's my favourite one... so applying scale of the curve doesn't helps.

That was just a guess, I already thought that my idea wont work....

So well, your curve flows like that: sometimes the curve is over the handles and sometimes under them. On the place were the cam switches, the curve is at two places over the handles (so like Adrian Monk would Say it's not perfectly symmetric...) I checked with the fishbones the directions of your curve, but it looked okay...

Sometimes I'm a bit confusing, sorry for that!


How to make group of vertices solid/frozen/rigid

Option 1:

Separate the objects. In "object mode" hit "shift+d" to duplicate the object. Delete the vertices in one object, and the inverse vertices in the other. Then, while editing one, you do not affect another.

Option 2:

Deform your mesh with an Armature. Use 2 bones. One bone affects the rigid piece, the other bone affects the other parts. Pose the bones into the shape you want, and apply the armature. Use "vertex groups" to influence the deforms. A bone will affect vertices in a vertex group that has the same name as it.

Hopefully this can help you learn some terminology and put you on the right track.


How to add objects on specific keyframes

Each object has two properties called hide and hide_render - the first is viewport visibility and the second is render visibility.

To use python to set a keyframe for a property you set the value, then use keyframe_insert(data_path, frame=f) to keyframe it. So if you only want to object visible on one frame, you make it visible and set a keyframe on the relevant frame, then hide it and add a keyframe for the previous and next frame.

import bpy

# clear any existing objects
for o in bpy.data.objects:
    o.hide = False
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

grid_size = 7
# the default cube is 2 units wide, add another .2 for gap
spacing = 2.2

for x in range(grid_size):
    for y in range(grid_size):
        f = (x*grid_size) + y
        bpy.ops.mesh.primitive_cube_add (location=(x*spacing, y*spacing, 0))
        obj = bpy.context.active_object
        # key as visible on the current frame
        obj.keyframe_insert('hide',frame=f)
        obj.keyframe_insert('hide_render',frame=f)
        # hide it
        obj.hide = True
        obj.hide_render = True
        # key as hidden on the previous frame
        obj.keyframe_insert('hide',frame=f-1)
        obj.keyframe_insert('hide_render',frame=f-1)
        # key as hidden on the next frame
        obj.keyframe_insert('hide',frame=f+1)
        obj.keyframe_insert('hide_render',frame=f+1)


I had the same frustration that it still didn't work after reconnecting all the nodes.
The critical difference is the alpha value in the Principled BSDF node.
Blender viewport shading will render black if alpha == 0, ignore alpha otherwise.


Copy and Paste.
Previously available via bpy.ops.ui.reports_to_textblock()
How to read all ‘recent reports’ from info window
How do I get the Info window's log text with Python?
The operator appears unavailable in 2.8, however it is a simple matter of selecting and copying from the info area
Silly test script, toggles into the info area, selects all, copies, toggles back to text area and pastes.
import bpy

context = bpy.context

# change to info
context.area.type = 'INFO'
bpy.ops.info.select_all()
bpy.ops.info.report_copy()
context.area.type = 'TEXT_EDITOR'
bpy.ops.text.paste() # silly

The clipboard contents
>>> for line in C.window_manager.clipboard.splitlines():
...     line
...
"bpy.context.area.ui_type = 'INFO'"
"bpy.context.area.ui_type = 'TEXT_EDITOR'"
'bpy.ops.text.run_script()'
'Python script failed, check the message in the system console'
"bpy.context.area.ui_type = 'TEXT_EDITOR'"
"bpy.context.area.ui_type = 'INFO'"
"bpy.context.area.ui_type = 'TEXT_EDITOR'"
'bpy.ops.text.run_script()'

See the docs for info area space on toggling info report types.  a is an 'INFO' type area
>>> a.type
'INFO'

>>> a.spaces.active.show_
                         locked_time
                         region_header
                         report_debug
                         report_error
                         report_info
                         report_operator
                         report_warning


How can I read data from an Arduino without resetting it?

You create a new Serial each time you call that script.

It is better to create it once and communicate with the connection as long as it is established.

Unfortunately I can't provide you with working code due to non-existence environment.

Connecting

One script gets executed and establishes the connection once:

serial = serial.Serial('COM3', 115200)
owner["serial"] = serial

Communicating

A second script handles communication (polls for data) running at each single frame.

serial = owner["serial"]
serial.write('a'.encode('ascii'))
line = serial.readline()
...

Combined

Due to the strong dependency between connecting and communicating, you might want to combine both operations:

serial = owner.get("serial");
if not serial:
    serial = serial.Serial('COM3', 115200)
    owner["serial"] = serial

serial.write('a'.encode('ascii'))
line = serial.readline()
...


How can I create a shortcut to Shadeless?

I have made an addon for you because I already created it to enable similar custom shortcuts (Show Only Render and Show Edges).

Copy the addon file
https://raw.githubusercontent.com/jendabek/blender_misc/master/custom_shortcuts_enable.py
to Blender\2.X\scripts\addons
Enable it in User Preferences CtrlAltU > Addons, it is called Custom Shortcuts Enable.
Create a new shortcut in the User Preferences > Input > Screen section and insert the screen.trigger_shadeless as the operator name:

Set some key combination.

That shortcut should trigger shadeless on / off on the selected material.


How can I have a smooth transition between colors on a low poly model?

The gradient texture can do that. If you want to change the gradient orientation, go through a Mapping node first.


Is it possible to simulate Fluorescence in cycles?

Fluorescence is emission of light, so it would be natural to use emitter shader with the right rgb value mixed with other shaders -- it should give an accurate emulation of the phenomena. Please note that fluorescence includes time component, so the object might emit more light than it receives at the moment, if it was subjected to source of light earlier.


How to prevent timeline position moving when I click stop?

Edit:
Press Esc to stop the animation on the frame you started from.
Old:
As @moonboots suggests, you can easly set the starting point by pressing S before playing the animation.

You can use an alternative frame range.
You can switch between the main frame range and the temporary one by pressing the clock icon.

Once you set the starting point, you can jump to the first frame (Shift + Ctrl + Down Arrow) without pausing the animation.


enabling Follow curve option  in the follow path constraint force the mesh to deform according to the path "like a curve Modifier does" :

to follow the curve without a distortion :

add an empty with a follow path constraint on the same path
adjust the offset of the follow curve of the object  " 1.00 or according to your path"
add a locked track constraint to the object and set the target to the Empty object
keep adjusting the offset till you get a nice result


Skyguy, here is what I meant:

Create a plane, give it an Image Texture and paint it in black and white.
Change the node organization: Plug the Image Texture you've created into the factor of a Mix shader so that it separates a Diffuse (or Emission) node (probably white) from a Transparent node (make sure that this Transparent is 100% white which doesn't seem to be the case by default). Add a second Mix shader to give transparency to your diffuse, plug it into the Output.
Now you have a plane which creates a mist. It's a much lighter solution than Mist or Volume Scatter (well, I guess...). It won't fit everytime though, as it's a fake 2D mist. But for example if you want your camera to rotate around the scene you can paint on a semi-circular or semi-spherical surface instead of a plane, etc.


Trying to rename an object via keyboard input

Object names

Trying to rename objects is typically a sign, that you do not understand what you really want.

Real world Example:

When you interact with a person you interact with the person not with the person's name.

It is the same with objects, you interact with the object itself.

Search Criteria

According to your description you have a single search criteria: the name.

Where is this name coming from? Obvious when this is your criteria, you need to consider all objects matching that criteria. If you mean a certain object of the set of objects, you need to tell how you differentiate between them. Typically it is one or more other criteria.

Object References

When you already have a reference to the object you want to interact with, there is no need to look at it's name (unless you print it to console for debug reasons).

Analysis

I really do not understand what you are trying to achieve. Rephrasing the question might help. Here are my questions to you:

What objects are tracking?
What is each of that objects tracking?
When pressing Tab what should happen (I do not understand that sentence).
When clicking on an object, what should happen?

Solution

You need to implement a selection operation.


Transferring rig weights from one mesh to another in blender 2.76

Im using 2.79, they did change it after 2.76. Heres how it works now. Once you have parented the desired mesh to the rig with empty groups. You have to select first the weighted mesh and then the desired mesh for the transfer. Then go into weight paint mode. Then change the following two settings, source layers and destination layers. Source layers needs to be set to "By Name". Destination needs to be set to "All Layers". Once these two settings are changed the transfer will automatically occur.