How do you make a fluid emit smoke and fire? I am trying to make a liquid catch fire. However, I do not know how to make the fluid emit in the gas domain. A similar question was posted here:
How to light liquid on fire?
However, in the answer, it is mentioned that you need to make the liquid a mesh emitter. I can make the liquid a mesh, but I can't figure out how to make it emit in the gas domain. Any help would be great!

Since a mesh can only have a single fluid sim applied to it, it is not possible to have both a fluid and a gas simulation at the same time. Instead, you need to add an additional mesh that can follow the fluid simulation to host the gas (smoke and fire) simulation.
Start by setting up and simulating your fluid. Once this is complete, create a new mesh (eg, a sub-divided plane) and use the Shrinkwrap modifier to map this over the fluid. Add the smoke and/or fire simulation to the 'shrunkwrapped' mesh in place of the fluid mesh.
This can produce results similar to the following :

For simplicity I only rendered smoke but the same principle applies to smoke and fire. Also, you could add a particle system to emit particles of smoke/fire from the surface or change the smoke emission with a texture for added variability.


unlocking objects which was locked and saved before new interface doesn't show "lock in viewport" button. i have created different parts of a car 4 months ago. my habbit was to lock an object when i finished modelling and start a new object. it prevents accidental selecting. now in current build of 2.8, when i open the file to edit it, the objects are locked in viewport so i cannot select them. my question is how to unlock those objects so i can edit them again ?? because lock/unlock button is no more there.

At the top right of the Outliner there is a "Filters" button (it looks like a small funnel).

Click on that, and at the top of the tab that appears you have "Restriction Toggles". You want to turn on the "Selectable" toggle, which is the second button in the row.

Once you do that, you will be able to mark objects as able to be selected or not able to be selected just like you did before they updated the 2.8 interface.

You can also do the same thing to restore the options for render visibility and globally disable in viewports if you want them too.


How best to create random surface variations (BI) in script-generated objects? This lineup of marble-ish cubes with copper-ish letters affixed is the product of my very first Python script.  I have never written or even read Python prior to a couple of weeks ago, so... many thanks to all those whose code-snippets were shamelessly copied to get this working!  My next challenge is to make the marble-ish cube surface treatment a little more random, less obviously cloned.  I am applying pre-fabricated Material and Texture (Blender Internal) as follows

    #assign materials to cube and letter mesh

    marble_mat = bpy.data.materials.get("Marble")
    copper_mat = bpy.data.materials.get("Copper")

    if letter.data.materials:
        #assign to 1st material slot
        letter.data.materials[0] = copper_mat
    else:
        # no slots
        letter.data.materials.append(copper_mat)

    if cube.data.materials:
       cube.data.materials[0] = marble_mat
    else:
       cube.data.materials.append(marble_mat)

and now I am wondering what would be the smartest way to introduce small variations in the Material/Texture of the cubes.  I'd like slight colour and pattern variations, but have no idea how to go about it;  do I have to create N Materials and/or Textures for N cubes? Or could I decorate each cube as I create it, by subtly and randomly altering the standard Material and Texture and then baking it?

The answer appears to be...

DRIVERS

Here is a quick manual proof-of-concept using Drivers, as in the tutorial ref'd below and in Comments on the original Question, which I heartily recommend.  My text explanation here will not be nearly so clear and user-friendly as the video, so I suggest anyone who is interested should watch it!

These cubes are copies of one cube (manually created, not scripted) which has random-number drivers (manually created and tweaked via the UI) attached to various properties -- Scale (xyz), Diffuse Colour, Diffuse Intensity, and the geometry of the Marble generated texture.  The result is fairly pleasing, though I would like to know whether/how I can overcome the signature diagonal grain of the generated texture.  In a game landscape these cubes would probably pass OK as "different" from one another, despite the grain issue.

Method:

1) expose some kind of python random function(s) to driver context, as shown in this vimeo tutorial:
https://vimeo.com/40389198
(sample rand function code is provided by the author via a link on this vimeo page, and this is what I used:).

import bpy
import random

def randf(lo, hi):
    return random.uniform(lo, hi)

def randi(lo, hi):
    return random.randint(lo, hi)

def gauss(mean, stdev):
    return random.gauss(mean, stdev)

bpy.app.driver_namespace["randf"] = randf
bpy.app.driver_namespace["randi"] = randi
bpy.app.driver_namespace["gauss"] = gauss

2) With object selected:  in a property editing pane, select an object property such as Scale, RGB value in Material, etc.  Other-click on it (whichever one you don't use for regular selection of objects, focus placement, etc).  When menu comes up, choose "Add Driver" and then select either the whole group or just one property, to be "set manually later".  The slider should turn purple to indicate that it's being driven.

3) Open a Graph Editor and reveal its property editing panel (N).  Choose the Driver tab.  Now you can select your driver (at left) and edit/tweak it in the pane.  I for example would choose Scripted Expression for my randomising drivers, and for the expression enter my randf function which takes 2 args, min and max.  For some properties (material and texture props, so far) you have to set a driver variable.  For others (pos/rot/scale I believe) you can skip it...  I don't know why there is a difference.  If you've done it all correctly, then when you press Update Dependencies, your object should randomly change its shape, position, rotation, colour, whatever the driver is randomising -- in my case, within the bounds set by the 2 args to the rand function.  Anything that causes a Scene Update should trigger this regeneration of the random values, but you can "turn off" the drivers using the "mute buttons" next to their entries in the GE left hand pane, freezing the object's appearance.

4) When you Duplicate this "driven" object, the drivers go with it and the cloned object also has the randomised property.  However, aspects of the original object are by default shared with its dupes.  So for example, material seems to be shared with dupes;  you can spawn a new cube by duplication but it will have the same (random) colour as the original;  they will both change to the identical new value when Update Dependencies is invoked.  To fix this, I selected all the objects (dupes and original), hit U, and picked Materials/Texture.  This apparently prevents sharing.  Each cube now has its own independent material/texture settings and finds its own random colour/texture when the update happens.  You can dupe the dupes and the inheritance continues; the original object can even be deleted without losing any of your hard work.  But whenever you dupe, you have to turn off material sharing if you want randomised material properties.

Conclusion:  Drivers are insanely powerful;  also -- potentially -- insanely fun.  It actually boggles the mind, thinking of all the strange and wonderful ways that properties could be driven by, say, other objects' properties, frame count, external data files, higher math functions... But my immediate practical need was to make random small variations in mass produced objects, and Drivers seem to be the solution of choice.  My next challenge is to create drivers under Python control.  If I succeed, there will be one more photo in this series :-)

Another interesting write-up on Drivers may be found here

http://blendersushi.blogspot.ca/2013/06/python-driving-arrays-like-boss.html

some of it is a bit beyond me right now, but I hope to understand it better in a day or so.


Misshapen Mesh FBX Export Here's the file.
Steps:

Select everything.
File ‣ Import/Export ‣ FBX (.fbx)
Turn on Selected Objects.
Export FBX
Upload character to Mixamo.

Expected:

Smooth surface
Uniform color

Results:

Areas around the mouth and neck are misshapen.
Head is grey. Body is white.

I'm worried that this might become a larger issue when I start to rig and animate this. How can this be fixed?

Turn on Face Orientation in the overlay dropdown and you'll see that the whole head and neck apart from the lips has the normals inverted.

In edit mode, select all and then ALT-N > Recalculate Normals.


How to change the color of an image while keeping its nuances? I have this .jpg in Compositor:

Full Image on GDrive

My goal is to change the color of your choice while keeping:
-more or less large white dots
-the proportion of gradations in the same places and the same nuances

I guess Blender compositing can do that, but I don't.
Thank you for your help

Here is one of many ways to do this:

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


Add custom shortcut to toggle "Maximum Draw Type" I´m trying to add custom shortcut "E" in Object mode to toggle between Maximum Draw Types (wire, solid, textured, bounds) for selected object, but my attempts were not successful. I read some similar topics from this forum, but unfortunately I do not understand enough to be able to solve it myself.

You can define shortcut for list of properties as there are 4 of them in the dropdown list you want shortcut for.

To do that you need to create new shortcut, in this case in 3D View (Global) section so it's accessible in the viewport in all available modes.

Then, instead of "none" in the operator field write there wm.context_menu_enum. This will mean that you are transferring enumeration to the operator. You can steal this setup from any default Blender command, e.g. Snap Element menu which is called via Ctrl+Shift+Tab. You will see there how and where is written command shown above.

Once you confirmed, there will appear 2 fields - RNA and Context Attributes. The last one is what is needed, put there command for the dropdown list, you can get it hovering your mouse over it in Blender interface > Properties editor > Object tab > Display rollout > Maximum Draw Type. The Python command is object.draw_type.
Final settings are shown in the screenshot below.

After setting up desired shortcut (Alt+E used in the gif below) you will get dropdown list appearing below your mouse in the viewport. To make it work on several objects do the same as in other cases of changing one property for multiple objects - press Alt before pressing element in the list.

It will change the property for only one object if Alt isn't pressed.


Matrix not applying to pose bone correctly I'm attempting to import animations from text files but I can't seem to figure out how to properly import it. If I make a list of positions in a text file like here
from mathutils import Vector, Quaternion, Matrix, Euler
bpy.context.scene.frame_set(1)
M1 = Matrix.Translation(Vector((0, 0, 0)))
bpy.data.objects['Armature'].pose.bones[0].matrix = M1
bpy.data.objects['Armature'].pose.bones[0].keyframe_insert('location')
bpy.data.objects['Armature'].pose.bones[0].keyframe_insert('rotation_quaternion')
M2 = Matrix.Translation(Vector((0, 0, 2)))
bpy.data.objects['Armature'].pose.bones[1].matrix = M2
bpy.data.objects['Armature'].pose.bones[1].keyframe_insert('location')
bpy.data.objects['Armature'].pose.bones[1].keyframe_insert('rotation_quaternion')
M3 = Matrix.Translation(Vector((0, 2, 4)))
bpy.data.objects['Armature'].pose.bones[2].matrix = M3
bpy.data.objects['Armature'].pose.bones[2].keyframe_insert('location')
bpy.data.objects['Armature'].pose.bones[2].keyframe_insert('rotation_quaternion')

https://pastebin.com/HRp8pbTn
Full code I type in to console in the pastebin. Typing that gets me the animation as I exported with no issues that I can see. If I write a loop for it however like so
    bpy.ops.object.mode_set(mode = 'POSE')
    for frame in range(transform_count):
        current_frame = frame + 1
        bpy.context.scene.frame_set(current_frame)
        for node in node_list:
            node_rotation = processed_file[frame_index + node_index + 7].split()
            node_translation = processed_file[frame_index + node_index + 8].split()
            node_scale = processed_file[frame_index + node_index + 9]
            matrix_translation = Matrix.Translation(Vector((float(node_translation[0]), float(node_translation[1]), float(node_translation[2]))))
            matrix_rotation = Quaternion((float(node_rotation[3]), float(node_rotation[0]), float(node_rotation[1]), float(node_rotation[2]))).inverted().to_matrix().to_4x4()
            full_matrix =  matrix_translation @ matrix_rotation
            armature.pose.bones[node].matrix = full_matrix
            armature.pose.bones[node].keyframe_insert('location')
            armature.pose.bones[node].keyframe_insert('rotation_quaternion')
            frame_index += 3

        frame_set += 1

The position of the bones are all wrong. It's almost like the matrix is either being ignored or it's taking the matrix I give it and adding it the the pose bones current position. I want it to be exactly at the matrix I give it which is a global matrix. What am I doing wrong here?

Added
bpy.context.view_layer.update()

right after setting the matrix. That fixed my issue.


How to "freeze" a cloth animation at X frame? How would one freeze a simulated body at frame X and use it as a static mesh?

Following a tutorial, I've been able to do a cloth animation to my model, now I'd like to have that made static, without the use of the timeline.

The thing is, I'm modelling something that's not going to be an animation, but a static object (something like a statue/figurine). So I don't need the animation, only the shape at a particular frame that I find convenient. I'd like eventually once this is done, to also modify that deformed grid.

I've tried to follow what was said here, but couldn't figure out what chipmasque was saying. I'm quite new to blender (been using it on and off, just enough to forget everything).

I'm using blender 2.63, if it is of any relevance.

You can apply the cloth simulation modifier. That will convert the current frame into a static mesh, and all other simulation data will be deleted.


How to make this texture/effect? I noticed most swords have this cool wavy effect/texture on them:

I can't seem to replicate this in blender. I tried to make it with geometry but it really needs to be a texture. I'm not sure how to create this type of texture, what should I do?

You can create simple Sine Function which can be controllable (frequency, postion, width, amplitude) and position wave at the bottom of your model.

Take into account position in 3D space (rotation matter).

You can rotate your object and apply rotation or switch Z for Y in Separate XYZ node.

In this example I've used Color Ramp to control colour for Roughness input.

Bottom nodes are just for bump, so don't pay too much attention to them.


How to understand the math behind Andrew Price's embedding his beer within his glass I just watched the Blender Guru video How to Make a Beer in Blender and stopped at the point where it advises us to make the liquid slightly larger in diameter than the inner diameter of the glass - approximately half way between the inner and outer walls.

I then turned to Fluid in a Glass
(and why you’ve been doing it wrong your whole life) where the video points. Although the wording there isn't exactly correct, I think that I understand the point. In the glass shader where you specify IOR, you are not actually specifying the index of refraction of the material inside the volume defined by the mesh. You are actually only specifying the ratio of the index of refractions of the spaces on either side of the mesh. And that's all that Snell's Law actually needs when applied to a single interface:

$$ \mathbf{n_1} \sin(\theta_1) = \mathbf{n_2} \sin(\theta_2) $$

$$  \sin(\theta_1) = \frac{\mathbf{n_2}}{\mathbf{n_1}} \sin(\theta_2) $$

$$  \theta_1 = \sin^{-1}\left(\frac{\mathbf{n_2}}{\mathbf{n_1}} \sin(\theta_2)\right) $$

The problem is that in the physical world, the interface between liquid and glass has a very small index difference - the ratio is nearly 1.0. This is why some transparent object can seem to almost completely disappear when submerged in water.

But it seems to me that the workaround of embedding the liquid into the glass is not going to have the desired effect - if the desired effect is to get closer to a realistic image. It creates two interfaces and each has a large ratio of indices of refraction of something like 1.3 or 1.4, or 1/1.3 and 1/1.4 depending on the directions of the normals.

Question: Wouldn't embedding the liquid inside the glass wall as described in the video produce physically wrong and unrealistic refraction? Since there is just one interface, using two meshes that just touch, or overlap seems like it's just asking for trouble. From a rendering point of view, meshes are interfaces between physical materials, even though we say that we assign "materials" to them we're actually assigning surface characteristics.

edit: I've just found an excellent explanation here, yes the IOR < 1 technique should be correct and a single mesh for the glass-liquid interface used.

I'll use an index of refraction of 1.4 and 1.3 for glass and liquid respectively in the following discussion just to make it simpler.

Wouldn't a more realistic method be to just use a single mesh for the boundary between glass and liquid, and choose IOR = 0.93 with the normals pointing out, or IOR = 1.08 with the normals pointing in?

That doesn't mean that there is an actual index of refraction is 0.93, it just means that when rays pass between the space inside the glass mesh and the space inside the liquid mesh they will be refracted and (Fresnel) reflected based on the correct physics for a single interface between materials within indices of refraction of 1.4 and 1.3?

note: This would require the top of the liquid to have a different mesh or at least a different material, with the IOR set to 1.3 for the correct liquid-air interface behavior. Or you could just put foam on top.

Putting the liquid inside of the glass wall forces the ratio given by Snell's law. Blender gives the inverse of the refraction index when exiting the glass. This brings the refraction back to that of the environment. So, if the ray enters the fluid just before it exits the glass, you get the ratio you're looking for. Yes, this means an inaccurate IOR for the small distance between these surfaces, but unless you're doing an extreme closeup of the edge of this manifold, I don't think you will ever see it in a render.

Your other options are creating a mesh for the liquid that has an ior that corrects for this ratio, but where does that mesh lie? Is it exactly on the glass mesh? In this case you get the same flickering artifacts seen with doubled faces elsewhere. If you space this mesh just beyond where the ray exits the glass, you will have inaccurate results which are more visible in renders. You can of course make a completely new mesh at the interface that is a combination of the glass and the beer, but what happens if you need the beer to slosh around? This turns into a very complex animation.

So, basically putting the beer slightly inside of the glass gives you semi accurate results that seem to give the best trade-offs for accuracy and usability. It's easy to animate, it eliminates the need for multiple meshes and separate materials for the sides and top of the beer. I'm trying to explain this without illustrations, but hopefully you follow.


When I edit a plane with an image texture it distorts oddly I'm just scaling (pictured) a single plane, with the left-side edge but the scale of the texture doesn't scale properly . . why does this happen? This is just a single plane with a simple plane UV (smart UV)

There is a smiple fix: add a sub surf modifier and set it to simple. Be sure to increase to subdivisions.

The issue is that because a face is made of 2 triangles, the uvs are stretched across the triangles and not the mesh.


Associating photos to the faces of a cube So... I am a beginner in blender and I want to associate those pictures to the faces of the cube, just that they won't show up when I am in the render view. I've watched a few tutorials but still can't make it... Can anybody help me? I want to export the cube in unity.

Edit: On a second try... the cube looks perfect blender just how i want it... but on render mode it looks like this https://imgur.com/a/SdC4S and if I import it to unity it is just a blue cube... Help?

You need to:

Create 6 different materials (Since you have 6 different images you need to create one material per image).

Have each of the materials use an image as texture.

In Edit mode you need to select a face and assign a material to it.

Repeat that to all of the other faces until each one has a material and each material is using the texture you want.

For greater control on how the textures are mapped on the mesh, you need to unwrap the mesh to create UV maps.


How to make a model cast shadows onto the world texture/background? In most of my models, I usually end up setting a world background using an HDRI image of some kind or another. This has always been really useful for lighting in general or as a background for my final render.

But what if I want my model to look like it is interacting or touching part of the background? For example, in the image below that I found, the modeled objects look like they're part of the scene, and even appear to cast shadows on the ground. How can I do this?

CYCLES ENGINE
Shadow Catcher
Starting from version 2.79 any mesh object can be set as Shadow Catcher.
Select object (like a Plane) and check this option.

2.79 located in Properties Editor > Object > Cycles Settings
2.8+ located in  Properties Editor > Object > Visibility

Issue of current Shadow Catcher
Shadow Catcher can receive only shadows (limits are nicely summarised in this DevTalk) So I will keep Shader method, that can be used to "catch" also emission, indirect light or reflection that gives more sense in term of merging CG into image. Comparison ...
Example of Shadow Catcher issues -/- comparison with Shader solution

Edit 2021-05-05 Finaly movement :) Initial implementation of improved shadow catcher. Anyway here is shader solution for now ...

Shader for HDRi Environment

This material for ground plane object can also receive lights, indirect light or reflection.

This material gives you precise feedback if the HDR image lights correctly. If not, ground plane will be brighter or darker (or will tend to be a different colour tone) depending on image color deformation.

Material for ground (plane) is Diffuse shader with assigned Environmetal (Equirectangular) HDRi texture. The same texture used for World. The trick here is to use "Reflection" texture coordinates with negative Z value (-1). For smaller color differences between found and environment use RGB node.

Showcase https://vimeo.com/159234378
For more examples and tests check out this Blenderartists thread.

Lighting by HDRi
is another topic, so just a quick tip if HDRi doesn't light properly. Use this World node setup, in most cases just increase/decrease Fac value of the first "Mix" node solves. Second "Mix" node affects "Exposure" of the HDRi.

If lighting seems to be ok, but shadows are still too blurry you will have to fix the HDRi image manually. Open the image in an image editor that supports 32 bit images, select small circle in place of sun and increase exposure. Sorry can't find the tutorial link.
Rendering – Be sure "Multiple Importance" is enabled in World Properties panel (value like 840), it should be checked by default.

Shader for Backplate (2D image)
In case you want to merge your CG with the backplate, simply use "Window" texture coordinates for shadow / light receiver. This material doesn't have a geometry limitation. In this example, a plane is used also, but it can be any shape. Scene is lit only by a sun with strength that brings ground image to background colours. Both previously mentioned benefits (shadow/light receiver and in this case general feedback of correct lighting) works here too. Disadvantage of backplate (compared to equirectangular HDRi image) is lighting inaccuracy and missing reflections.
Note: the same node tree is used for the world.

Note:
There exists OSL shader QUIP and QUIPCam for this purpose that gives you the ability to have a bit of movement in the environment too. But OSL isn't supported for GPU calculation and takes quite a lot of time to get a clean render.


2.81 preview mesh as transparent? EDIT: I may have buried the lead with this question. I do not want to use xray mode because that makes everything transparent. I've been away from Blender for a couple of months and just installed 2.81, having previously considered myself a 2.80 guru. Now I am feeling very embarrassed because I can't figure out how to make my meshes display semi-transparent in the viewport so I can see reference images through them. I don't want to make materials, I just want some meshes to appear transparent without putting everything in xray mode.

You can make your material (semi)transparent in Solid view.

Shading editor > Sidebar > Options > Viewport Display

Suzanne with two materials assigned.
One is opaque, the other is semi-transparent.


Why is my model moving vertexes that aren't selected, when scaling When I extend my "cylinder" by using the E key and attempt to scale it

http://prntscr.com/axq436

It also moves some vertexes along with it.

Check if proportional editing is on, press the shortcut key O will toggle the setting.

Click Here for more information on Proportional Editing.


Importing Adobe SVG cuts off half the image how it looks in adobe illustartor

how it looks in blender

I've tried several things including expanding the objects, trying to upload parts of it without the others. but it always cuts off the image in the same place.

Here's my SVG file https://drive.google.com/file/d/0B5mWWP7kVeT7ZEF4dXdPZDZjdHc/view?usp=sharing

Your best bet for high precision results is to simplify the Paths in Illustrator first, then export as svg. I tried loading that SVG into another vector drawing tool (Inkscape) but the Paths it contains also do not get read/displayed correctly. This doesn't mean the SVG is bad (it loads in Google Chrome just fine), but it does mean the Paths themselves are not optimal for use to interchange between some programs.

Your SVG has a lot of dense areas which Blender's Curve objects don't handle very well. -- (In Blender if you converted to mesh and did a Remove Doubles it would remove about 800 points..) . The linked Answers in the Comments under your question suggest valid reasons why this SVG isn't showing correctly. There are overlapping areas due to the dense clusters of points (Open the SVG in Illustrator and zoom into the area where it cuts off in Blender to see the overlapping edges).

but if you have to do it in Blender, then one process is:

join all curves  (select all curves, then Ctrl+J)
convert to mesh  (in Object Mode hit Alt+C and pick  Mesh from Curve)
remove doubles (in Edit Mode, select all verts, then W -> Remove Doubles
convert to curve (in Object Mode hit Alt+C and pick  Curve from ...)
set curve to 2D (In the Curve Tab in Object Properties, to get the fill)

then you get:


Join Instances of Animation Nodes/ Make them seperate Objects Is there a way to join the instances of an object from animation nodes to one mesh or convert them to independant "real" meshes?

I want to set only one boolean modifier object as an array of objects i created with animation nodes instead of applying n-modifiers for every cube.

In the advanced node settings of the instancer node, you can use the Unlink Instance From Node operator to make the object independent of the node, then you can merge them and do whatever you like.


Blender 2.79 Adding Propeller to plane and moving whole object I created an airplane, added a propeller, It is connected but not joined. I want it to spin and move together with the plane. Appreciate any feedback. Thanks

Right click on the propeller, then Shift + Right-Click on the plane. Then Ctrl + P to set the plane as a parent.


Specific Weight to Vertex Group I'm still trying to understand the concept of vertex groups, so any help would be appreciated. I'm currently trying to follow this video to create a "trampoline", but I'm stuck trying to assign weights to different vertexes.

Here I've got the inside vertices selected (and set as a vertex group) which is going to be the "cloth" part, whose weight I want to set at 0, but I want the rest of the cube's weight to be set at 1.
For some reason whenever I try to set it to a different weight (by weight painting it or by creating a different vertex group), one of the weight settings reset (so either the vertex group somehow changes to select every vertex on the cube or the whole cube's weight is set to 0).
I've tried looking at this previous question for reference but I couldn't seem to set the weight of the selected verticies.

Invert your selection and assign that to the vertex group. By nature, vertexes with zero weight are either in the vertex group for a weird reason, or not in it at all. You cannot say “be not in this group with a weight of one.” The vertex group you’re creating should be for the “pins” AKA the still parts of the trampoline, rather than to assign the cloth. It is set up this way since the cloth simulation will of course assume everything is cloth. The vertex group is telling it what isn’t.


Is it possible to export a multiplayer game from BGE? It is extremely simple to export a single player game, but I have not been able to find a way to create/export a multiplayer game from the  BGE.

Is this theoretically possible without using a third party application?

Short answer:  No, at least not without a lot of effort.

Long answer:

The engine has no baked-in network multiplayer.  You have to set up the whole thing yourself with Python scripting.  It's all quite complex.

As far as I know this is the most in-depth explanation of the subject:
http://youtu.be/4xZRfzOtxzA

^ Should you decide to build that into a full game, be sure to swap pickle for something like json.  Using pickle on untrusted data is a nightmarish fiery hell of insecurity.

If you're familiar with Python and compiling, check out the Python bindings for ENet:
https://github.com/aresch/pyenet

At one point someone was working on an addon to ease the burden for common folk, but last I checked it wasn't matured enough for actual use.  The project might be dead as well:
http://blenderartists.org/forum/showthread.php?242740-Blender-Game-Engine-Multiplayer-Add-on


How to eliminate Cycles artifacts with many overlapping volumes? I have encountered an issue with Cycles Volumetrics in a recent scene. I am using Blender 2.72, and both CPU and GPU render options. In both I get a solid black artifact when I have two volumes overlapping, as in this campfire smoke test:

I have a solid cube, with a volume scatter and volume absorption material, duplicated by a particle system. As you can see, when the particles get higher up and farther apart, and are no longer overlapping, the artifacts disappear.

Try increasing the number of Transparent bounces in Render settings > Light paths:

The reason this happens is because when there is nothing plugged into the surface output of the material output node, it behaves like a transparent shader. When a ray goes through a set number of transparent surfaces (as defined by the value in max bounces), it will stop and just return nothing (resulting in a "black surface").

To avoid these black surfaces, ensure that the max bounces are high enough. Note that forcing too many bounces can cause a noticeable slowdown when rendering due to the extra bounces which need to be calculated. This is especially true when setting the number of min bounces as well, and in cases which allow high numbers of bounces before the ray can escape to the sky (such as an indoor scene).


is there a way to "associate" Actions with Armatures? i have several slightly different armatures (copies of the original one with rescaled or added bones) and numerous actions. some actions are supposed to be shared, some will be used by only one of the armatures. is there a way to sort of associate certain actions with certain armatures to make it easier to find out which armature supposed to use which action? armatures will be exported, not used inside Blender.

found out it can be seen in Outliner - animations are listed as armature's children!


How to Construct a Diamond or Other Gemstone Material in Cycles What would be the material or shaders node set up for a smooth gem in blender cycles engine?

I want a result similar to this image:

You need dispersion
Dispersion is the phenomenon of multicolored highlights you see in most transparent substances, resulting from different colors (light frequencies) refracting at different angles (the prism effect).
Your reference image does not have this, which makes it immediately noticeable as CG. Instead I would suggest by starting with a reference like this one.
Kent Trammell explained this elegantly in a tutorial that was published on CGCookie but has since been removed. The first person to do it was probably Kirado, who shared the node setup.
Here is the basic node setup - note how the IOR values differ:

Taking it further...
After doing some renders with the above setup I felt that the material still looked too dark, so I decided to try mixing it with a plain white Glass Shader in a way that would not interfere with the colorful highlights. The "Is Camera Ray" output of the Light Path Node seemed to work pretty well for this. What it does is takes any area where the RGB summed color is not already reaching the camera, and allows the white (clear) Glass color to shine through just in those gaps.
The IOR of diamond is 2.4175 and the dispersion is .044. So by using these values, as well as a realistic diamond size, we can get something much more accurate. Make sure to apply the scale (CtrlA) of your diamond object if you want the refraction to be as accurate as possible.

Keep in mind that we are still "faking it" by having only three set IOR values (for red/green/blue). But practically speaking this turns out to be totally sufficient.
Geometry matters
With gems like diamonds, the cut determines the way the light gets reflected. Geometry plays an important role in the appearance of this material.
A page on diamond.com has diagrams that explain this really well:

Luckily, creating an ideal diamond mesh can be done in Blender in an instant. Just enable the Extra Objects (Mesh) add-on, and it will be an option in your Add Mesh menu.

Now pressing ShiftA in the Viewport gives you new options:

In my example I slightly beveled my diamond, which allowed me to use Smooth Shading instead of Flat Shading. This did away with the angular "CG look", and scattered the light in more directions, brightening the gem. However, it has since been brought to my attention by user Thom Blair III that diamonds are sharp down to the molecular level, so a bevel is not accurate. Consider using Simple Subdivision instead.
Lighting matters
An HDRI environment map will provide a more diverse color palette of light for your scene, so consider using one if you want more realistic lighting.
If the environment color is not quite to your liking, either change to a better-suited environment map or adjust the color using a Hue/Saturation/Value Node. In my case the sky was too blue, so I reduced the saturation.

Rendering
A material like this requires a high sample count for it to look clear (I used 7500 samples!). *Update: With the new Denoise feature you don't need anywhere near this many samples now! Many thanks to Blender's developers.
If the gemstone will be part of a larger scene where other elements do not require such a high sample count, you can keep the gemstone on its own Render Layer to keep render times from becoming ridiculous. (Okay, I mean keep them less ridiculous.)

Setting Clamp Indirect to something like 10 also helps to reduce fireflies.

Compositing
If you want to adjust the exact color of your gem, or add bloom and streak effects, you can use the compositor to put on the final touches.
An example node setup for compositing:

Before compositing:

After compositing (final result):


Operator addons with multiple texture inputs in Python I'm fairly new to Python in Blender and working on an add-on to allow users to input their textures without accessing the node editor. I take reference from some of the codings within this website and create an add-on with one file input but still getting struck on how to do multiple ones(e.g. diffuse, rough, normal).

Here is my original script for one file input:
import bpy
from bpy.props import StringProperty, PointerProperty

class MaterialRoughnessPanel(bpy.types.Panel):

    bl_label = "Texture Input"
    bl_idname = "MATERIAL_PT_PANEL"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Material Parameter"

    def draw(self, context):
        layout = self.layout
        ob = bpy.context.active_object
        ma =ob.active_material
        row=layout.row()
        row.prop(ma.slot_setting, "rough")

def updateRough(self, context):

    mat = self.id_data
    node = mat.node_tree.nodes
    nodes = [k for k in node
            if isinstance(k,  bpy.types.ShaderNodeTexImage)]

    for k in nodes:
        k.image = bpy.data.images.load(self.rough)
        return k

class roughSet(bpy.types.PropertyGroup):

    rough: StringProperty(
            name="ROUGH",
            subtype='FILE_PATH',
            update = updateRough)

def register():
    bpy.utils.register_class(MaterialRoughnessPanel)
    bpy.utils.register_class(roughSet)
    bpy.types.Material.slot_setting=PointerProperty(type=roughSet)

def unregister():
    bpy.utils.register_class(MaterialRoughnessPanel)
    bpy.utils.register_class(roughSet)
    del bpy.types.Material.slot_setting

if __name__ == "__main__":
    register()

I try to do multiple inputs by telling Blender to access the maps with if...else condition. The script can execute but it seems that Blender is confused about the condition and texture input is not working as usual.
Here is the excerpt of the script:
def updateMat(self, context):

    mat = self.id_data
    node = mat.node_tree.nodes
    prxy = bpy.types.ShaderNodeBsdfPrincipled
    img = bpy.types.ShaderNodeTextImage
    imgdif = bpy.types.ShaderNoteTextImage
    if mat.node_tree.links.new(img.outputs[0], prxy.inputs[5]):
        spec = img

        nodes = [k for k in node
                if isinstance(k, spec)]

        for k in nodes:
            k.image = bpy.data.images.load(self.rough)
            return k
    elif mat.node_tree.links.new(img.outputs[0], prxy.inputs[0]):
        dif = imgdif

        secNode = [s for s in node
                if isinstance(k, dif)]

        for s in secNode:
            s.image = bpy.data.images.load(self.diffuse)
            return s

class materialSet(bpy.types.PropertyGroup):

    rough: StringProperty(
            name="SPEC",
            subtype='FILE_PATH',
            update = updateMat)
    diffuse: StringProperty(name="DIFFUSE",
            subtype='FILE_PATH',
            update = updateMat)

I figured it out. I'd tried to think too much and the solution can be very simple. As nodes variable is already a list, I can simply tell the system which map belong to diffuse etc.
Instead of
 if mat.node_tree.links.new(img.outputs[0], prxy.inputs[5]):
        spec = img

        nodes = [k for k in node
                if isinstance(k, spec)]

        for k in nodes:
            k.image = bpy.data.images.load(self.rough)
            return k
    elif mat.node_tree.links.new(img.outputs[0], prxy.inputs[0]):
        dif = imgdif

        secNode = [s for s in node
                if isinstance(k, dif)]

        for s in secNode:
            s.image = bpy.data.images.load(self.diffuse)
            return s

I have done something like:
mat = self.id_data
node = mat.node_tree.nodes
img = bpy.types.ShaderNodeTexImage
nodes = [k for k in node
         if isinstance(k,img)]
nodes[0].image = bpy.data.images.load(self.rough)
nodes[1].image =bpy.data.images.load(self.spec)


Animate location and scale relative to starting point I'm making some animated infographic elements that I want to re-use (append) in other projects. One of the animations includes scaling up two objects and shifting their relative position. What I want to be able to do is

append the objects (with animations) into a new scene,
scale them and move them into the right position for the new scene, and
then have the animation run relative to the new starting position and scale.

Instead the starting scale and location are hard-coded into the animation keyframes and I have to edit the starting keyframe (loc and scale) for each object every time I re-use them. Is there a way to get around this?

After some digging, I think the best approach is to animate deltaLoc and deltaScale instead of Loc and Scale. That's a bit of a pain because you can't just position the object in the viewport and keyframe it. You have to use the Delta Transform section of the Properties panel (under Object properties).

First keyframe the starting value at the beginning of the animation action (by pressing 'I' while hovering over the Delta Transform values in the Properties panel). The starting value will usually be 0 for DeltaLoc and DeltaRot or 1.0 for DeltaScale.
Then move and/or scale the object by changing these delta values in the Properties panel.
Once they object is in the correct ending position, add another keyframe for DeltaLoc and/or DeltaRot (again by pressing 'I' while hovering over the values).

Of course, you can add further keyframes for DeltaLoc and DeltaRot if you want a more complex animation.

Now when you append the object into a new scene you can position and scale it as appropriate and the animation will run relative to the object's new starting position and scale.

The advantage of this approach over using a parented empty is that you don't have to deal with an extra object.


How to create edges between two lists of vertices in Sverchok I've got two sets of vertices in Sverchok:

I'm trying to draw edges between each corresponding vertex. I came up with this, but it seems overly complicated:

Are there any Sverchok nodes to simplify this operation?

List split

You can use one node with the List Split node. You'll avoid the repetition of the double Range Int node.

It's just a slightly different variation from your implementation. Apart from building a node that makes all at once, I can't think of a way to simplify it further.


Change the size of cylinder/rope in realtime (GameLogic) I want a cylinder or other object to change size when the main object changes its position. The cylinder needs to be a line that connects two points. All of this need to be able to change in the game logic as the main object that moves is controlled by a joystick.

The Stretch To would work great if I could get the end bones to connect/parent to the end point objects. I have a cylinder created with bones and Stretch To but it does not work in game logic.

Created two "endpoint" objects that move in gamelogic mode. Then grab their center location do some geometry and python code changes the cylinder (rope). only used one endpoint in the code below as the other endpoint was origin (0, 0, 0). Also note that this only watches one plane (x and z axis).

#get endpoint center location
boom_endpoint = boom_point.worldPosition

#get distance between endpoints
y_pow = (boom_endpoint[2])**2
x_pow = (boom_endpoint[0])**2
rope_distance = math.sqrt(x_pow + y_pow)

#scale value for axis that need to be stretched
new_scale = rope_distance/2

#angle between endpoints to rotate the rope
angle = math.asin(boom_endpoint[2]/rope_distance)
rope.localOrientation = rope.localOrientation * mathutils.Vector((math.radians(0), angle, math.radians(0)))
#apply scale and location changes
rope.localScale = mathutils.Vector((1, 1, new_scale))
rope.worldPosition = mathutils.Vector(((boom_endpoint[0]+0)/2, 0, (boom_endpoint[2]+0)/2))


How to create an air distortion/blur effect in eevee? I would like to recreate an air distortion/blur effect like the ones seen in marvel vs capcom 3 to give more "punch" to my animations (images attached to give an idea of what im looking for)

One way to do it would be to play with Principled BSDF Transmission and IOR.

I modeled a crude Christmas tree like shape by taking a cylinder and adding some edge loops to it. Next I selected randomly some of the faces and extruded them along individual normals. Then I moved the extruded vertices down.

and set the Principled BSDF transmission to 1 and IOR to 1.01.

This basically means that the material is almost air but not quite. It's quite close to warm air with a lot of distortion.

Remember to check Screen Space Reflections under Render Properties and Refraction under Screen Space Reflections.

and Screen Space Refraction under Material properties.
Next I animated the object to scale up, follow a curve and vanish by changing IOR from 1.01 to 1.00.


Material for Rainbow around Torus Is there a convenient way to make a rainbow material that varies smoothly along a torus? In the image below, I made a new emission material for each of the 32 segments along the major axis, changing the HSV hue by 1/32 each time. Clearly, you can still see bands of color; plus, it's labor intensive to make all of these materials, and challenging to edit afterwards.

Ultimately, I'd like to have the material's color spin around the object.

Just to add to Moonboot's nice answer.
ColorRamp can actually create the whole HSV spectrum for you :).

Set both sliders to Red
Set ColorRamp to HSV > Far
Done


Python: Check if file was saved I want to be able to check if the working .blend file has been saved when a user presses a button. If it has not been, Blender should give an error.

I just want the user to save before running my add-on.

If 'the file' you are referencing is a blender file and you want to know if it has been saved then there are two properties you can check.

If a blender file hasn't been saved at all you can check it's is_saved property as this will be False if it hasn't been saved:

if bpy.data.is_saved:
    #File has been saved. Do something.

(A previous version of this answer instead checked if the filepath property was blank instead - the above is a correction thanks to poor's comment).

For files that have been saved you can check the is_dirty property, which will be True when changes have been made since the last save:

if bpy.data.is_dirty:
    #Changes have been made since the last save. Do something.

To get a button to execute code have a look at Simple way to add button to UI.

For error messages look at Proper way to show users error info in the UI for addons.


How to add/remove links to existing or new nodes using Python? I have lots of objects consisting of many different meshes. Some of these meshes come with transparent materials applied to them. My goal is to modify the nodes list, add new nodes and change the links for the transparent materials. Based on this answer, I can detect the transparent materials (thanks to gandalf3) using the following Python script:

for obj in bpy.data.objects:
    if obj.type == 'MESH':
        for slot in obj.material_slots:
            if slot.material:
                mat = slot.material
                for node in mat.node_tree.nodes:
                    if node.label == "Mix Color/Alpha":
                        if node.inputs[1].default_value[0] < 1:
                            print("Material '%s' on object '%s' seems transparent" % (mat.name, obj.name))

Also, based on this answer (again, thanks to gandalf3) I can manually add shader nodes to get depth maps or surface Normals while ignoring those materials as shown below:

I need to do this process for thousands of objects. I am pretty new to the concepts of nodes in Blender and do not know how modify the nodes and remove/add links to do what is being shown in the GIF image above. So I wonder, how can I add the math and mix shader nodes and add/remove the corresponding links using Python?

You can download this .obj file and load it in Blender to be able and make sure your code works. Just make sure you have selected Cycles before importing the obj file into Blender so that Blender creates the materials' nodes list automatically.

NOTE: I'm not sure how this helps but some of the meshes share the same materials. For instance, in the car example, the headlamps and the glasses (windshield, side windows) share the same material.

NOTE: Just loading the object and doing rendering will not get you the same Normal maps as shown here. The surface Normals of the object I provide here are incorrect. If you want to get the same surface Normals you need to do the following: join all the meshes. Then go edit mode and recalculate outside surface Normals of the downloaded object. Then turn off Auto Smooth.

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

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

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

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

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


How can I align the background image to an object? I am creating a cartoon character over a drawing in Blender 2.76. The drawing has the grid floor at mid waist. However the bottom of the feet of the character are on the grid floor in front of the drawing. How can I move the drawing up to match the character? (I do not want to move the character down to match the drawing)

Adjust the Y setting in the background images tab to raise or lower your background image. You can also you the X value to offset the image on the X dimension.


How to randomize pixels in image/movie (size 12x12 pixels) I have 1920x1080 pixels movie. For some education purposes I have to demonstrate what it's going to look like if it would be

1) 12x12 pixels movie, and

2) when the pixels of that 12x12 movie would be randomly mixed up. (I don't need to mix them up continuously during playback, just once done than to be used).

Item one is done and I have a footage where I have 12x12 rectangles movie with a certain monochrome color each (lets call rectangles pseudo pixels, or PP). But I don't have an idea how to mix up the PP. So far I only think of creating 144 planes, than assign each of the plane the color of a particular PP in UV editor and than manually put the planes next to one another 12 rows 12 columns.
But I wonder, if there's a better (easier) way to do that? I think it's possible to do with compositing but I'm not good in that.

Tile Randomizer

How does it work? Faces of one plane (tiles) are mapped through Explode modifier to randomized faces of a plane with Build modifier.

Create a Plane and UV unwrap it, then loopcut it or subdivide to match desired columns and rows amount (final facecount = rows * columns). This is Randomizer object
Duplicate Plane ALT-D and add material with image. This is Image Plane object
Add Build modifier to Randomizer, check Randomize and drive a seed with expression #frame. May add Stepped interpolation modifier for a driver to control time interval before switching seed (step size is 5 for GIF in example).
Add Particle System to Randomizer, set particle count to match facecount, enable modifiers stack and set particle/face ratio to 1, also choose Keyed physics.
Add Particle System to Image Plane, and link same particles set as for Randomizer. In Physics tab press "+" button and add Randomizer's particle system as a target key.
Add Explode modifier to Image Plane.

Test file done in 2.79 for Blender Internal engine.


How do you limit property value without constraints? Let's say I have an "empty" that I want to only be able to move in the X axis, and only between 0 and 1. I can turn on the transform locks for Y and Z, but how do I limit X to only values between 0 and 1?

I tried the "Limit Location" constraint but it doesn't actually limit the actual value of the property, so unfortunately any drivers or expressions referencing that property will still see values out of that range even if the physical object appears to be within range.

You can use a driver to do that:

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

Now open a view with the graph editor (1)

Set it to drivers mode (2)

Select the X Location on your object (3)

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

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


Is it safe to delete the cache? Does deleting the cache files in the USER directory hurt anything?
The user directory where the cache in question is:

{username}\AppData\Roaming\Blender Foundation\Blender\2.70\cache

Also is cycles what is generating this cache?

Yes, cycles caches BVH (Bounding Volume Hierarchy) files in there when Cache BVH is enabled in Render settings > Performance:

Deleting them shouldn't do anything bad. Cycles will just regenerate these files (though it won't cache them if you disable Cache BVH), which might cause an increase in render times, depending on the complexity of your scene.


How to mix raytrace ambient occlusion with indirect lighting As the tilte says, how do I mix a rendered image that has raytraced AO and Environment Lighting with an approximated Indirect Lighting pass? My attempts at putting the images together in Paint.NET results in a washed out image and/or bad color saturation. How does Blender combine Indirect Lighting with the rest of the rendered image (add, multiply, color dodge)?

You need to use two scenes for this as far as I know, or two blend files, but I prefer to use scenes.

You have two choices:

The main scene has everything except the Indirect lighting, and the second scene has only the Indirect lighting.
The main scene has everything, including the indirect lighting, but not the AO. Then the second scene has just the AO.

Either way is fine in my experience, but I prefer to add the indirect lighting separately, so here's the first method:

Create a new scene and link all the objects from the current scene. This should keep all your animation, meshes, materials and textures in sync. (Adding a new object may be problematic, and I'd like to hear anyone's solution to that)

Unlink the World settings by clicking the number (in this case '2') next to the datablock name, otherwise when you turn off AO and enable Indirect lighting, it'll do the same to the other scene.

Now in the Render Layers tab of the new scene, uncheck Combined and Z, and check Indirect and Color.

Lastly you just need to join the two scene's renders together. You can do this in the compositor or any 2D/Paint program that supports layers.

In the compositor, simply multiply the Color pass by the Indirect pass (the Indirect stores the light color and intensity, but the Color stores the color of the surfaces which we also need), then Add this to the render of the main scene with ray-traced AO.

Here are the renders and passes in my example:

Main scene (raytraced AO):

Color Pass:

Indirect Pass:

Indirect multiplied by Color:

The final composite:

If you want to crank up the indirect lighting effect, simply increase the Fac on the Add node.

This method can also be used to get the Indirect lighting from Cycles if you want. You can even render a low number of samples in the Cycles scene and then use the Bilateral Blur node to even out the noise.


How to enable object for rendering When I try to bake a normal map I get the message "object xxx is not enabled for rendering".

I found some topics but the hotkeys (Space) for  doesn't work. In fact with Space I get a lot of functions but nowhere a hint how to clear the restrictions.

In SceneCollection the capera is on (same effect if off), the object is visible.

Any idea how to toggle the render permission?

OK, seems I was stuck in a stupid way.
I selected in the SceneCollection the objects BUT NOT the group. So far the the object itself shows the camera but slightly grayed out.

You have to enable the full object path to enable rendering eventually.


Import animation of an FBX model I've tried to import an animated FBX model in blender, but as result I've obtained just the model itself with its skeleton but without animation.
How am I supposed to import the model so that I can obtain the animation as well?

Blender FBX importing of animation is rather limited - only handles baked animation (that is, animated curves that are a bunch of points with linear interpolation between them), for transform (loc/rot/scale of objects and bones) and shape keys influences.

Beyond that, not sure which version of the FBX addon you are using, but FBX importer often finds many 'animation stacks' compatible with an object in FBX file, it converts them as Blender actions, and (at best) randomly affect one of those actions to the object. So suggest you check the Action Editor, and re-assign the desired action to your object.


grease pencil keyframe navigation? just have a simple issue of finding out how to jump to front or back key-frames, as I am currently typing in the number each time, but hope there is a simple short-cut / hotkey. Inside grease pencil in particular, if different to 3d etc. Thanks.

In Blender2.79 ,Grease pencil keyframes are shown in the Dopesheet ->Grease pencil Panel.
Hotkeys should be same for other Blender versions as well.

IMPORTANT - Mouse Cursor  should be in the Dopesheet Editor for Blender to recognise the scope of the Hotkey.

For moving inbetween keyframes, following Hotkeys are available

1.First/Last Timeline Frame - Shift Ctrl UpArrow /Shift Ctrl DownArrow
2.Next Keyframe - UpArrow
3.Previous Keyframe - DownArrow
4.Play/Stop Animation - Alt A/Shift Alt A (Version Blender2.79 and below) &
   Play/Stop Animation - Spacebar (Version Blender2.8 and above)


How do I position a donut onto a cube with the corner hanging in between the donut hole? I am trying to get the project on the right to look like the left. I am still in progress but ran into a positioning problem. I can not get the cube in the middle of the donut shape.

Select the cube, enter edit mode and select a vertex on the corner.

Then perss Shift+S to activate the snap function and select "snap cursor to selected" (the 3d cursor will move to the selected vertex).

Exit edit mode

Select the torus object and do "snap selected to cursor".


Why faces created with Bsurfaces are not visible? The first Greasse pencil stroke works fine but after I add second stroke I cant see the faces.Why is this happening?

Check normals orientation

It is possible that some faces has negative normals facing to the cam. You should be able to recognize them by their darker blueish color once the "Backface Culling" option is disabled in the 3D view properties panel.

Bsurface take in account the sequence in which you draw each strokes to understand where the normals are pointing, according to the created face index.

With backface culling enabled, Blender will not show the faces who are pointing not toward the camera. Edges remain though, leading to your situation.

I suggest you to select Backfaces and run the Flip normals commmand.


Bevel is not symmetrical I was trying to model a desk and came across a problem, I can't seem to solve.
I wanted to create a simple bevel.
I used Mesh > Edges > Bevel on a selected edge and got this result

Why is it not symmetrical? How can I make it symmetrical?

For reference, what I actually wanted:

It seems your object has non-uniform scale.  Apply the scale of the object with Ctrl+A > scale to fix this problem.

Beveling with non-uniform scale:

Applying the scale:

Beveling after applying scale:

When you scale an object in object mode, it is not really "applied" to the object's geometry.  I like to think of scaling as a modifier that is always last in the stack, whatever you do in edit mode (or most other places) is as if it was done before the object was scaled.

Check out this question for more uses of applying scale.


Is it possible to Generate a Master Shape Key from different objects? I have Two objects in the scene, Each One Of Them has a shape key, is there a way to generate a master shape key to Control Both of the shape keys in those Objects at the same time.

If you select one of the shape key value you just need to right click on this one > Copy as new driver, then go to the other object> shape key value > Right click Paste driver


how to move or copy all the viewport visibility keyframes to render-visibility channels? I am working with a blender3d animation where I need some objects appear/hide at specific frames. I made all the work using the eye icon (visibility view-port) instead of camera icon (render-visibility) before discovering that they are not the same :(

Aside from animating everything again and hitting my head on the wall for not reading the whole manual, is there some python script or something to move the existing animation keyframes from one channel to the other?

you can use this script to :

clean the render visibility channels
create new render visibility channel from the viewport visibility channel

Note : this is for all object in the current scene

import bpy

# clean all render view channels
for action in bpy.data.actions :
    for fcurve in action.fcurves :
        if fcurve.data_path == 'hide_render':
              action.fcurves.remove(fcurve)

#create new render view channel and fill it from the viewport view channel
for action in bpy.data.actions :
    for fcurve in action.fcurves :
        if fcurve.data_path == 'hide':
            render_fcurve = action.fcurves.new('hide_render')
            for p in fcurve.keyframe_points :
                render_fcurve.keyframe_points.insert(p.co[0], p.co[1])
                #set the interpolation from BEZIER to CONSTANT
                render_fcurve.keyframe_points[-1].interpolation = 'CONSTANT'
            break


How to move an object's origin to the center of its bounding box? What I want:
I want to set the origin of an object to the center of its bounding box using a python command.

What I've tried:

bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS')

and

bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')

What happened:

As you can see, the origin isn't centered to the bounding box.

EDIT: I asked the same question as Get center of geometry of an object with the addition of setting the origin to this center.

Have you tried setting the center to BOUNDS?

bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='BOUNDS')


Edge length display - disable exponential notation? I've been looking around on the internet (as well as in all the Blender settings) for solution, but nothing came up.

For whatever reason, since some recent point in time all the edge lengths in Blender show up in exponential form if they exceed 100 (i.e. 100 already becomes 1e+002).

I'd rather have it show up in decimals.

Not only this is somewhat inconvenient to read, it also turns out to be imprecise, as smaller numbers are not represented in mantissa (1000 is shown as 1e+003, 1007 is also shown as 1e+003). Is there some hidden switch for this mode, or logic by which Blender selects it?

Alright... the cause of the problem is as asinine and unintuitive as it gets.

The scale of the Grid - even when it's not in use - affects the precision of any displayed measurment numbers. The relationship is inverse - the higher the scale, the less significant numbers you're shown.

Few examples -

Scale 10:

Scale 1:

Scale 0.1:

Brilliant.


Does blender offer a posterization option for rendering? For example zbrush has the following option:

http://docs.pixologic.com/user-guide/materials-lights-rendering/posterization/

Maya has vector renderer which create a comic like poster effect. Does blender's option for posterization work with animation?

Not as such, no. But there is a toon shader for Blender Internal, and some similar results have been developed for Cycles.

What is probably more useful to you is a compositing setup that will operate on the render, rather than the material. Some success has been had with this node setup, using the "Round" algorithm. It separates RGB, rounds each to the nearest 0.1, and then recombines them.

Hope that helps!


Trying to find source of motion of a bone in blender 2.8 I've got an animation which was originally created in 2.78 and Im looking at it in 2.8.
What I notice is that some bones are animated, but I cannot find the keyframes associated with their motion. Also checking the dopesheet turns up empty. I dont find any parented objects which might be the cause either.

Ive uploaded an example http://pasteall.org/blend/index.php?id=51705

Im very interested to know how/where the animation data can be found.

many thanks in advance
Jesse

You've created some actions then pushed them down from the Dopesheet into the NLA, so they are playing in the NLA and you don't see them in the Dopesheet for the moment, it's the NLA that is playing. If you want to see one of these actions again in the Dopesheet you need to go in the NLA, select a strip and press tab, it will appear in the Dopesheet, or you can also reload it directly in the Dopesheet / Action Editor mode: Select its name in the dropdown menu of the horizontal menu bar.


Strange photo appears when creating mirror I was trying to make glass, instead of it I got something like mirror, but it reflects unknown photo of trees I haven't ever seen before.

it's the standard "viewport shading > material preview" settings. it's a "nice" standard feature to simulate that your mesh in somewhere in a real place:

you can also switch the shading preview if you want using this toolbar:


Moving folders has confused blender paths I needed to tidy the files I am using in my blender project. After doing so blender doesnt know how to find the files as the path they were on has changed.

What can I do with blender to make sure it doesn't lose the paths when I tidy the files?

You can be Packing as .blend or .zip instead of saving your file directly.

You can also try setting up the File Path under the Preferences


Edit Mode is not available I imported a model from the "Blender-Kit" Addon, but there´s only Object mode available. There´s also no "Material" Propertie on the right side... Is it possible to fix this, or can´t be Models from Blender-Kit edited?

I think blender kit objects will come in collections, try to select individual objects/single object from collection and then try for toggling edit mode - object mode


How Could I Select a vertex by its ID? How could I select one vertex from my mesh if I know ID of that vertex? I enabled bpy.app.debug = True and I can see all IDs but cant find a specific one.

here the answere:

import bpy
import bmesh

index = 0 # here the index you want select please change

obj = bpy.context.object
me = obj.data
bm = bmesh.from_edit_mesh(me)

vertices= [e for e in bm.verts]
oa = bpy.context.active_object

for vert in vertices:
    if vert.index == index:
        vert.select = True
    else:
        vert.select = False

bmesh.update_edit_mesh(me, True)


Need help scaling creating views of a diagram I'm working on a model of a steam locomotive and I don't know how to scale the diagram to be the correct size as well as create front and back views of the locomotive. the length of the locomotive from end to end is 48ft 6 7/8in long, I tried making the drawing larger and measuring it until it said something around 48.785' but it didn't seem to work to well. also is there a way to lock the diagrams so when I am creating the model I don't shift them? if anybody could help that would be great. Thanks

If you are saying that the diagram ur drawing doesn't become larger then you can duplicate one coach by pressing (Ctrl+D) and put it in the back of coaches and do this till you get the size you want..
And if u want to add words on the engine it can be done by UV unwrapping..
Hope it will help.
I'm also new to Blender btw!Thank you.


Blender 2.8 Transform stretch problem Whenever I try to transform any edges, all of the surrounding edges will raise up even if they are not connected.

Does anyone know why this happens and/or know how to turn it off?

Looks like you've got Proportional Editing turned on - you might have accidentally activated it with the hotkey O, or by clicking the small blue circle button just above the timeline, a little to the right of center. You can turn it off by pressing O or clicking the button again. That should restore the behavior you're used to.

That being said, proportional editing can be a really useful tool, so if you're not familiar with it, I'd definitely recommend reading up on it!


How to utilize local Rotation Axis with Animation Nodes I have these Objects around a Circle.
I want to have every object rotate around his local Z axis by 6.6 degrees more then the previous
object:
I thought Animation Nodes is a good way of dealing with this, but there is less information than I thought.
So first things first, how do I get the Objects to rotate around the local Z - at the moment
everything is rotating globally and I dont get it to behave anyhow differently...

Use offset Matrice node with local-axis local-pivot option selected to rotate on object's local axis. You can get that option from Advanced Node Settings of the node by pressing U or from right panel.

We can use Float Range node to generate a float list with step of 6.6 for rotation.

Alternate way:

PS. Turn on degrees currently everything is in radians.


How to twist particle hair guide along a curve? First I have an emitter and one curve,then I use bevel to create the shape and convert it to mesh.Using the hair guide addon I convert the mesh volume to particle hair guide.

How can I twist the whole bunch of hair guides along a curve ?
Edit:Just find out that setting curve guide for force field works for me.But can we use a map for a particle system telling it which part should be affected by the force field like density?

A Force Field of type Curve Guide can bend particles along a curve. The force field globally affects all particles systems and all particles. But you can limit the influence in the Particle Settings > Field Weights > Effector Collection. Select an empty collection to exclude all force fields.
Let's say you want to make pigtails. For this, you need 2 particle systems (for left and right), 2 density groups, and 2 collections each with one Curve Guide force field in it.


Missing Ray visibility and ambient occulsion settings I recently downloaded and installed blender 2.83.3 and couldn't find the Ray visibility, ambient occulsion, volume and settings in the World properties section.
These options were available in 2.83 but I can't seem to find them in 2.83.3, I'm wondering if I have a glitch copy

Ray Visibility and Ambient Occlusion are only available when you set cycles as render engine.


How can I get "borders" in Transparent BSDF? I would like to get "borders" using the Transparent BSDF function of the Cycles Render engine.

I would like to get something like this:
(see EDIT below)

which is from the blender documentation. If I simply take the start up cube and add Transparent BSDF with some color I get this:

I've tried to add planes in the background, but than I saw some weird effects. Is it possible to add the borders (or edges) of the cube?

Thank you very much in advance!

EDIT: I found something which is exactly what I would like to replicate:

I would like the transparent cube being sandwiched by something transparent as shown in the image. I've tried using solidify as suggested, but that doesn't give me the edge which is closest to the viewer. I am happy for any suggestions.

The simplest solution is to use a Mix node to mix between a Diffuse and a Transparent shader. Set the Diffuse shader Color as required. For a less "washed out" look, tone down the Transparent color from the default white to a lightish shade of grey.

I notice that the sample provided in the question does not cast shadows on each subsequent layer. This can be achieved by adding a Light Path node to use the Is Shadow Ray to mix in an additional Transparent shader (set to pure white) so that it is invisible when determining shadows.

Taking this a stage further, we can use a single color to control the Diffuse/Transparent shaders with a Mix node to control the 'whiteness' of the transparency - this seems to give good control of the appearance without having to manually adjust the color of both shaders. Adjust the Fac of the two Mix nodes to get the desired result.

Combining multiple materials with different colors and levels of transparency (and using a Sun lamp positioned to give good contrast between adjacent faces) can produce the following result :

To further highlight the edges you can enable Freestyle (in the Render properties) and control the Freestyle Line Style in the Render Layers properties (here set to 1.5 pixel width in dark grey).


Adding vertices to a filled face? I have a hoodie with two cat-headed holes punched in. If i just fill a face in it, i get it filled up but with no vertices at all inside the shape which will mess up my weight painting. I'd like to fill them in and also have vertices inside.

You can use the knife tool to create vertices inside of it, press K and start creating the vertices, conecting it with the outside ones. Other option is to select this face and press CTRL + T to triangulate it and make more vertices on it, but the knife tool is better


How to render specific parts i recently noticed i was rendering in half of 1080p, those renders alone took about 4 hours. with it in full 1080p it will take 25 hours just to render 300 frames! can i render a specific amount of frames at a time so my PC isn't working for 25 hours flat out? thanks.

You can do all of those things! Generally, it's best to render animations to a still image output. That way, you can render some, then come back to it and render more frames.

As for the resolution, it's entirely up to you. If you personally think that 720p looks good, go for it. If you plan publishing this on YouTube or putting it in a reel, you should render at 1080


How do I copy tracking data from one project to another? I've got a piece of footage that I have already tracked.

However, I can't just seem to 'copy' the tracking data, or the tracks itself. Selecting them all and copy-pasting between projects does nothing at all.

Pretty much, I want to reuse the same footage and tracking points in two different projects.

I can copy objects (ie. 3D models, armatures, lights, etc.) perfectly fine.

Question: Is there any way to copy tracking data? Or export/import it? (Data as in the keyframes of the tracking points that is used in camera solving, similarity to how armatures retain their animation keyframes and actions)

You can't copy tracking data between points as the tracking data is unique to each point in the scene. You know as you drive along and everything moves at a different speed, the trees next to the road fly by while the mountains hardly move - camera tracking actually relies on that to calculate the location of the camera from the video.

There is nothing stopping you from adding another point and tracking that point. You also don't need to add another point just because you want to add an object next to something. The points that are reconstructed in the scene are for reference, if you have tracked post three and post five you can place an object in between and it will be next to post four whether there is a tracked point there or not.


Change pivot point to selected point In the attached picture, that the model is in the center of the point. I want to change from pivot point to point, where I want to picture it.
In Maya 2017 Student version works like this, when it is possible to change with the D keypad.
Blender is so possible?

Thank you in advance for your help!

If you want to change the pivot point position, enter in Edit mode, select the vertice where you want the pivot point to be, press shift S > Cursor To Selected, go back in Object mode, then, in the bottom horizontal menu bar, in the Pivot Point dropdown menu, select 3D Cursor.


How can I create easily editable stylized hairs and fur? I want to create stylized hairs game assets or animated characters that I can edit and shape quickly. How can I do that?

Note: at the end of this post I am giving you a script that does all of that automatically

Stylized hair creation

The curves allow to create strands of hairs that you can quickly place and shape. You will need three things, the hair strand direction, a taper curve for the width and a taper for the shape to extrude.

Hair strand

Add a Curve > Bezier, in edit mode move it of 1 unit to the right so the root of the hair strand is on the origin. In the side view from the right (numpad 3) rotate the hairs in -90 degrees in edit mode.

Scale the curve in object mode to 0.15, then apply the scale.

Rotate the tip at 90 degrees so it faces downward and move it down.

For the resolution Preview U to 64. You can name it "hair_strand" so you can select them more easily in the outliner.

Taper

The taper determine how wide the hair strand is. The space between the origin and the curve allow to adjust it. Add a curve, from the top view rotate the base at 35 degrees and move it up by 0.04 units. Rotate the tip by 25 degrees

in top view rotate the tip at 15 degrees. You can scale it down to 0.15, do not apply the scale this time. Name it "hair_taper".

Bevel

The bevel is the shape that is extruded along the curve. To create it add a Curve > Circle change the Handle Type to Vector with the V shortcut. Scale it to 0.1 in edit mode then in Y by 0.35. Then set the vector type to automatic.
Name it "hair_bevel".

Here is the result (base mesh: http://www.dota2.com/workshop/requirements/lina ):

Place the hair strand and use Ctrl + T to tilt it.

The script (Blender 2.8+):

import bpy

# Hair Strand

bpy.ops.curve.primitive_bezier_curve_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR')
bpy.ops.object.origin_set(type='GEOMETRY_ORIGIN')

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

bpy.ops.transform.translate(value=(1, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.rotate(value=-1.5708, axis=(-1, -2.22045e-16, -4.93038e-32), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

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

bpy.ops.transform.resize(value=(0.15, 0.15, 0.15), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.curve.de_select_first()
bpy.ops.transform.rotate(value=1.5708, axis=(-0, 1, 1.34359e-07), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

bpy.ops.transform.translate(value=(-0.25, 0, -0.2), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.object.mode_set(mode = 'OBJECT')

bpy.context.object.data.resolution_u = 64

bpy.context.object.name = "HairStrand"

# Hair Taper

bpy.ops.curve.primitive_bezier_curve_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0))
bpy.ops.transform.resize(value=(0.15, 0.15, 0.15), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.translate(value=(0, -0.8, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

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

bpy.ops.curve.de_select_last()
bpy.ops.transform.rotate(value=0.610865, axis=(-0, -0, -1), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

bpy.ops.transform.translate(value=(0, 0.04, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.curve.de_select_last()

bpy.ops.curve.de_select_first()
bpy.ops.transform.rotate(value=0.436332, axis=(-0, -0, -1), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.context.object.name = "HairTaper"

# Hair Bevel

bpy.ops.curve.primitive_bezier_circle_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0))

bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.curve.handle_type_set(type='VECTOR')
bpy.ops.transform.resize(value=(0.1, 0.1, 0.1), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.resize(value=(1, 0.35, 1), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.curve.handle_type_set(type='AUTOMATIC')
bpy.ops.object.mode_set(mode = 'OBJECT')

bpy.ops.transform.translate(value=(0, -1, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

bpy.context.object.name = "HairBevel"

# Import curves

bpy.ops.object.select_all(action = 'DESELECT')
bpy.ops.object.select_pattern(pattern="HairStrand")
bpy.context.view_layer.objects.active  = bpy.data.objects["HairStrand"]

bpy.context.object.data.taper_object = bpy.data.objects["HairTaper"]
bpy.context.object.data.bevel_object = bpy.data.objects["HairBevel"]

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


How to simulate a rope? I'm trying to simulate a rope (that later might get pulled on the ends*) that interacts with some obstacles. So far I created a plane as the floor and a cube as an obstacle, and activated "collision" in the physics menu for both of them.

*(In the end the goal is simulating a string & wire puzzle.)

For modelling the rope, I tried using a long cylinder with enough subdivisions, and activate "cloth" in the physics menu. This resulted in the cylinder collapsing like a sleeve of a sweater, but I would like the cross section to remain roughly circular. Is there a way to directly avoid this?

Another approach I tried now was just using a a line made up of vertices and edges (with the idea of later adding modifiers to give it a thickness), but this just fell through all the collision objects as it has no faces. Is there good way to do this?

Create the rope using a string of vertices controlled by a Soft Body simulation and pin the ends to provide some control. Give the 'rope' thickness by adding Skin and Subdivision Surface modifiers and use the Collision bounds of the other objects in the scene to control the thickness to match. This is very similar to How to get the physics engine to wraps a string around the moving part of a motor constraint? but using two control points to control the ends (rather than bonding one end only to a rotating spindle).

Start with a string of vertices - the easiest way of creating this is to add a Path (Add/Curve/Path) and Convert to Mesh (Object/Convert To.../Mesh). Position and sub-divide the mesh so as to space the vertices a similar distance apart to the desired eventual rope thickness (this helps with self-collision as well as controlling the overall behaviour of the 'rope').

To be able to control the rope we need to pin the ends to something (empties) to act as handles. Moving the handles positions the end of the rope. To achieve this, go into Edit mode (Tab) and select just the end vertices of the path.

On the Mesh properties panel, add a new Vertex Group and click Assign so that the 'end' vertices are part of that group. At this point you can rename the group (double-click its name) to something meaningful like 'Pin'.

Select each 'end' vertex in turn, press Ctrl+H to bring up the Hook menu and select Hook to New Object. This will create an Empty at each end of the path.

In Object mode, select the path and add Soft Body Physics in the Physics properties. In the Soft Body Goal settings set the Goal Strength Default to 1.0 and the Goal Settings Stiffness to maximum (0.999). Set the Vertex Group to the 'Pin' vertex group created earlier.

In the Modifiers panel ensure the Hook modifiers are 'above' the Soft Body modifier.

Now, run the simulation and you should have a soft body string connecting the two empties. Moving the empties should affect the string.

To give the rope some thickness, add a Skin modifier and a Subdivision Surface modifier for smoothness. To control the thickness of the rope you can select the vertices in Edit mode and adjust the Radius X and Radius Y properties in the Properties panel (N).

For collision with surfaces, the actual collision occurs with the inner 'core' of vertices of the Soft Body (rather than its Skin), so adjust the Outer collision bounds to match the thickness of the 'rope' to compensate. To prevent the rope from cutting through sharp edges, enable 'Edges' collision in the Soft Body Edges properties panel.

Care needs to be taken with the collision to ensure the collision 'zones' from each surface do not 'leak out' of the opposite side of the mesh. See soft body collision considerations for further detail.

For self-collision, enable the Soft Body Self Collision settings and adjust the Ball Size to suit the thickness of the rope (this controls the 'size' of each vertex in relation to the length of it's connected edges - hence why spacing the vertices close to the thickness of the eventual rope is helpful).

Moving the empties along a path will now 'drag' the rope and this can produce the following results :

Blend file included

You can calm the softbody simulation to stop it wiggling around so much by adjusting the soft body parameters - for example, by increasing the damping or, in this case, increasing the Friction :

This takes some of the energy out of the motion of the rope, damping down its movement :

To texture the rope you can use Generated coordinates. The Generated coordinates are distorted to match the animation, following the motion. For example, consider the following material :

This uses the Generated X coordinate to determine the distance along the rope and uses the Maths Arctangent to convert the Y/Z coordinates into the angle around the circumference of the rope. These are combined and passed into Color Ramp nodes to generate the twists around the rope. This can then be used to generate a Normal using the Bump node and/or passed into the Displacement socket of the material to use the (experimental) True Displacement feature to displace the surface.

This can produce the following result :

Blend file including displacement

(Note : Blend file has soft body Edge colllision and self collision disabled to drastically increase speed of simulation - re-enable by clicking Edges in Soft Body Edges properties and re-enable Soft Body Self Collision)


The cycle toon render is not working properly I made it into a cycle toon render, but it's no different from normal diffuse render.
I hope toon shader looks like a picture of a monkey.
I know how to feel toon shader with eevee.
There's a toon node in the cycle, so I want to make it simple.

Set the angle to zero in the sun of light.
It also zeroes in the bounce of light.
Then you become a true toon shader.


Is there a shortcut to hide everything else except the object that's selected? Is there anyway of doing this with a keyboard shortcut without manually hiding each object on the scenes panel?

I remember vaguely there was a way to do this in 3DS max.

Press / on the numpad for Local View.

Press it again to go back and toggle it off.


How do I know a details about video codec used by Blender? When I do render animation I can choose a "Video Codec". Is that codec provided by Blender app, OS or is installed with some external app? How can verify what have been used?

Blender uses Ffmpeg to encode video (https://ffmpeg.org/). The Blender install provides support to read a wide variety of codecs, but offers a limited number of containers and codecs to write. The available codecs may also depend on how blender was compiled, and what other codecs are supported by the operating system you are using. For example on apple's confuser you might find other quicktime codecs (for licensing reasons) than on windoze or linux (to further compound the differences, some linux distributions don't provide ffmpeg support out of the box, like Fedora, again for legal reasons).
As much as we like to use blender for every need, be aware also that there are much better and more flexible encoder only apps out there. Even ffmpeg in terminal (or in many of the different frontends or GUIs) can give you more options (and faster encoding)
.


How to straighten all uneven edges at once I was playing around with sculpting and back and forth to edit mode and I noticed that the created mesh has uneven edges after scaling it to 0 in the Z axis.  I was wondering if there is a way to straighten all the edges at once. Of course I could do Shift+Alt+Click to each and every loop and scale them individually on the y, but that's quite time consuming. And to my knowledge I haven't figured a way to straighten them at once. So, if you guys have any idea please do suggest.

This looks like a job for the Mesh Relax addon. It comes with Blender. You have to activate it in the User Preferences.


Blender 2.8 scene collection not update when adding new objects Scene view seems not to update regardless how many components I add.

First image (have a cylinder and a plane (with a modifier)):

Second image, same but added a cube as well:

If any of the components overlap one another I can no longer select them individually (only the result of the overlap). Why?

Tldr : Press TAB to toggle between edit mode and object mode.

Blender has two separate modes for editing objects (object mode) and editing geometry (edit mode).

Right now you are adding more geometry to the same object, in edit mode. In edit mode, you can add the same default primitives (cylinder, sphere, cube...) as in object mode, but this will not create a new object, only add to the existing object's geometry.

If you want to create new actual objects, you need to toggle the mode into object mode with TAB or click the foldout menu in the top left of your 3D view.

Incidentally, if you select two or more objects in object mode, then go into edit mode with TAB, you will be able to edit all of the objects' geometry at once (Since Blender 2.80).


How? (for blender 2.8) to set hotkeys for specific screen space (workflow editors)? I used to have a pie menu hotkey that let me go to node editor, or UV editor or video editor.

Within preferences, calling each editor was Screen.set_layout, then there was another box within that hotkey that allowed you to put the name of the editor you wanted.

In Blender 2.8 I don't know what words/code to put in there.

In 2.80 screen layouts have been replaced with workspaces. This refers to the entire layout of blenders window.

Using python we can change the active workspace with

nws = bpy.data.workspaces['Animation']
bpy.context.window.workspace = nws

I don't see an operator that allows us to change the workspace in 2.80, at least not without creating a new workspace. That would require writing an addon to add that functionality.

We can change the current editor (the one the cursor is over), to do that we use

bpy.ops.screen.space_type_set_or_cycle(space_type='VIEW_3D')

To use that in your custom pie menu

row.operator("screen.space_type_set_or_cycle").space_type = 'VIEW_3D'

When using that in the kemap editor, you enter screen.space_type_set_or_cycle and then choose the editor type in the menu.

You will find within the window group of hotkeys, where you want to add your hotkeys for this, combining ⇧ Shift with F1-F12 is already setup to switch editors. The NLA, Info and Preferences being the editors with no hotkey setup.


pose.bones.matrix does not update after frame change via script I write an exporter to retrieve the pose bone matrix for every frame.

The concept looks like this, the code is called from an exporter class via an operation button in the tool shelf:

for action in actions:
    for frame in range(action.frame_range[1]):
        bpy.context.scene.frame_set(frame)
        context.scene.update()

        for poseBone in armature.pose.bones:
            exportMatrix = poseBone.matrix

However, the exported poseBone.matrix values all have the same values from one frame.
I checked in the pyhton console if the values change when i manually change the current frame and they do.

What am I missing to update the pose bone matrix after a frame change?

To summerize, I needed to perform these changes:

for action in bpy.data.actions:
    bpy.context.object.animation_data.action = action # sets active action
    for frame in range(numberOfFrames):
        bpy.context.scene.frame_set(frame)
        bpy.context.scene.update()
        for bone in bpy.context.object.data.bones: # instead of armature.pose.bones
            poseBone = armature.pose.bones[bone.name]


Blender equivalent of 'graph materials on selected objects'? Former Maya user here. Is there a solid way to 'graph materials on selected objects'? In Maya, you could right-click in the hypershade, select that option and Boom! All the textures and nodes that affect that object show up. Is there an equivalent in Blender? I'm positive it's there, but where?

Reason being, I added an image plane by dragging a png into the scene, and now I want to make it glow and animate and do stuff. But selecting it, I can't see its nodes in the shader editor. How do I do this?

Thanks in advance!
-Elliott

Dragging image in scene is equivalent of Add > Image > Reference, creates help Empty object. It's a relatively new feature since 2.80 and there is no native way to convert it to mesh object.

You need to enable addon Import Images as Planes and then you will have Image > Images as Planes operator in Add menu, witch create plane with proportions of image and do the shader node setup including transparency.


Brush in .PSD file format not showing So I have a few brushes in PSD file format, but when I try to append them into Blender they don't show up.

To import brushes in blender, you would have to convert it to jpg or png first. You can do it using GIMP. Open GIMP, drag and drop the PSD file and export it as jpg or png.

Also, appending them wouldn't work since it is not a .blend file. You would have to import them. Open user preferences, add-ons and search for 'Import Brushes'. Activate it and from the file menu, select Import, 'Brush Set' and browse to where you have saved your file.


How to fix when faces points on a disc are out of sync? I have a disc where all the black dot points for every slice are in sync, except the one circled in red in the picture above. How can I get that one back into sync where it should be on the face of that slice?

It usually means that it’s number of vertices is different compared to the other faces.
If you add a vertex to one edge (i.e by subdividing the edge), the dot in the centre of the face moves towards the extra vertex.

I don’t know what you did because I can’t look at your file, but you should know that in no way does this affect your final render… these dots only show in Edit Mode.

First you need to have a look at it in ‘Vertex select’ mode by selecting the first (left) of the three buttons on the header, directly below the 3D Viewport.

If you see an extra vertex (like the one highlighted on the right of my original screen shot), then select it and delete (press X, and choose ‘Dissolve Vertices’).

Another way to check is to select the face while in ‘Face select’ mode…

and check the number of Verts indicated in the top header, above the 3D Viewport.

The one I made has one extra vertex so it tells me: Verts:4/24 (4 Verts selected out of a total of 24 on the object. It should, of course, have only 3, being a triangle.