How to make eyelids react with eye movement?

Everyone seems to do eye rigs slightly different, it depends on how detailed you want/need to be, what kind of animations you're going to do, etc. I've made several in the past, and I'll walk you through how I approach creating a rig for something.

The first thing to do is to list what the rig needs to do. You've done that already, but I'm going to add a few more things too.

Have the rig control the eye so that we can make a character look at things.
Have the rig control the eyelids so that they can move up and down. In reality, there is a tiny amount of side to side movement, and you can see the eye moving when the eye is closed, but I'm not going to go into that much detail. If you want me to, ask another question on that and I'd be more than happy to go into even more detail.
Have the eyelids follow the eye as it looks around. Again, I'm going to ignore the tiny amount of side to side movement, so the eyelids need to follow the eye vertically.
Make the eye be able to blink.
When the eye is closed or blinks, make sure the point the eyelids meet can move up and down. When your eyes are closed, it is possible to move your eyelids up and down a little bit, for example when you raise or lower your eyebrows, so we'll try and do that too.
Have the eyelids be manually moveable as well, so we can make different expressions.
Finally, make the rig easy to use, with a few controls as possible. Also make sure things make sense, and it's easy to select the proper bones.

This may seem like a lot, but it's actually not too bad. So let's think about what bones we're going to need that will actually deform stuff.

We'll need a bone to rotate the eyeball, a bone to control the upper eyelid, a bone for the lower eyelid, and that's it. If you want to have a really detailed eyelid you can use multiple bones per lid, animate them closing, and use a single bone with an action constraint to drive them. I'm going to set this up with a single bone for each eyelid, but can go into more detail if you like (If you can't tell already, I really enjoy rigging, so if you want more info I'm happy to help).

Aside from the deforming bones, I can think of two other bones we'll need. A common thing to use for eye rigs is a look target. That is, instead of rotating the eye directly, have a target that you can move around that the eyes look at. It makes it much easier to animate looking at things. So we'll need a bone for the eye to look at. I also want to have a single bone that controls blinking, so I'll add one for that too.

So let's actually get started. I'm just making the rig, and don't have it applied to a model, but it should be pretty clear.

Here's the bone setup I'm going to use. Note that this is the rest pose. The bones were moved in Edit Mode, not Pose Mode.

The world origin would be at the center of the eye. The bone on the far left is the Look Target, and the bone on the right is the Blink Control bone. This is pulled off to the side a bit, and sits slightly lower than the center of the eye. This is because when you blink, your eyelids meet slightly below the center of your eye, with the upper lid moving more.

Next, I add a Track To constraint to the Eye bone, using the Look Target as the target.

Now when we move the look target, the eye will look at it.

Next, the upper eyelid. We need it to do two things here. First, follow the eye, but not completely. Second, be able to blink. We'll do this by having it look at the blink bone, and controlling the influence with a driver. It'll make more sense shortly.

We need three constraints. The first is a Copy Rotation, set to something less than 1, with the eye as the target. Now it follows the eye a bit as it moves. I used .5, but use whatever you need. Next we need another Track To, using the blink target bone as the target. We'll use a driver to control the influence, which is how we can make it blink. Finally, I added a limit rotation constraint, so that the target for the track to constraint can be off to the side without rotating the eyelids sideways. This will help make things less cluttered at the end.

The final constraint setup looks like this:

Next we do the same for the lower lid. I did the exact same setup, just used an influence of .1 instead of .5, since the lower eyelid moves less.

Onto the drivers. My goal here is to have it setup so that we can scale the Blink Target bone and have that open and close the eye.

So I added a driver, selected the rig, then the blink target bone, and chose Z scale.

The expression gets a bit trickier. The scale of the blink target bone is 1 initially, and decreases as we scale it down. We want the influence to be 0 by default, and increase as we scale the bone down. However, it's not ideal if we have to scale the bone to 0 to close the eye completely. Scaling the bone by half would work fine.

The expression works out to be this: 2*(1-var) where the var is the name Blender gives the Z scale that we chose above. Now when we scale the Blink Target bone, the eye closes, becoming fully closed when the target bone is scaled by half.

This is the final driver setup, which is identical for both eyelids:

I also added a Limit Scale constraint to the Blink Target. I chose Z, with a minimum of .5 and a maximum of 1, so that the bone never gets stretched beyond what it needs to be.

Next, I added some custom shapes. I find them really useful on rigs, as they make things a lot cleaner, easier to work with, and the give a visual idea of what each bone does with having to look for names.

If you've never used custom shapes, basically you make a shape out of just edges, and choose it under the Viewport Display heading in the Bone Properties tab.

Circles work great for the look target, the eyelids can be curves or triangles, and I used an eye shape for the blink control bone. Since we never actually use the eye bone itself, I just hid it.

The final setup looks like this (I didn't hide the eye bone here so you can see what it looks like):

The final step is to disable and transforms that we won't need. For example, we won;t need to scale the eyelids, or scale the blink control on any axis but the Z.

The final result:

Here's the .blend file if you want to look at the setup. Feel free to use it if you like.


Can I create a shader that uses the distance to the first opaque object behind it?

you can get a "haze" effect without material shader nodes. Under composite, you can set a Z pass (or distance to camera pass), and you can then blur it, where the intensity of the blur is controlled by the "distance".
You can consider Z pass as a black to white raster/mask, where black conceals and white reveals, and also where black to white values represent 2.5D information on Z towards the camera. With that in mind, you can manipulate this "mask", or even create it (manually) in third party software (gimp, photoshop, etc.), then import the raster layer, and use this layer as the Z pass.

About haze. Naturally haze is a "blur effect" caused by different compositions and densities in the atmosphere. You can achieve a more natural haze effect with: you set a "domain" for your atmosphere (a big cube or sphere will be enough), then you set the material of this atmosphere object to volumetric. Using the volumetric shader nodes, you will be able to have more control on the "atmosphere".


In the empty tab, set the offset values to -0.5 for X and Y. This will center the image. The world position of the empty now equals the center point of your image.


When exporting shape keys for Poser morph targets in obj format I found the following to work:

• Export from Object view with key value = 1.

• Set export options to "Polygroups", "Keep vertex order" and "Apply Modifiers"

Note that the Poser import scale option must be set at 100% with all other options off.


If it is a tileable texture, then you can scale the uv outside the image boundary to greatly reduce the size of the individual details. If you then want to map decals or something else to the same surface, you can use another UV unwrap to get that mapping.


Why is Blender just using 54% of my CPU when rendering in cycles?

Try to changing the number of threads to the same amount of the CPU (in this case 10)?


Blender (2.91) modular tree addon, with particle system the leaves do not show up

After I examined the file and the way the addon works, I saw that the leaves are just vertices that emit hair particles. So, when you add a hair particle system to the plane, it just puts the tree trunk on, without the leaves.
After some trying I successfully joined the leaves and the trunk together. What I did is I first added a vertex group, which contained all the vertices that were in the object, emitting the leaves. Then I joined the leaves into the trunk, and then I added the particle system to the new object (since I added the leaves to the trunk, and not the opposite, the particle modifier was gone. I used the same particle system from the drop-down menu). I set the density of the system to appear from the vertex group, so now I had a whole object, emitting hair. but this still wont work, because its still hair.

The actual resolve
What you need to do is you have to convert all the hair objects into meshes. In the modifiers tab, just click convert. I would advise you to put the leaves object in a collection first, so that its easier to work after.
So, now you will have 3000 objects. Now, you need them all in one mesh. So, select all of them (if you listened to my tip and you putted them in a collection,  RMB on it > Select objects), then select the trunk last, so its the active object, and hit Ctrl + J Join Meshes . This is really hard for the computer to work with. Mine cant, actually. One tip, is to look away from the tree when joining, off course in blender, not irl. It makes it easier to actually do the calculations when it doesnt have to display it.
Then, you'll have the tree object. Now, when you put it as hair object, it will show all.
This may not be the best way to do it, but I cant think of another, currently.

New solution I found
So, I just found a new way to make it, and I even successfully rendered it.
What I did, is I used the tree I made by joining the leaves and the trunk together (See how I did it above). Then I set the hair instance object to be the new tree. So, now, if I convert all the trees into meshes, they will crash blender, because once they are meshes, their particle systems will work - i.e. it will have to show 1000 particle systems. That's why, before converting, disable the particle system on the tree model, so that you don't crash blender. Again, I advise you to use collections, because they make life so much easier.
After this, if you hide all trees except one and then you enable the system, you will see that it looks like a bush- really packed. This is because of the size difference between the instance object and the trees, that came out from the hair. So, first you need to copy the particle system onto that one tree, so that it won't effect the instance one. Then, you can change the size of the leaves, the amount etc.
After you are happy with the result, you can apply these particle settings to all trees. Make sure that before you do this, you hide the system from the viewport, to prevent blender from crashing. Then, you select all trees, then at last you select the one you were working on, Ctrl + L > Link modifiers. Since particle systems are modifiers, by linking them to other objects, you copy the particle systems as well.
And that's it! Now the trees are nice and done. Here is my render (its pretty low quality and its a screenshot, just for show off)


How to render an animation of a scene in right viewpoint mode? i.e. so it appears in "2D" and from the right side

The rendered result will always be the camera view which you can access by clicking 0 on the numpad or View > cameras > Active camera.
If you want the Camera's FOV to match with the left image, simply search for "align camera to view" in the search dialog. Since the left image is in ortographic view, you can change your camera to ortographic in the camera settings under lens > type > ortographic.
If something is purple, this usually means that an image texture is missing (renamed or moved to another folder, deleted etc.). Make sure that the cylinder materials have the correct image textures loaded. It could also be the case that you use an HDRi to light your scene which cannot be found.
You can share your .blend file using https://blend-exchange.giantcowfilms.com/ and following the instructions onscreen.


How can I separate my scene into render layers to render my animation faster in Cycles?

So here's what I came up with:

Basically, if the shot's fixed, and the camera doesn't move I pre-render the BG and the FG (The first 2 image inputs).
Then, with render layers:

Animation Render Layer: I put everything that has to be animated or interacts with the animation on visible layers and the rest just influencing those objects, but NOT VISIBLE.

Shadows Render Layer: Has a basic ground plane to receive the shadows with Shadows and AO render passes enabled. Here, I EXCLUDE the BG and FG.

Then, the Shadows Layer needs a Dilute/Erode node

And voilá! From about 1-2 hours of render time to 5 minutes per frame.
Again, this requires fixed shots.

Still...I'm no compositor wiz and this surely needs improving! For example, the Shadow Pass simply doesn't work...why is it there in the first place. Only the AO works. But it would make sense that the Shadows pass is what enables the shadow only calculation in the first place.


How to position/scale custom bone shapes in same position as original mesh?

For solving this issue I use a script called orient_custom_shape_V2.py I found here:
https://developer.blender.org/F207430

After installing and activating the script in User Preferences select a custom shape as you do normally (Pose Mode -> Bone panel -> Display section). Then you have this new button called Orient Custom Shape beneath the custom shape options. It should bring the representation of your bone to where your custom shape mesh is. Which is what we want.

It works fine for me (v.2.77). Though I know people experienced issues with scale and orientation for some bones using the script.

And as to scale I recommend having bone size equal to one if possible (this should not scale your custom shape at all).


Gaps between faces; how can I join them, without filling?

Seect the vertices you want to merge and then press Alt+M to bring up the Merge menu and select 'At Center'. Repeat for each set of vertices you want to merge.

Alternatively, if the vertices are close enough, you can select them all and use Remove Doubles (on the Mesh/Vertices menu) - increase the Merge Distance in the left-hand panel until those vertices merge together.


How do I make my object look smooth without using the subdivision surface modifier?

I think most of the effect you're seeing comes from switching the default Shade Flat (which uses a single Normal per face when shading, from what I can tell) to Shade Smooth (which interpolates -- that is, smoothly averages -- between the face normals to get useful normal information in between the basic face normals).

For example, here's an Icosphere with Shade Flat on by default:

And here's what happens with Shade Smooth turned on (in the sub-menu indicated in the above image):

Secondarily, you may also find it useful to use the Smooth Vertex (from the Vertex sub-menu in Edit Mode) transformation to improve the smoothness of the model. I believe Daniel Kreuter, the YouTuber who made the tutorial you're following (I recognize the mesh-work, having followed the same tutorial myself in the past), makes liberal use of Smooth Vertex; he explains this in one of the tutorial's earliest videos (and that he likes to hotkey it to the 'Q' key).


You just need to change the texture filetype to .png instead of.dds


The simplest workaround is to flip the order.

Inset/extrude first, so the geometry is even (check Offset even)
Shear the resulting geometry in any direction
Done


Animation Keyframes only appear in "NonLinear Animation" window

No matter how many times I re-did all the steps the other day, it just would not work at all. Today everything seems fine and I've done absolutely nothing different.
Blender sure is a mystery ¯_(ツ)_/¯


Scale of Curve to effect Location of "Set of objects"

Circular Path
If the shape of the curve is a circle, this can be achieved even without a curve.  You just need a few empties placed in correct positions (around the circle) and parented to some object whose Scale will be adjusted to move the visible objects (Cube in my example)

When the circle is scaled, each empty moves as if they are parented to a certain location on the (circular) curve.  But in fact this is just simple parent transformation.

Instead of parenting the cube to an empty, we can just copy its location using Copy Location constraint.
Non-Circular Path

A more generalized solution is to use a Follow Path constrains on the visible objects and constrain them to the curve directly.
Important thing here is to give each visible object a difference offset (on the curve). If we have 6 objects, for example, each one should have an offset 100 / 6 * i (where i is the index of the object, 0, 1, 2, ...).

This method should work on any kind of curve, open or closed.


Keyed particles work on viewport but not in render, also they are not affected by force fields

Whenever I had this problem in the past with smoke, it was because you have to manually click the bake button in the cache section and cannot just play the sequencer for a bake. That could be the problem.


Why does the water becomes gray when I move the viewport?

It looks like you have your Normals pointing in the wrong direction. Check your normals and ensure they are pointing ‘out’ of the water.
With the normals pointing into the body of water it will be rendering as if the fluid is outside a cavity of air. What you’re seeing is Total Internal Reflection as the light is refracted at the surface - the wrong way to what you’re expecting.


Select your cube in Object Mode and apply the rotation with Ctrl+A > Rotation


Transparent lines for a hologram like effect

I used a Checker Texture to make the lines, adjust the scale to make the thickness of the lines you want. The Mapping node's Scale along the Y and X to 0, stretches out the checker texture to make it a line. Then the Location along the Z is animated to make the lines move.
Replace the two Emission nodes for your hologram shader.


Is there a way to array an object along a few faces?

You can use the Shrinkwrap Modifier to the curve, but if you are planing to add details to a mesh you already have, I'll recommend to:

Tab enter edit mode, chose edge select, select the edges
shift+D duplicate it, then press P separate selected.
With this you'll have made a new object copy of the selected edges.
tab to go back object mode, select the new object, and convert it
to a curve
AltC curve from mesh.
You can also use parent object, on the property panel select
verts on the parent object ,"the curve or the line you chose".


pitchipoy IKFK parameter not showing in dopesheet or fcurves

Ahh, i found solution. If anyone is in same situation. rig maintain ALL IK FK switches and stretch options at end of dopesheet (mostly hidden) you have to make sure, following

mouse icon "showing selected object channels" is OFF
ghost icon "include channels from bone hidden etc" is ON

now when i know this, i think its very reasonable to have them there separately managed. this behavious is slightly different than rigify but good enough. thanks pitchypoy for awesome rig.


Blender Render Material, Texture, UV

Not Cycles

UV Map Vase in Edit Mode .. Project from View Bounds
Material Panel.  Transparency On. Alpha Zero.
Texture Panel using UV,  Color Ramp with Colors and Alpha indicated
Texture Panel Influence Affect Color 1.0 and Alpha 1.0 as depicted
Texture Settings shown in 2 Panels to Save Vertical Space
No emphasis on Artistry. You Can do better.  Suit to your taste.

Emphasis on UV Map.  Pay no attention to the man ... rather the image behind the Vase.
Same Material and Texture Panels


Cannot find way to make leaves seem to grow (sapling add-on)

SOLVED: I changed the leaves' pivot point to individual origins, and keyframed the scale.


Edit:

This script can apparently be used to stroke edges outward:
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Modeling/offset_edges

If, for some reason, you can't use the script, you can use the workaround in my old answer.

Old answer

This is just a workaround. Find an add-on if you have to do this frequently.

1 - Extrude the shape

2 - Select one face on the top and on the bottom

3 - Select linked flat faces

This should select everything on the top and bottom.

4 - Select inverse

This will select the rim edges

5 - (optional) Extrude, don't move them and Enter

6 - Shrink/fatten

You should see this result:

7 - If necessary, delete unneeded geometry

Select one face on the top - Select linked flat faces - Select inverse - Delete!


Go in user preference and under add-on tab search and activate the  add-on VRML2Export


Cycles toonshader vs Blender Internal shaders

At this point, it's really most dependent on which material system you're more comfortable with. With Cycles' node system and OSL, you can achieve just about any look you'd like... and render times are reasonable if you set you reduce bounces to zero and use direct lighting techniques (i.e. do lighting as if you were rendering in Blender Internal). That said, it's often faster to set up toon materials in Blender Internal if you're already familiar with the system.

Furthermore, if you want Blender to generate your linework for you, Blender's Freestyle system is currently only supported with Blender Internal. However, if you want to use Cycles shaders with Freestyle, it's not that difficult (use a duplicate scene with linked data, render using BI and Freestyle, and composite the results with your Cycles scene).


How to trim a clip affected by speed control?

There are some parameters to check for having audio and video in sync, many others softwares set them automatically, Blender doesn't, so you have to configure them manually.
First of all in the timeline set the sync type to AV Sync (this affects the behaviour during live playback only, it doesn't affect the renders).
Then load the movie in the movie clip editor, read its FPS value and set the same amount in the dimensions properties tab.
Lastly be aware that audio also has to match its sample rate: most commons are 44100 and 48000 (but this is automatically set).
When your audio and video will be in sync you can use the speed control effect strip to manipulate the video as you expect.


Is it possible to make blurs that have an angle?

There's a dedicated Glare node designed for creating lensflares:

I don't think it can produce diverging streaks quite like in your example, but perhaps it can come close enough?


It looks like you have those faces duplicated...look into z-fighting if you want to read more. You may need to delete duplicate objects (some may only be visible in render), or you may need to remove doubles (w key menu in edit mode).


simple. your viewing in texture, not material at least i think so... im reinstalling blender on my laptop to check r now


Make sure the viewport is set to textured shading in 3D view > Header before starting the game engine:

The viewport shading will affect the shading used in the game engine to some degree.

Wireframe:

Solid:

Texture:


I am getting strange shadows when using hair cards and cycles

I've lined up several transparent planes here as shown.

You can see that in rendered view we get some shadows on the ground even though these planes shouldn't affect anything.

This is because the ray cast from the camera hits the Transparency bounce maximum (which is low-ish by default), and reports back that the ray was lost, giving the color black.
Raising the value under Render properties -> Light paths -> Transparency should fix this.


How do I assign to a vertex group with geometry nodes?

I may have misunderstood the question, but as I understand it you could use an attribute mix node with the factor being the vertex group, and the inputs being the different "branches" of the node network you want applying. In this example I mix two sets of points, one from a scaled up sphere and one from the original vertex position. For the solidify modifier you can just use the vertex group input, with a group. Sorry if I misunderstood the question.


The ElementTree.parse() function takes a filename or file object for the xml file as an argument. In your script node, xml is a string and not a filename or a file object and hence the error.

Instead, you can use the ElementTree.fromstring() function which takes a string representing the xml file. Note that the output is the root of the tree and thus getroot() needn't be used.

See the documentation.


You should first draw its profile, here are 2 ways to do it (among many I guess):


The main way of modeling curved things is to use Subdivision Surface modeling.  The idea of subsurf modeling is to model the basic blocky shape, then apply a Subdivision Surface modifier to the mesh.  Subsurf works by recursively subdividing and smoothing the mesh.  To make sharper corners you can add proximity cuts.  Proximity cuts are loop cuts (Ctrl+R) which are made close to corners in the mesh to tighten up the smoothing at that corner.

Here is a very simple example of a game controller like object which I have modeled.  You can see the base mesh is the black wireframe cage and the grey solid mesh is after subsurf.  Proximity cuts are highlighted in orange.


White lines appearing when rendering shadows to separate layer and recombining in compositor

I did a test scene like the one you did.  I thought it was due to the premult setting (usually that's the guilty party for compositing edges), but that's not the case here.
 Part of it is due to anti-aliasing and the pixel filter - not because of bad settings, but just the nature of it.

With the cube by itself, the edges of the alpha are going white to black, with some grey in the middle.  For the shadow catcher and holdout cube, the edges between the shadow's alpha are going white to grey to black, in the opposite direction.  This edge is on the same pixels for both layers, of course. When you do an alpha over, that edge results in some grey alpha values from both layers competing for the same pixels.  Therefore, some of your white background peeks through and shows up as white

The best solution is, simply, don't composite this.  If you can avoid compositing layers of the same CG scene, render the shadow and object together.  My guess is you want to do this for visual effects; I do that too and run into this situation often.  I usually render the shadow together with any CG object I'm putting in a video to get a clean edge.

If you must composite them together, you can do some masking and simply expand the shadow layer's alpha edge with a dilate/erode node.  That can get messy and give strange results, but it's possible.


How to change color of action editior an graph editor selected items

This colour is influenced by the bone groups color theme. After you change it you'll have to exit the action editor and re-enter (i.e. hovering over the action editor and pressing Ctrl-Tab 2 times, to update the colors).


My glass material isn't transparent in Eevee

By default, some options that require extra computing efforts are turned off in Eevee and they must be turned on manually.

In the case of a refractive object, you must enable:

Under the Render settings, Screen Space Reflections and, within it, Refraction. manual.

Then, in each of your refractive materials' Material settings, you should enable Screen Space Refraction. manual.

If your material has some kind of Alpha transparency (e.g. a Transparent BSDF shader), you should also select a suitable Blend Mode. manual.


Suddenly created meshes are invisible (even though they are checked as visible), cannot create any new objects now

You probably activated Local View by pressing Numpad/.

When that happens you can only see and edit the selected object.

Press Numpad/ again to exit (or press the Space Bar and type Local view)


What are the benefits of Quaternion rotation over Eulerian rotation?

Quaternion has the advantage that it gives better interpolation between keyframes for arbitrary rotations, compared to euler or axis-angle, this is often used for character animation and why its default for armatures.

It also avoids the gimbal lock problem.

You make a good point that the f-curves are hard to control. Typically you wont manipulate each axis them directly, and instead pose the rig in the viewport.

So for walk cycles and arbitrary motion, quaternions are fine, Euler's are better if you want to control each axis and are animating something which inherently has separated axis you would want to apply in order (robotic joints for example - a gun turret where you might want to control 2 axis directly).

For more general info on this topic see:
https://stackoverflow.com/questions/8919086/why-are-quaternions-used-for-rotations


Scenes in blender are like separate environments, each one is visible independently and renders it's own output, while you can have linked objects that can be moved in each scene at the same time.

One way of combining multiple scenes is to composite them together.

Most likely I think you want to import all of the objects from the other files into your container scene, not the scene itself. Your container scene can contain many imported objects from many different files. When you import objects from another file you can select all of the objects (press A in the file browser) in one file and import them in one go.

A common method used when linking files is to assign a group to a number of objects and import the group into your container scene. Each group will then show up as one item visible in your container scene. With objects to be animated, this often includes an armature in the group. You can then make a proxy of the armature to allow animating it in the new file while the mesh can only be altered in the original file.

There is an addon called Edit Linked Library that makes it easy to switch between files containing linked objects.


I believe that you would want to mix a Refraction shader with a Transparent one, using the Layer Weight's Facing as the factor; This gives you something similar to fresnel, which, however doesn't depend on surface normals, and can be blended.


Ultra bright points of light randomly appearing

They seem to be very bright specular highlights on the waves :

The fact that "Point.001" has a power of 3MW (!) is of course in cause ; but I guess you won't get the same dramatic effect if you lower that value.
What you can do is render the waves and the lightning in two distinct View Layers (formerly "Render Layers"), apply the fog glow only to the lightning layer, then merge the two layers with a Mix or AlphaOver node.


Cycles: access actual length of hair strand?

Alright, here is a provisional solution, as evidenced by this image:

(compare with my original, above).

A satisfactory solution would make use of each hair strand’s actual length at render time.
This length depends on many factors, including:

The hair particle’s initial velocity (normal and tangent).
The influence of gravity, if any.
Serious kink, notably Spiral.
Added randomness.
Surprisingly, the damping factor.
The vertex group for length control, if any.

So, the product of intercept times length control is proportional,
only approximately, to the hair strand’s actual length,
but this is what I use for the image above, and it is the reason why I call this a provisional solution.

Unfortunately, vertex weights are not yet (September 2018) available to the Cycles material developer;
not through the Attribute node, not through OSL, and not even through some clever driver expression:
so says Grand Guru Brecht Van Lommel, here.
Thus, my provisional —and clumsy— solution, suggested by Brecht himself,
is to copy the length control information over to a Vertex Color layer, which is,
oddly enough, accessible via the Cycles Attribute node.

Here is a quick Python hack to achieve said copy:

#Given: active object with active vertex group and active vertex color layer
#
#Does: Copies vertex weights into red channel of vertex color layer, leaves rest untouched.
#
#© Tom Telos 2018, submitted freely to interested users, for experimental purposes only.
#
import bpy

bpy.ops.object.mode_set(mode = 'OBJECT')
ObA = bpy.context.active_object
if ObA == None : raise RuntimeError("No active object")
else : print( "Active object" , ObA.name , "found." )

VgA = ObA.vertex_groups.active
if VgA == None : raise RuntimeError("No active vertex group")
else : print( ObA.name , "act vx gp " , VgA.name , " found." )

VcA = ObA.data.vertex_colors.active
if VcA == None : raise RuntimeError("No active vertex color layer")
else : print( ObA.name , "act vx colors " , VcA.name , " found." )

for loop in ObA.data.loops : #Crazy, but this works.
    iV = loop.vertex_index
    iL = loop.index
    try :  #fails if vertex not in vg
        VcA.data[iL].color[0] = VgA.weight(iV) #weight() not [] !
    except: continue

It is in lieu of Varkenvarken’s much more sophisticated addon
which, unfortunately, does not work for me with recent builds of Blender 2.79,
ostensibly because of a Python version mismatch, but, more likely because,
in recent Blender 2.79 builds, the number of vertex color “channels”
has been increased from 3 to 4.

My hack is simply paste-and-run,
and assumes that there is an active object with an active vertex group and an active vertex color layer.
For each vertex in the active vertex group, it copies its weight to the red channel of the color layer.
That’s all. It does not modify the vertex color of any vertex not present in the vertex group.

P.S. Brecht Van Lommel, here, confirms that, as of September 2018, there is no user-level access to actual hair length.


Is it possible to have smooth shading on only for rendering?

We can create an operator that will set the shading for all objects. This can be added to the render panel so you have buttons to set smooth and flat shading right above the render button. I have created an addon here to do this, which you can download and install. If you enable the addon and click Save User Settings you can have it enabled every time you run blender.

Keyboard shortcuts can also be setup for quick access, in the addon I setup ⎇ AltF12 to set smooth shading and ⇧ Shift⎇ AltF12 to set flat shading.


All was fine and suddenly Out of memory?

If the laptop has an ssd it is able to handle page-file operations better (at the cost of some drive lifetime) and that seems to let you render things that you are otherwise unable to with your page-file on a traditional spinning hard drive.


Delete all scale animations from specific animation

Select all bones/objects
Open Graph Editor or Dope Sheet
Type "scale" in search bar
Select all keyframes and delete


Automatic import, group and export with command-line (CLI)

You could prepare a Blender file with a text block that contains the python script with all the command you need (import, convert materials name, export...).
Then you can type:

your/blender/path/blender -b blendertemplate.blend --python-text pythontextname


How to get Accurate Scaling When Making New Objects?

Scale is a multiplier that is applied to the local size of the mesh to calculate the global size and the dimensions of the object. This is not what you want.
You're probably looking for the dimensions of the object or better the edge lengths of the mesh.
In Object Mode, you can see and edit the dimensions of the object in the sidebar ("N-panel", press N in the view to open it). With Ctrl+A, then Apply Scale you can apply the scale, what resets it to 1. See here: Dimension vs scale
In Edit Mode, you can display the lengths of the edges. You need to activate it in the Overlays drop-down menu. There you can switch between Global and Local and you will see the impact of the scale. Have a look here for screenshots: Why do measurements change when switching from Global to Local in edit mode?


How can I create an advanced addon with a GUI and multiple settings for Blender 2.8x?

Here is how to create addons with an interface in Blender 2.8x. I share here minimalist scripts snippets.

If the addon has multiple files compress it to a .zip.
To enable the addon go in Edit > Preferences..., in the Addon section and type "Minimalist Addon". I suggest you to name your main file __init__.py, it's a convention between every addons. Make sure to use the extension .py for all your files.
To edit your addon you don't need to reimport it each time, you can find it here on Windows: C:\Users\NAME\AppData\Roaming\Blender Foundation\Blender\2.8x\scripts\addons
And here on Linux: /home/NAME/.config/blender/2.8x/scripts/addons/
You will need to reopen Blender to see the changes. If the addon doesn't appear it means you have made a mistake somewhere, if it is still visible in the Preferences try to re-enable it to see the error message.
Your addon must be in a folder and not directly in the "addons" folder, otherwise you won't be able to find it in the Preferences.
If you need console (to print message and values by doing print("my message") ) do Window > Toggle System Console on Windows. On Linux download Blender from the website, open the Linux terminal (shortcut Ctrl + Alt + t), type the path to the Blender folder using cd (ls to list the files and folders) then launch Blender by typing ./blender.

  Single file addon

This is the most minimalistic addon you can create, it contains a single file, it displays a button that prints "Hello World!" in the console.

__init__.py

bl_info = {
    "name" : "Minimalist addon",                        # The name in the addon search menu
    "author" : "Your name",
    "description" : "A minimalistic addon",
    "blender" : (2, 80, 0),                             # Lowest version to use
    "location" : "View3D",
    "category" : "Generic"
}

import bpy

class theInterface_PT_Panel(bpy.types.Panel):
    bl_label = "Panel Name"
    bl_category = "Tab name"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

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

        layout.label(text= "Properties:")

        row = layout.row()                              # Create a new line
        row.operator("view3d.print_text", text = "Print text", icon='WORLD_DATA') # Display the operator by calling his idname

class theTools_OT_Operator(bpy.types.Operator):         # Create the operator
    bl_idname = "view3d.print_text"                     # idname to display the operator
    bl_label = "Simple operator"
    bl_description = "Tool description when overing the mouse"

    def execute(self, context):                         # What the operator does
        print("Hello World!")
        return {'FINISHED'}

classes = (theInterface_PT_Panel, theTools_OT_Operator) # Classes name here

register, unregister = bpy.utils.register_classes_factory(classes)

  Multiple files addon

__init__.py (gives the addon informations and gather the files)

The difference here are that the classes are in other files. You must add the lines with the name of your file without .py and class like this:
from . File_Name import Classe_Name

bl_info = {
    "name" : "Minimalist addon",
    "author" : "Your name",
    "description" : "A minimalistic addon",
    "blender" : (2, 80, 0),
    "location" : "View3D",
    "category" : "Generic"
}

import bpy

from . Interface_Panel import Interface_PT_Panel
from . Tool_Operator import Tool_OT_Operator

classes = (Interface_PT_Panel, Tool_OT_Operator)

register, unregister = bpy.utils.register_classes_factory(classes)

Tool_Operator.py (what is executed in the addon)

import bpy

class Tool_OT_Operator(bpy.types.Operator):
    bl_idname = "view3d.print_text"
    bl_label = "Simple operator"
    bl_description = "Tool description"

    def execute(self, context):
        print("Hello World!")
        return {'FINISHED'}

Interface_Panel.py (the interface)

import bpy

class Interface_PT_Panel(bpy.types.Panel):
    bl_idname = "MenuName_PT_Panel"
    bl_label = "Panel Name"
    bl_category = "Tab name"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

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

        scene = context.scene

        layout.label(text= "Properties:")

        row = layout.row()
        row.operator("view3d.print_text", text = "Print text", icon='WORLD_DATA')

  Getting commands

You can get the commands of every tools each time you use one in the Info Window, you can display it by clicking on the Scripting tab at the top of Blender's interface.
For example after selecting a mesh, doing right click and selecting Shade Smooth, this command appears:

bpy.ops.object.shade_smooth()

  Adding settings and using the values

WIP

  Frequent mistakes

If you operator isn't visible in the interface, check if his class name is unique and do not forget to import it at the classes line at the bottom by writing his name.
Your addon won't be accessible if it is directly in the scripts folder, you must put it in a sub-folder.

  FAQ

What is an operator?

An operator does one or several actions like adding a cube in the 3D view, scaling it then applying a material, all with a single button. The operators are often available by the interface.

What row = layout.row() does?

It creates a new line in the interface, without it your button operators and settings can't be displayed. You can add multiple settings at the same line, however it is recommended to displayed one on each line for a better visiblity.


Attribute Randomize node is missing 'add'

I'm guessing you're talking about the Default Cube tutorial. He's using the 2.93 alpha build and you're probably using 2.92. Anytime you're not getting the same options in a feature, it's probably because of a version mismatch. I did however find a workaround in 2.92; here's what worked for me after a little experimentation:

I imagine there's a better way to do this, but it's my first time using geometry nodes. I'd love to hear constructive criticism about this setup.


.remove from list not working as expected

The problem is that you are changing the list that you are reading. For example, consider the first one read... you delete it, shuffling the second item into the first ‘slot’. However, next time around the loop it is the second item in the list that is picked up - which was originally the third since they have now all shuffled up - so each second item slips through the net. There are various solutions to this - such as processing the list backwards or building a list of items to delete on the first pass and removing them after all items have been processed.

Try :

for obj in reversed(selected_objects):

    if obj.type not in ['MESH','CURVE']:
        selected_objects.remove(obj)

Another option is to use a copy of the list for the loop - rather than the list itself - by using '[:]' to indicate all elements :

for obj in selected_objects[:]:

    if obj.type not in ['MESH','CURVE']:
        selected_objects.remove(obj)

This would allow you to process them in the original sequence but since the loop is acting on a copy of the original list it is not affected by the removal of objects from the list.


Blender closing/crashing for no apparent reason

After disabling my GPU Blender resumed to working normally so the reason for constant crashing is obviously in faulty GPU; no amount or mode of driver re-installment solved the problem.
Thank you all for your help.


Can you scale the scope of the Proportional Editing without a 3 button mouse?

Use the Page Up and Page Down keys to adjust the circle of influence.


You could perform the keying in the compositor scene. Create a 3D scene to reproduce the depth of the street shot. Then place UV unwrapped cards in that scene, each card could have a layer pass.

Back in the compositor apply the alpha keyed image to the 3D scene layer using UV distort. It should scale and map the people to the card.

Here is an example I made at the forum http://blenderartists.org/forum/showthread.php?332091-Card-Compositing-to-simulate-depth


Object Not Following Bezier Curve Properly

The problem is that you added rigid body physics to your spaceship. They conflict with the animation.
To make the ship follow the curve either make your rigid body animated or remove rigid body physics alltogether.

But "Parent->Follow Path" will only set the object's position. Your ship will not be rotated along the curve. The better solution is using a "Follow Path" constraint. To make the constraint work correctly, you will have to clear the ship's translation by selecting it and pressing [Alt+G]. Set the forward axis of the constraint to '-Y' to make the ship point into the correct direction. The rest of the settings should be OK.

You can also edit the way the ship's upward direction is pointing by selecting the curve, going into edit mode and modifying the tilt of the curve's control points until their orientation suits you. Just select a control point and press [Ctrl+T]. By moving the mouse you can rotate the direction the curve interprets as 'Up'.


With the 'Pie Menu: UI Pie Menu Official' addon enabled, press the semicolon ";" key to change the the pivot point with a Pie interface.


I made a fully animated character on the wrong scale - what is the easiest way to fix this properly?

The first thing that comes to my mind is selecting your character in Blender, scaling to the appropriate size and then press CTRL+A to and select "Scale" in the menu called Apply that pops up, that basically is setting the scale property in the Transform menu (see pic below) to 1 again, making the new scale the default for your model, then if you import your model again it should have the desired scale. Make sure to scale the rig too of course and apply the scale for that too, but if you did eveything right they should scale together automatically.
Remember also you should do this process everytime before importing your model into a game engine.


I suggest using an armature to animate the wrapping.

Animating a rotation with shape keys will lead to deformed faces during the animation as the shape key only considers the location of the vertices. Between two keyframes the location is interpolated on a straight line.
Displayed below are two planes which get rotated by 45 degrees. The red plane is rotated by entering the angle in the transformation field while the blue plane uses a shape key with rotated vertices.

By using an armature you can avoid this deformation.
The bones' heads should be placed at the dodecahedron's edges and the tails at the center of the faces. I assume the best way to achieve this is to alternate using Shift+S > Cursor to Selection and Selection to Cursor.

The default rotation mode for bones is Quaternion. You can switch to one of the Euler angle modes to get the correct rotation axis. Gimbal lock should be no problem in this case as you're rotating on only one axis.


Thank you for stating your question clearly.
You need to setup a world environment mist.
The rendered light volume in Cycles doesn´t work with (noise/volumes)on the light. It works with noise /volumes on the space (Enviroment) like in the real world.
Make a cube. Assign a shader to it. Edit the shader. Delete diffuse node, CTRL+Shift A, search for principled volume. Attach it to the Material output on the VOLUME input connector.
Shift+A, select NOISE. Plug that NOISE into the DENSITY connector of the principled volume shader.
Delete all lights in the scene.
Make the world from the world property tab: black color.
Drive your camera inside the box you previously created and that you´ve assigned the principled volume shader.
Inside that box and with the camera looking through, create a ppoint light. Give it energy of 100. And continue to drop it down by half on each render test: (50, 25, 12, 7, 3.5...etc)
Until your light energy is appropiate for the effect you´re looking for.

Thank you for your consideration to vote me as the answer by clicking to the left :the icon with a check mark and upvote this answer.

BFCT_Schiller


An opengl render, in this sense is no different then a normal render, they both open the same window. What kind of new window rendering opens is set in the render settings as the Display.

It sounds like you have the Display set to Image Editor (the default).
In that mode the UV/Image Editor will take over the 3D view. You can simply press Esc and you will be brought back to the previous editor. Or you can change the editor, left most button in the editor's header.

Now if the display is set to Full Screen the UV/Image Editor will take over all of blender. Here again you can simply press Esc to get back, or you can press the "Back to Previous" button that will appear in the info header.  Do not change the editor type. If you do change it, say to the 3D view then go "Back to Previous" the info window that should be at the to of blender will be changed into to UV/Image Editor. Odd I know.

I have always have the Display set to New Window, that way it opens a new floating window just for the UV/Image Editor, and nothing in blender changes.


Normal Map bad shading in Rendered display

Terminator issue hasn't got a proper solution for Cycles yet. Increasing Lamp's size makes penumbra bigger and issue becomes less visible.

Size setting is here:


Can IK constraint be setup so it respects constraints of affected bones

When you have an bone set to use an IK constraint, every bone in that chain enables the Inverse Kinematics tab, found in the bone properties (almost down the bottom)

Here you can set limits on the XYZ axis of each bone. the X and Z axis limits show up in the display as a red and blue circle. Y doesnt show up as Y is rotation along the axis of the bone.

using axis limits does cause some popping, so you will want to use a Pole target for the IK constraint to allow better control.


You can choose it here, at the Material tab.
The same option you can find at the bottom of the Node Editor.


It can be fixed by adjusting your weight paint. Try distributing the weight more accurately according to the vertices. It should fix your problem.


With current experimental build 2.91 you can base this on Volume Object.

create the shape from a Mesh Object.
add Volume Object and in modifiers choose Mesh to Volume, as source Object choose created shape one
add Point Light object in trail direction (close to a sphere)

With second modifier Volume Displace you can use texture to distort. Here is a few examples of Cloud texture (variations in texture properties level).

Since I don't see an option to animate Texture position (for now) for Volume Displace modifier, here is a basic node material ...

With additional Curve modifier (for mesh Trail) or Wiggle bones you would be able to animate motion in more natural way (like a flame moved from one place to another).


Is there a bounding boxes for particle system objects?

Not sure if their are bounding boxes for Particle systems but one way to create bounding boxes is by assigning the "Collision" property to a 3d Object like a Cube containing the Particle system and then treat it as a bounding box.
The below simulation is done by using a Wind Force field and using icospheres objects for Particle System under Newtonian Physics. The bounding Box -Cube in this case is provided the collision property under the Physics tab and its Z-tranperncy alpha (under material) is set to "0".

However,inorder to show the limits of the Bounding Cube ,if a wireframe modifier is used the collision property no longer applies and there is no bounding.


Boundary not working with inset faces command

If you turn off the Mirror, you will see that your anvil has a face inside look at the image, oce you delete that you will be able to use inset as expected


name depending on the position on a line

Sorting by z and x location

Simple script to sort all the objects in a scene named "Cube[.nnn]" by -z location and x location.  Added a tolerance of 0.0001, any cube with a z within is considered in same row.  The .nnn extension is the index in the order.

import bpy

context = bpy.context
scene = context.scene
# all cubes in the scene
cubes = [o for o in scene.objects if o.name.startswith("Cube")]
# row tolerance
TOL = 0.0001
if cubes:
    #sort them by -z , x loc
    cubes  = sorted(cubes, key = lambda o: (-o.location.z, o.location.x))
    row = 1
    z = cubes[0].location.z
    for i, cube in enumerate(cubes):
        if abs(cube.location.z - z) > TOL:
            row += 1
            z = cube.location.z
        cube.name = "Cube_%d.%03d" % (row, i)

To name them similarly to the convention in the q, could

cube.name = cube.name.replace("Cube", "Cube_%d" % row)

To make sure global locations are used, use cube.matrix_world.to_translation() instead of cube.location.

Or if the objects have differing origins, could use the bounding box centre as a location.


How to move edge loops made with knife using only vertexes?

Maybe you just need to deactivate the Proportional Editing button?


You have bad topology: essenciatlly non-manifold vertices and duplicated vertices.
It is noticeable in frame 32. If you disable the modifiers, change to solid mode, you will see the strange artifacts on the surface. I tried to dissolve the non-manifold vertexes and to remove double vertexes, then recalculate the normals, and problem is only slightly fixed. On my advise, the fastest way to fix, will be with retopology: you have to remake the head, but this time, you have to try to keep a simple geometry. Try to see some tutorials on how to do retopology faster. If you are in a hurry, and don't have time to do it correctly, you can cheat it by: while in edit mode > press T to open left menu, go to "shading/Uv's" tab> on shading the faces, select flat> press N to open the right menu > press A once or twice to select all the object> on the N menu, under Tranform tab, on edges data, decrease the "mean crease" to 0, and try a render (worked for me). Yet, if I were you, I would consider retopology in the future. Good luck.


This does not appear to be possible without the internal editing of the Blender source. I would recommend submitting a feature request for this. This feature could be very useful and should not be hard to implement. Someone could potentially create a patch that adds that ability as well.


The simplest solution should be to move the faces along their normal. It's sort of an extrude, but without creating new faces. So you can re-position a face that was previously extruded. To do it, press alt+S. Move the mouse up and down to see the faces move. Click a mouse button when you are satisfied.

One thing that I often do is create a new edge loop that I position where I want it. Then Dissolve the unwanted geometry. If you dissolve it correctly instead of removing it, you won't have to create new faces to fill in any holes. Use ctrl+R to start creating an edge loop. Move the mouse over the geometry to position the edge loop. Click the mouse to continue. Now you can move the edge loop up and down with the mouse. Click again when you are satisfied and you are halfway done.

Select the geometry you don't want. For instance, right click the outermost face. Type ctrl++ to expand the selection until you have everything selected. Or select using right click while holding down shift. Type x and select "Dissolve faces".


Ok, I found the option. We need to "Use Max" (Curves' Force settings) in this kind of situation (for all Guide Curves in the scene) :)


Every blender addon is simply a python package with some small differences. if you use multiple files in your addon (package) you should have an __init__.py file in the main folder (and also in every folder in your directory so you can import them  as your local packages). blender recognizes your package as an addon, if you have bl_info (dictionary) and register and unregister functions in your __init__.py file. as described in the manual the simplest example of addons is:
bl_info = {
    "name": "My Test Add-on",
    "blender": (2, 80, 0),
    "category": "Object",
}
def register():
    print("Hello World")
def unregister():
    print("Goodbye World")

relative importing also works because its python but importing is also a little bit different in addons. you should check if bpy module is added before. for example if you have utils and draw package(folders including __init__.py files) or modules(*.py files) you should import them like this:
if "bpy" in locals():
    import importlib
    importlib.reload(utils)
    importlib.reload(draw)
else:
    from . import utils
    from . import draw

the rest is as same as every python package and depends on you!


How to select even/odd keyframes with python?

The following script is a bit rough, but it should do what you're looking for. It creates two new operators that work in the Dope Sheet, one for selecting even keys and one for selecting odd ones. It uses islice() from Python's itertools module... someone more well-versed in Python might have a different/better method to iterate through the keys.

It uses extended indexing syntax ("slice notation") on a dictionary view object of the keyframe_points property collection (*phew*).

Fair warning: this actually iterates through all of the actions in your .blend file. It shouldn't be too difficult to limit it to the actions in your scene or the actions of the selected object, but this should be enough to get you started.

To use the script, copy it into Blender's Text Editor and press Alt+P (with your mouse in the Text Editor). Then, from the Dope Sheet, you should be able to find the operators using Spacebar search.

import bpy

def main(context, even_odd='ODD'):
    for action in bpy.data.actions:
        for channel in action.fcurves:
            if channel.select == True:
                #First deselect all keys in the channel
                for key in channel.keyframe_points:
                    key.select_control_point = False
                    key.select_left_handle = False
                    key.select_right_handle = False
                if even_odd == 'ODD':
                    #Select only odd keys
                    for key in channel.keyframe_points.values()[1::2]:
                        key.select_control_point = True
                else:
                    #Select only even keys
                    for key in channel.keyframe_points.values()[::2]:
                        key.select_control_point = True

class ChannelSelectEvenKey(bpy.types.Operator):
    '''Select even keys for selected channels in the dopesheet'''
    bl_idname = "anim.channel_select_even"
    bl_label = "Select even keys"
    bl_description = "Select even keys for selected channels in the dopesheet"

    @classmethod
    def poll(cls, context):
        return context.area.type == 'DOPESHEET_EDITOR'

    def execute(self, context):
        main(context, 'EVEN')
        return {'FINISHED'}

class ChannelSelectOddKey(bpy.types.Operator):
    '''Select odd keys for selected channels in the dopesheet'''
    bl_idname = "anim.channel_select_odd"
    bl_label = "Select odd keys"
    bl_description = "Select odd keys for selected channels in the dopesheet"

    @classmethod
    def poll(cls, context):
        return context.area.type == 'DOPESHEET_EDITOR'

    def execute(self, context):
        main(context, 'ODD')
        return {'FINISHED'}

def register():
    bpy.utils.register_class(ChannelSelectEvenKey)
    bpy.utils.register_class(ChannelSelectOddKey)

def unregister():
    bpy.utils.unregister_class(ChannelSelectEvenKey)
    bpy.utils.register_class(ChannelSelectOddKey)

if __name__ == "__main__":
    register()


How to keyframe "Use Count" in particle system?

You have keyframed the checkbox that enables or disables 'Use Count', not the 'Count' values themselves, which are shown below the large yellow box in your screenshot.

However, trying to keyframe the actual 'Count' value displays an error message, which indicates that these values probably can't be animated.

I would suggest posting another question on this site asking specifically about how to get different amounts of particles to appear.


Yash's solution works, but you can also Right click, click ID Data and then rename.


Blender Model Resizing after being Parented to Rig

I know you would prefer a better solution, but: I know that .stl import has an option to use scene units, and it works for that format, helps sometimes to solve problems like this.

So maybe you could try to import the .obj, export in .stl, and then import the .stl using that option (or not, depending if any of the two fits).

Works since 2.73, afaik.


Why my object is not showing in Rendered result but in the Rendered viewpart?

O my goodness.
This was the problem i find out myself.


How to push apart rididbody objects to avoid intersection?

There may be methods that doesn't require aniamtion nodes, I will test that later. but here is what I thought at the most beginning and has been proven to be working:

Theory: using locations of particles as a guide for rigid body objects to set in their places. The intersection will be prevented by rigid body dynamics.

Add a particle system to a mesh. (This mesh and particles system should not be rendered at the end, you can just emit hallo or none. Hide the whole thing is also an option)
Uncheck gravity options so that generated particles don't fall with gravity.
birth should all be at 1 frame.
set source type to "volume". Change the velocity acoordingly (0, since the point is not to emit particles but keep them in the volume of mesh)

Finish modeling your "particle object" (preferably a single object). It can be "donut" or whatever stuff, add a rigid body dynamics to that. (Preferrably, you should also add materials at this stage. For reasons, please see the end of this answer)
go to animation nodes panel, the tree should look like this. The principle is stated in the theory. Caution, a check in "copy full object" is very important, It copies things such as modifier, physics and material. Each time you add additional thing to the original mesh, and you want to update it to the instancers, you have to do that again.

Up to this part this is basically done. There are several additional points to that.

if you want to randomize rotation or scales, use "random euler" (for rotation) and ["random number" + "vector from value"] nodes (for scale). ("Scale" is a vector, you can also use "random vector" for random number in each X, Y and Z. But by using random number + vector from value, X,Y,Z are uniform and I think this is what's expected most of time)

Due to rigid body, objects will firstly being pushed apart with a high speed. To pull objects back, easiest way I think is to add a force field, and set the strength to as negative as -1000 or even higher. You will see the effect that pulls objects back.
Some issues to be cautious with. If you rechecked the "copy full objects" for whatever reasons, the originally instanced meshes won't actually disappear automatically (This is different from normal circumstances). you have to manually delete them. Since everything is generated within "AN collection", simply lock all other collection, and shift + A to delete all meshes in AN. Don't worry, as soon as AN updates, the expected meshes will be generated by the node tree again.

let me know if you have any question.
for more information about AN, please go to mannual: https://animation-nodes-manual.readthedocs.io/en/latest/


Is there add-on to skip rendering for identical frames?

Good news, everyone!

I found it! One Canadian guy created the add-on for this. It's called Dopplerender (lol).

Here is more info and link to download: http://creativityhacker.ca/2017/08/08/dopplerender-a-turbo-boost-for-blender-animation-rendering/


How to animate different parts of a robot arm

Well, this is not the right way of using blender, turns out you need to animate all the objecst in a single frame and then you can make subclips based on what clips you want, this can be done using three.js Utilities


Passive rigid body physics not working with screw modifier

You need to change the Source and the Shape of the rigid body collisions.
In the physics tab of the properties panel, change the Source from "Deform" to "Final".
Only "Final" takes the modifiers in to consideration, hence your trouble.

The other setting you need to change is the rigid body collision Shape, set it to "Mesh".


It should work as Mr. Zak says, anyway you can create a viewer node in the compositor, then choose viewer in the UV/Image window and save the image.

I connected the composite output node to the original image to have the behaviour you described, maybe that was the problem?


How to make a duplicate with the same animation in a different location?

You can do this by first parenting the animated object to an Empty. It's best to do this while they are both free of transforms (X:0,Y:0,Z:0). Then when you make a duplicate, duplicate the Empty together with the animated object. Since the object's LocRotScale will be relative to the Empty instead of the World, everything will behave as you described.


I want to make a flatened cube take the shape of a face

In front ortho view bake a displacement map of the face and apply it later to the subdivided plane. Later extrude the edges of the plane and make a face to close it.


How to make 2 rigid body objects hit and stay together?

Add a lot of Friction to both the donut and the scraps.

Add rotational damping to the scraps.

On the scraps, choose Enable Deactivation and tweak the values (make them lot bigger).


Boolean modifier fails for certain configurations

This post Boolean difference modifier misbehaves with fluid sim has the answer. Adding a triangulate modifier solves the problem in the attached file.


Create still copies of a moving object (using python scripting)

Without operators
Here is an example of doing this without operators.

Have the constrained object as active
Create a copy, strip the follow path constraints from it.
Create all the copies needed from the copy
Loop thru the copies,

calculate the frame,

set and keyframe offset based on frame

change to that frame

give the copy the same matrix world as original at that frame

link copy to collection

Test script:
import bpy

N = 10 # number of copies

context = bpy.context
ob = context.object
scene = context.scene
collection = context.collection

copy = ob.copy()
cons = [c for c in copy.constraints if c.type == 'FOLLOW_PATH']
while cons:
    copy.constraints.remove(cons.pop())
copies = [copy.copy() for i in range(N - 1)]
copies.append(copy)

frames = 250
for i, copy in enumerate(copies):
    f = i * frames / N
    # find constraint properly 0 for example sake
    ob.constraints[0].offset_factor = f / frames
    ob.constraints[0].keyframe_insert("offset_factor", frame=f)

    scene.frame_set(f)
    copy.matrix_world = ob.matrix_world
    collection.objects.link(copy)


A litlle bit more information of what you tried and where you got stuck wwould be great - there are a lot of Tutorials out there that can help you.
Once you get stuck and can`t figure it out update your question.


Python: How to know how many objects are inside of the selection ?

In Python indexing works from the beginning AND from the end.
So if you need the second to last object in a list:

somelist = [ "a" , "b" ,"c" , "d" , "e" ]
print(somelist[-2])

would print

d


Weight paint substraction not working? Blender 2.8

The Brush is set to Add by default.

In the top left corner go to View > Tool Settings, now you can change the Brush Mode to Subtract.


The Composite node is where the actual output from the compositor is connected to the renderer. Connecting a node to the Composite node will output the result of that node's full tree to the Renderer, leaving this node unconnected will result in a blank image. This node is updated after each render, but also if you change things in your node-tree (provided at least one finished input node is connected)
The Viewer node is a temporary, in-process viewer. It can be plug in anywhere to inspect an image or value map in your node tree.
From this you can say that the compositor node exist for the sole purpose of applying the composition to the render while viewer node is mainly used to see specific result of a certain group of nodes as well as it can do the job of a compositor node.
To further explain it:
The problem with the viewer node is that you will have to go into the Render Output panel and would have to select the viewer node to be displayed in it . And then you are free to save it. In highly detailed scenes we will be forced to make multiple renders , improving it gradually . That is where the Composite node comes to help - You wouldn't have to select the viewer node each time and save it.
Blender automatically composites a render if it's connected to a Composite node and will give you the finished result instantaneously. And that is the easiest way to put it...

You can also switch between Composite and View Layer as shown in here:-


Adjust properties of 3D object and camera faster

You can pin any properties tab to the editor.
Click the pin icon, and the tab will stay active even if you select other objects.


How to select the entire set of images to put into the video editor

A, not Ctrl + A.

If you key A, it will select all the images in the folder that you have navigated to. If you key A again, it will deselect all of the images.


No, as far as I know there are no optimizations in place for constructive modifiers like mirror or array.
You do get some benefits in terms of workflow since you only need to do "Half the editing" and you may also get a benefit in file size, since only one half of the mesh is stored on disk.

Other than that I don't think there are performance benefits from those modifiers since depending on the settings the meshes they generate may not even be totally identical.


edit - prefrences - navigation - auto depth


Why is the view header showing triangle count when my mesh is all quads?

Without getting too technical, in 3d, there is no such thing as a true quad. Quads and ngons are mere abstractions to make objects easier to manipulate (imagine modeling a car or face using triangles only). At the very core however, every object is comprised of triangles. Blender and other modeling packages abstract these away but they are there.

You might have seen proof of this if you've ever badly transformed a face for example, if you were to paint all 4 vertices of a plane and move a vertex out of place, you will see evidence that there is supporting geometry somewhere holding that "quad" together.

To test, just add a plane and check the header again, you will see that it shows 2 tris, this is accurate because a flat plane in its simplest form is two triangles. If you were to cut it diagonally with say the knife tool, it would still show 2 because now it is still 2 triangles.

Now if you were to create an actual triangle, it would show 1.

In a perfect sphere without any actual triangles, say a cube morphed into a sphere (by subdividing and using To Sphere AltShiftS), the amount of triangles will always be twice that of faces, because remember, by default a quad is 2 triangles.

This might not be the case for edges however, that count depends on how uniform your object is, toplogy etc.


Go into edit mode > Select All with A > Right click > Merge > By distance.


Modal Operator -- "invoke" not being called while invoked through script

It is intentional!
This behavior is controlled with
bpy.ops.some_operator('INVOKE_DEFAULT')
or
bpy.ops.some_operator('EXECUTE_DEFAULT')
and it's assumed that a script calls execute by default
and a button calls invoke.
it is in the doc's but somewhat obfuscated.


Make sure all the objects have a UV map (it doesn't have to be a useful one).

If you have a large number of objects which don't a UV map, unwrap one of them (any projection will do) and then select them all (with the unwrapped one active) and press CtrlL > Transfer UV maps. Even if the objects don't have the same vertex order, this will be fine as the UV map is overwritten later.
Simulate/animate the objects and go to the last frame.
Select all the objects, add a UV project modifier and set the camera as the projection object, select the UV map, and press CtrlL> Modifiers:

This will project the UVs from the camera unto the objects. If you move the camera in textured view you can see this in real time.
Still on the last frame with all the objects selected, press AltC > Convert to mesh to apply all the modifiers (and make the UV maps stay in the state they are in).

Result (click on it for html5 version):


You have the Local button selected, which means it starts the coordinate system at the object origin, not the world center.
Set it to Global and it will work like you want, where 0 is at the grid floor.


How to achieve advanced lighting in my scene

In addition to using an HDRI, try adding a mist and/or Z pass, and then compositing in some color to the value in the compositor. Remember that you can use the color ramp with multiple points assigning multiple colors, so you can get some pretty neat effects. These colors can add or lessen brightness.

I am not sure this is a complete answer, but I could not post this screen shot as a comment. The sand below is not mine, but the acrocanthosaur is!

Regarding the lighting of the rocks -- mentioned in a later comment: You can use an object index pass to accomplish a lot of things, including light changes, focal issues and the like. Here is a good example and a node tree view:

Separate reflection based on object index cycles


Splize's answer worked. Simply merge vertices of the extruded text geometry since the caps are separate from the extruded geometry. Smooth as butter and with 0 bevel segments!


Python includes a csv import module, which makes reading the csv data and using it to create objects rather easy.

As we read through the file, if an object with the name in column1 doesn't exist we create it, if it does exist we add a second vertex and make an edge between the two.

This creates a new object for each element name, you can easily join them together once done by selecting them and pressing ⎈ CtrlJ

import bpy
import bmesh
import csv
from mathutils import Vector
from bpy_extras.object_utils import object_data_add

csvfile = open('/path/to/data.csv')

inFile = csv.reader(csvfile, delimiter=',', quotechar='"')
# skip header
inFile.__next__()

for row in inFile:
    #  column order (0: Element Name, 1: x, 2: y, 3: z)
    if row[0] not in bpy.data.objects:
        vert = [Vector((float(row[1]),float(row[2]),float(row[3])))]
        mesh = bpy.data.meshes.new(name=row[0])
        mesh.from_pydata(vert, [], [])
        object_data_add(bpy.context, mesh)
    else:
        bpy.data.objects[row[0]].select = True
        bpy.context.scene.objects.active = bpy.data.objects[row[0]]
        bpy.ops.object.mode_set(mode='EDIT')
        mesh = bmesh.from_edit_mesh(bpy.data.objects[row[0]].data)
        mesh.verts.new((float(row[1]),float(row[2]),float(row[3])))
        mesh.verts.ensure_lookup_table()
        mesh.edges.new([mesh.verts[0],mesh.verts[1]])
        bmesh.update_edit_mesh(bpy.data.objects[row[0]].data, True)
        bpy.ops.object.mode_set(mode='OBJECT')


How to add/remove links to existing or new nodes using Python?

Since the name/labels of the nodes are all the same for all my objects I can simply use the same code for all other objects and it works. Here's how to do this automatically:

for mat in bpy.context.scene.objects.active.data.materials:
    for node in mat.node_tree.nodes:
        if node.label == "Mix Color/Alpha":
            if node.inputs[1].default_value[0] < 1:
                mixColorAlphaNode = node
                for n in mat.node_tree.nodes:
                    if n.label == "Alpha BSDF":
                        alphaBSDFNode = n
                    elif n.label == "Shader Add Refl":
                        shaderAddReflNode = n
                    elif n.label == "Material Out":
                        materialOutNode = n

                # Math node
                mat.node_tree.nodes.new('ShaderNodeMath')
                mathNode = mat.node_tree.nodes[len(mat.node_tree.nodes)-1]
                mathNode.operation = 'LESS_THAN'
                mathNode.inputs[1].default_value = 1.0

                # Mix shader node
                mat.node_tree.nodes.new('ShaderNodeMixShader')
                mixShaderNode = mat.node_tree.nodes[len(mat.node_tree.nodes)-1]

                # Add links
                mat.node_tree.links.new(mathNode.outputs['Value'], mixShaderNode.inputs[0])
                mat.node_tree.links.new(mixColorAlphaNode.outputs[0], mathNode.inputs[0])
                mat.node_tree.links.new(mixColorAlphaNode.outputs[0], mathNode.inputs[0])
                mat.node_tree.links.new(shaderAddReflNode.outputs[0], mixShaderNode.inputs[1])
                mat.node_tree.links.new(alphaBSDFNode.outputs[0], mixShaderNode.inputs[2])
                mat.node_tree.links.new(mixShaderNode.outputs[0], materialOutNode.inputs[0])


You can go to the compositor and add a blue node, set it to fast gaussian and enable relative, then set the x and y values to suit your needs.
Make sure you connect an image pipe to it though... if your using Images, you can find an image node in inputs category in the composition menu


Video Editor Rendering - 7 hours to render 22 mins of video / audio

If you are rendering anything on the stock USB 2.0 ports, you should expect slow times.  You could get either a USB 3.0 or 3.1 card for your box or move all of your files to an internal media drive and work from there.


That line you see when you use the mirror modifier is there because the UV maps do not coincide with the image used as texture. If you look close the edges are right where the transparency starts or there is a different tone of yellow.
Move the edges of the UVs inside the solid color or add additional color to the image.

Also, you have a set of unnecessary faces at the seam of the mirror modifier. Get rid of them.


Changing the color of an object (UV sphere)

It's okay if you don't set the world material to emission.
In world panel, you can select background option instead of emission and you can increase the strength of the background to make it brighter and brighter. You can also set any colour you want to the "world background"

To make the sun, you can make a emissive uv sphere, by the way i would recommend to make the sun circular instead of spherical (because the sun is very far from the earth so we see the orthgraphic image of spherical sun which is circular).

So to make the sun you can add a circle and fill it to get a solid face. Now set an emission material to your sun.

In eevee mesh lighting don't work so you will have to place the sun lamp or point lamp or plane lamp to simulate the lighting.
You can turn on bloom, screenspace reflections, and depth of field if you want.

Links:
https://youtu.be/hnLsktA4gmY

https://youtu.be/FsETUAsiI7c


Ok i got it, i needed to do Maj+Ctrl+A just after have made the duplication.
Im not sure to be clear again with my english but i hope it will help someone not just myself ^^


Object won't drop after keyframing animate physics

Emulating bounce physics -

.--.

Producing the basic bounce -

Set the timeline cursor to frame 1.
Set the 3D window to Ortho view mode.

Add a ground plane and keyframe it's Z axis location.  Padlock it's location strip in the Dopesheet so it can't be moved.  Give it rigid body properties (physics) and untick the "Dynamic" box, give it's "Bounce" a value of 1.0 .

Set up a ball (sphere) at some height above the ground plane.  This will be using Blender's physics engine to give us a sequence of bounces with which to emulate with a 2nd ball.  Give it physics and tick it's "Dynamic" box so it will fall and hit the plane. Set it's bounce slider to around 0.6 or whatever suits.

Run the animation to check the physics ball falls and bounces off the ground plane.

Set the maximum animation frame to some time after the last bounce.

Take the timeline cursor back to frame 1 and add another ball, take it to the same starting height as the 1st.
Keyframe it's location slots at right.  This will be our keyframed version.

What is required now is at the frame where the physics ball hits the ground, drag the 2nd ball down to the ground also and keyframe it's location.

Do the same at the frame where the physics ball rises to it's maximum bounce height.  Take the 2nd ball up to that height and keyframe it again.

Repeat the process throughout the bounces.  When played, the 2nd ball won't be falling and rising anything like the physics model, but it should arrive at the ground and maximum bounce heights at the same frame as the 1st ball.

Select the 2nd ball and go to the Graph editor, padlock out all strips that are not the 2nd ball's Z axis location graph.

Make a 3D viewing window, say at top right so you can see what you're doing when you start shaping the curves.

At extreme left select the Z axis strip so it's highlited, then move the arrow back into the editing window.

The z axis' blue curve should be quite prominent.  Press the Home key to center it all.

The bouncing characteristics are determined by the shape of the curves and can if required, be varied to suit any particular scenario.

As we are going for a natural bounce here, emulating the physics ball's bounce is simply a matter of using each keyframe's handles to reshape the curves so the 2nd ball more or less echoes the 1st ball's movements.

At the ground collision frame, a sharp Vee shaped curve is required and one that places the 2nd ball at the ground level, not above or below.  It has to descend and not slow down as it approaches the ground, rather be ripped back upwards rapidly on contact.

At the top of the bounce, it's the opposite situation.  Our ball must slow down and pause slightly before falling again.  This is more easily achieved by stretching the top keyframe's handles out to about a third the distance to the previous and next keyframes at each side, give or take.  Keep the handles reasonably horizontal.

The falling side probably needs a little more handle length than the rising side.

Curves that look like steep hills seem to work best.

Once you get it looking right,  you'll have a set of reliable bounce curves that can be used as 'Masters' for other projects.

-=================-

Importing 'Master Bounce Keyframes -

Simply append the keyframed Blendfile, go to the appended scene,  (top scene menu) and select the 2nd ball, press CTL-C to copy it, animation and all, into the copy buffer.

Go back to the parent scene, get into the layer that's to take the bouncing ball and press CTL-V to copy it.

The ball will retain it's animation keyframes, along with it's other attributes.  It will also appear in the Dope sheet.

Assuming the object that's to take these keyframes has no animation at all, select it's layer, then the object itself.  Take the timeline cursor back to frame 0 (zero) and keyframe te object's location & rotation.
This will give it an appearance in the Dopesheet.

Go to the Dope sheet and padlock out all keyframe strips that don't belong to the new (unbounced) object.
We don't want to mess up anything that's not to be changed.

Press A in the title strips at left so no strips are highlited.

Select only your project's object, (not yet bounced) so it's header at left is all that's highlited.  Select it's Z axis only and padlock out it's X/Y axis' and all rotation strips..

Place the mouse cursor in the Dope sheet's main window and press A until no keyframes are highlited.

Box select the imported (bouncing) ball's Z axis keyframes.  Press CTL-C.

Set the timeline cursor to frame 1 and the mouse cursor into the new object's strip. (This shouldn't be necessary but you can do it anyway - a bit like blowing on the dice before they're rolled)

Press CTL-V and the copied keyframes should appear along the new object's Z axis strip and importantly - beginning at frame 1.

Run the animation and the new object should take on an identical bounce as the imported ball's.

The new object's curves can be varied to suit and once happy, the imported one can be deleted.
So too  the appended scene.

-===================-

In the new project's Dopesheet, keyframes can be offset and varied to avoid 'mirrored' animation.
Curve handles in the Graph Editor can also be adjusted, again to avoid mirroring other objects that may be using the same imported keyframes.


How do i add mist to a cube spelling something

You could use something like this. The magic ingredient here is the volume scatter node. I used a Noise Texture and a ColorRamp to give the smoke a more realistic look, and connected the volume scatter to the volume input only (no surface input). You can see on the right, the quality of the fog is determined largely by the Tile Size and number of Samples, but the Start and End range have an effect as well (making the gap smaller will improve the quality) - just remember that this gap determines the viewable distance of the volume, so keep it in a range where your camera will be. I darkened the world background in the image to make it stand out more, and I had to brighten the light to make the volume stand out (it's visibility is affected by the light it receives). I also gave the light a purple glow just to add effect. As you can see, however, some shapes help to constrain the smoke more than others. Try it out for yourself:


Why is my custom background only going on blocks? CYCLES

In cycles, the Background BSDF is emitting rays and will affect the objects in the scene.

You have probably set your scene to transparent, which is why you can't see your background. Disable the Transparent property to see your background.

Using the Light Path node in the World material, it is possible to set a background, which doesn't influence the objects in the scene. This uses two background shaders. The first is visible to all objects in the scene, which is why it should be set to 0. The second is only visible to the camera. Plug your background setup into the second input of the mix node and connected the Is Camera Ray output to the Fac of the mix node.


As staded by @Yvain baking one object maps to another involves projecting them on the baking faces. If you move the object away, or the faces are not pointing each other, you'll not get expected results.

While it would be cool not to have the object in the same place for baking highres to low, a similar behaviour would limit the user possibilities.

This is just the tip of the iceberg, as baking normal maps involves many aspects, such as resolution, uv maps, shading, cages...

I would suggest to have a look of these tutorial:

The Fundamentals of Perfect Baking (not blender related)
Blender 2.71 - Cycles Baking using Cages


What are the best graphics cards for cycles?

Here's a spreadsheet that collates data from many users running the same benchmark scene. The thread with active discussion and a copy of the scene is at BlenderArtists, This is the best we can do without relying on opinion.

Decide for yourself which gfx card makes sense.

Note: Different OS's, drivers and versions of Blender, can all significantly change render times. So you'll need to take that into consideration when comparing benchmarks.


In the VSE preview sidebar set the Scene Strip Display to Render :


This is the right command (Problem Solved):
bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)


When I paint in vertex paint, and after I switch back to object mode it does not show the paint

To see the vertex paint in Object mode you must switch the display mode to Texture.

See the image below showing the vertex showing in Object mode with Texture active:


How can I make the bending smoother on my rigged arm?

Why not add an additional bone from the middle of the vertical bone, with a "StretchTo" bone constraint tied  to the midpoint of the next bone. Then you can assign the vertices on the inner part of the elbow to the new bone. As the elbow bends, the bone (and the vertices bound to it) should deflect like you are asking.


Compute the normal of a 2D spline using animation nodes

The normal to a point on a spline is equal to the tangent at this point rotated by 90 degrees around the z axis. Let the tangent be $\vec{t} = (x, y)$, then the normal is equal to $R\vec{t}$, where $R$ is a 2D rotation matrix with an angle of $\frac{\pi}{2}$. So the normal is equal to:

$$
\begin{bmatrix}
\cos \frac{\pi}{2} & -\sin \frac{\pi}{2} \\
\sin \frac{\pi}{2} & \cos \frac{\pi}{2}
\end{bmatrix}
\begin{bmatrix}
x \\
y
\end{bmatrix} =
\begin{bmatrix}
0 & -1 \\
1 & 0
\end{bmatrix}
\begin{bmatrix}
x \\
y
\end{bmatrix} =
\begin{bmatrix}
-y \\
x
\end{bmatrix}
$$

So, given the evaluated tangents, you can compute the normals as follows:

To deform an object as described in the answer you linked, you will need a third vector, the one we computed using the cross product. In this case, it will always be the vector $(0, 0, 1)$.


The compositor only starts to process the image once the rendering is completed or in case you have activate Auto Render once you change the node configuration.

There is a small error in your compositing nodes, in order to see the result in the image editor you have to connect the Image output socket of the Glare node to the Composite node.

Once this adjustment has been made, you can render the image from start to finish. The result of the compositing can be viewed in the image editor if you switch from Render Layer to Composite in the dropdown next to the slots.


In the image editor you can click the little number button (probably says "2" on it) next to the mask to create a copy.


Object not showing up in final render when using compositor

An Add node was needed to bing the rest of the objects into the scene:


Under Intergration in the material for the smoke domain, decrease the Step Size and possibly also the Depth Cutoff. The step size determines how close together the volume calculations are, and decreasing it makes the render more accurate, but also slower. The depth cutoff sets the luminance below which to clamp to zero. Decreasing this also makes the render more accurate and slower.

This was rendered with the default settings, step size 0.100 and depth cutoff 0.010.

And this was rendered with values in the screenshot above, step size 0.02 and depth cutoff 0.005.

And as a side note (for if and when you decide to move to Cycles), in Cycles you change this under Volume Sampling in the render panel. The step size does the same as in Internal, but the depth cutoff has been replaced by Max Steps. This serves the same purpose, but with a different approach.


Keeping array objects straight when duplicated along a 3D twisted curve in Blender 2.8

The code I wrote to do what I couldn't do through built-in functions is below:

import bpy

skull = bpy.data.objects["Skull"]
curve = bpy.data.objects["xobject_name"]

try:
    newCol = bpy.data.collections.new('Skulls')
    newCol = bpy.data.collections['Skulls']
    # link the newCol to the scene
    bpy.context.scene.collection.children.link(newCol)
except:
    print ("safely ignore")

skull_copy = []
for index, point in enumerate(curve.data.splines[0].points):
    if (index % 2 == 0):
        print (index, point.co)
        skull_copy.append(skull.copy())
        skull_copy[-1].data = skull.data.copy()
        #bpy.context.scene.collection.objects.link(skull_copy[-1])
        newCol.objects.link(skull_copy[-1])
        skull_copy[-1].location[0] = point.co[0] + skull.location[0]
        skull_copy[-1].location[1] = point.co[1] + skull.location[1]
        skull_copy[-1].location[2] = point.co[2] + skull.location[2]


How to use the File Browser's (with ImportHelper) execute function?

Use the ImportHelper - a class that wraps the FileBrowser.

import os
from bpy_extras.io_utils import ImportHelper

class IdentifierFileSelector(bpy.types.Operator, ImportHelper):
    bl_idname = "something.identifier_file_selector"
    bl_label = "some folder"

    def execute(self, context):
        fdir = self.properties.filepath

        # do something with fdir here  (fullpath)

        return{'FINISHED'}

bl_idname

Should be lowercase.
For your own sanity it's useful to make it consistent with the class name. If the class name is XxxxxxYyyyZzzzzz then a predictable  bl_idname would be "xxxxx_yyyyy_zzzz"
The prefix (i called it "something" in the code above) is a way for you to create a namespace for your own operators. Each operator is found in bpy.ops.* therefor your operator would be found at bpy.ops.something.identifier_file_selector

In this scenario, the StringProperty isn't something you want to be typing into ever. The update function is a little overkill then. See that property as visual reference to show you which file you picked.

class IgnitProperties(bpy.types.PropertyGroup):
    screen_path = StringProperty(description="Contains path to a texture")

class IdentifierFileSelector(bpy.types.Operator, ImportHelper):
    bl_label = "File Browser"
    bl_idname = "macbook_controller.identifier_file_selector"

    def execute(self, context):
        # Screen Texture
        img = bpy.data.images.load(filepath=self.properties.filepath)

        # update the node
        nt = bpy.data.materials['Screen'].node_tree
        n = nt.nodes["screen_texture"].image = img

        # also update this StringProperty so it reflects what you picked
        context.scene.ignit_panel.screen_path = self.properties.filepath
        return{'FINISHED'}

your draw

scn = bpy.context.scene
row = layout.row()
row.prop(scn.ignit_panel, "screen_path")  # <-- just for display purposes
row.operator("macbook_controller.identifier_file_selector", text="", icon='FILE')


You could try re-doing the seams and unwrapping as in the images below so that you are using alot more of the texture.

When editing the UV islands you may find that you will need to flip one of them in the X axis (select island then sclae in the negative X axis, S X -1 ) to get the red ties along the top to line up with each other.

Different Seams but again overlapping islands:


Problem with two displace (bottom of the sea and continents)

If I get your question right, since displacement can have many levels...(positive and negative, it depend on the "midlevel" you choose), you could displace with an image that could displace both sea depth and land height (mountains): in the image below, with midlevel 0.5, white is above Z=0, black is below Z=0, gray is in the middle (to get Z=0 you need a perfect middle grey, so RGB(0.5,0.5,0.5))

Can this concept work in your setup?

Since you unaccepted this answer, I guess it doesn't help you really. It's ok.

To the benefit of other readers, too, looking for similar results, I'll add a more "realistic" example with a plane (I know a globe is not as simple, but a plane is simpler to understand), though, to better visualize how it can be done: it is just matter to have at least a very good gradient.

Let's build an "Island"...

I took a height map from http://www.reallusion.com/iclone/Help/EarthSculptor/Image/Utilizing_Height_Map_05.jpg

this:

and then

used it as is to create displacement on a plane
made a colored copy to texture the displacement

UV map of the texture:

then you could also paint over the UV texture to "adapt" it to your land/seascape


How do I make an inner edge loop parallel to an outer edge loop?

Use Shrink/fatten Alt+S with Offset Even option instead:

And don't forget apply scale in object mode! (Ctrl+A -> Scale)


In case of intersecting meshes Intersect operator could be useful. In this case, Intersect / Knife is the one needed.

Select faces which intersect (or select all faces if convenient).
Press Ctrl + F > Intersect / Knife. Faces were cut, i.e. one from the rightmost cube got 2 new vertices and became an Ngon. However meshes aren't connected yet, because there are 2 pairs of vertices which share the same location.
Remove doubles with W > Remove doubles. Now meshes are connected.

Note: Intersect / Knife tool is accessible starting from version 2.77.


You can use Animation Nodes addon to control both:

Basic setup for driving by active render layer:

Explanation:

Scene Input node: Used for reading scene data. (Note: this node can only be found by searching via Ctrl + A. And, considering the huge amount of all kinds of nodes in AN, as a beginner, you may want to create the following nodes by searching as well.)
Expression node: This is a very powerful node, which can do a lot of things. In this case, it is used for reading the name of the active render layer from data path.
Compare node: It outputs the comparison result between A and B. In this case it means: if A is equal to B, or more specific: if the active render layer name is RenderLayer.2, then it outputs True,  a boolean value, otherwise False.
Switch node: It outputs either one of the two values based on the condition input from the previous node.
Cycles Material Output node: Used for controlling Cycles material parameters, very intuitive to understand I bet.

Basic setup for driving by selected scene:

Explanation:

Mostly the same as above.

You can download the addon here. More info see here. If you really want to drive things like that without coding yourself, it is worth learning it a bit.


Cloth falls through object during simulation

Hey i had the exact same problem you just have to remove the collision cube and make a new cube dont ctrl d


Publishing an addon to Blenders main branch

I believe your goal would be to make your addon a contrib.

This can be achieved at https://developer.blender.org/.
Here, your addon will undergo two types of reviews; function and source code.

For the function review, read : https://wiki.blender.org/index.php/Dev:Doc/Process/Addons .

For the source code review, read : https://wiki.blender.org/index.php/Dev:Doc/Tools/Code_Review .