Is there a rule for where the origin point should be when modeling?

The Object Origin is the 0,0,0 mark of the local coordinate system of your object. Imagine your object sits inside a glass shoebox and snugly fits in. The three axes (width, length and height) run parallel to the edges of the box. The Object Origin is the ball joint by which the shoebox is fastened to the room.

Here are some general rules of thumb that you can break as soon as you understand their limits:

When you mirror anything, the Object Origin should lie on the mirror plane. If you have a symmetrical creature, it's left ear should be just as far away from the OO as its right ear.
The OO is the point around which your object rotates. When you do simple stuff like a door and you don't need an armature, you can put the OO where the hinges would be. That way you can just rotate your door and it will move correctly.
The OO is also the center for scaling. So if you want something to stay on the ground and only grow upwards, the OO should be on the ground, not in its middle. Think of a bar chart.
In most cases, object origins should stay close to your mesh. Beginners often move stuff in Edit Mode and forget that the OO stays put and then wonder why rotations don't work as expected.
Some Modifiers make use of the OO. The Mirror Modifier usually uses it to determine where the mirror sits. When modifiers have more than one object to deal with, aligning their OOs can help. Try the Array Modifier with object offset. The Curve Modifier usually cares a great deal about where the OO is.
Since the OO is the pivot point of the mesh, you can think of it as its gravitational center. Rigid body simulations actually treat it that way. So putting it to the visually correct center of gravity can be interesting.
Sometimes it makes sense to not put the OO where the hinge is, maybe because the symmetry of the object has nothing to do with its rotation. Then just parent your object to an empty and you have, in a way, created an in between OO.

To summarize it all: Stay inside the mesh and or stay on the centerline and or put it where a hinge or COG would be, break those rules whenever the consequences are useful and elegant.


is there a clever way to enlarge the driver expression field?

Recently there has been a question, to which my answer had a long, unreadable driver, that is also hard to modify. (you don't have to go there and read it)
How to use driver for multiple objects
Working on that example, we have a driver with expression: max(pi / 2 + (abs(distance/15) < 0.8) * (pi * 3/4 - abs(distance / 5)), pi / 2 + (abs(distance2/15) < 0.8) * (pi * 3/4 - abs(distance2 / 5)))
We can go to the scripting tab, and create a new script:

Then in the area below, we can write Python code to assign a new expression to the driver:
import bpy
bpy.data.objects['Cylinder'].animation_data.drivers[0].driver.expression = """
max(
    pi / 2
    + (
        abs(distance / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance / 5)
    )

    ,

    pi / 2
    + (
        abs(distance2 / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance2 / 5)
    )
)
"""

Now clicking on the Play button will run the script:

On 2nd line ['Cylinder'] points to the object with a driver, by its name. drivers[0] points to the 1st driver (drivers[1] would point to the 2nd driver and so on). Keep this in mind, as when you add another driver before this one, this driver's index will increase, so the next time you modify it using this script, you will have to update its index (or you will modify another driver by accident). This could be fixed by creating a driver in code, assigning it to a variable and saving this variable for further access, but it's outside of the scope of this question.
You can also see that now the driver has weird rectangle characters:

Those are newline characters, which this input field doesn't support. The driver works, but its expression is ugly. We can fix it, and also remove excess whitespace (tabs, spaces), by changing our code to:
import bpy
expression = """
max(
    pi / 2
    + (
        abs(distance / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance / 5)
    )

    ,

    pi / 2
    + (
        abs(distance2 / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance2 / 5)
    )
)
"""
driver = bpy.data.objects['Cylinder'].animation_data.drivers[0].driver
driver.expression = ''.join(line.strip() for line in expression.splitlines())

splitlines() divides a multiline string into a list of single line strings. ''.join joins this list back to a single string, but uses an empty string as a separator, so effectively we replace newline characters with nothing. line.strip() removes whitespace on the beginning and end of every line (whitespace inside the line are kept).
End result:


Node editor lagging / unresponsive and imprevisible

Yes!It was my fault from the beginning.
At some point long ago I have changed these settings in Preferences/Input
1.The lag is caused by Drag Threshold and Tweak T. With 3px (minimum allowed) the lag disappears. I supposed & tested that their function is to smooth out drag behavior in mesh editing and slider controls but did not expect to affect the nodes in the editor.
2.The snapping was by Continuos Grab which I use also in 3dMax. And that behavior in node editor is a bug.

  Drag Threshold
      The number of pixels that a User Interface element has to be moved before it is recognized by Blender.
  Continuous Grab
   Allows moving the mouse outside of the view (for translation, rotation, scale for example).  source: http://wiki.blender.org/index.php/Doc:2.6/Manual/Preferences/Input


How to toggle material view mode by hotkey (similar to Alt-Z/Shift-Z)

You can add the new shortcut by :

go to User_Preferences > Input > 3D_View > 3D_view(Global) > Add_New
setup the new shortcut as follows ( ⇧ Shift + Q are just an example choose your own ) :


Are your arrows objects? If so, uncheck their camera icon in the Outliner.
If you want to render to OpenGL make sure to mark "Only Render" under /Display in the 3D-view Properties window, too.


How do I determine Shift+Left Click modal operator?

I may be wrong.. but this is my understanding (and it seems to work for me):

There is nothing as simultaneous with the events. Even if you press shift and click simultaneously, there are actually four separate events. 1) event.type = 'LEFT_SHIFT' with event.value = 'PRESS' 2) event.type = 'LEFTMOUSE' and event.value = 'PRESS' 3) event.type = 'LEFT_SHIFT' & event.value = 'RELEASE' 2) event.type = 'LEFTMOUSE' and event.value = 'RELEASE' (the order might change depending on what comes first).

There is also a CLICK event.value available for LEFTMOUSE event.type that combines PRESS and RELEASE.

So, to answer your question, you would basically need to store an instance variable like self.shift and set / reset its value on event.value == 'PRESS' / event.value == 'RELEASE'. You can check in your function whether with the mouse press event occurred when self.shift was True.

If you figure out a better way to do this, I would be interested to know :)


Why are two of the teeth stuck in space away from my dinosaur?

Without knowing the details of your rig, the most significant difference between the two floating teeth and the adjacent teeth or the teeth on the other side is the vertex weight in the DEF-jaw vertex group.

Assigning full weight to both teeth for this group seems to fix the problem.


Is there a setting in hair particles to make flat planes face the camera?

What you might want to do, is set your hair particle system to advanced, and enable Rotation in your particle settings, set your Particle Orientation axis(under Initial Orientation) to Normal, that should make all of the hair face up as away from the sphere's faces.

Other than that, if it still doesn't work, try enabling Rotation under your render tab, and rotating the planes until they line up with the sphere.

Note, this won't make the planes face directly toward the camera, but it should make them face the correct direction, which would give nearly the same result.


What is the proper way of importing rigs from one blend file to another?

You'd better select in the source file all elements you need, Ctrl G create a group, rename it and then save, close, open the new file and APPEND that group. If you use Link instead of append, your rig will not be directly editable in your new file, you will have to make the edits in the source file.
To avoid confusion create a group even with a single element (the rig you need), then you can delete it in the new file: everything will automatically imported correctly.
Anyway, if you need only one rig (one armature with all related bones and constraints) you can rename it and simply append that armature.


As far as I know, the Sequencer has no multi-core support in the final rendering. (Surprisingly it has it for rendering proxy files). Also GPU rendering isn't available either.

I just found a recent thread in which a dev claims to work on multi-core support, so maybe it will come in the future. I definitely would appreciate such a feature.


There are several ways:

Select at least one element (face/vert/etc.) and press CtrlL to Select Linked.

Press L while hovering over an element with the mouse to select all elements connected to that element.

Select at least one element and press CtrlNumpad + to Grow the selection until everything is selected.

Select at least one face and press CtrlShiftAltF to select connected faces which have the same or similar normal/direction.

If you meant you want to select all elements that are connected to other elements, create/select a single vertex and press ShiftG> Amount of connecting edges (if you want don't want to select edges that don't connect to faces, use Amount of adjacent faces instead), then press CtrlI to invert the selection.
See the manual for a full list and description of all selection tools.


Palkonimo has the basics of it right, but you can accomplish the same thing more quickly using Blender's built in snap options.

Begin by picking two points on your model that you want to line up with an axis. Move the 3D cursor to one of those points.
Duplicate that point, and move it away along the axis you wish to align to.
Select the other of your chosen points on the model as the active element, expand your selection of the model using L or Ctrl +.
Rotate, using vertex snap to active element, and target the vertex you duplicated earlier.


How much better would blender be if I upgraded my Ram?

Use a System Monitor or Task Manager tool or similar (eg, ‘top’ on Linux) to see if your system is using all of its memory when you’re doing a large, slow operation. If you still have free memory then that isn’t the bottleneck. If, however, the memory runs out and the system starts swapping to disk (known as “page faults” or “virtual memory swapping”) then you would benefit from adding more memory.


Here is a solution using a temporary IK constraint:

The principle is to:

Set an empty at cursor position
Add a IK constraint to the bone targeting the empty
Get the resulting transformation
Remove the constraint
Assign the previously obtained transformations

The commented code:

import bpy

#Bones and its parents
def BoneAndParents( bone ):
    yield bone
    while bone.parent:
        bone = bone.parent
        yield bone

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

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

#Add a temporary empty
bpy.ops.object.add()
empty = bpy.context.scene.objects.active

bpy.context.scene.objects.active = arm

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

bone = arm.pose.bones['Bone.003']

#Add IK constraint and update
constraint = bone.constraints.new( 'IK' )
constraint.target = empty
bone.constraints.update()
bpy.context.scene.update() #Important: update the scene

#Get the bones and transformation due to the constraint
bones = [b for b in BoneAndParents( bone )]
transformations = [b.matrix.copy() for b in bones]

#Get rid of the temporary constraint and update
bone.constraints.remove( constraint )
bone.constraints.update()

#Assign transformation
for b, t in zip( bones, transformations ):
    b.matrix = t

#Remove temporary empty
bpy.ops.object.mode_set(mode='OBJECT')
bpy.context.scene.objects.active = empty
bpy.ops.object.delete()

#Back to pose
bpy.context.scene.objects.active = arm
bpy.ops.object.mode_set(mode='POSE')


Shading in object mode differ from sculpting mode?

Custom split normals data

Your model has a custom split normal data (probably due to a normal edit modifier that has been applied or because the mesh was made with another software...) that keep some face shading in that way.

If you don't need the data, you can clear it to remove the informations, or you can just disable auto smooth to make the split normals data not visible.


When you have selected a vertex, press G to move it.
But in your case I'm not sure you going to come far with a 1-click-mouse.
In addition it's a good idea to read the blender documentation or watch some tutorials about blender on YouTube to get an idea of what you are doing.


This script will generate a legend plane with text on the 2nd layer.

This script assumes the terrain object's name is "Plane".
To change it, change the object's name in line 7:

obj = bpy.data.objects['Plane'] # Reference terrain object

The color ramp was generated according to the example in the question above (3 swatches with pure green, blue and red in that order). Anyway, the script takes the colors from the original terrain object's color ramp.

It also generates 7 rungs to the legend's ladder according to the provided example. To change this, find the rungs variable i the script and change its value.

import bpy
from math import radians

def update_legend( scene ):
    C = bpy.context

    ## Get global height coordinates of terrain vertices
    obj = bpy.data.objects['Plane'] # Reference terrain object
    m = obj.to_mesh( C.scene, True, 'RENDER' )

    offset  = 0.5 # The value placed in the math.add node
    heights = [ v.co.z + offset for v in m.vertices ]

    minZ = min( heights )
    maxZ = max( heights )

    ## Generate legend color bar

    legendPlane = None
    if 'legend' in bpy.data.objects:
        legendPlane = bpy.data.objects[ 'legend' ]
    else:
        # Add legened plane on layer 2
        bpy.ops.mesh.primitive_plane_add( layers = [ i == 1 for i in range(20) ] )

        legendPlane = bpy.data.objects[ C.object.name ]
        legendPlane.name = 'legend'
        legendPlane.dimensions.y = 20

        bpy.ops.object.transform_apply( scale = True ) # Apply scale (dim change)

        # Setup legend material
        cr = obj.active_material.node_tree.nodes['ColorRamp']

        legendMat = None
        if "legend" not in bpy.data.materials:
            legendMat = bpy.data.materials.new("legend")

            legendMat.use_nodes = True
            t = legendMat.node_tree

            t.nodes.remove( t.nodes['Diffuse BSDF'] )

            emit = t.nodes.new( 'ShaderNodeEmission' )
            mo   = t.nodes['Material Output']

            # Link Emission to Material Output
            t.links.new( emit.outputs['Emission'], mo.inputs['Surface'] )

            # Generate new color ramp and link to Emission node
            colorRamp = t.nodes.new( 'ShaderNodeValToRGB' )
            t.links.new( emit.inputs['Color'], colorRamp.outputs['Color'] )

            # Add another color swatch in the middle of the ramp
            colorRamp.color_ramp.elements.new( 0.5 )

            # Set color ramp colors
            originalRampColors = obj.active_material.node_tree.nodes['ColorRamp'].color_ramp.elements[:]
            for i, c in enumerate( originalRampColors ):
                color = c.color[:]
                colorRamp.color_ramp.elements[i].color = color

            # Add Texture coordiantes and Mapping nodes
            mapp  = t.nodes.new( 'ShaderNodeMapping'  )
            texco = t.nodes.new( 'ShaderNodeTexCoord' )

            # Set up texture coordiantes Y rotation
            mapp.rotation[1] = radians( 45 )

            # Set up links
            t.links.new( mapp.inputs['Vector'],   texco.outputs['Object'] )
            t.links.new( colorRamp.inputs['Fac'], mapp.outputs['Vector'] )

        else:
            legendMat = bpy.data.materials["legend"]

        legendPlane.active_material = legendMat

    ## Generate legend text

    legendTextMat = None
    if 'legendText' in bpy.data.materials:
        legendTextMat = bpy.data.materials["legendText"]
    else:
        # Generate a material for the text
        legendTextMat = bpy.data.materials.new( "legendText" )

        legendTextMat.use_nodes = True
        t = legendTextMat.node_tree
        if 'Diffuse BSDF' in t.nodes:
            t.nodes.remove( t.nodes['Diffuse BSDF'] )

        emit = t.nodes.new( 'ShaderNodeEmission' )
        mo   = t.nodes['Material Output'] if 'Material Output' in t.nodes else t.nodes.new( 'ShaderNodeOutputMaterial' )
        t.links.new( emit.outputs['Emission'], mo.inputs['Surface'] )
        emit.inputs['Color'].default_value = (0,0,0,1) # Set color to black

    # Calculate text positions
    heightRange = maxZ - minZ
    rungs       = 7
    interval    = heightRange / rungs

    ladderText = [ str( round( minZ + i * interval - offset, 2 ) ) for i in range(2, rungs) ]
    ladderText = [ str( round( minZ - offset, 2 ) ) ] + ladderText + [ str( round( maxZ - offset, 2 ) ) ] # Add min and max Z values

    legendGlobCoo = [ legendPlane.matrix_world * v.co for v in legendPlane.data.vertices ]
    legendY = [ co.y for co in legendGlobCoo ]

    minY, maxY = ( min( legendY ), max( legendY ) )
    yInterval  = ( maxY - minY ) / rungs
    yPositions = [ minY + i * yInterval for i in range( rungs ) ]

    # Set X position as legend plane's maximum X + a space of 0.5 blender units
    xPos = max([ co.x for co in legendGlobCoo ]) + 0.5

    for i, yPos, text in zip( range(rungs), yPositions, ladderText ):
        name = "rung%s" % i

        o = None
        if name in bpy.data.objects:
            o = bpy.data.objects[ name ]
        else:
            bpy.ops.object.text_add( location = ( xPos, yPos, 0 ), layers = [ i == 1 for i in range(20) ] )
            o = bpy.data.objects[ bpy.context.object.name ]
            o.name = name
            o.location.y += i * ( o.dimensions.y / 2 )

        o.data.body = text

        o.active_material = legendTextMat

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

EDITED:

Fixed the issue that occurred when running this script with a modified mesh (in this case with dynamic paint), by converting the modified object to a mesh and using its coordinates. Here's an image of the legend generated at frame 110 of your simulation:

EDITED2:

Now updates values according to current frame via an app_handler.

EDITED3:

corrected line 128 > range(1,rungs) to range(2,rungs), so legend of scale bar is correct


To track a moving object you need a part of the object that can be found in each following frame. The more unique the section and the more contrast it has to the surroundings, the easier it is to track without error.

As you are recording the video you can take steps to improve the result. Consider the content of the video and think of something that will contrast with the surroundings. If the actor is wearing a black shirt then a black spot on the hand can disappear in it. If you are going to cover the hand, a black glove with some white spots could help, you could place a couple of big rings on the outer fingers for spots to track, you also have options like wearing a watch or a custom made rig which you may have seen in object tracking tutorial videos. By placing red and green balls extended from the object you get a greater area that improves following movement and rotation being tracked. Also have multiple spots, while one may disappear a second can be used to keep following.

Within blender you have some options to help.

In the track settings for each marker you can enable/disable colour channels which can sometimes get better contrast and less errors.

If the hands are moving quickly you may also want to increase the search area, this is the area searched to find a match for the marker.

Enabling this shows the second box around the marker. Dragging the corner with a triangle will scale the area while dragging the square corner allows you to offset the search area if the movement is always in one direction.

Also use the newest version of blender, many improvements have been made since motion tracking was added.


That comes from the difference between degrees and radians. For some reason, the drivers evaluate rotation in radians no matter what the  Units are set to in the Scene settings.

To get the expression working you have to convert radians to degrees. So your expression would be.
360/Array * 0.0174532925 or 360/Array * pi/180 or even shorter pi*2/Array

There are 0.0174532925 radians in 1 degree, so just multiply your expression by the difference between degrees and radians.


There is always one tool active so closest option to exiting tool is to switch to Select Box.
For shortcut:
You can press first 'Escape' key to cancel if in middle of operation and then 'W' key once to switch out of current tool like extrude/inset etc. to Box select tool.
Pressing 'W' second time or more will change the select option from box to circle and so on.


How can I prevent boid particles from intersecting?

You can use CrowdMaster to simulate the stadium correctly. You can view a nice example of this kind of scene in this video: https://www.youtube.com/watch?v=kmjfbEGzX6M


shift alt left click for loop select doesn't work in 2.8 anymore. What did they change now?

In Edit > Preference > Input part if you have Emulate 3 Button Mouse in this case the Alt key serves as the third button so the shortcuts do not all work.

Just remove the check mark in the Emulate 3 Button Mouse box.


Does it matter if I bake a Normal map from a model withouth Color?

If you're not going to add bump, displacement or normal textures onto the high poly model, then it does not make a difference wether you bake it before or after adding textures.

All sculpted detail will properly be baked regardless of (color) textures.


How can I set the Lamp type using Python scripting?

Confusion between object and its data

Blender has many object types, 'LAMP' is one of them. It is set by the data type on creation and is read only.

>>> D.objects['Lamp']
bpy.data.objects['Lamp']

>>> D.objects['Lamp'].type
'LAMP'

>>> D.objects['Lamp'].type = 'LAMP'
Traceback (most recent call last):
  File "/usr/lib/python3.6/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<blender_console>", line 1, in <module>
AttributeError: bpy_struct: attribute "type" from "Object" is read-only

A 'LAMP' type object (bpy.data.objects) has a lamp (bpy.data.lamps) object as its data. Just like a 'MESH' object has a mesh (bpy.data.meshes)  The type of lamp can be set on the data part.

>>> D.objects['Lamp'].data
bpy.data.lamps['Lamp']

>>> lamp = D.objects['Lamp'].data
>>> lamp.type
'SPOT'

>>> lamp.type = 'HEMI'
>>> lamp.type
'HEMI'


Final

Maybe something like this will be enough for you. It is fairly simple and made only with nodes. Rendered in EEVEE.

Overview

Ocean

It's a simple Plane with Ocean modifier and animated Time value. From 1 to 5 trough 150 frames.

Material

I've used "two parts" material. First one is shrinking circle (distorted) and second is main distortion. At the end of the node setup I've used Color Ramp to select ocean and oil colors.

Shrinking is made by animating Mapping Scale.


Blender shows this error 'Loading 'C:\file.blend': Missing DNA block;

More often than not if the Missing DNA Block message appears the affected *.blend file will be utterly unusable, nothing can be done to retrieve the user generated content it otherwise contained. In these instances it may still be possible to reestablish the project checking whether Blender created a *.blend1 backup file in the project folder ...

Read on at https://www.katsbits.com/codex/missing-dna-block/


To solve this, I had the wild idea of using multithreading to give me multiple stacks. I didn't honestly know if this would work before I tried it. I hate multithreading generally, but this is a very basic version of that. I'm sure others can improve on it. In my final product I implement multithreading into my backtracking algorithm.

import threading

def recurThread(x,y,z):
    if x <= 1:
        y.append(x)
        if z[0] != 1:
            new_y = []
            z[0] -= 1
            new_t = threading.Thread(target=recurThread, args=(900, new_y, z))
            new_t.start()
            new_t.join()

            y += new_y
        else:
            return

    y.append(x)
    return recurThread(x-1, y, z)

y = []
z = [50]
x = threading.Thread(target=recurThread, args=(900, y, z))
x.start()
x.join()
total = 0
print(len(y))
for i in y:
    total += i

print(total)

This is the basic idea. Things to note are that if you want to get values back from the threads, you need to store them (and pass them) as mutable objects like lists.

The other thing to note if you're unfamiliar with threads (like I was) is that you need to .start() your thread. More importantly, .join() will wait for the thread to finish before continuing. This allows for the program to be run normally, just with this instance of a thread allowing you to cheat the stack limit.


Normal map rendering blocky shading/ shadows

I couldn't figure out the solution as to why my normal map was giving me such harsh quad shading. I opened it in other programs and determined that the normal map generated from the baked diffuse I used on the rock always contained harsh edges even though the normal map itself doesn't show it.

Instead I found this incredible tool for combining normal maps and used my original baked normal map and combined it with another to give it more texture. The method I used was to open the broken normal map into gimp2, turn it back&white and then use the gimp2 normal map plugin to turn it back into a normal map.

https://www.blendswap.com/blends/view/76176 <<< This is the combine normal map tool I used. Huge thanks to RadCapricorn for uploading this.

Here's my result:

So agian in bullet points:

-Take broken N-map into Gimp2
-Turn it greyscale and edit contrast according to how much detail you prefer
-Use Gimp2 normal map plugin found here: https://code.google.com/archive/p/gimp-normalmap/downloads and a cute tutorial on how to use it here: https://www.youtube.com/watch?v=8Jdo3ZmtPWk

Then if you want to combine the normal map with your original baked one then:

Use this blend file: https://www.blendswap.com/blends/view/76176

Follow the instructions contained within the blend file itself.

New blender 2.8 shortcut to save images: SHIFT+S (it's no longer F2)


Shining light through model in Blender 2.79, Cycles

Use principled shader. Go to TRANSMISSION set it to 1. Now it will look like crystal. Use roughness transmission to get it as you like. You can drive the effect using a mask or a texture with white vignetting effect on the sides and totally black on the middle so that light gets restrainted on the sides but passes clearly on the middle.


When you want to export an obj file with jpeg textures, simply create jpg textures first.

*.mtl is no image format. A Obj file is made of two parts. The *.obj part contains the mesh data. The *.mtl part contains material settings for a primitive phong shader, including the texture paths. You should not leave the *.mtl part away, it is part of the obj file. And when you leave it away then the textures are not found.

So when you export an obj file with jpg textures, then you should end in three parts. The *.obj file, the *.mtl file, and the *.jpg file.

(As a side note, Jpg is the worst texture format you can choose. It uses a lossy compression. You loose quality. I prefer PNG)


Scale and dimensions problem importing to Unity

From your question your trying to do 3 things at once. maybe some of these tips will help.

To keep the scale at 1,1,1  make your changes in Edit Mode, not Object Mode.

If your object is not scaled to 1,1,1 you can reset this with:
'Apply Scale'. 'ctrl+A -> scale'

To make your plane flat, select all the vertices and scale them on the Z to zero.

Same to align any row of vertices, select the row, and scale X to 0.

To put the plane at the Global Position z=0, Set your 3d cursor, and then snap the plane to it.


How to achieve this shape (Twisted bottle)

Create the untwisted shape, it looks a bit curved on its sides:

Give the object a Lattice modifier, create the lattice object, scale it in Object mode (not in Edit mode!) so that it contains the bottle, give it some additional horizontal edge loops, create 2 shapekeys, select the second shapekey, go in Edit mode, twist each of its horizontal edges:


Unbinding the Modifier should reduce your file size to the previous 60Mb,
but the deformation data from your binding will be deleted.
Same with the Surface Deform Modifier.
I recommend to keep the modifier unbinded and bind it only before final render (if your workflow allows that).


Renders get pixelated when viewed up close

The image you uploaded has the dimensions of 960 x 540. This is half HD. Most likely the problem is that your render scale is set to 50%. This means that the actual render size will be 50% of the specified render size.

To fix the problem. Set the scale to 100%, than your renders will actually be full HD


How to select all non-CPU CUDA or non-CPU OpenCL devices for Cycles rendering (command line)?

You can filter the devices returned by get_devices() by their type. The following script enables all CUDA devices that aren't CPUs. You can do the same for OpenCL or even combine the two into one script. If you want to disable CPUs that are already enabled in the preferences, you'd have to add an else case that sets device.use = False.

import bpy

preferences = bpy.context.preferences
cycles_preferences = preferences.addons['cycles'].preferences
cuda_devices, opencl_devices = cycles_preferences.get_devices()

cycles_preferences.compute_device_type = 'CUDA'

for device in cuda_devices:
    if device.type != 'CPU':
        print(f'Activating {device.name}')
        device.use = True

An add-on could be implemented like this:

bl_info = {
    "name": "Enable GPU devices",
    "author": "Robert Guetzkow",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "Properties > Render > Enable GPU panel",
    "description": "Enable GPU devices (CUDA/OpenCL) for rendering",
    "warning": "",
    "wiki_url": "",
    "category": "3D View"}

import bpy

def enable_gpus(device_type):
    preferences = bpy.context.preferences
    cycles_preferences = preferences.addons["cycles"].preferences
    cuda_devices, opencl_devices = cycles_preferences.get_devices()

    if device_type == "CUDA":
        devices = cuda_devices
    elif device_type == "OPENCL":
        devices = opencl_devices
    else:
        raise RuntimeError("Unsupported device type")

    activated_gpus = []

    for device in devices:
        if device.type == "CPU":
            device.use = False
        else:
            device.use = True
            activated_gpus.append(device.name)

    cycles_preferences.compute_device_type = device_type
    bpy.context.scene.cycles.device = "GPU"

    return activated_gpus

class PREFERENCES_OT_enable_cuda(bpy.types.Operator):
    bl_idname = "preferences.enable_cuda"
    bl_label = "Enable all CUDA GPUs"
    bl_description = "Enable all CUDA GPUs as render devices, CPUs will be deactivated."
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        try:
            activated_gpus = enable_gpus("CUDA")
        except (RuntimeError, TypeError) as e:
            print(e)
            self.report({"ERROR"}, e)

        if not activated_gpus:
            self.report({"WARNING"}, "No CUDA compatible GPUs found.")
        else:
            self.report({"INFO"}, f"Activated {', '.join(activated_gpus)}")

        return {"FINISHED"}

class PREFERENCES_OT_enable_opencl(bpy.types.Operator):
    bl_idname = "preferences.enable_opencl"
    bl_label = "Enable all OpenCL GPUs"
    bl_description = "Enable all OpenCL GPUs as render devices, CPUs will be deactivated."
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        try:
            activated_gpus = enable_gpus("OPENCL")
        except (RuntimeError, TypeError) as e:
            print(e)
            self.report({"ERROR"}, e)

        if not activated_gpus:
            self.report({"WARNING"}, "No OpenCL compatible GPUs found.")
        else:
            self.report({"INFO"}, f"Activated {', '.join(activated_gpus)}")

        return {"FINISHED"}

class ENABLE_GPU_PT_panel(bpy.types.Panel):
    bl_label = "Enable GPU"
    bl_category = "Name of your tab"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "render"
    COMPAT_ENGINES = {"CYCLES"}

    @classmethod
    def poll(cls, context):
        engine = context.scene.render.engine
        return (engine in cls.COMPAT_ENGINES)

    def draw(self, context):
        layout = self.layout
        layout.operator(PREFERENCES_OT_enable_cuda.bl_idname)
        layout.operator(PREFERENCES_OT_enable_opencl.bl_idname)

classes = (ENABLE_GPU_PT_panel, PREFERENCES_OT_enable_cuda, PREFERENCES_OT_enable_opencl)

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

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

if __name__ == "__main__":
    register()


Why is my Material Nodes -based blender internal texture not translucent like the other one? How do I work around it?

Thanks to Vailreth from IRC.  He noticed that the Transparency under Render Pipeline Options (which started out minimized) was not checked on the problem material:


problem of booting blender has been solved re-installing NVIDIA drivers.


Align internal face of UV island with another island

Using Snap to vertices in the UV editor is really the only option you have for aligning.
Select the parts you want to move, and move the cursor over them until they snap to the side you want. This should work fine with more complex unwraps too.

I verified this by testing it out on a suzanne head here:

After:

This is about the closest you can get to actually aligning faces, other than eyeballing it.


heat weighting: failed to find solution for one or more bones

I know 2 situations where this problem raises:

When the Object consists of 2 or more separated (not connected) meshes which intersect. This could be solved by fixing the mesh topology, like connecting the intersecting meshes into one single mesh and by fixing your model to avoid the intersecting areas.
When the object has duplicate vertices. This can be solved by removing doubles in Edit Mode ( keyboard shortcut "W" -> Remove Doubles)

I do not know the exact reason why the algorithm fails in these cases and if there are other cases as well where it fails. However it must be related to ambiguities while calculating the weight ratios for the involved vertices.

I took a quick look into the blend file that was provided by the OP. I found the head of the character has many duplicate vertices (about 320). Removing doubles solved the issue in this particular case.


Blurry but HD Render - How do I make it sharper?

I've found out why it was blurred. As @cegaton suggested - It was a defocus node that was added . . .

Can be found in node editor (ShiftF3) as said in the wiki.


Rig moves mesh but not activly with the rig, only when move is done

Delay Refresh was toggled on. Make sure this is off. When toggled on, the rig will move separately from the mesh until you release click. It will instantly update to the rig but will not move with it unless this is toggled off.  I carefully scrutinized my backup file till I found one difference.


This is far from ideal but it's a quick fix:

Extrude one of your edge loops and place it near or inside the other one.

Then bridge them.

Select the middle loop, hover over "smooth Vertex" and hold RETURN until it's stretched.

Of course this creates more horrible geometry. It might be better to use a cylinder made of quads and use a Shrinkwrap Modifier to get an inner wall. Or use the Shrinkwrap to replace the original organic wall with one that has a nice topology.

Blender is not really equipped to handle a lot of chaotic tris. Quads make bridging and other operations much easier and more predictable. Ideally the vertex count of both loops should be the same and the verts should be evenly spaced.

A crazier way:

Hide everything except your edgeloops. if they line up on an axis, hover over the axis in the transform panel (Y in this example) and hit CTRLC

LMB drag the value up until the loops roughly align.

Bridge them.

Select the moved loop, hover over the Y axis and hit CTRLV. The loop will be back in its place.

Yet another way would be to bridge the hole piece by piece and not in one go.

I must admit that so far I haven't been able to recreate your troubles, so the solutions are a bit of guesswork.


How to apply rigid body animation to frame 1 in Blender 2.81

Found a solution after searching for hours-

https://blenderartists.org/t/locking-down-freezing-rigid-body-positions-after-sim/591104/10?u=bharat_justa


I have a feeling that these passes are used for testing/troubleshooting purposes.
Let's take the Denoising Intensity pass for example. If plugged into a viewer node, you will see a black and white image. An entirely black pixel means that denoising has been applied at maximum strength, and completely white would mean that the denoiser did not touch that area.
I think this would be very useful in figuring out how to fix faulty compositor setups. If there are some strange artifacts, the Denoising Intensity value can be used to let the viewer see if the denoiser is causing the problem, as smart tech like this can be unpredictable. You can even use it to your advantage to smartly blur out the artifacts.
Additionally, because denoising intensities as automatically generated to optimally denoise the scene, the user can also use it to see which parts of the scene are more noise-prone.
This is just my speculated idea of the usage of one denoising pass. I have a strong feeling that the other ones will be of assistance in a similar way. In most cases, however, they would be useless.


Playback from start instead of from current frame?

Press Alt+A then hit Esc (while mouse in the 3d view) and then press Alt+A again to start from frame one. If this doesn't work you should open once your timeline and move once your mouse at frame one.


I hope I understood your question correctly, since the topic asks something else than the text. If I got it right, you want to know why you can not split a single selected edge.

I think the problem is that Blender can not connect two vertices with an edge twice.

If you only select one edge and try to split it, Blender would have to insert a second edge between its two vertices. My guess is that this collides with the internal data structure of Blender.

To solve this problem you would have to insert another vertex along this edge first, so that after splitting you will get a "ring" of four edges. Then there are no two vertices connect twice and Blender is happy.


How can I set the number of samples per View Layer?

The setting is still there - but it is in a different location. You now need to look to the Override panel where you'll find the Material override as well as the Samples override.


How to add custom function to pre-existing buttons in Blender 2.8?

Why reinvent the wheel?

If you press play the pause button is shown and vice versa.  Turn on developer extras and view source and will find

if not screen.is_animation_playing:

to draw the pause button. screen is the context screen.

Hence your boolean property could be replaced by or driven with bpy.types.Screen.is_animation_playing

Notice it belongs to screen not scene as it can be set on a per screen basis.


I know you said no single user but your goal is to keep them linked so here's
my workaround:

unlink only one in object data panel
apply the scale to this one
link the others to it in the object data panel

It can be a little bit of work in relation to the number of linked objects but it works. I had 25 objects sharing the same data and it took only a few seconds to finish.


Probably your scale center is the 3D cursor.

Scaling and other operations are dependent to the center of it.

You can change that from the options shown in the picture below.

For what you want, probably "median point" is the good choice.


Mesh always faces User Perspective when added

You can adjust it in the Preferences>>Editing>>Objects.

Or instantly at the lower left corner of the 3D View when you add new models. As Gorgious said in the comment section.


I know what I did wrong! The bad mesh deform is because I didn't rename all of the vertex groups and just the arm groups. The weight paint was overlapping from the chest vertex group and renaming it fixed the bad deform.


How do I delete vertices that clip inside a mesh?

What you want is do remove anything that goes inside your torso part , you can duplicate your head , if your head is a part of your torso but if it is a separate object in the edit mode you can select one face on the head and do CTRL+L to select the linked faces ,if you didnot merge any vertices of the head with the torso , this will work, and use one of the head to bool out(difference) the torso and then your second head will fit perfectly


Compositor has a different effect when editing Render Result vs external PNG image?

This issue is that the exported image has been conveted using color management transforms.

In short words, the renderer will determine a light value for each pixel, with range from 0 to infinity in a linear way. When you export an image every value will be converted to fit the 0.0 (black) - 1.0 (white) range, and applies a transform, determined by the settings on the color management section.

The values of the two images (rendered and exported) will be different. In other words: the original values are unbound and linear (also known as Scene Referred), the values on a PNG are limited and a "gamma curve" has been applied so the values are no longer linear (they have been converted to Display Referred)

See this answer for more detailed infos Render with a wider dynamic range in cycles to produce photorealistic looking images.

Saving the image as EXR files, will allow you to retain the original unbound and linear light values!


How do I add random spotting to the same face in cycles?

If I understand correctly you try to find a procedural way to make some black and white spots on yout object. Here is a way to do it:

Make the following node chain : Texture Coordinate (Object output) > Voronoi Texture > ColorRamp > Diffuse BSDF > Material Output. With the Voronoi you will create the spots shapes and sizes and with the ColorRamp you will determine the space between the spots.
But as you can see the spots are a little bit too regular. If you want to introduce more accidents, before the Voronoi you can add a Color node > MixRGB (Add mode) and plug a Noise Texture on its other socket. This solution was inspired by Gleb Alexandrov's video.


Is a Toon Ramp material with image textures possible?

You need to create 3 materials:

Toon with your setup with white and black colors
A shadeless material with texture you wanna use on lit areas
A shadeless material with texture for areas in shadow

Then you will combine them in 4th material using nodes like this:


I was recently exporting .osm file from there and everything was fine. Here are steps I made and what was it's outcome:


How should i approach game asset design as a beginner?

That's quite a few questions and a bit more general than SE is meant for; but I'll tell you what I can.

Sculpting vs. box or face modeling really depends on the asset and what you're comfortable with.

Try and keep your vertices to a minimum necessary for the model, as every one is a tick against available resources on the client machine. You might also consider learning LOD, as you may end up using several different models (of leveled vertex count) for the in-game object depending on how far away from the camera it is.

Where texturing and optimization goes, it really depends on your game engine and isn't something I would worry about until you've profiled your game. Most of them do their own materials management and whatever you do in Blender you'll likely have to re-do there. They also accept a variety of formats, the most common being Filmbox and Collada; these notoriously differ in what they're capable of and how they do it, so bear it in mind.

And yes, Blender 2.8 is easily enough on its own; but you might get some use out of additional software. It's a little too vague to properly answer here.

I hope that helps. I'm still going to suggest that this question be closed, as it's a bit broad and relatively opinion-based.


If you're modeling using subdivision, at its simplest, this sort of topology will give you a rounded corner: supporting loops close to the sharp edges, and looser on the round corner. You have a degree of control over the tightness of the corner by sliding the edges on either side of it.

[

However, if, for example, you you wanted a perfect circular arc in the corner, breaking instantly to perfectly orthogonal edges, you might choose a bevel, as suggested by atek.


Hot key/shortcut for point, edge and face select?

You can use Ctrl Tab to bring up the mesh select mode


For this block-shaped object just simply use cube uv projection and re-arange the pieces  like you want in uv editor.

For more complex shapes unwrap the planar part with project from view so they don't distort, pin them in uv editor with P and then unwrap the whole piece with just Unwrap (with setuped seams).

For multiple planar parts in your mesh do this multiple times to create uv islands each with undistorted pinned piece inside and then use welding (W+W) to join the islands. For best results smooth the welds with UV Sculpt's (Q) Relax brush.


The solution was to Override the Context
Before calling redraw, create the override
override = context.copy()
After redraw, set the area on the override instead of the context object
override['area'].ui_type = 'IMAGE_EDITOR'
Any bpy.ops.* calls must pass the override as the 1st argument eg:
bpy.ops.image.save_as(override, filepath = fileName)


Mesh acting wierd compared to bones movement

For the shoulder, first select the armature, then shift select the mesh, and switch to Weight Paint mode. Display the right panel with N and choose Blend > Mix, disable Front Faces Only and enable 2D Falloff.

Now select a bone and paint:

For the finger, as it needs a bit more precision, come back to Edit mode, select the vertices, in the Properties panel > Object Data > Vertex Groups, choose the vertex group they are supposed to be part of and click Assign. You can also use this list to remove some vertices from some groups. In the right menu, under + and -, you can sort the vertex groups by name.


Can you make a bump map using grey scale after you texture paint?

It is possible to directly paint your bump maps and view it real time.

Its a little hard to see in the GIF but works perfect close up.

Here is a flat plane (Not subdived).

This is the render view

Just make a new image texture and make sure it is set to 50% grey, So when you paint white it bumps up and black bumps down.

This is what the image texture looked like after painting.


I can't see Grease Pencil keyframes in the dope sheet

If you look down at the bottom on the dope sheet bar, you can see the little skewed arrow that's highlighted. Click that. That is "only show selected"


Unlinked Duplicated from Linked Duplicates (Change Alt-D into Shift-D behavior)

You're unlinking the object from the scene with the Unlink command. What Alt+D does is make a new "Object" whose "Mesh" is linked to another object's mesh. If you select one of these objects and go into the "Object Data Properties" tab, you'll see the mesh name with a number next to it (2 in the example) meaning there are that many users of the mesh. If you click the number, Blender will make the active object a single user copy of the mesh. The mesh will get a new name, and the number will disappear. Missing numbers mean single user.


How to change the ratio of movement of a driver?

You can simply multiply the driver value.

Select the driven object and go to Drivers editor
Click your Driver (mine is called Z Euler Rotation)
Go to Sidebar (N) > Modifiers > Generator and add a multiplier value


I want to make the block's a little bit transparent and bright

Change to cycles render
Select the object and make a new material for it
Open node editor and delete the diffuse material
Add a mix shader, emission node and a transparent BSDF and connect them like they are connected in the image
The strength on the emission node is the glow strength of the object
The Fac on the mix shader is the transparency of the object: 1.0 is invisible and 0.0 is not any transparent


Add Bone Constraint [Pole Target] have problem

I think you need to bend a bit your bone chain in Edit mode, and let it straight, so that it knows how to bend once in Pose mode, please tell me if I'm right.


As your Cylinder should be presented as cylinder towards the physics too, you need to change the Properties/Physics/Collision Bounds/Bounds to Cylinder. You will see the dotted cage (representing the physics shape) will turn into a cylinder too.

Hint: If the dotted mesh is not aligned correctly then turn the display mesh in edit mode that it fits.

Alternative: Bounds: Convex Hull or Triangle Mesh - be aware they are more expensive.

I hope it helps


How would I go about creating a 3D MMORPG Mouse Look?

All you need to do to get your desired functionally is add the logic bricks pictured below to your camera.

The most important part is the Mouse Actuator, set to Look that is what moves the view
The Always Sensor is needed to make the mouse look actuator work.
The Mouse Sensor set to Right Button is what triggers the mouse look actuator.


Issue scaling an object with array modifier around empty

Once you've scaled down the object, apply the scale with a ctrlA > Apply Scale, otherwise the offset object will act like a multiplier.


Adding a conical bevel/fillet to a mesh?

Blender doesn't currently (Nov 2015) have a fillet that does variable radii, but you could approach the same effect with the Subdivision surface modifier to some degree. If you guide the geometry the result will look quite good.

My approach would be to Shrink-wrap a Polysphere over the exported Object.

Below:

On the left is the original import,
in the middle is a polysphere (a Cube subdivided a few times and then vertices are transformed with a 'To Sphere' operation),
to the right is the result of a Shrink wrap from the Polysphere onto the Original geometry

With a bit of experimentation with the ShrinkWrap modifier and tweaking of the Polysphere, you could get very close to what is desired. Because Blender isn't a solid modelling CAD program it is bound by the underlying topology with respect to what can be filleted nicely.

Even on this mesh adding a Subdivision Surface modifier produces visually OK results, this probably doesn't meet tolerance requirements.

Tweak the polysphere (translating up/down mostly) and the offset value, till it approaches acceptable results.

The ShrinkWrap object's shape is important

You'll find that being more specific about the geometry of the Shrinkwrap object will help the eventual wrapped geometry. Here i started by making a copy of the 8 extreme vertices of the imported object, and make a Cube using those vertices. Subdivide the sides and scale extruded the top inwards.


Does Blender remember every manipulation done?

No it doesn't remember edits for playback like you want (and like ZBrush and others can).

What you would need to do is to export each step as an .obj, load them all into a new scene and animate them so they appear in a sequence one after another.

Then you can render this with orbiting camera and with wire-frame modifier on.

Using scripting to do this would be smart, there are many answers here how to import multiple obj's and how to animate multiple objects.

Some addons can store geometry states into a buffer, but there is no way that I know of how to efficiently animate them.


Error when Adding a Python Script to a Driver

For a single property type driver variable you need also to set the path value.  For example

import bpy

def x(name):
    print(name)
    return 0

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

for example shown prints "Lamp", the name of the lamp object, to the console.  Ok, string properties can be passed via driver variables.  (personally don't recommend it) (note also for this case, the expression could simply be x("Lamp") with no need for a driver variable)

Not setting path for the single property driver variable will result in "None" being printed to console.

Ok, now that we know a name can be passed, it's best to check for errors with something like,

if name is None:
    print("problem with name variable")
    return 0

obj = bpy.context.scene.objects.get(name)

if obj is None:
    print("no object named:", name)
    return 0

as errors will mark the driver as "bad" which can result it in being turned off.

A more usual way would be, where the x Euler rotation of the Lamp object, is passed as a float variable, "var", to the expression floor(2 * var / pi).

PS also of note is that rotation in blender is in radians.


Sewing clothes using a cloth modifier and a collision object

There seem to be a number of issues causing you problems here.

The most important one seems to be simply that the garment is too small for the model - it is quite literally coming apart at the seams :

To resolve this you need to scale the dress so as to give it more fabric to fit around the body.

The above issue is made worse as the collision bounds are such that the cloth isn't actually getting close enough to the surface of the body - the Outer collision setting on the model is currently set to 0.1 meaning that there is a significant gap between the skin and the dress - which further compounds the issue of insufficient cloth to fit! Try changing that to, say, 0.02 for a better fit.

Another issue is the strength of the sewing - currently you have the sewing springs set to 10 right from the start of the animation. This means that the full force is being applied from the first frame, pulling the cloth violently together. Once this overcomes the collision bounds the cloth is below the surface of the body and cannot escape, resulting in fighting between the vertices until the cloth is eventually torn through the model - it's better to apply the forces gradually to gently bring the edges together. This allows the cloth to settle into place rather than being forced together quickly.

The trick is to set keyframes to control the forces more carefully, starting at zero and increasing over a number of frames. One problem with this is that the cloth will naturally fall under the force of gravity before it is pulled together but, again, keyframing gravity to gradually increase can avoid this. In fact, it's useful to start with a weak reverse gravity (eg, weight of 0.5) to that the cloth initially floats gently up, before increasing back to full gravity after 10 or so frames after it has settled.

After this, it should just be a matter of a little bit of fine tuning - such as giving slightly more space around the arm holes and moving it up slightly so that the arm holes can close up around the arms without colliding, changing the collision bounds slightly (reducing Cloth collision settings to 0.5 seems to give be. You could also increase the cloth Quality steps and also collision Quality.

Here's the result :

There still seems to be a bit of overlapping vertices on the shoulders - I think this is due to the arm fabric intersecting with the shoulder. Adding slightly more cloth should do the trick. You could also subdivide the cloth to add more detail for a more realistic fit - although this will slow down the simulation.

Here's the amended Blend


Automatic weights doesn't always work well. The more complex the mesh, the higher the probability of issues with automatic weights.
Also, if your mesh's normals are not right it can make the automatic weighting a little wonky, so you can try recalculating normals before parenting to the armature (select the mesh, go into edit mode, hit 'A' to select all faces and then 'alt + n' and 'recalculate outside'. Hope it helps.


bpy.context.space_data will give you the current text editor when you click run script, where you can access the text block.

print(bpy.context.space_data.text.filepath)

For an unsaved text block this is empty. For a file dropped onto the text editor or opened by using the Text->Open Text Block menu item you will still get an empty filepath.

Blender doesn't appear to fill in the filepath property of a text block unless you save the text block to disk, meaning you need to open the text block and then save as to get a filepath. Once it has a filepath you can save, close and re-open the blend file and it will keep the filepath.

__file__ will give you the path to the text block inside the blend file. That is the path of the blend file with the text block name added as if the blend file was a directory. This applies even if the file is saved to disk.

For your own use you can setup the blend file with the script. If you want to share this then you probably want to make it an addon with AddonPreferences to save the path to the utility. On registration you might search a few possible paths to get the initial setting and have the user set it as needed, or you can tarball the script and utility so that it is next to the addon script when the user installs it.


For something simple like this, I would just separate the generated coordinates into XYZ and use the Z value plugged into a ColorRamp node.
This will give you a far better control of your scattering density.

The object orientation should be world oriented (at least if you're using Generated or Object coordinates), so that the Z axis is aligned to the world Z axis.

On the right 3DViewport you can see that the local axis for the box has at least the Z axis (blue arrow at the center of the box) aligned with the world Z axis (the blue arrow at the bottom left corner of the viewport).
The Z axis is then used from the 'Generated' coordinates, which are mapped from the bottom/top to a scale of 0 to 1 and plugged into a color ramp, that defines the vertical density map.


Achieving a split/cracked wood grain effect?

There are a few ways that this can be done.

1) You could use sculpt mode to define the texture for a sculpting brush that resembles the wood patterns that you want.  Assuming default settings for version 2.7, go to the bottom panel that says "object mode" and click "sculpt mode".  In sculpt mode, expand the "Texture" tab on the left pane by clicking it and click the "New" button.  The texture will appear as a type of noise.  In the properties tab on the right, click the texture icon to get to the texture tab.  Under the texture tab, click the material icon.  You should see your brush texture.  Change the texture source from "Clouds" to "Image or Movie".  Load the image of your choice to act as a wood texture and you may begin using the brush to sculpt the mesh (if it has enough vertices).

2) Alternatively, you could use a displacement map to simulate some wood effects.  With your mesh selected, locate the object texture (go to the properties tab on the right and click the texture icon).  If the object has no textures, make a new one.  Change the texture source to "Image or Movie" and load the image you want to act as a displacement map (for these kinds of maps, the value channel is used to determine amount of displacement and so black pixels have no effect, white pixels have full effect, and everything between is interpolated).  Under the "influence" tab, check the "normal" and "displace" buttons and un-check the "color" button (unless the texture defines the color as well).  You may want to reduce the amount of displacement and tinker with it until you're satisfied.


Chaning bone parent after automatic weighting

The rig hierarchy will not affect the results, you should only need to correct the weighting if you move the bone.

The mathematics behind this effectively first transforms each each vertex by each bone that it is weighted to, and then uses those weights to combine the transforms from each bone proportional to the vertex weight.


Is there a way to set the maximum speed of particles?

There is no way to set limits on their speed by external forces.
ea at some time it will pass such point and thus the effect will be gone.
Though you can enable drag as a self effect.

In the particle system; go to force field settings
enable self effect
set an amount for example 16
set linear drag 1
set quadratic drag 0


How to Install Multiple Add-ons with Python Script

You can designate the folder with the scripts, create a list of files within this folder (i.e., directory), and use the wm.addon_install() command on each file. You can create a list of the module names you want to install, and then loop through them with wm.addon_enable()

import os
import bpy

# Define path to your downloaded script
path_to_script_dir = os.path('/Users/YourUserName/Downloads/scripts')

#Define a list of the files in this folder, i.e. directory. The method listdir() will return this list from our folder of downloaded scripts.
file_list = sorted(os.listdir(path_to_script_dir))

#Further specificy that of this list of files, you only want the ones with the .zip extension.
script_list = [item for item in file_list if item.endswith('.zip')]

#Specify the file path of the individual scripts (their names joined with the location of your downloaded scripts folder) then use wm.addon_install() to install them.
for file in file_list:
    path_to_file = os.path.join(path_to_script_dir, item)
    bpy.ops.wm.addon_install(overwrite=True, target='DEFAULT', filepath=path_to_file, filter_folder=True, filter_python=False, filter_glob="*.py;*.zip")

#Specify which add-ons you want enabled. For example, Crowd Render, Pie Menu Editor, etc. Use the script's python module.
enableTheseAddons = ['crowdrender', 'pie_menu_editor', 'animation_nodes','blender_cloud']

#Use addon_enable() to enable them.
for string in enableTheseAddons:
    name = enableTheseAddons
    bpy.ops.wm.addon_enable(module = string)


Objects disappear when adding boolean modifier

The reason the boolean operation fails is because you have duplicated geometry.

Enter edit mode, press A to Select All, then press the Space Bar and type Remove Doubles.

The boolean should work now as expected:

\


I just followed the method in that link:

you can use add shader in the end but results were not good so I used a mix of 50/50
you can use a light path node with out put of is camera ray to get rid of shadows.

works in eevee too but you should enable ambient occlusion + make the shader show transparency + adjust the color ramp. if adjusting color ramp is hard add a math node with power before it.

eevee setup


make array of objects follow path via curves modifier

The answer was to apply my scaling and rotation of my objects.. still learning.. thx alot for helping out


How can I orbit precisely in the 3D viewport?

The simplest way I found to do this is to first snap your 3D cursor to the center of the object you want to pivot around, then change your Transform Pivot Point to 3D Cursor. Next, select the object you want your view centered on, and press Numpad . to center your view upon that object, then press Ctrl + Alt + Numpad 0 to center the active camera on your current view. Next, turn on Increment Snapping and open the settings for it. Under the Affect section, Make sure Rotate is the only option activated. Now make sure the active camera is currently selected, and press r, z, and then move the mouse. The view will snap at 5 degree increments. I don't know how to do this any other way, nor how to change the increments of the snapping.


After adding a text object, finding out the name of the associated property ("body") and selecting it...

>>> C.scene.objects.active.data.driver_add("body")
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
TypeError: bpy_struct.driver_add(): property "body" not animatable

That is, I tried to add a driver to it from the python console. It doesn't seem to be possible, sorry. Depending on what exactly you want to put in the text object, using multiple objects might be an option?


Can't join areas. I only see "Swap Areas"

I opened a ticket on the blender's support and the problem is that to join the areas, the areas have to be the same height (vertically) or width (horizontally).
So there was a 4th small area on the top of the middle area which was avoiding to join the vertical areas:

This way I need first to join the top area as described in the blender support ticket:


How to select two objects add a boolean modifier and enter name for object to be unioned

Modifiers are stored in an object's modifier list and a new one can be added by calling obj.modifers.new(name, type). To adjust the modifier settings you can either collect the created modifier object returned by the new method or access it through the list.

import bpy

target_obj = bpy.data.objects['Cube']
cutter_obj = bpy.data.objects['Sphere']

bool_mod = target_obj.modifiers.new('cutter', 'BOOLEAN')

bool_mod.object = cutter_obj
bool_mod.operation = 'DIFFERENCE'

# or directly -
bpy.data.objects['Cube'].modifiers[0].object = bpy.data.objects['Sphere']


Why are my keyframes not visible in the timeline?

EDIT: I guess the comment by @Gorgious is what you're experiencing. If not, try this solution:
If you've enabled the option Only Show Errors in the View menu of the Timeline window, than your keyframes will not show up unless there is an error.


Is it possible to view the scene in the viewport camera view at 1:1?

Yes, Blender has this feature:

From the 3D View Header:

View -> Navigation -> Zoom Camera 1:1 (Shift + NumpadEnter)


Objects stop emitting smoke/fire after a short time?

Try increasing the smoke cache length in Properties >
Physics > Smoke cache with the domain object selected:

Note that you will have to free any existing bakes before you can edit that value.


What node would allow me to edit the mapping coordinates individually?

Use a Separate XYZ node. (add>Converter>Separate XYZ)


How can I recreate this diamond cut texture surface like on certain flashlights?

You can do it both ways by model or faking the geometry by using a texture.

Starting with a plane extrude two edges so that you get a model like:

Add two Array Modifiers to create a grid:

Apply the modifiers and cut out the part you want to use, then scale it so that the tiles get the diamond shape. I've also selected the faces (by similar area) and beveled them Ctrl-B:

Add again an Array modifier and a Curve modifier:

Now you can decide to use it as geometry or bake it to a texture.


There can be many ways to model this; if original shape should be preserved, the steps may be as follows.

Select bottom edge which you'd like to make 2 from. Press Alt+D to extend vertices.

Select 2 resulting Ngons, press Ctrl+T to triangulate them, and then Alt+J to get rid of tris and convert them to quads.

Add loopcut to refine model, dissolve resulting and not needed edges.


In the file you posted, the only issue that I saw was that the camera was not pointing at the objects, so it would just render blank space. I reset the camera to point at the objects and it rendered just fine.

As an aside, I believe metaballs cannot be joined unless you convert them to a mesh first. I selected one, pressed Alt+C and chose mesh from option and it joined them all. It does make them permanent however, and you can't move them around individually anymore.


Reading the other answer, it looks like you might have auto-key turned off, which would reset your camera to the original position. If you have auto-key ON, any change you make will be automatically recorded, even over old keys on the same frame. So it's not entirely necessary that you delete all the keys in order to reposition the camera; you just need to set a key on the frame you want to render (press "I" and select LocRotScale to key all transforms).

This is just my opinion, but I generally work with auto-key turned on so I can avoid this. I'm also too lazy to want to set a key every time I make a change (I'm an animator; that's a lot of changes), so I let it do that for me. This is more of a workflow thing, but it is certainly something to know about. Good luck!

EDIT: Just remember that auto-key is not specific to cameras. It's a general automation tool that will capture attribute changes throughout the scene, such as a transformation or even a material change. You'll find the auto-key toggle button in the playhead in the timeline (the red circle).


how to get the a value of the resolution of an image in blender compositor?

You can use a driver to easily get the render resolution from the scene, for a user selected image it gets tricky as you will need to know the name of the image or the image node to reference it's resolution.

I think you could achieve that with a custom python node but at this stage they don't integrate well, they don't update when a connected node changes so need manual updating which can lead to errors.


Why does the X rotation on my shape key driver go negative when I'm rotating on the Z axis?

Your confusion derives by two different axis orientations: you did rotate the whole armature (an object which contains only one bone, but they could be more), while the expected result should be achieved rotating only one bone (in pose mode, not in object mode).

In my picture I turned on axis rapresentations, the big ones are referred to the object (the whole armature, that should not be rotated); the little ones are thoose of the single bone. As the two axis system are not aligned, you can see that a rotation on the Z axis of the whole object while it's tilted even on X and Y axis causes a negative rotation on the X axis of the bone.

I also find this system a little confusing, but this is how it works, start rotating bones in pose mode and keep bones axis turned on in viewport display properties to get used to it; drivers are a great resource once you master them!


Background Images in Blender Will not show

As TeaCrab mentioned in comment, it was because I was in perspective mode. Thank you.


Look in the Outliner and make sure the "Arrow" icon next to the object hasn't been pressed (Grey). If so just click it (White).


Blender is only adding about half of a video?

Either there is something different in 1.mp4 or there something wrong in the Blender import of them.

Try to compare the metadata of the clips in MediaInfo if they are similar, if they're not, then that might be the reason.

If they are similar, try to make four copies of one of the good clips, and import them in Blender, if the problem is visible, then do a bug report: Menus > Help > Report a bug.


Convert blender shhader to unity/texture

I found the answer. You  have to set the light to 100 percent lit, then you get a good looking result. But the second problem i with the black color line  inthe center of the thsirt. Here you  have to bake both materials at the same time,on the same picture. Finally you  get the result as you  want. In my case it looks like:


If you go into edit mode and delete all vertices you will still retain the object origin.  I don't know if it will retain all the game variables, assigned logic.


Rendering mess? Must I do a clean install or is this a feature?

Solution: Select the entire character and all you want to keep hit ctrl+C to copy open a new Blender ctrl+V to paste. This will solve corrupt files most of the time.


I've done this with a baked normal map, but as you point out, image textures do require a bit of memory. I've already prepared two characters, one is the default character from MakeHuman with two subdivisions, and the other is a duplicate of that, which I decimated with Planar and an angle of 5 degrees. I've also made sure they're aligned with each other on all axes.

Prepare an image to contain the normal map. Open up the UV/Image Editor and click New. I used the default settings.

Select the undecimated character and go into the Compositor. Add an image texture and change it to Non-Color Data. Add a Texture Coordiante node and connect its UV socket to the Vector socket of the Image Texture node. Do not connect the output of the Image Texture node to anything yet. If you do, you may get a Circular Reference error when baking.

Go back to the 3D View.Expand the Bake section in the Render panel, change Bake Type to Normal, enable Selected to Active, and set the Ray Distance to something higher than 0. Select the two objects. Make sure you select the decimated one first, then while holding Shift select the undecimated one. Then click Bake.

Once the baking is done, open up the UV/Image Editor and select the image you created. It should now contain the normal map. Make sure you save it or pack it before doing anything else, or you may lose it.

Go back to the 3D View and select the undecimated object, the go into the Compositor. Add a Normal Map node. Connect the output from the Image Texture node to the Color input of the Normal Map node. The connect its Normal output to the Normal input of any shader you want to be affected by this.

Here's the result I got with my characters. I've exaggerated the effect of the normal map by turning its strength up to 2.

With this render, RAM usage peaked at 63.95MB. I'm not GPU rendering, because my GPU is basically a potato, and I do not know if textures require more, less or the same amout of RAM when rendering on GPU. I used default settings when creating the image, so I did not enable the 32 bit Float option and the size is 1024x1024. If you require higher quality, it will obviously use up more RAM.


Rendering stack of 2D images as a 3D object?

You can definitely render a 3D voxel dataset using the built-in tools of Blender. As seen in the example below:

The basic workflow using the Blender Internal engine:

Create a Cube that's the same dimension as your voxel data ( image resolution x Voxal size , the important thing is to preserve the dimension ratios )
Create a volume material and texture for the cube.
Load in the density data as image sequence or 8bit raw data ( tested .img and .rawb formats ).
Adjust all resolution parameters ( set it to the resolution of the image you should have this information , incorrect resolution will result in distorted/cropped or even no visible result )
setup the texture to affect Density and Emissions.
Tweak color map and material properties until the data is shown nicely.

The material and texture setup :

the render result :

Using the color ramp, you can even remap the density to different colors.


Middle Mouse Button not working in blender

Things to try:

Check that the mouse works and that no other software steals the input
Backup your settings (optional but a good idea)
Reset Blenders factory settings


To increase the accuracy and smoothness of simulations it can sometimes be helpful to scale the time up.

Here a simple way of approximately stretching the time by 10. For every Particlesystem (3 in your example) multiply the End and the Lifetime of the emission by 10.

and divide the Timestep of the physics by 10.

In render settings multiply the End Frame and Frame Step by the same amount (10).

And render the frames as images. For videos you can reimport the frames in the VSE as image strip and render with the desired fps.


Weight painting using Auto Rig Pro on Blender 2.8

If I am correct, You are supposed to weight paint based on the bones that are in layer 31. It should look like this when you view it.

Artell has provided the character Mike in his manual for weight paint reference.You can check it out in here : http://lucky3d.fr/auto-rig-pro/doc/auto_rig.html#how-to-paint-the-weights

I hope this helps


How are the Bones assigned to the Vertex_Groups in the API?

Bones are matched to vertex groups based on names, that is the connection, they are not linked in another way.

for modifier in object.modifiers:
    if modifier.type == 'ARMATURE' and modifier.object:
        armature = modifier.object.data

        for bone in armature.bones:
            if bone.use_deform and bone.name in object.vertex_groups:
                print("'%s' used for armature deformation" % bone.name)


How can I use Mesh as a Tile on Geometry?

See Duplication and Particles/Hair.  I am trying to give a quick answer to get you started on research.

Some of these have scale to face area features.

See this
Tapering a tentacle mesh with uniformly scaled suction discs

Particles can have texture in (Strand/Particles) coordinates. The texture can control size of particles.  The texture may be a superior and more forthwith solution rather than size of tiles.

This proposed answer is not a tutorial. Seeing duplication and particles may be fun. Please search at BSE and the famous video site that rhymes with noonoob.   Keywords Blender Particles Duplication Dupliverts Duplifaces.

These concepts can involve some hours of work as you become more skilled with them.


What render engine are you using to produce this animation, and what technique did you employ to make those 'bumps' or voxels in the surface?

Is it actual modeled geometry, or is it just bump mapping? Perhaps a or normal map or use of displacement?
How did you model the underlying sphere geometry?

It looks like it is updating lighting in real time, what you are seeing is just an artifact of smooth shading on a low number of subdivisions.

It looks like you are using an icosphere and since this sphere seems to have an insufficient number of subdivisions what you are seeing may be the result of Blender shading a larger flat face, and light just seems to 'stick' to it instead of accompanying the curved surface our eyes are led to believe is there through smooth shading.

With the rotating motion light just seems to jumps as reaches or stops reaching these large flat faces.

Can you post a blend file we can look at, it's hard to tell for sure just looking at the video. Or perhaps a wire-frame image of your viewport.

I would recommend trying to increase the number of subdivisions on the base geometry of your sphere and see if it improves.


In the CLOTH Object Collisions, you need to set an appropriate "Distance".  You probably have this set too large


Does smooth and flat shading only effect view-port look or render too?

Both smooth and flat shading will effect the final render of your project. Good Luck!


How to roll up a plane/create a rolled yoga mat?

Here is a possible way:

First create a bezier like this:

which has control points like

then add the mat in a convenient position (I used a subdivided plane with solidify and subsurf) then use a curve modifier to the above bezier

if you animate the bezier along X you get this:

There could be other ways of course but I hope it helps you.


How to create an enamelled cast iron shader in Blender?

Artistic approach using noise and principled bsdf

I'd use a principled shader along with a specular value of 1 and a roughness value of 0.3 to get the surface appearence of iron. You can break the rules and raise up the clearcoat value to 2 or even higher in order to match the shininess/coating of the reference. For each type of surface bump, you can combine different 3d noises and feed them into the normal socket of a principled shader. I'd also add some color variation to the base color using noise again:


How to set default pose to Unity of model from exported as FBX from Blender?

You should Know that Unity takes the "default pose" from the first frame of the first animation.
Also Unity classifies them as they are in blender:

[Solution]
1 - Always create an Idle Animation and set the "default pose" in the first frame, and rename it to be the first animation.

or

2 - set "default pose" on the first frame of your first animation(action) in blender, so Unity can understand that's the default pose.

(don't forgit to Reimport the .FBX in Unity after making changes)


How to get a Blender Obj to render in Adobe Dimension properly?

you can see that the ones that dont work are a different blue/gray colour in the 3D viewport. This means the normals are inverted and need to be flipped (your mesh is inside out). Select the object, go into edit mode, ctrl+F, flip normals and see if that fixes the colour.


Make End of Rotation the Beginning Rotation of New Animation in Animation Nodes

First, use the Repeat Time node to repeat the the animation every constant duration. Except, we are going to dynamically change the start and end of the animation. Now, if you floor divide the time by the duration, you will get an integer that is constant for the whole duration of the animation and increases by one every time the animation repeats. Since the random nodes are deterministic based on the seed, we can use that integer as the seed of a random node and use its output as the start of the animation, while the end of the animation will be a random node evaluated at the integer plus one as follows:

Note that the node seed is equal in both random nodes.


Simply create your required text objects by hand. Use Python to change the text data of the object and its location.

Simpler would be better.  Create objects manually in your case today.  When objects are placed in a group it is convenient. Group copying can easily be done in logarithmic steps. Double. Double. 2,4,8,16,32.  In Python one can interate over the members of the group.

I assume you are not trying to create some [ornate] user interface.

I suggest you create no new text objects via Python or cameras via Python at all.  Text objects set to empty string == "" will not be rendered.
I suggest you do not interact with the VSE editor by Python at all.

At least [copy] a finished text object, or its properties.  It  has the visual properties appearing in Blender 3D View.  Creating a new one from scratch, without huge overhead, gives you no visualization.  Since the render state of any object can be animated, visibility of the text need not determine its lifetime.

Thus you keep the Blender interface for attribute assignment.
Render out your text sequence as transparent .PNG file types.
Then import your .PNG sequence as a normal strip in the VSE manually. You stated [old school].
I know you will have more flexibility using the Blender 3D View [text] interface and [VSE] interface already present.

Know there are probably ten scripts or nodes that will change your text. Here at BSE or elsewhere with no monetary cost.  So you may need to write no Python.  Of course some Python is fun.  Of course if you are particular, none will achieve your most exotic cases.  Of course in the lastest version of Blender the VSE has simple subtitling.

At a Blender Python level many users who need to change something with a frame change use

frame_change = bpy.app.handlers.frame_change_post

The only part of the Python I would keep are a few lines.  Below is your software edited as a new starting point. Pseudo Code. No evaluation performed.

import bpy
import math
import random

str_text = ["Some Text","More Text"]
font_ob.data.body = str_text[0]
font_ob.location = (1.0, 2.0, 0.0)


How to add a model on surface of another object?

You can turn on snapping in the view header and if you set the origin of your primitive to the bottom of the object, then you can move it about the surface of the main object and have it snap to the faces.

Max Puliero has a great video showing some cool stuff with this.


Select the edges and dissolve them:

(Menu) Mesh -> Delete (X) -> Dissolve Edges


When I'm texture painting, how do I know which texture i'm painting onto?

The best way to control which image receives paint strokes, is to select it in the list of available paint slots, which can be found under slots in the toolbar.

This works with both Blender Render and Cycles. If a UV/Image editor is visible it will get updated to show the active image.


Alt+H has shown me the hidden circle.

Problem solved


How to vary the thickness of a Bezier curve?

Vertex Radius
You can scale the thickness of a curve at the selected vertices with AltS in edit mode.
Taper Objects
You can also use a Taper object:

The distance from the object origin (yellow dot) in the local Y direction controls the width of the main curve:


Freestyle strokes not appearing in Cycles texture bake

I'm fairly certain that Freestyle is a post-process type of render which means that when it happens it's more like what happens in the Compositor or Photoshop/Gimp.

Even though the depth buffer can be captured as a flat image to help with 3D reconstruction,
when you add detail to a flat rendered image like this, there is no information available for the parts of the model which are not seen by the camera.(back-facing)

So as a post-process, Freestyle can add lines to the edges of model but only so far as those edges are viewable by the camera that was used for the render.

We cannot:
(i)   take a picture of a giraffe using a camera,
(ii)  print the photo,
(iii) and then turn the photo around to see the reverse side of the subject in a 2D picture.

So far as Freestyle is concerned, the Cycles/BI Render is a 2D picture.

Even if Freestyle was run after a Cycles bake job;
it would still only be run after the texture bake has completed; just as it only runs after a camera render has taken place.

It's post-process.

Instead, you can duplicate your model then add a Wireframe Modifier.  Selectively delete geometry.

Add an Emission Shader to the wireframe.

Now bake,

You may also want to bake an Emission Mask so that a GLSL shader won't overwrite the glowing areas with Directional lighting.
Just make the model'White'(1.0,1.0,1.0) and make the Sky solid Black

The Blender Render(Internal) Settings for masks like this can be found in the Textures Tab next to Materials.  Various game engines can make use of masks in a similar way.

Just make sure to add the Mask as the 4th channel(alpha) for Blender or else it may not be used by Emit, Specular, Exponent, etc...

If you would like the baked lines to be black instead of Emission, then just use a regular Diffuse Material and the Shadows/Occlusion should make the lines black.


How can I make scratches in paint so that they reveal the metal underneath?

Use the texture as a mix factor between two different shaders.

The rest is just adjusting the lighting.


You must have created a particle system by accident, just delete it:


Just got it. It is by hitting Ctrl + F in node editor. (I know the answer is a very short one, but there really is no need to extend it with nonsense)

And thanks to the dev who ever developed it.


Does Smart UV unwrap preserve the area of each face in the mapping

Yes when you unwrap with Smart UV unwrap it does not skew or stretch (you will get a lot of seams though) if you apply textures to it. If you mark seams but do it wonky, you will get skewing. You also have to keep in mind the resolution of the texture because it will appear to skew if the resolution is too low.


Visible objects in edit or object mode are invisible when rendering

Your problem appears to be related to the "Duplication" setting under the Object panel.

Setting it to "None" for all the objects fixes your issue. I don't know, however, if you were using the "Gruoup" setting for a purpose (unlikely so: no duplication group was selected).


There is LoopTools addon way.
Select edges on the border you want to stay untouched. Run LoopTools addon > Curve operator.


Blocky Textures around object, Blender render artifacts, possible causes?

The problem was: assigning a UV Map to the Cylinder was somehow messing up the floor's texture or UV Map. I don't know why. But I was able to clear the artifacts from the render:

I fixed it by selecting the floor --> Edit Mode, and applying a UV Map to it, via the left panel (Shading / UVs tab) --> UVs section --> Unwrap. So both the Cylinder and floor have their own UV Maps.

I don't know why changing the cylinder created artifacts on the floor; they are two different objects, two different UV Maps, two different materials, two different textures. But this solution worked for me!


snap element, snap to vertex OR edge (both)

Not at the moment, as far as I know.

Multi target snap has been introduced in New Feature Proposal: Mixed Snap in 3d View. by Germano Cavalcante, and is planned for the upcoming 2.8 releases.

For the time being as a workaround you may try multi point snapping


In this case Decimate modifier will be the best option for you considering that the remesh modifier changes the overall shape of your mesh , to reduce the amount of your geometry decimation can be best
Or if you want to stick with the Remesh modifier  you can increase the amount of voxel data to preserve the mesh shape


To extend Leon Cheung's answer (my reputation isn't high enough to comment yet), you can achieve the same thing by selecting ALL of the keyframes from the Action Editor (press A) and pressing CtrlC, and then pressing CtrlShiftV to paste the flipped animation somewhere else. This works for the WHOLE animation, and can save more time than doing it manually (and is a whole lot less error prone).


Blender game character not responding to game logic

In one of the files you sent, RigRichardMaleGame.blend, you did several things wrong, the two most significant being that you moved the metarig away from the generated rig instead of just hiding it. See #4 here.

That next thing you did wrong was remove the Armature modifier from the base mesh, this is what links the mesh to the rig. Your animations will playback in the viewport as these have already been keyframed but the game engine's Action Actuator needs this to know what mesh to associate the selected action with. The action was playing in the game engine, the mesh just wasn't being updated (hence why it went back to the default pose).

So to fix, just add an Armature modifier to the mesh and select the hidden rig which is the proper (unmodified) one, (metarig).

NB: I would highly suggest not revisiting that scene at all. It's very botched (in terms of scene settings, scale and organization) and would no doubt lead to a plethora of further errors down the line. I would instead recommend appending out the base mesh, rigging it again (a matter of minutes using Rigify) and then reanimating and making sure this time to not remove the armature modifier or mess too much with the generated rig.


Right click on the icon, then choose assign shorcut. Then you have to save the user preferences (Edit>>Preferences). In this menu you will find the keymap too.


How do I enter Pose Mode in Blender 2.81?

What most likely happened is that you have the deforming object controlled by the bones selected as active. Select only the bones, and switch to pose mode. You don't need both selected.


Why is Blender "overcompensating" edges on normal maps, and how can I stop it?

You must check Normal Map under the Image Sampling options of the texture.

Also, make sure to set the color-space to non-color data.


Use 2 displacement modifiers with the same settings.

1st will displace the object until it touches the collision object
2nd will continue with displacing, but only around the object. To do that, paint and assign a vertex group to the modifier to influence only the right vertices.

Simulating this inside Blender is not possible, because Blender does not simulate pressure inside volumes. With SoftBody sim there is a possibility to alter the edge springs to make the mesh sort of "blow up" (Length% under Soft Body Edges tab), but the result is not nice and does not look like inflating.

Houdini can simulate pressure in volumes very nicely, the apprentice version is free and can import/export .obj(s) if you wanna try it.


How to add some vertices from another object to the vertex object of one object?

Select the 2 groups and press ctrl + j.After you join them click on this set it to vertices after you do that join them and then click on remove doubles so they will pin together.Hope this helps and that it's what you meant. :D


Link one object's property to another object's different property

This is a classic case for using drivers.

Drivers are a bit tricky to master BEFORE you know what they're good for, but your case describes a very good example for their use.

Drivers allow you to use one property (or several) to drive another. There are several types of drivers, one of which is an expression where you can use arithmetic operators and mathematical functions. This is really useful when you want to create offset / inverted / factored relationship between the driving and driven properties (which seems to be what you are looking for. For instance advance 2 units in object1.location.y for each unit of object2.location.x).

It will be rather cumbersome to explain how to create and manipulate drivers here in text, but there are quite a few excellent video tutorials (such as this one) that will get you quickly acquainted with drivers.

Once you've grasped how to add and manipulate drivers via the UI, you can automate the process via python.


Where to download Blender's complete package?

Every download of Blender is complete and works offline, not matter if it's the installer or archive version. Also Blender doesn't auto-update, updates need to be installed manually.

If you're looking for a build from a specific commit (hash), you'll have to build Blender yourself. Once you've cloned the git repository you can revert to the commit hash you want to build.


Trying to add image to my model. I added in UV editor but it is not showing in render

Just because you assigned the position of the UV in the UV editor doesnt mean the software actually have identified your material.

Think of the UV editor as a guide to place textures and play around how you want it to look.

What you have to do is,

Select texture tab from the properties after selecting the material
Press + button to add a texture node
Scroll down till you see "open" button for texture
(optional) since you had already imported to the texture to the program click the button on the left of the open button. it should list in the items.
Open the texture.
Render again and see the results


To texture a screw modifier without applying and unwrapping, use "Generated" as a texture co-ordinate. If you want more control over it's placement, use a mapping node between the Texture Coordinate and the Image Texture (not shown).


Viewport not going to camera when I click numpad 0

Your camera is not active anymore, select it and press ctrl 0, or in the Properties panel > Scene > Camera > choose the camera you want.


How to duplicate a mesh within the Blender API

unfortunately, that function just returns {'FINISHED'}

solid = bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)

thus:

import bpy
import mathutils
from mathutils import Vector

# the added object becomes the "active_object", get a reference to it.
bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)
solid = bpy.context.active_object

# make a duplicate only of the mesh
ico_mesh_dup = solid.data.copy()

# make a new object, and reference the duplicated mesh.
solid_duplicate = bpy.data.objects.new('IcoSphere_duplicate', ico_mesh_dup)

# the object must be added to the scene
bpy.context.scene.objects.link(solid_duplicate)

# prove that the object is created by offsetting its location.
solid_duplicate.location = solid.location + Vector((2,0,0))

There's bmesh alternatives, but I think this will work for you.


After many hours of trial and error, I somehow figured it out myself :

however, I'm always opened to your suggestions :)


How to update the dependencies of a driver via python script?

Here, an awesome guy gave me the solution!

  Looking at the source code, the button appears to be a direct function
  rather than a python operator:

but = uiDefIconTextBut(block, UI_BTYPE_BUT, B_IPO_DEPCHANGE,
ICON_FILE_REFRESH, IFACE_("Update Dependencies"),
0, 0, 10 * UI_UNIT_X, UI_UNIT_Y,
NULL, 0.0, 0.0, 0, 0,
TIP_("Force updates of dependencies"));
UI_but_func_set(but, driver_update_flags_cb, fcu, NULL);

  The way I update a driver in my add-on is by adding and removing a
  space on the driver’s expression attribute. As far as I could tell, it
  acts the same way:

driver.expression += " "
driver.expression = driver.expression[:-1]


weight painting one side of my model affects the other side in a strange way

You are using x-mirror option:

But, if you name bones correctly,  x-mirror will work for you. You need to name pairs of bone with postfixes ".R" and ".L" like "arm.L" and "arm.R". If you do so, when you will paint weight group "arm.L", "arm.R" will be symmetrical to "arm.L"

Also, learn about rigify


Animation node - sorting a collection of objects from their size

I think we can do it in 4 steps :

Set up a loop to extract the size of each object. Since the "size" can be subjective, I calculated the length of the vector resulting from the object's dimensions (Bounding box).

Next, sort the list and use the sorted indices to get the object list sorted by size.

Finally, make the objects appear with a delay in a loop, in the correct order.

The main loop :

Result :


Can anyone explain why my normals have a mind of their own

Normals could have nothing to do with this: I think it's just a viewport visualization issue, due to the extremely wide clip you set in this file:

that's a huge clip interval you set! from 1 mm to 10000 km!

see what happens setting it on a smaller scale, like from 1 mm to 1 km!

...your mesh is interpreted as it should... isn't it?

Explain why this happens is outside of my knowledge, but I can suggest to leave clipping limit around "reasonable" limits, depending on the scene you are trying to visualize.


After doing some research, it's seems to be some kind of problem with the newer AMD drivers (I have the same graphic card as you do). You can try to downgrade your RX drivers or wait for the developers to fix this bug.


Animation time offset for multiple objects

You can set a delay with the "Delay Time" node in Animation Nodes and then restraining the animation with a "Math" node set to "Maximum" :

Result :