Does having lots of add-ons enabled slow down blender?

As mentioned in the comments, the real answer will depend on what addons you enable. Many addons simply add an operator to perform a task and will not add any noticeable difference to the general use of blender, but it is possible for an addon to inject tasks into blenders handlers that will be run almost constantly, if these are slow then it can add a noticeable slow down to many areas of blender.

In general, the more you save as enabled so that they are loaded on startup, the longer blender will take to start, larger addons like animation nodes affect this more than most of the simple addons that are available. Once blender has started and is responding to user input you are unlikely to notice any difference with most addons that are available.

As you tagged your question as cycles related, addons aren't used by cycles and won't affect rendering times. OSL scripts added to a material can affect render times.


How to scale multiple faces without moving them towards each other?

Set the pivot point to individual origins.
You find that on the bottom bar, the 2nd one on right of the mode selection.

(Turned this into an answer from a comment by lemon, with explicit permission.)

Note:
In order to turn the cube in the picture into something similar to the hand in yours, use "Extrude individual" on the two selected faces (or your fingers).
Then scaling them by individual pivot point has the effect I think you want to achieve.


How to apply materials to specific faces only?

This is actually pretty easy to do; first, go into Edit Mode, by pressing Tab, and select the faces on which you want the material to apply.

Then, go to the Properties panel, and in the Material tab, with the material you want selected on the list above, press Assign.

Notice that you can also select/deselect the faces corresponding to a material, by pressing the respective button.


How to tell which objects are using a Bezier Circle as bevel object?

I think something like this might work, but for your own sanity run this only a copy of your scene, or a small representative version of your scene.

Just in case:

This finds the bevel_object
if the bevel Object is used by another BezierCurve it duplicates the bevel Object and associated Curve data,
then uses the duplicate as the replacement bevel Object.

In code form:

import bpy

scene = bpy.context.scene

bevel_names = set()
for obj in bpy.data.objects:

    if obj.type == 'CURVE':
        name = obj.name
        b_obj = obj.data.bevel_object
        print(' {0} -> {1} '.format(name, str(b_obj)))

        if b_obj:
            if b_obj.name in bevel_names:
                dup = b_obj.copy()
                dup.data = b_obj.data.copy()
                scene.objects.link(dup)
                obj.data.bevel_object = dup
                bevel_names.add(dup.name)
                # dup.parent = obj
            else:
                bevel_names.add(b_obj.name)
                #_obj.parent = obj

For the bezierCurves, it doesn't appear possible to parent the bevel object to them. A solution would be to make an empty for every BezierCurve and parent both BezierCurve and bevel Object to the empty.


How to keyframe smoke particle size via python script

Script for blender 2.79 with a few options.

import bpy

keyframes = [1,10,20,30]
object = bpy.context.active_object

frame = 50
value = 3.14159265

grouped = [(70,10), (80, 9), (90, 5), (100, 1)]

def incremmental_add(obj, frmlst):
    for frame in frmlst:
        obj.modifiers["Smoke"].flow_settings.particle_size += 1.0
        obj.keyframe_insert(data_path='modifiers["Smoke"].flow_settings.particle_size', frame=frame)

def single_frame(obj, frm, val):
    scn = bpy.context.scene
    scn.frame_set(frm)
    obj.modifiers["Smoke"].flow_settings.particle_size = val
    obj.keyframe_insert(data_path='modifiers["Smoke"].flow_settings.particle_size', frame=frm)

def tuple_list(obj, frame_n_val):
    for i in frame_n_val:
        single_frame(obj, i[0], i[1])

incremmental_add(object, keyframes)

single_frame(object, frame, value)

tuple_list(object, grouped)


How to get Python multiprocessing module working on windows?

Edit, this workaround is no longer needed as of 2.91.

This looks like a kind of ms-windows specific problem... at least a conflict with having an embedded Python interpreter and the environment which multiprocessing expects.
(its not exactly a bug, in that its not like Blender devs can fix some mistake to get this working).
Currently multiprocessing makes the assumption that its running in python and not running inside an application.

I managed to get multi-processing working on ms-windows, doing some workarounds.

sys.executable needs to point to Python executable.
The scripts __file__ needs to point to a file on-disk(not always the case - when executing a text block for example).

Heres an example of a workaround:
import sys
# are we running inside Blender?
bpy = sys.modules.get("bpy")
if bpy is not None:
    sys.executable = bpy.app.binary_path_python
    # get the text-block's filepath
    __file__ = bpy.data.texts[__file__[1:]].filepath
del bpy, sys

# end workaround!
# --------------------------------------------------

# Example from
# https://docs.python.org/3/library/multiprocessing.html
from multiprocessing import Process
import os

def info(title):
    print(title)
    print('module name:', __name__)
    if hasattr(os, 'getppid'):  # only available on Unix
        print('parent process:', os.getppid())
    print('process id:', os.getpid())

def f(name):
    info('function f')
    print('hello', name)

def main():
    info('main line')
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

if __name__ == '__main__':
    main()


How to pack uv without breaking stacks of islands?

UV mapping is not my strong point, but when I get undesirable results I alternate between Smart UV unwrapping and the ordinary version.  When that fails I do a UV unwrap--> reset first, then a "Follow active quads" I think it's called.  That seems to divide the image up into even surface areas.  Once done I go back and redo it with smart or ordinary unwrapping.

This might sound weird to some (or many) but this procedure has actually got me around a few UV problems.


You can use a bone instead of the empty to control the hand, just rotate it in object mode to match the hand axis rotation , when you parent the hand to the bone, choose bone in the set parent to menu, then when animating the bone, make sure to do it in pose mode


Books or web resources for blender-python (bpy)

Around 2009 / 2010 Blender moved on to the 2.5 series and started using a new and very different python API called bpy. Unfortunately that 2.49 Book doesn't cover bpy and therefore will have little practical usefulness. In the first couple of years after the new 2.5 series bpy changed regularly both in big and in small ways.

Such a fluid environment meant publishing hard-copy documentation wasn't very sensible. This lack of books has not been a barrier for learning bpy, for a few reasons:

Blender has a built in Python console (REPL) it lets you print the docstrings of functions and operators. The REPL auto-completes with Ctrl+Space. See this answer for directions and usage and more.
Blender, and the add-ons it ships with, are open-source. The nature of these add-ons ranges from convenient mesh editing tools and mesh generation tools to importers and exporters. These categories cover almost everything you might want to see examples of -- some are short and simple others are extensive.
The cookbook (for UI and bpy) paved the way for many people, and is still a surprisingly useful reference for figuring out how to declare UI.
Blender's TextEditor has templates for common bpy procedures:
TextEditor > Templates > Python > ...

You mention that you know Python already. My advice to you is to read the source code of a few Mesh creation add-ons available in  ../scripts/addons. For instance

add_mesh_extra_objects
add_mesh_bolt_factory

These two add-ons will give a lot of insight into how to write all the boilerplate needed to convert your mathematical concept and code into an operator using bpy.

add_mesh_extra_objects

This add-on even has a selection of mathematical surface generators which seems to be what you are looking for.

makes this:

and xyz makes this:


TL;DR:  No, because the Blender VSE is single-threaded.

I haven't done a code dive, but what it looks like Blender is doing is serially feeding each frame through its respective pipeline then into the encoder.  That means the only time Blender will multithread or use GPU when rendering video is if a specific frame uses a pipeline that multithreads.

You'll find this is also true of proxy generation.  Rebuilding proxies in Blender will always single thread.

For my workflow, I've gotten around this bottleneck by making use of a chunking and stitching method similar to bpsrender.


how to make the shadows in Cycles stronger from the grid table lamp

Solved by using emission light inside the globe on the filament part,
I add screenshot and render result.


Try this:

This mixes between the input and black (0) for the 0-.5 range, then mixes between the input and white (1) for the .5-1 range.

The "Lerp" nodegroup is as follows:

This multiplies one value by an inversion of the "Fac", and the other by the fac itself. Then adds the two together.

0 as the "Fac" returns the top input, while 1 as the "Fac" gives the bottom input. Values in between give a mix.

Note that this should work for extrapolating as well; "Fac" values outside of 0..1 will give a result "past" the input values. If you don't want that, clamp the Fac input to 0..1.


you can edit that number just to whatever you like..


Texture doesnt render correctly when rendering final image

Oh okay I figured it out. I had a hidden object at the same position as my floor. Woupsi..


Make White Transparent shader that is not transparent?

Mixing with another shader:

Using this node setup, the Mix factor is now your transparency slider, and the diffuse color is the color of the material. (in this case, white)

Note that using a diffuse shader as the other shader shades the material slightly. If you want a solid color, you can use an Emission shader but only when seen directly from the camera.

To do this, you can mix it with a transparent shader with the IsCameraRay output in the Light Path node (Add node > Input > Light path node) as the mix factor.

Seen here with a .3 mix factor:


Appended or Linked Hair Particles not like original Hair Particles

I discovered that although my character only has one rig, it is also linking/ appending a 2nd rig which is indirectly connected via animation = the boy rides a bike. The 2nd rig when deleted from the file, causes the head object to re-scale and restores the styled hair.

It would be easy to conclude the problem is with the scale of the rigs. The 1st is scaled 0.1 to fit into the environment. All other objects, including the 2nd rig, were scaled 1:1. In the initial scene this presented no problems and indeed should not. I have performed simply tests with differently armatures in different scales, added a few animations and none of them have changed the representation of the hair particles.

In this case Blender has not been able to reconcile the different scales and my solution is to sacrifice the animation - this gets destroyed when the second rig is deleted - if my priority is to get the characters hair restored. Unfortunately at this stage I cannot Apply Scale as this also causes strange results. For future reference I will of course do this before animation just to rule out the possibility that this could contribute to Blender confusion.

Regarding the disappearance of my Vertex Groups in answer to Dimali's suggested answer and my comment: During the (pitchipoy) rigging process I had to re do the bone placements a number of times and each time the cleanest way to reset the weights was to delete all groups and start again. My hair particles being hidden at the time survived the purge, but the groups did not. While not a documented function, it appears similar to applying a modifier group and not being able to return to the edit stage. As I do not need to edit the groups I do not consider this a problem.


Finding the distance between active and farthest vertex in vertex selection

Vectors

Test script run in edit mode, with selected verts and a vertex as active selection.

Sort the active verts by distance from active vert.
Select the last, ie the furthest vert, from active vert.
Use only the xy components of each to calculate the projected length required.

import bpy
import bmesh

context = bpy.context
ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)
# assume have active vert
av = bm.select_history.active
verts = [v for v in bm.verts if v.select]
#verts.remove(v)
verts.sort(key=lambda v:(av.co - v.co).length)
# furthest vert
fv = verts[-1]
# distance between verts
print((fv.co - av.co).length)
# distance disregarding local z component
print((fv.co.xy - av.co.xy).length)

Result when run on default cube, all verts selected

3.4641016151377544  # 2 * sqrt(3)
2.8284271247461903  # 2 * sqrt(2)


Where is the edit panel for SCA tree generator?

You should hit that little plus button at the bottom. Or use F6.


How do I UV unwrap multiple objects to one UV map?

The best way IMO would be using the Texture Atlas add on as joining meshes is sometimes destructive (think you have different modifier for each object- as in my example pictured below).

Enable the add on in User Preferences (Ctrl+Alt+U).

Select all your objects in Object Mode, go to the Render header-->Texture Atlas panel and press the '+' button, then OK. Next press Start Manual Unwrap button. Enter Edit Mode, go to the UV Editor, select all islands (A) and pack them (Ctrl+P). Now you have all the objects' maps combined in one UV Map. Finally press Finish Manual Unwrap button to separate objects.


Is there a way to explicitly set the mode in python?

You can go directly to a specific mode using -

bpy.ops.object.mode_set(mode='EDIT', toggle=False)

Valid mode values are 'OBJECT', 'EDIT', 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', 'PARTICLE_EDIT', 'POSE' but not all will be accepted at anytime, eg PARTICLE_EDIT will only be accepted if the object has a particle system.


I recently had the same problem.

I followed steps noted here.

However, I instead changed the multisample settings from none to 2.
It seemed to help a bit, and then I changed it back and so far it seems to be working fine.

Another forum suggest some have fixed the issue by disabling anti-aliasing in their GPU control panel.

So far it seems to be working as it should be.

I hope this helps.


Is my blender somehow bugged (lots of useless drop down menus)

This is normal. I think it is because:
A) The bigger layout is easier to work with, and
B) It's probably easier to code as well. Just stacking the widgets has got to be simpler than the compact format.


I can't choose render device in property window


Finding top surface area of a mesh by python

Here as requested is faces whose normal vector has angle from up vector of less than 80 degrees.

import bpy
import bmesh
from math import radians
from mathutils import Vector

obj = bpy.context.active_object
mw = obj.matrix_world
bm = bmesh.new()
bm.from_mesh(obj.data)

up = Vector((0, 0, 1))
# local space
area = sum(f.calc_area() for f in bm.faces if up.angle(f.normal) < radians(80))
print("local", area)
# global space
area = sum(f.calc_area() for f in bm.faces if up.angle(mw * f.normal) < radians(80))
print("global", area)
# or avoid a lot of matrix mult by converting "up" to local space.
up = mw.inverted() * up
area = sum(f.calc_area() for f in bm.faces if up.angle(f.normal) < radians(80))
print("global", area)

bm.free()


How do I get the VR Scene Inspection add-on working with the Oculus Quest 2?

i had the same problem but i could solve it.

Switch on your HMD
You have to plug in your HMD with USB to you PC
Start Oculus Link on your HMD
Usually it should start after starting Oculus link the oculus app on windows by itselfe
Now you can start your blender scene
Start VR-Session in Blender
Put on your HMD
Enjoy

Greetings


How do I convert blender render materials to cycles materials in 2.78c?

Cycles doesn't really have textures like Blender Render. The textures in cycles only affect the colour of the shader. If you want to have an image texture in cycles, first you got to go to the materials tab and turn your material into a cycles material. Second you open the compositor of the material you just converted. Normally there should be a diffuse shader node and material output node. You also got to add two other nodes: Texture coordinate and image texture. Connect the image texture node with the colour input of the shader node and the texture coordinate node with the image texture node. Select your image in the image texture node and then it should work, if I haven't forgot something.


Sounds like you want to keep your horizontal/vertical edges perfectly horizontal or vertical?  If so you can use Blender's snapping tools to make sure that vertices line up perfectly.  If you don't want to snap individual vertices, you can use the 'Mesh Edit Tools 2' add-on that comes with Blender...no need to download or purchase or anything; it should be there already:

Enable it and you'll get an additional section in your toolbox:

Under 'Vertex' select the dropdown and choose 'Custom Coordinates':

Then select the vertices you want to align, like this exaggerated example:

Choose 'Align Coordinates' and type in the value to align to.  In my example, it's just z = 1.0:

Click 'Ok', and boom, all of the vertices are now EXACTLY at z = 1.0:

Obviously you'll need to figure out the values to square to, but this should give you perfectly straight and square prints if you take the time to align the vertices on your edges.


Short answer: turn it off when rendering with cycles. My video card is almost the same as yours (evga 590gtx, its a dual proc card, so the computer detects it as 2 video cards) and runs faster with cycles when not on SLI mode.


How to texture paint large objects while retaining high quality paint

UV mapping is the way you can define how the faces of a 3d mesh are placed and projected in a 2d plane (texture).

You can increase, decrease, stretch the area in the UV mapping.

You can also attach a huge "image texture" to the mesh (UV mapping helps to map 3d mesh to 2d texture), so when you paint an object you won't loose any detail.

The bigger the texture is, the mode big the UV area should be

(in newest version of blender, you can have different UV MAP / texture with different pixel density --> check this article+video: new-udim-texture-painting, bu probabily you won't need it)

here you can check how different faces have different size as UV MAP


How do I combine these two Render Layers?

First, the word is 'node' :)

Second, Ensure you're rendering transparent layers for your leaf.

Third, the Viewer node is just a shortcut to see what the image looks like after a branch of other nodes have processed a node branch. To build both of these render layers into a finished picture you'll need a Composite node. The Viewer node just gives you the background under the node tree. You can use both: just feed both the Viewer and Composite nodes the same input.

Have fun :)


Blender 2.9 weight-painting only selecting vertices rather than bones?

In order to select bones/vertex groups with Ctrl click while in weight paint mode, you have to select the rig in object mode, then shift select the mesh, then switch to weight paint mode.
If you can select only vertices and the paint isn't working, probably you have activated one of theese little buttons, which limit the action of the brush to selected vertices/faces only.


Why is part of my model black when rendering?

Ok, here is a simple way:

select the area that has black letters by pressing B and press U to unwrap and select Projection from view

Sorry for the previous answer. Did not test it through enough.


What is the Python API for moving a collection?

import bpy

C = bpy.context
D = bpy.data
S = D.scenes["Scene"]

if not D.collections.get("Background"): #Get collection by name in data, and check if None
    bg_col = D.collections.new("Background") # Create a new one if not found
    S.collection.children.link(bg_col)
    # Add it to your Scene unless you don't need to see it in your scene
else:
    bg_col = D.collections.get("Background")

bg_col.hide_viewport = True #This is not the eye icon but the monitor icon hidden


The fastest way I know to delete all the animations of an object:

Select object
Press Spacebar or F3
Type "Remove anim"
The menu item "Remove Animation" will appear.
Using keyboard, select that menu item and press Enter or
Return.

V2.8+ : Alternatively after selecting the objects, go to Object > Animation > Clear Keyframes, and click again on the prompt asking you to Remove Animation.
I do this often. I wish I knew an even faster way. This way, you only need one mouse click, to select the object.


What is the best way to reduce polycount of the leaves

In the first image the faces are 36K

but when you switch from Auto to Vector in Handle Type you can see the number of Faces reduce to 13K
you can see the difference
if it look like less ploy then you can increase the polygons of the branches in the Branch Splitting settings and modify the Curve Resolution


How to find the best place to set up the vanishing point axes in fSpy?

Fspy calculates the camera placement and field of view based on perspective, by tracing lines that would be straight and parallel in the real world, but in an image they converge towards a Vanishing Point.
So try to find the lines that give you the best sense of perspective and fspy will do the rest.
In this case the vertical lines of the building would work fine (most buildings are indeed vertical), and it gets a bit trickier on the street.
The lines you are using are setting in fspy seem too short, specially the vertical ones, extend the lines so that you trace most of the building.

Set the horizontal lines a bit further apart so that you get a better sense of the perspective.


Cannot resize the part of the object while the viewpoint is fixed at the zero point of the axis

Try to switch the pivot point (point that acts as center of rotation and scaling) from "3D cursor" to "Median point".


Dyntopo workflow + Dyntopo vs. Multires?

Something to be aware of with workflows is there isn't necessarily an objectively 'better' or 'worse' workflow. There are a number of ways to get to the same (or at least very similar) end result, so the workflow you use should be the one that fits you best, and lets you work in a way you like while giving you the best results in the least amount of time.

Now to answer your questions, there is no way to revert back to your mesh once you have started to sculpt with Dyntopo. That's known as a destructive process, as it permanently changes the structure of your mesh. However, if you have just clicked the button and haven't actually started sculpting, you may be able to use the tris to quads tool in edit mode. Select all of your faces, then press Alt+J and it will try and join the triangles into quads. Depending on your mesh this may have varying levels of success.

Dyntopo vs. Multiresolution is a subjective question. There are uses for each tool, and situations where one is better than the other. I discussed this in another question here.

To answer your final question (and just for future reference you should try to limit your questions per post to just one), the workflow used on the video isn't 'necessary' but may be the best way to achieve the best results. As for convenience, if it works better for you, then do it that way. Part of creating digital art is having fun and being able to express yourself, so you don't want to have a workflow where you're constantly fighting with your tools. Find what works best and stick with it.


There are many different ways to achieve this effect. Here is how I would go about it.

You could use metaballs, but just make the shape of the "welded part" I just used a box.

Create your "cooled off" material and mix it with your heated material. Then you will add a gradient texture and mapping node. Animate the location of the mapping node to "wipe off the hot material with the cool material".

I didnt do it here but I would also add on to the shader by animating in a transparent node so it looks like the material is being added and not already there. This is no different to what we did above except in we are just switching out a cooling down material to being transparent.

That covers the cooling off of the material, Then I would just add a separate object to shoot out the particles like below, and animate it to follow the change in material.


Using Freestyle with semi-transparent materials

Via Carlo's comment above (linking to this question), it appears that in Blender, "transparent faces are treated as opaque faces," so my setup would not work. Instead, I will separate the Freestyle layer.


My suggestion is to use the Shrinkwrap modifier. Just add it to the costume object and set the model mesh as the target object. Enable Keep Above Surface and adjust the offset value, so your costume mesh will stay above the model mesh.

With the Shrinkwrap modifier your costume mesh will follow the exact shape of the target mesh, so the mesh will be modified. But if you just want to completely cover the model without changing the costume mesh, use the Displace modifier - tweak the Strength value.


How to UV unwrap a christmas tree cookie

First off, a question; Why do you use so many overlaying faces? I was going to try and make your UV simpler for you, but after removing about 30 faces on the top side alone, I gave up and made a new one.

This one does not have the same bumps and such as you had on yours, but it's simple. No overlaying faces.

I'd suggest making a new mesh from scratch. If you want the level of detail you went for on your file, simply subdivide the mesh, and do as you will. But overlaying faces is not necessary, and it will bite you in the butt sooner or later. As you've probably experienced already.

Remember, keep meshes as complex as you absolutely have to.

If you do it as I did in in the picture below, you'll have a really easy time doing the UV and texturing.

Here is how you can easily unwrap your mesh:

EDIT: On request of the OP, here is how I made the shape of the object.
First, I made a new cube (SHIFT+A). I then pressed Z to go to wireframe mode and removed the bottom part of the cube (I could also have simply added a plane, thought of that later).
I then shaped the square to match the shape of the object the OP made.
After that, I selected two verts and extruded them with E a bit down. From there, I moved the verts to match the corners of the original object.
Repeat and repeat (Selecting the two newest verts and extruded them further down)
Making sure the verts were at the right place, I started removing the faces. After that, I selected 3-4 verst at a time and pressed F to fill a new face between the selected verts to make up the shape of the object.

Once the shape was all done, I went to the modifiers tab (The one with the wrench icon) and added a solidify and adjusted ut to give it a nice thickness.
I then proceeded to apply the material to the object, giving it the original appearance.

I never did it, but you can then TAB out of edit mode, and apply the solidify modifier to be able to select the verst on the bottom of the cookie.

Done.

Hope this helped.


Grease pencil, how do I use the shear tool?

Until Blender get an official release 2.8 cannot be dependably consistent and might change its behavior from test version to test version. Trying a new version may change all the previous methods of using it.


Why does the entire mesh move in this model?

The problem is that you have turned on Proportional Editing in the Edit Mode. You might have either pressed O or selected the icon shown in the image by accident:

You can switch it off by pressing O again or just click the icon to disable Proportional Editing.
Notice the circle that appears when you move, scale or rotate the object controls how much of the mesh should move with the select edge, vertex or face so
it doesn't move the entire mesh with it.
To put it simply, usually the tool is used to get uniform curved surfaces. You can further control the tool by clicking on the drop-down menu nearby the icon. You can control the diameter of the circle by scrolling the middle mouse button up or down. That is used to control the amount of vertices affected by it. In other words: All vertices inside the circle will be effected by the function.


Why do I get different Denoising Normal Information when exporting as HDR and EXR files?

This may very well be a bug, but even if it were not, HDR and PNG are poor choices here.

HDR is a horribly inefficient format when compared to EXR. This is doubly so when considering that an albedo represents a range of energy reflectance of a whole. That is, the primary value range for an albedo is 0% to 100%, or in normalized float terms, typically 0.0 to 1.0.

So why is HDR horrifically inefficient? The encoding scheme is dedicated to encoding much larger ranges. That trade off means fewer bits are allocated for that crucial range of values between 0.0 and 1.0. The same applies to scene radiometry as well, where the emission range frequently isn’t using up the entire bit range of HDR’s encoding scheme.

EXR is by far and above the only file format one should be using when dealing with these sorts of things. Sadly, some people are forced into other file encodings due to poor software, and have to make do with awful encodings.

This link is extremely informative for those who seek further information on the file encoding quantisations:

http://www.anyhere.com/gward/hdrenc/hdr_encodings.html


Why don't particles move with my armature?

Okay so I found a solution and maybe another beginner will have the same problem so I'm going to explain what I did:
-> Go to your Modifier Properties and place your Armature above all Particle Settings you have so that it really affects all of them
-> Then check the box "Use Modifier Stack" (Particle Properties->Emission->Source) for all your particles.
Should work now!


Textures appearing different in Edit and Object mode

You have a Decimate modifier which is removing some geometry in flat areas, messing up the UVs.

Remove (by pressing the X icon) or disable it (by pressing the camera and eye icons) and then everything will work properly:

As for mirroring, delete half of your model and then add a mirror modifier:

Note that the object origin has to be at the point you want to mirror around, so select the central loop and press ShiftS>Cursor to selected, then in object mode press CtrlShiftAltC>Origin to 3D cursor:

What this does is map mirrored faces on top of each other in the UV map (if you apply the modifier you get your complete rabbit and you can see the resulting UVs in the UV editor).


First, a little explanation of how texturing works.

The process of applying a texture to a mesh is called UVW mapping.  The result of UVW mapping an object is a set of UVW coordinates that define what parts of the texture go where on the mesh.

A texture can be thought of as a three-dimensional space with each point assigned a color.  A two-dimensional image texture can be thought of as a “solid” three-dimensional texture where the color is the same regardless of the Z position we are looking.  Looking straight at an image texture, the bottom left corner is (0, 0, 0) and the top right corner is (1, 1, 0).

The way mapping works is every point on the mesh is assigned a three dimensional UVW coordinate (for some reason the letters U, V, and W are used instead of X, Y, and Z in texturing).  This coordinate defines where in the texture blender should look to find the color for that point.

You may be wondering why we need a third (W) dimension for texturing.  This is probably because you are used to thinking of image textures (which are two-dimensional).  When you are using an image texture, it is true, the third dimension is basically ignored.  But, there is another type of texture: a procedural texture.  Procedural textures (such as noise, Voronoi, magic, etc.) are generated based on some kind of a computer algorithm or formula which need not be restricted to two-dimensions.

Now a look at the main types of texturing.

I will look at four different types of texture coordinates here: generated, unwrapped, camera, and window.  There are many other types, but these are generally the most useful, especially the first two.

Generated texture coordinates:
Generated coordinates are based on the bounding box of the object.  The bottom, left, front corner of the bounding box is assigned the coordinates (0, 0, 0) and the top, right, back corner of the bounding box is assigned the coordinates (1, 1, 1).  The UVW coordinates of each point on the object's surface are simply their coordinates in the bounding box.  Generated coordinates are most often used for procedural textures.

Unwrapped texture coordinates:
The most common and versatile way of UV mapping an object is by UV unwrapping it.  This is done by cutting up the mesh of the object with seams along the edges.  The cut out pieces of the object (called islands) are then flattened out (the flattened out version of the object is called a pelt or a UV map) and further adjusted to fix distortions.  This is typically done just for two-dimensional textures as the W (Z depth) coordinate of all points will always be 0 since you are flattening the object out.

Camera texture coordinates:
Camera texture coordinates are based on the object's position relative to the camera.  The origin of this coordinate system is the location of the camera and the U, V, and W axes are parallel to the camera's local X, Y, and Z axes.  This is typically used for lining up the texture with the camera-plane; i.e. the texture will be “squared” with the camera's view.

Window texture coordinates:
Window texture coordinates produce a similar (but not identical) result to camera coordinates, but in a different way.  Window coordinates are based on the viewing window.  They, like unwrapped coordinates, produce no W coordinates (W is always 0).  The U and V coordinates of a point on the surface of the mesh are equal to the coordinates of that point on the view screen/window.  With the bottom left corner of the screen being (0, 0) and the top right being (1, 1).  The main distinctions from camera coordinates is that window coordinates are always 0 in the W direction, and are stretched based on the aspect ratio of the final render (since the top right corner is always 1, 1).


Moving object based on real world time in blender

Just in case someone is looking for something similar - After some digging I worked out what I need
import bpy
from datetime import datetime
then = datetime(2020, 1, 1, 0, 0, 0)        # Random date in the past
now  = datetime.now()                         # Now
duration = now - then                         # For build-in functions
duration_in_s = duration.total_seconds()
hours = divmod(duration_in_s, 3600)[0]
minutes = divmod(duration_in_s, 60)[0]
days  = divmod(duration_in_s, 86400)[0]

cube = bpy.data.objects["Cube"]
cube.location.x = minutes

Still not sure how to make it update automatically but this is good enough for my needs.


An effect like this can indeed be obtained with the Cycles modifier:

(green curve: linear forward (Y+) motion; blue curve: oscillating up-and-down motion with a net downwards (Z-) displacement over time)
Just edit your basic step making sure that its first and last keyframe are offset (vertically) from each other, then set the Cycles modifier setting "After:" to "Repeat with offset".

A limitation of this method is that you can't easily change the steepness of the hill over time.
If you want more control
If you want more control over the velocity, the steepness, etc, you can use a different method. You will need two objects: your Camera and an Empty.

Assign the "walking" motion (just up and down, no net displacement) to the the camera (as you've already done)
keyframe the Empty so that it follows the profile of the hill at the desired pace
Place them on the same position at frame 0, then select the camera and the empty (order matters!) and parent the former to the latter using Ctrl+P > "Set Parent to: Object".


Why do I get “baking map saved to internal image, save it externally or pack it” when baking with baking type combine? What does it mean?

It means that the bake worked, now you need to save the image that the bake has created, open the Image Editor or UV Editor and either pack it into the blend file itself or save it in a folder:


How do I get the bounding box of all objects in a scene

Bounding box coords of all meshes in scene.
Pretty sure this has been answered before, but finding it is another matter.
Here is some numpy code I use to create a bounding box for all mesh objects in a scene
Basically, list coordinates of all bounding box coordinates of all mesh objects in the scene.
Use the  minima / maxima of each axis produce an axis aligned bounding box encompassing all others.
import bpy
from mathutils import Vector
from bpy import context
import numpy as np
import itertools

# multiply 3d coord list by matrix
def np_matmul_coords(coords, matrix, space=None):
    M = (space @ matrix @ space.inverted()
         if space else matrix).transposed()
    ones = np.ones((coords.shape[0], 1))
    coords4d = np.hstack((coords, ones))

    return np.dot(coords4d, M)[:,:-1]
    return coords4d[:,:-1]

# get the global coordinates of all object bounding box corners
coords = np.vstack(
    tuple(np_matmul_coords(np.array(o.bound_box), o.matrix_world.copy())
         for o in
            context.scene.objects
            if o.type == 'MESH'
            )
        )
print("#" * 72)
# bottom front left (all the mins)
bfl = coords.min(axis=0)
# top back right
tbr = coords.max(axis=0)
G  = np.array((bfl, tbr)).T
# bound box coords ie the 8 combinations of bfl tbr.
bbc = [i for i in itertools.product(*G)]
print(np.array(bbc))


And it took awhile, but the answer is right there in your screen shot - you have loaded your image canvas as your brush texture, so as you paint it becomes your brush projected onto itself.

Your image needs only to be loaded as your material texture slot, not in the brush. Load something else as the image in that brush texture and you will then see it repeated along the surface....


Edge Loop is discontinuous, doesn't go over a face

The edge loop stops because the next face has 6 vertices.
Edge loops ONLY travel through faces with exactly 4 vertices (aka quads).
You can connect the two vertices in the middle vertically by selecting both and pressing J. Then the loop will travel all the way through.


How to rotate/duplicate a curve around another curve object in 2.8?

Add an Empty at the center of the wheel.

Set the array modifier to use the empty as Object Offset.

Set the relative offset to $0$ in all axis.

Rotate the empty to taste.


is it possible to make a setting enabled by default?

Short answer no.

Well not really, the closest thing you could get this would be...

Define your own operator in Python which calls the regular operator and makes some adjustments after.
Modify the defaults in Blender's source code (ok, this isn't a real solution, just noting that its possible and not that hard if you build blender already)

Both are clunky workarounds.


Is there a way to remove "input sockets" from a custom node group?

Yes, Edit your group and expand the N-menu in the material nodes windows and select the socket you want to remove. Then press the X beside the name.


Add custom hotkey for existing addon fuction in the keymap editor

Right click on the button, and use "assign shortcut":

It will be saved in your settings and available for the next sessions.


Are you using a texture or a brush mask texture? That could be what is happening, but can't see the rest of your settings for the brush.


Is it possible to store rigid body cached/baked data into an external folder?

No, there is no option to bake to external cache.

The workaround would be to convert simulation into an Action: Viewport header > Object > Animation > Bake Action (turn visual keying on).

You can store this action in another .blend to link it somewhere later, or in another file format you can import where you like.

If you want to simulate in chunks, you will have to animate the Animated tag under Rigid Body settings to control till which point is the last Action and where the simulation continues.


Why does the dope sheet use (inconsistent) white for unselected / deselected?

It is set that way as they are the colours that were chosen.

You can change both selected and deselected colours in the theme settings if you feel other colours work better. We can't set a transparency with the keyframes but if you set it the same as the background colour then only the border is seen to make it appear hollow. The keyframe border below the keyframe colours is the outline of the marker.


How do I get my renders to not antialias with the background? (Cycles)

How about this? See my attached screenshot. Rendered in cycles.
It is a very easy compositing node tree.

Is this what you expect? Antialiasing inside objects, but aliasing outside. Works with transparent background only.

Best wishes
Chris


How do I create a widget for my armature

This could be one way to create a custom shape to control your bones: create a custom bone. https://youtu.be/6aRdurh30f0?t=1m9s

However, I'm sure you're more interested in this way, creating a custom shape that can control an aspect of a bone (like how the arrows in your image control the rotation of the door). https://youtu.be/8-IkdjzyJMQ?t=23m4s

Hope this helps!


Keying node removing everything but the green screen


Blender 2.76 AO bake partial black spots

Possible cause n°1

Some of your top faces normals are probably pointing inward, so is taking in account the inside of the pumpking and not the outside in the face-proximity calculation.

I would firtstly try to Recalculate Normals by selecting all the faces with A while in Edit mode and then press Ctrl+N.

You can display the normal vector of each face with the option you can see in the Property panel, in the Mesh Display section.

Possible cause n°2

One of your renderable objects in the scene is partially overlapped with some faces of the object you are trying to bake. Baking process takes into account also the objects in the neighborhood.


How do I make incremental value changes in microns?

You may use an Empty (Image) for your background image (Add-->Empty-->Image). In the Empty panel of the Data header you have the same settings as for the Background Images panel of the properties shelf.

In the Scene header set the units to Metric.

Now you can input a precise value to translate the image.


Hotkey to navigate scenes in Blender 2.8?


Paint fill with grease pencil without using textures to produce halftone affect

Unfortunately it is not possible to use procedural textures in Grease Pencil fills. I read that is is planned but definitely not a priority right now.
When I needed to use hatches for Grease Pencil objects I created a script to automatically populate Textures with different hatch patterns (Squares, Bands, Discs). It could be expanded to add other patterns. Maybe this can help :
"""
Running this script will create arrays of images
Which can then be used as "Textures" in Grease Pencil materials
Each array features varying sizes of shapes
Currently there are Disc, Squares and Stripes.
"""

import bpy

def generate_img_shape(size, name, is_in_shape):
    image = bpy.data.images.get(name)
    if image is None:
        image = bpy.data.images.new(name, width=size[0], height=size[1])
    else:
        image.generated_width = size[0]
        image.generated_height = size[1]
    image.file_format = 'PNG'

    pixels = [None] * (size[0] * size[1])

    for x in range(size[0]):
        for y in range(size[1]):
            pixels[(y * size[0]) + x] = is_in_shape(x, y)

    pixels = [v for v in pixels for _ in range(4)]

    image.pixels = pixels

if __name__ == "__main__":
    size = 150, 150
    middle_x = size[0] / 2
    middle_y = size[1] / 2

    # Generate patterns with 10%, 20%, 30%, 40% and 49% fill :
    for rad, rad_size in zip((0.1, 0.2, 0.3, 0.4, 0.49), ("10", "20", "30", "40", "50")):
        radius_squared = (rad * min(size[0], size[1])) ** 2
        # Disc patterns :
        generate_img_shape(size, "GP_HATCH_DISC_" + rad_size + ".png", lambda x, y: int(((x - middle_x) ** 2 + (y - middle_y) ** 2) < radius_squared))

        # Square patterns :
        generate_img_shape(
            size,
            "GP_HATCH_SQUARE_" + rad_size + ".png",
            lambda x, y:
                int(
                    (x - middle_x) ** 2 < radius_squared and
                    (y - middle_y) ** 2 < radius_squared
                )
        )

        # Band patterns :
        generate_img_shape(
            size,
            "GP_HATCH_BAND_" + rad_size + ".png",
            lambda x, y:
                int(
                    (x - middle_x) ** 2 < radius_squared
                )
        )

How to run a script in blender.
Note : You may need to run the script twice for the textures to register properly. No idea why but it may be an oversight in my script.
Note 2 : You have to be in Material Preview or Rendered Mode to see the Textures.

Result :


Driver constraint addon error when it is applied : property has not been found

you made a little mistake in the process of setting up the driver.

You need to copy the datapath of the value. Not the shapekey name. You need to rightclick on the digits and then copy the datapath.

That should do the trick. Then the addon should recognize that you want to key the shapekey value.


Setting sun direction on sky texture with an empty

Sun direction in the sky texture node uses values of normalized vector that can be taken directly from World Matrix.

X value - matrix_world[2][0]
Y value - matrix_world[2][1]
Z value - matrix_world[2][2]


I don't know when I should use texture properties tab

The textures tab is almost a holdover from before 2.8, when it was used for Blender Render textures.  In modern versions, it's still used for creating textures for use with some modifiers (like a displace) and for defining brushes for use with texture painting or sculpting.  It's not used for any materials.


Can I fix broken shape keys after editing basis?

You don't need to delete and recreate the entire shape keys, just fix the points that have changed.

In edit mode, Mesh -> Vertices -> Blend From Shape is useful here.  It copies the positions of selected vertices from one shape key to another, so you can select just the vertices you've changed and copy them to keys where they're broken.  You generally want to turn off the "Add" checkbox when using the Blend, so it copies the positions directly rather than offsetting them.


It's pretty simple to set up text at the bottom of the circle. Just duplicate the top text and circle curve.

Then move the text down until it fits the inside of the bottom of the circle. At this point the text will be in the right place but will be reversed. You just need to scale with -1 on the axis the text is on (x axis in my screenshot).


The Replicate Matrices Node can be used, for instance, I can replicate a group of circularly distributed matrices on another group of circularly distributed matrices as follows:

This can be understood by viewing both inputs. You see that the blue matrices were copied and transformed to each of the green matrices:


I believe he thinks you have connect the image texture in the nodes(leading to remove other textures) to another that's not the case just add it somewhere in it that's all.

Go to each material in the node setting and just shift-a > texture > image texture and link the unwrapped texture to it done.


Gray polygon appears in render/camera view but not user perspective

The grey 'polygon' you see is the background colour. What is happening is your camera clipping end distance is set too low. So any geometry beyond the clip distance is not rendered. Resulting in what you see above.

To fix, simply select the camera and set the Clip distance to a higher value.


Made it work. I just needed to go to Vertex mode and select the two vertices that join the body and the wing. Then from Vertex menu (Ctrl + V), choose Rip.


You could do it this way:

You can try to convert your picture in Illustrator, then import as a SVG, then convert curve to mesh. Give it thickness with an extrusion, then use the Remesh modifier to give it a good topology. Modifier settings: disable Remove Disconnected Pieces, Mode : Sharp, Octree Depth : 8, Scale : 0.3, Sharpness : 1  .
If the result is too messy, recreate your ornemental shape from scratch with your model as a Background Image.
Give your ornement mesh a thickness with two successive extrusions on the Z axis. The first extrusion must be thin as you'll later use a Subdivision Surface modifier.
Create a plane, subdivide it to make a grid.
Give your ornement a Surface Deform modifier, choose the grid as the Target and click Bind.
Give your grid a Shrinkwrap modifier and choose the helmet as your Target. Now your ornement should stick to the helmet. Play with the Shrinkwrap Offset if necessary.
Give your ornement a Subdivision Surface modifier to smooth the shape, also, click on Shading > Smooth on the left menu of your 3D view (activated with T).

When you have finished you can choose to Bake this helmet in order to fake the ornement in the Material with a Normal map.


Do plugins/APIs exist to edit blender-python-scripts in Intellij IDEA?

You can certainly use an external IDE to create your add-ons. Since an add-on is just a (bunch of) text file(s), it doesn't matter what you use to write them.

IntelliJ probably won't be able to find the bpy module, so expect some red squigglies.


You can restore the factory defaults by clicking: File > Load Factory Settings.

Then press ctrl+U for the default


After some playing around, I've identified my mistake. The XYZ coordinates under 'Mapping' in the texture properties were different for the distorted textures. I corrected these so that the order of the XYZ is the same for all textures. The image now renders correctly.

Example:

Bricks (distorted) was:

Roof (not distorted) was:


How do I make coordinates relate to global values?

I'm not sure what you mean by "transform menu at the bottom left".

When I translate a vertex of a mesh object while in Edit Mode, the Translate Operator is invoked and its properties are editable in the lower portion of the tool panel. Because the translation moves a vertex, the translation vector displayed here is the delta (the difference between the original position and the new position; the amount the vertex was moved.)

However in the upper right is the Transform Panel which displays the location of the current vertex, and this panel can be set to display either the Global or Local coordinates of the selected vertex, which sounds like what you want.

Does that help at all?


Image Texture box mapping - offsetting vectors on opposite sides?

Geometry > Normal socket is the way.

If you separate the vector components with a Separate XYZ node you can use the desired axis as mask for combining whatever you like (colors, textures, even shaders).

Use use the desired axis as input for the Factor socket of a color mix node. Then plug whatever you want on each color input. In your case just use the same image texture node with different vector input for coordinates.

With a Vector Mapping you can transform it however you see fit independently.
I added an additional Vector Mapping node because the Normal output of the Geometry Node is in Worldspace, meaning if you moved or rotated the mesh it would always point to the same global side.

The image illustrates the same cube object viewed from different sides in two separate viewports.


I might have had a similar scenario a few days ago, though I think a bit more info would help. What happens is that you have to make sure that you have actively selected the marker that you will assign the camera to (the marker should be glowing orange). If you don't do this, it will just assign the camera to whichever marker is currently selected (in your screenshot that would be the first marker), overwriting any previous assignments of other cameras.


There is no join mode. When you join two mesh objects, they become one. The one that's last selected, the active one, survives, keeps it's values, the location of the object origin, rotation, etc. The other simply ceases to exist. It's mesh is integrated into the active object's mesh. There is no 'smashed vase' mode that you can leave to unsmash the vase.

A mesh can contain any number of unconnected mesh parts. Doesn't mean they are separate objects, not even separate meshes, just separate parts of a single mesh datablock. A single mesh can be a million faces, none of which touch each other.

You can select the sphere and hit P to seParate and remove it into its own object, but that creates a new object for the sphere to be in. It doesn't undo your joining. Join is a slightly destructive operation.

If you seParate a sphere, it might be useful to also change the object origin by setting it to geometry in the tools panel on the left.


A Python controller describes the operations within a single point in time (logic frame).

This means your code performs all turns at the same point in time. The render will take place after your look completed (regardless how long your loop takes).

Animations are (change) operations over time. That means your Python controller should perform a single turn, rather than all turns. You execute the controller as long as you want the animation to take place.

Example:

def rotar(obj, sentido):
velocity = 2
if velocity < initialVelocity:
    obj.applyRotation((0,0, sentido*velocity), True)
    velocity = velocity/1.5
    print(obj.worldOrientation.to_euler().z)

(Replaced while with if in your sample)

Continual animation

While the above code performs the behavior of a single frame you need behavior at an higher abstraction.

E.g. you want:

when pressing a key

determine the final orientation
start turning

when the orientation reaches the final orientation

end turning

while turning

rotate on step towards the final orientation

You might discover a slight issue: what happens when the final step is too much? Means: the last step exceeds the final orientation.

As described the object will start shaking as it turns left/right all the time.

Solutions:

stop before the final orientation is reached (it never exceeds, but
might not match the final orientation)
stop after exceeding the final orientation (it will exceed unless it hits the final orientation)
when the last step is larger than the necessary step size immediately apply the final orientation (this will always lead to the final orientation, but the steps are not necessarily of the same size).


Rotate object or move object to certain position by clicking custom UI button

I put together a small addon for you:

bl_info = {
    "name": "Move & rotate",
    "blender": (2, 80, 0),
    "location": "VIEW_3D > Tools > Move and rotate"
    }

import bpy
from bpy.types import (Panel,Operator,AddonPreferences,PropertyGroup)

xyz_rot = (0,0,0)
xyz_loc = (1,1,1)

class MYADDON_OT_rotate_obj(bpy.types.Operator):
    """rotate the obj"""
    bl_idname = "myops.rotate_obj"
    bl_label = "rotate_obj"

    def execute(self, context):
        #convert degrees to radians
        x = xyz_rot[0]*pi/180
        y = xyz_rot[1]*pi/180
        z = xyz_rot[2]*pi/180
        xyz_rot = (x,y,z)

        #Rotates all the selected objects: if you know the name of the obj you want to rotate use
        #bpy.data.objects["Robot_Arm_Lower"].rotation_euler = xyz_rot
        for obj in bpy.context.selected_objects:
            obj.rotation_euler = xyz_rot
        return {'FINISHED'}

class MYADDON_OT_move_obj(bpy.types.Operator):
    """move the obj"""
    bl_idname = "myops.move_obj"
    bl_label = "move_obj"

    def execute(self, context):
        #moves all the selected objects: if you know the name of the obj you want to move use
        #bpy.data.objects["Robot_Arm_Lower"].location = xyz_loc
        for obj in bpy.context.selected_objects:
            obj.location = xyz_loc
        return {'FINISHED'}
#-------------------UI-----------------------------------------------------

class MYOPS_PT_move_obj(bpy.types.Panel):
    """Creates a Panel in the Tool tab"""
    bl_label = "Rotate & Move"
    bl_idname = "MYOPS_PT_move_obj_ui"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Rotate & move"
    bl_context = "objectmode"

    @classmethod
    def poll(self,context):
        return True

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

        #Label
        layout.operator("myops.rotate_obj", text = "Rotate")
        layout.operator("myops.move_obj", text = "Move")

#-------------REGISTRATION--------------------
classes = (
    MYADDON_OT_rotate_obj,
    MYADDON_OT_move_obj,
    ROTATE_MOVE_PT_tool,
)

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()
    #Sometimes i get some registration errors when debugging an addon. If you get the same error try uncommenting the following lines
    #unregister()
    #register()

you may want to modify it to fit your needs: for example you may want to create 2 sliders to control the xyz_rot and xyz_loc from the UI without having to re-run the addon (btw, you don't need to install it from the user preferences like normal addons, you can just use it like a script if you want).

the addon/script creates a panel in the tool tab, but feel free to move it where you want

EDIT

As you mention in the comment you are running Blender 2.79b and you don't know how to use python, so you could try to use the following script:

import bpy
from math import pi

#change your parameters here
move = True          #If "True" the objects move: write "False" to disable it
rotate = True        #If "True" the objects rotate: write "False" to disable it
xyz_rot = (0,0,0)    #What rotation you want your objects to have (in degrees)
xyz_loc = (1,1,1)    #What position you want your objects to have
objName = ""         #The name of the object you want to move/rotate, if you need to move one object only.
#                     If you leave it as "" the script will move/rotate all the selected objects. (Recommended)

# ------------- CODE ----------------
#Rotates all the selected objects (or the desired object if objName is not "")
if rotate:
    #convert degrees to radians
    x = xyz_rot[0]*pi/180
    y = xyz_rot[1]*pi/180
    z = xyz_rot[2]*pi/180
    xyz_rot = (x,y,z)

    if objName == "":
        for obj in bpy.context.selected_objects:
            obj.rotation_euler = xyz_rot
    else:
        bpy.data.objects[objName].rotation_euler = xyz_rot

#Moves all the selected objects (or the desired object if objName is not "")
if move:
    if objName == "":
        for obj in bpy.context.selected_objects:
            obj.location = xyz_loc
    else:
        bpy.data.objects[objName].location = xyz_loc

To run it, just paste it in the text editor, play with the parameters at the top and hit the "run script" button.

Every time you run it the selected objects (or the object you put in objName) will rotate and/or move based on the two flags ("move" and "rotate") and the two "xyz_loc" and "xyz_rot".

This should work both in 2.79 and 2.80, but you don't get the fancy panel and buttons of the precedent code


What does the Mantaflow 'time' setting for noise do?

My understanding is that the time factor basically acts as a control for the coordinates of the noise. So it just changes the position and look of the noise, but not really related to time in the sense of how the noise behaves over time.


How do I grab the active texture on a face in python?

This script will print the names of the the textures assigned to the various materials on the selected objects:

import bpy, bmesh

C = bpy.context
for o in C.selected_objects:
        bm = bmesh.new()
        bm.from_mesh( o.data )
        for f in bm.faces:
            mat = o.material_slots[ f.material_index ].material
            if C.scene.render.engine == 'BLENDER_RENDER':
                for textureName in [ ts.texture.name for ts in mat.texture_slots if ts ]:
                    print( "material_index_{mi}.texture_name_{tn}".format(
                        mi = f.material_index,
                        tn = textureName
                    ) )
            if C.scene.render.engine == 'CYCLES':
                for textureName in [ n.name for n in mat.node_tree.nodes if 'TEX' in n.type ]:
                    print( "material_index_{mi}.texture_name_{tn}".format(
                        mi = f.material_index,
                        tn = textureName
                    ) )
        bm.free

It will print it in the format of "material_index_X.texture_name_Y" (where X is the material index, and Y is the texture name).

You can of course use the texture slot index, rather than the texture name. Or what might be even more intersting, the image path assigned to the image texture you might be using (accessible through texture.image.filepath).


How can I make an object spin without slowing down?

In the graph editor, hit T and select Linear interpolation


Is it possible to export a single object from an entire scene?

Yes , most exporters have the option to only export selected objects.

You can find this option under File -> Export -> <your exporter>, e.g. STL or OBJ. The relevant checkbox is "Selection Only".


Using Shapekeys in Unity after exporting FBX from Blender

I tried my plan B and simply imported the .blend file instead of the .fbx file since I assumed the exporter was modifying each shapekey. My hypothesis may be correct since the error is subtle to a point of negligibility (unless I activate more than 5 shapekeys at once). I consider this a solution: simply import the .blend instead of exporting a .fbx and re-importing it to unity.


Right click on the line that divides the two windows (See picture below)
Click "join area"
Mouse over the area you want to be deleted and click


Duplicate linked (alt d, or "duplicate objects" operation with "linked" enabled in operator panel)  should work.  I can't say why it's not working for you, not without a file and procedures to follow that don't do what you expect.
However, there is something else that you can do, which is to simply change the geometry that an object refers to.  If you select an object and look at properties/object data, the very first thing on the tab is a drop-down that specifies which geometry is used for the object.  You can assign any (mesh) object any geometry datablock that exists in your scene.  At that point, the geometry is linked:

There's no master object for linked meshes; editing any of them should edit all of them.  Note that some things, like shapekey values, are still per-object, so you can edit a shapekey for the linked mesh data and then choose to use it or not on a per-object basis-- perhaps this is what was giving you trouble?  Editing a shapekey?
Linking modifiers isn't the same thing as linking mesh data.  It's basically a "copy modifiers" operation, and future changes made to one won't affect the others.


Reload startup file Ctrl-N (or any file, actually) not containing the corrupted screen layout. Reopen the problematic file but clear Load UI checkbox, under Open Blender File settings group in the file open dialog. Then save the file.

With Load UI unchecked, Blender will reuse UI settings from previously opened file, for the file to be loaded.


Fatal Python error in debug mode: Py_Initialize()

Ok, I solved it! The main problem is compatibility Python's precompiled limbrary, which is provided from SVN and local Python which we have on machine. In my case it's main points a compiling Blender:

1) Follow this instruction. https://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake

2) Disable firewall.

3) Start ANY application (especially *.bat) from instruction with admin privilege.

4) I use Cmake manual setup and placed build folder(BlenderBuild) separately to source folder, disable any stuff except Python, and set INSTALL folder manually in "..BlenderBuild\bin" folder.

5) Make sure which Python version was provided in INSTALL path and install the corresponding version on your computer. If you had Python before you may have a problem with system variables. In my case i delete old 2.7 version and clear Python's path in "Path" variables, install 3.5.2150 version. That's it. No PYTHONPATH and etc.. Restart computer.

6) Open Blender.sln in MSVC2013 and built whole solution, then built only INSTALL (I had problems here before). Set blender project as start up, and start debug (here was too). Everything should be OK!)


Procedurally generated parking spots.

I've made this one just for fun. It probably would be easier just to make mask in some vector app like Inkscape or Illustrator then mix materials by it, but lets stick to pure Blender Cycles solution. This method is from an artist approach, there is a better solution for this shapes for sure but I don't know Node-fu as good to generate them by math.

Final:

Setup:

Breakdown:

Stripes.

Mask.

Final thoughts:

Even if it is looking complicated it is just stacking simple things like Gradient texture and Wave texture on top of each other and using this mix as a Mask for textures. I really don't know how to be more precise with it so any questions are welcome and I will extend this answer as needed.


How can I convert a file with the command line?

According to the wiki, it is possible to convert (link is just an example, not specific to the formats you mentioned) via the command line. However, I'm not so certain (seeing as I haven't tested this) if you can convert between non-native formats.

I believe you would need to use the script to import VRML, then subsequently the script to export FBX.

If you are looking to automate the process, you could write a script that runs these commands sequentially:

#!/bin/sh
exec blender foobar.vrml --background --python name_of_import_plugin.py -- foobar.blend
exec blender foobar.blend --background --python name_of_fbx_export_plugin.py foobar.fbx

Please note you'd need to edit the above code, and I have not tested this, but in theory it should work.


Motion tracking image missing in other computer

Image sequences or video used for motion tracking can't be packed into the .blend file.

You need to copy the image sequence or video to the new computer. On the new computer you need to reload the footage.


I'm putting my comment here to add images to better explain what I found.

I tried briefly the same tutorial, now.

I'm rendering the result of my short test, I'll post it here soon.
edit: here it is

left is with basic diffuse ground plane, right is identical but with glossy ground plane: look at the difference... note: I didn't even add a world hdr, and not even the "fluid" inside... all could add to the result.

Although render settings in the tut seem to be not disclosed, I think your glass shows a somewhat dim lighting, almost no reflections... why didn't you set the emissions planes off camera?

but mostly the mesh seems to have a weird bottom, and seems to have almost no depth... did you follow closely the modeling workflow?

Look at this image, which I got after bisecting (it is an edit mode tool) your mesh to make more visible the inside...

I'm sure you've never seen a glass like this...

here is my attempt in comparison:


How to create a realistic tooth enamel material?

(this is a converted comment)

Good results can be done with tooth geometries that consist of 2 surfaces: dentin (refraction 1,45) and enamel (refraction 1.7).

The tooth is an anisotropic volume with numerous layers non of which is actualy solid.

Front-lit:

Back-lit:

Can you give us some dental scan or something? That way I can do some tests in the evening.

It should be mix of sss and transparent for the enamel with glossy on surface and yellow tinted volume absorption for dentin.

This should yield what you want. Adding the refraction and anisotropic element should also help but maybe that will be just an overkill..


Emboss or deboss a more complex logo into a mesh

Here's a quick guide for doing it with microdisplacement. Note this won't work for you if you actually need a good mesh, but it'll give a result similar to your reference image.

1) Enable Blender's experimental feature set:

2) Add a new Cycles materal, and set its displacement method to True:

3) Add a subsurf modifier; select Simple, and enable adaptive rendering:

4) From edit mode, select all vertices and unwrap the plane (U):

5) In an image editor, threshold your logo and blur it a bit:

6) Add the image texture to the displacement at your material output node:

The result should look something like this:


Global switch for grease pencil effects?

I couldn't find a global switch but as a workaround, switching all viewports shading's to solid does disable the effects in the viewport and speeds up playback. Not perfect since it changes the way materials/shadings are displayed, but at least it doesn't alter greasepencil objects.


From this base figure:

We can place a Bezier curve:

And add a screw modifier to it (360 degrees with 3 steps):

And add an empty as pivot point for the modifier, then move it up until triangles are aligned:

You can play with the curve resolution to vary the amount of triangles.

To render it after that (did not pay attention to the edit mode above):

Convert the result to a mesh and add a wireframe modifier with a low thickness:


Actually yes. It took me a while. Normal mapping is going to be one of the hardest things to do right. With a multi object, model you can explode the mesh and use displacement modifier cages. I don't think this model can do that though, not easily anyways, its a smooth organic and the cage might need a lot of tweaking..

I dont know if you could rig and pose the model in order to create a cage for the small areas like the toes armpits and groin. If you used a displace modifier to create a cage those sinchy areas would be toughest. You might have to fineagal the cage mesh for a better bake. I could be very wrong here, im still a novice. From what I've seen you may need to manually paint those problem areas in the normal map in GIMP. I wouldnt even know where to begin with that. Characters are kind of hard. If this was an object you could split it into parts and bake easily.

Please don't throw me in an oven if someone more experienced blows my suggestions out of the water.

On udemy theres a 3dcoat and blender tutorial on making a sword. It does an amazing job describing the normal map bake process.

https://www.udemy.com/intermediate-game-asset-creation-3d-modeling-in-blender/learn/v4/overview


You can use a glossy/diffuse mix with the fresnel or layer weight node as the mix factor. This is basically the same thing as the glass shader, but without any transmission. You can actually remove the diffuse shader entirely and leave the first input blank if you want. It'll be a bit less realistic but you get a darker black.


Scale object to match bounding box python

The bounding box corresponds to a property named 'dimensions'.

So, take the dimensions of each (eventually converted to world coordinates as in your blend file, objects are rotated), calculate the ratio and scale Suzanne by the ratio:

Edit following the comments:

We don't use the world matrix directly, as we only need the rotation part, because the dimensions are already scaled (as said by batFINGER in the comments). So we keep the quaternion.

The abs() is used because the rotations may return a negative value (and we don't want that for dimensions)

Script for Blender 2.79 and below

import bpy

suz = bpy.data.objects['Suzanne']
arm = bpy.data.objects['Armature']

#Convert to world coordinates if you want to use world Y
suzBound = suz.matrix_world.to_quaternion() * suz.dimensions
armBound = arm.matrix_world.to_quaternion() * arm.dimensions

ratio = abs(armBound.y) / abs(suzBound.y)

suz.scale *= ratio

Script for Blender 2.80 and above

import bpy

suz = bpy.data.objects['Suzanne']
arm = bpy.data.objects['Armature']

# Convert to world coordinates if you want to use world Y
# We now use @ instead of * as per https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API#Matrix_Multiplication
suzBound = suz.matrix_world.to_quaternion() @ suz.dimensions
armBound = arm.matrix_world.to_quaternion() @ arm.dimensions

ratio = abs(armBound.y) / abs(suzBound.y)

suz.scale *= ratio

End of the edit

Just for your information, note that we are talking about bounding boxes here. If the object were rotated differently, that is different than talking about their size along an axis.
For instance, this size:


How to cut holes in the back of a curved surface whilst retaining smoothness?

There are a lot of different ways to go about doing something like this, but at the end of the day you need to arrive at a situation where you have enough geometry to support both the holes and retain smooth shading. This basically means a ring of quads around each of the holes.

Here is one way of going about this. Start with your shape. In this case I created an oblate hemisphere with 16 segments, twice the desired number of holes. This will depend on your desired mesh density in the end, though.

Select each of the vertices that are going to become holes, and bevel them:
CTRL + B, then V to bevel just vertices. You want your bevel Profile to be ~0.125. The number of segments is again going to depend on what you want from your geometry in the end.

After running the bevel, go to LoopTools (in the context menu) > Circle, to make the holes more circular.

Set your pivot point to Individual Origins, and extrude the selected faces in to create your holes. You can delete them or whatever, afterwards, as suits your needs.

Select the edges that surround your holes. A quick way to do this is to select the edges around one hole, SHIFT + G > Face Angles. Bevel these edges slightly to create your supporting geometry. Use Segements: 2, Profile 1.0.

Now all that remains to to connect up your geometry so that you get back to quads. How you do this will depend on your initial mesh geometry, and the number of segments you used when beveling vertices into holes. The numbers I suggested make this relatively simple. Throw on a subdivision surface to test the result.

Another option entirely is to use inset I, LoopTools > Circle and extrude to create your holes. This gives you a lot more options in terms of geometry. You can select larger or smaller amounts of initial faces, resulting in different amounts of geometry around your holes.

Optionally, if you have a high poly version of your original shape, you can shrinkwrap the new version with holes down onto it, which can in some cases improve the smoothness of the curvature some.


The reason there is a gap is because when you use a modifier, the mesh editor is not aware of the other faces, and therefore they are not joined. As a result the face will behave like it is not connected. To get the behavior you desire, you will need to extrude by scaling.

Select the vertex at the center of your mesh
hit Shift-S>Cursor to selected
Set the pivot point to 3D cursor. (.)
Hit E to extrude, then S to scale, and Shift-Z to stop it from expanding vertically. Scale to taste.

Gif:

Note: There will be interior faces on the sides of your new extrusion, it would probably be best to remove them.


Add them in Object Mode not in Edit Mode. You can also select the vertices of one of the objects in Edit Mode and press P, to make a new object from the selection.


Armature completely destroys model upon moving bone

It is because automatic weights not always works good. Sometimes, especially if you have multi-part mesh you need to edit vertex groups manually:

until more suitable result


Browse button in StringProperty FILE_PATH not working

You can't open the File / Directory view when the invoke_props_dialog itself is open, it's a blocking dialogue. I think this is mentioned in the documentation. (i'll try to find it and link here)


rename all children objects with prefix from parent

import bpy

current_object = bpy.data.objects
i = 0
for ob in bpy.context.scene.objects:
    # check if parent exist
    existing_parent = current_object[ob.name].parent
    if existing_parent:
        # check if it has been already renamed from parent
        if not current_object[ob.name].parent.name == current_object[ob.name].name.split('.')[0]:
        # change the name of the object to the name of parent
            current_object[ob.name].name = existing_parent.name + '_' + str(i).zfill(2)
            print(ob.name, existing_parent.name)
            i += 1
        else:
            print('nothing to do')

this script renames the objects in the scene according to their parent. if they share already the same name (meaning probably it has been already renamed) it does nothing. far from by polished though as for know it adds a numerical sequence to all the scene not per object.


How to trim the jagged edges off of this solid

Try applying a solidify modifier to your cylinder prior to adding your boolean modifier to the terrain object.

For me, I have better luck with the boolean modifier when there is thickness to the extracting mesh.


After a lot of trial and error I went back to version 2.8 and everything worked fine. It seems like a much more stable version for doing this sort of simulation.


Why my blender layout area appears a mark like hourglass? and how to close it

Just tap W again and it disappears.
With W you just change the selection mode.


Why is "Copy Data Path" path different from the tooltip's path?

Copy Data Path

From
https://www.blender.org/api/blender_python_api_2_77_release/bpy.types.bpy_struct.html?highlight=id_data#bpy.types.bpy_struct.id_data

  Note that when keying data paths which contain nested properties this must be done from the ID subclass, in this case the Armature rather than the bone.

Or in the case you pointed out from the scene rather than the strip.

To explain using the console, I have a vid seq called blackfoot, it tells me its id_data is the scene. (The bit you mentioned as "left out")

>>> C.scene.sequence_editor.sequences_all['blackfoot'].id_data
bpy.data.scenes['Scene']

Ok now look at frame_start property

>>> C.scene.sequence_editor.sequences_all['blackfoot'].frame_start
1

>>> C.scene.sequence_editor.sequences_all['blackfoot'].path_resolve('frame_start')
1

>>> C.scene.sequence_editor.sequences_all['blackfoot'].path_from_id('frame_start')
'sequence_editor.sequences_all["blackfoot"].frame_start'

The last one looks familiar, it's what you get when you copy data_path, ie the path from the ID data.

Using

context = bpy.context
scene = context.scene
sequences = scene.sequence_editor.sequences_all

is just IMO good coding practice making the code much more readable

sequences['blackfoot'].frame_start = 1

than

bpy.data.scenes['Scene'].sequence_editor.sequences_all['blackfoot'].frame_start = 1

NB. I also use context = bpy.context in test files, to make pasting them into operator or panel code later simple as context is passed by def to just about all methods.


Dont use the reconstruction tool for that type of tracking, use the solve camera motion. Then use one tracker as a origin, three trackers as a plane and two as axis.


Problem subdividing edge loop in a model

Why it happens:

When you subdivided the top loop, two things happened:

You created n-gons, which behave differently with Subdivision.
You made the loop to look more like an octagon.
It's a real pain to repair these issues, not worth your time :).

Smart solution :

Use the Screw modifier instead:

Keep only one side edge of your object.
Add the Screw modifier. That way, you can adjust the number of edges to your needs.
You can also change the number anytime you want, until you Apply the modifier.
And make sure to check Calc Order

Add the Subdivision modifier after the Screw modifier, if you need it.

3D view so you can see better what's going on.

Dumb solution:

You can make any shape into a circle using the To sphere tool.
It's a very useful tool, but in this case it won't help much, because of the ngons.

Further reading:
Screw modifier in Blender Manual.


Disclaimer: I just learned this myself, so @NoviceInDisguise can edit it if needed.

1

Create a bright point of light in your scene. This would be planet earth- already created in your case. Glare can't happen without a target.

Render the image.

2

At the top of your screen, change the screen layout mode to be compositing. Once done, you may need to check a little box in the node editor that says use nodes.

3

Add a glare filter between the image input and the finished output. Optionally you may add a viewer node at the end of the string so you can see the image in the node editor. In order for a viewer node to be active, you need to check Backdrop. It's located near use nodes.

Set the glare mode to fog glow.

4

Mess with the settings on the glare node until you have a perfectly glowing planet.


Don't set PYTHONPATH, but rather add your script's path to sys.path. You can do that manually in Blender's Python Console, in a script you embed in a blend file via Blender's Text Editor, or in a small add-on that you place in a path that's already searched for by Blender.

Non-scripting approaches would be to set an alternative scripts folder in the user preferences, or to use symlinks to make Blender find your code.


'requested item "......" does not exist'

Analysis

  Python module can't be imported - object 'Cube', controller 'Python': KeyError: 'requested item "run" does not exist'

This means you misconfigured the Python controller.

Either you use script mode and you refer to an not existing text block called "run" (the field should have red background).

Or you use module mode and you did not mention what file contains your code.

E.g. your code is called arduino.py. You can set up this line: arduino.applyRotation.

The BGE will look for arduino.py and check if it finds a function applyRotation.

arduino.py

import bge

def applyRotation(controller):
    sensor = controller.sensors["run"]
    if sensor.positive:
        ...

Solution

Ensure the file and the function inside of it can be found.

Hint:

If you want to use the module mode ensure to retrieve the controller inside of the called function. Otherwise you get unwanted side effects.


My boolean/difference operation didn't work

The modifiers are designed so you can change them later; if you changed the target object, it would change the effect. Similarly, if you delete the target object, it will remove the effect!

What you need to do is to apply the modifier. There should be an Apply button just beneath the 'add modifier' popup.

Note that this will make it impossible to remove the effect again later (except manually, of course), but if you're deleting the plane anyway, it should be what you need.


How to make my standalone game not require blender installation?

Use the "Game Engine: Save as Game Engine Runtime" add-on:

Then you can save the game as executable, which can be run without needing to install Blender:

You will end up with an executable, and a directory named after the Blender version. The executable will be for the same OS as you performed these actions on.


Can I colorize hair particles based on the Emitters Shading?

Transfer Normals on Instanced Particles
Theory:
Currently I don't think there's an easy way to pick the value of the shaded surface of another mesh and transfer to the built in hair strand, but we can copy it's normals orientation and use the same material and transfer them to another object.
We basically just neet to create a separate Object that will work as a particle system, but it's actually a mesh, so we can tweak it's shading.
If you want to know more, there's a YT video about the same technique used for making NPR trees foliage by David from Lightning Boy Studio:https://www.youtube.com/watch?v=DEgzuMmJtu8

Practice:
Starting from a situation similar to this one:

You need to create a particle system using an Object as Render instance.
Don't put any actual object in the Instance Object field, as we are going to use a Particle Instance modifier on another object.
Create a new object containing a custom strand shape mesh and add a Particle Instance modifier to the object pointing to the mesh with the particle system we created before (system_mesh in my case).

Enable Children and "Size" options if you are planning to take
advantage of these features.
Pick Local in the coordinate system so your particles object will
follow the main object.
Also enable Create Along Paths to make your strand following the
hair curve.
You may want to disable Keep shape for more control, but it really
depends on your particle system settings.

Now duplicate and assign the same material of the base mesh, we'll get rid of the shadow casted from the hair object by setting None in the Shadow Mode option. That's the only difference between the materials.

Note: you can obtain a great effect by actually leaving the shadow on and using the Soft Shadow fature an playing with the Cube Size and other light/shadow related parameters
Final step is to add a Data Transfer modifier to replace the shading normals of the instances with the ones from the nearest face. Remember to enable autosmooth and to set it's value to an appropriate value, in this case 180°.

Final test and blendfile for inspection:


You can use screw modifier to get the result. here is a quick demonstration

add circles like these in a mesh. more circles means more rings. Use smaller circle to get the result as shown in the ref.

then make sure the origin is in the 3d cursor. Now add a screw modifier and tweak the settings as shown. Use the iterations value to increase the length of the wires.


I found the answer.  The top tab of the 3D view has Annotation tool information, and if you hit the "Note" drop-down, it has a field that says what frame the annotation was drawn on, and says either "locked" or "unlocked."
If you click on the field you can set it to "locked," and the drawing will now appear every frame.


How can I squash/deform a cube AND keep it positioned on the ground plane?

You don't need a lattice you can achieve this by only using Shape Keys:

Create two Shape Keys
Move the top face down
Scale the bottom outside edges outward


Importing Rigged Character and animations to Unreal Engine 4

I had the same issue.

With me, the cause was that I had some objects selected (in Blender) that were not part of the animation. Exporting only "selected objects" (as per FBX export menu) that meant that my erroneously selected mesh was also selected - and was interpreted as a separate 'skeleton' in UE4. This 'skeleton' could obviously not be matched and gave the error ""Imported bone transform is different from original" on import.

Correcting the selection of meshes before export in Blender solved the issue in this case.


Can I apply something like a mask to apply proportional editing to only some connected vertices in blender 2.8?

Working with Proportional Edit, I think that you could get by here with just scrolling down the circumference of your brush and get it to work. Hiding the verts you don't want to affect could work as well, but that might be to much to do for a simple block out.


Where has the Object Index from Layers has been moved to in 2.80?

You need to change from EEVEE to Cycles render in order to have that option

Good Luck


Rotating various objects in different axis

You can add a driver to bind their rotation to the position of an empty:

Add an empty:

Right click and Add Single Driver to the appropriate axis of rotation on your blade. Repeat for each blade.

Open the graph editor and define your driver, for each blade:

I made the z location of my empty drive the x rotation of my blades.


Why is there white splotches on my render?

Your glossyness must be turned up a lot in your Principled shader for the skin. Try also messing around with the sub-surface shading, since it will give some more realistic results for the skin if tuned properly.

If you only gave one material for the entire head, try making some masks and give each part of the head (skin, hair, eyes) a different material, since in the real world they all have different surfaces.


How can I rotate a spherical texture without getting a distortion?

Using UV Map

If that's a NASA mars projection, chances are it's an equirectangular, ie longs -180 to 180 mapped 0 to 1 in U and lats -90 to 90 0 to 1 in V. To make it rotate around the pole to pole axis increment, ie translate (not rotate) the U coordinate. The default uv sphere UV is pretty much the equirectangular projection.

Result with default UV map of default UV sphere. Rotating texture about axis by translating U

Because of the nature of the projection adjusting other values will warp the projection, eg ring the equator with ice lol.

I'm not a big nodes guy, in theory could emulate the UV map using the object vector output and converting it into spherical coordinates with some math nodes.

Give that a go.

Here is the set up the normalized object coordinates are projected into spherical coordinates and fed to the flat image texture (as used above)

by placing the mapping node before the projection, can now rotate freely using use x, y, z rotation.

Using http://celestiamotherlode.net/creators/praesepe/MarsV3-Shaded-2k.jpg and crunching some simple drivers #frame / 30 directly into rotation fields.

Please note: Using the object texture coordinate relies on the object being at location (0, 0, 0) and having origin at center of geometry for the above set up.

Subtracting the object location allows for non global origin object location.

EDIT.

Much simpler using environment texture node as pointed out by @ISCREAM kevin deguisne  https://blender.stackexchange.com/a/159521/15543  Have taken the liberty of making an image of the setup.


I suppose it's because you have chosen Nearest Vertex mode in the modifier, so the vertices of your oval stick to the vertex of your cylinder mesh. Switch to Nearest Surface Point and it should work properly.


Creating a scene with huge amount of geometry

Try using dupliverts:

It's not really that pretty, but this is just a demo.. Rendered in 6 minutes

Create a very subdivided plane, then delete only edges and face so that you are left with just vertices.
Add a cube and parent it to the plane.
Add a displace modifier on the plane, and setup a texture to use a displacement.
Enable dupliverts on the plane.


Why do I have a single vertex connected to 2 edge loops?

It's not a single vertex, non of your top and bottom of the barrel faces have UV coordinates.

If you move that "one single vertex" in the UV Image editor you will find that there are actually several overlapping vertex in the 0,0 coordinate, in fact if you move more of them you will start seeing faces appear which correspond to the bottom and top of your barrel.

In other words you have to unwrap the rest of the mesh also


Displace does not work on images as planes

You are using a different version of Blender than what is used in the tutorial. I believe in older versions of Blender the default displacement texture that gets added when you press 'New' on the modifier is a 'Clouds' texture, which causes the displacement. In newer versions of Blender it seems that the default texture that is added is an 'Image' texture, but until you actually load an image in the texture panel, nothing will happen, hence no immediate displacement.

You should be able to just continue with the tutorial as normal. In the next step he actually explains how to change the texture type from 'Clouds' to 'Image' anyway. When he explains how to do this you can just change it to 'Clouds' for a second to see that you are in fact getting the same results.


How to scatter several rocks along a path?

Short answer: You want to create a vertex group and put that in for particle density.

Long Answer:
If you assign the particle emission to to the land you'll get something like this:

Obviously we don't want the icospheres all over the plane, just a select portion. We can do this we two methods, weight pain or creating a vertex group. Weight pain will give you more control, but I'll show how to assign a vertex group because it's a little bit quicker.

So tab into edit mode. Hit "c" and paint the vertices you wish to be affected.

Now invert the selection with Ctrl "i" and go to vertex groups on the right and assign a group.
Now go back to the particle system, scroll down to vertex groups and select the group. I would recommend naming the group.


I found the reason. The node starts to move if it is selected (highlighted), if not then the size changes. In other words, to change the size, the node must not be selected (highlighted). )))


UV unwrap each face of an object via python script

Manipulating UV coordinates in python is usually done via the bmesh interface.

I include an example from barber-pole.py

def spiralUVs(mesh, xPlus):
    # add a UV layer called "spiral" and make it slanted.
    mesh.uv_textures.new("spiral")
    bm = bmesh.new()
    bm.from_mesh(mesh)

    bm.faces.ensure_lookup_table()

    uv_layer = bm.loops.layers.uv[0]

    nFaces = len(bm.faces)
    for fi in range(nFaces):
        x0 = fi*2/nFaces
        x1 = (fi+1)*2/nFaces
        bm.faces[fi].loops[0][uv_layer].uv = (x0, 0)
        bm.faces[fi].loops[1][uv_layer].uv = (x1, 0)
        bm.faces[fi].loops[2][uv_layer].uv = (xPlus+x1, 1)
        bm.faces[fi].loops[3][uv_layer].uv = (xPlus+x0, 1)
    bm.to_mesh(mesh)

Some other examples that set UV texture coordinates include

http://web.purplefrog.com/~thoth/blender/python-cookbook/expand-uv-to-fit.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/uv-from-geometry-cubic.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/meshFromBathymetry.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/thicken-texture.html


how to turn off jumping by parts when moving (snapping)

click on the magnet (looks like a horseshoe) in the 3D view


If I am correct, you want to automatically save the rendered result so if Blender crashes you have the last known output.  Using composition you can save the output as follows:

This image, by default, will be called Image0001.png in your chosen path. If you really really really wanted to pack it in the Blender file I suppose you could create a non-rendered object that takes that image and then it should also be stored (not tested). However, I think just the automatic saving is probably what you are after.


Inverse Kinematics constraint with pole target

Maybe I'm wrong and someone will find a solution with the IK limits but it looks like you can't prevent the knee twisting this way.

You need to use your Pole Target bone to fix the problem, and anyway the Pole Target is here for that.

So, in Pose mode when you see that the leg rotation make your knee twist in the bad direction, just move the Pole Target and give it a Keyframe so that the knee comes back to the right bending.


sounds like you need a combination of Drivers (probably with expressions) , Camera Constraints and probably some manual tweaking.

If you brake your animation in sub sequences (as you already described them but in a more meaningful way) you will better understand where and when you should use these techniques I mentioned above.

How to express reversed delay and|or gravity (a proposition):

For instance you already have a procedural animation which is your main animation (follow curve) and then you need additionally some more elegant and automated (procedural) animations. The first one was depended on a "3d object", the next one "pilots suffering" is depending on the first animation so thus for why you would go with a driver, looks more like an equation with two factors, camera direction (curve) and camera speed (tweaking the follow curve completion) by these two you may always know the acceleration (time | speed) so by a third factor you may express it as a simple equation, then it comes to your knowledge of math and your aesthetics to tweak it more.

It may sound a bit complicated but I think that you must try it first and get deeper into drivers and in general procedural and data driven animation.

hope that this was helpful, good luck !


Lighting objects passing through a portal in Cycles

Figured it out myself. It can be done by stacking three renders: At the bottom the interior of the portal, on the next level the exterior without the cylinder but with the shadow of the outer part of the cylinder, and finally on top the partially covered cylinder. The node setup looks like this:

And here's the result: