Different Cameras on different Viewports ? Blender 2.8

In sidebar options (N button) you have to select Use Local Camera and select your camera. See image.


Importing a material from blender to unity

Cycles rendering isn't used for realtime objects (games/apps/etc). Those types of object rely on uv textures, diffuse colors, specular colors, etc.

The biggest difference is that realtime objects are calculated using 1 bounce of light. It's fast enough to render in engines like unity. Cycles uses multiple light bounces. It makes it look more realistic, but isn't fast enough for those engines.

To answer your question, switch to Blender Internal if you're using the object for games. Test a quick render to make sure you have all materials correctly attached, as switching from cycles may call for some extra work. If it works in the render, exporting to .obj or .fbx should work.

Also note that if you export to .fbx, the textures won't automatically be on the model, you'll need to relink them to the model in Unity.


How Do I Keep These Pants From Acting Like A Dress?

you have to fix the weights of those bones of those legs, just like i show you here...
so as can you see the green weight there, there are green areas influenced in the other leg because the other legs weight, this will always happen when you parent your armature with automatic weights.

so you have to change the paint mode to subtract and increase or decrease the strenght of the brush and then start brushing the undesired weights.

other more quicker way to do this is to enter to edit mode and go and select the vertex group that you want to fix and you will notice that both legs thighs are selected so unselect one of them (the left one in this case) and then click in the button remove and then press A to unselect everything and press the select button again to the vertex group and will see that its not anymore selected the right leg thigh. and then repeat the same process in the other bones that have wrong assigned weights, and then if you go to pose mode again you have fixed it. happy blending!!


Interface text is tiny on high resolution screen

Go to file, user preferences (or use the hotkey, CtrlAltU.

Then go to the system settings, and change the DPI. This will change the text size.

If that's not enough, you may have to change the virtual pixel mode to double.


Where is the toggle for 'Limit Selection To Visible'?

That is what Toggle X-ray does. Control if you can select through objects or not. It shows vertices that otherwise would not be visible, and allows you to select them.


Ok I guess something was going on with "IT". After restarting it works the same as Cycles.

Just a glitch.


How to calculate the direction and up vector of a camera?

2.8x

import bpy
from mathutils import Vector

cam = bpy.data.objects['Camera']
up = cam.matrix_world.to_quaternion() @ Vector((0.0, 1.0, 0.0))
cam_direction = cam.matrix_world.to_quaternion() @ Vector((0.0, 0.0, -1.0))

2.7x

import bpy
from mathutils import Vector

cam = bpy.data.objects['Camera']
up = cam.matrix_world.to_quaternion() * Vector((0.0, 1.0, 0.0))
cam_direction = cam.matrix_world.to_quaternion() * Vector((0.0, 0.0, -1.0))


Why does my scene preview look so different than the render?

Ensure that you have UV mapping selected in Properties > Textures > Mapping > Coordinates:

If you only have one UV map it's not necessary to select it in the Map drop down, but you can if you want.


How to move a bone and a separate object together

I'm assuming you need the child object to rotate on the spot, that is, with its own Origin as pivot point?  If so ....

Select the object to be constrained, which I'll call a cube from now on, and Shift S, Cursor to selected.

Shift D, and call the new object TemporaryCube.
Create an empty.

Add a Copy Rotation constraint to the Empty with the bone as the target.
Select the Empty first and the Cube second, Control P, Object with Keep Transform.

Add two Child Of constraints to the Cube.

In the first constraint, untick the Rotation and Scale axes. Pick Bone as parent.
Correct the location by pressing Shift S, Selection to Cursor.

In the second constraint untick Location and Scale axes. Pick Empty as target.
Rotate the Cube back to how it should be by:
Selecting a) the Cube, b) the Temporary Cube, then going to Object/Transform/Align to Transform
Orientation. Then you can delete Temporary Cube.

If you want to remove the constraint afterwards ....

Create a cube or sphere or something. With it selected, press Shift and select the object with the constraint.  This cube/sphere is going to "hold" the position and rotation data for you.
The cube or whatever needs to be in the same position and rotation as the object with the constraint.  You can get it there using Object/Transform/Align Objects, and Object/Transform/Align to Transform Orientation.  You'll probably need to select all axes in the tool settings and change Global to Local.
Remove the constraint, then get it back into the position of the "data holder" cube/sphere using the same two align tools as above.  Remember that the object you select last when the two objects are selected ready for the align tool, is the object whose data will be copied.


Can i fill a solidify mod while keeping it as a modifier?

You can use a displacement modifier without a texture to widen your cutter object along the normals.
If you don't use a texture, the modifier defaults to 1.0 (white).
I'ts not as convenient as the solify modifier, as the strength doesn't directly translate to blender units. but if your cutter object is in fact just a cube, you can use the dimensions in the transform panel to get a somewhat accurate result.


Intersecting shapes in edit mode to create single shape

There's an addon called TinyCAD, which I think is implemented in Blender by default, so you just have to activate it in the Preferences.

Once activated, select all your vertices in Edit mode, then right click > TinyCAD > XALL Intersect Selected Edges. It will create a common vertex everywhere the edges are crossing. Then you just need to remove the doubles with AltM > Merge By Distance, and remove all the inner vertices.


Material that is not affected by the color reflected from other objects?

This is partially answered here:
How can I avoid colored light reflections?

this will get rid of indirect lighting, and your cloud won't reflect the ground, but neither will anything else in your scene.

Another option would be to use a different render layer for your cloud, that way you can keep the indirect lighting and your cloud will still be full white.

Finally you could use an emissive material, and then fill in shadows with a world normal comparison since you are going for the flat look. Or if you prefer a silhouette look just use an emissive.

Nodes:


How can I place the rollers of a corner roller conveyor evenly?

Doing it by hand can be very precise and actually one of the faster ways.

First figure out how many rollers you need, then divide 90 by that number and you have the amount of degrees between each roller. For this example, I use 9 additional rollers, making it an even 10 degrees.

Then place the 3D-Cursor in the center of your curve and set the pivot point in the header to 3D-cursor.

Select your roller, duplicate it with SHIFTD and then without even confirming that hit R10RETURN.

That way, Blender considers duplication and rotation as a single action, not two.

You can now use the repeat hotkey SHIFTR to create lots of rollers and they will be rotated evenly around the cursor. No manual translation needed anymore.

If they don't have to turn, you could use an array modifier with object origin or dupliframes, spin tool or similar, but this solution is the fastest that I know and leaves the rollers as separate objects, ready for animation.

Sometimes it might be useful to put the object center of the rollers into the center of the curve using set origin in the tools area. But you should be fine with the method mentioned above.

You can use ALTD to create linked copies instead of SHIFTD if you want to save a bit of memory and filesize. All rollers will then use the same mesh.


Dyntopo Sculpting: How to carve out (like a boolean) instead of push in?

I needed something similar for cutting a mesh in half. After trying all of the brushes, I found that Clay Strips is the cleanest, with little to no pushing in the back. It works for gouging out a surface just as well. These are the settings I used:

Brush
Strength: 1.500
To save time, you'll want to adjust this depending on the level of detail and the radius of your brush. On average, this is the value I find works best in my case.
Autosmooth: 1.000
This setting is a necessity when trying to make any sculpt brush cut through a mesh, but it weakens the brush's effect on lower resolutions. In your case where you want to gouge, this isn't as important. But if you're trying to cut something in half, not using Autosmooth will take longer and cause backface clipping.
Sculpt Plane: Area Plane
Area Plane is much quicker than View Plane in this case. Also, keep the button next to this setting unlocked so the geometry can be carved properly.
Plane Offset: 0.000
The Clay Strips brush will need to act on whatever surface you use it on, without offset. Keeping this at 0.000 will help prevent distortion, and allow the geometry to be carved properly.
Trim: No
Front Faces Only: No
Direction: Subtract
Accumulate: Yes
Like Autosmooth, Accumulate is another necessity for a cutting brush. It simply allows the stroke to continue without having to re-click, which is especially important here to save space in the undo history.

Stroke
Stroke Method: Space
Spacing: 10%

Result


Downloaded PBR texture looks different in Blender

If you have node wrangler turned on, you can just select the BSDF node and then hit [Ctrl] + [Shift] + [T], then select all the material files in the download and the materials will be attached properly.
Then, make sure you're working in Cycles render engine to make it look more like the material preview.


You can't change the colors of items in the UI-List, arbitrarily.

You can however have an "active" property, which is an index that defines the active item in the UI list (as is used for vertex groups, uv layers... etc).

See the UI List template in the text editor.


Camera animation doesn't rotate along shortest path

Instead of rotating around a global axis with rotate_axis set absolute values to the rotation channels and handle all the relative transformations in code.

camera.rotation_euler = (math.pi/2, 0, 0)
camera.keyframe_insert(data_path="rotation_euler", frame=0.0)

prevRot = camera.rotation_euler
nextRot = (prevRot[0], prevRot[1], prevRot[2] + 2 * math.pi)
# or absolute values
# nextRot = (math.pi/2, 0, 2*math.pi)

camera.rotation_euler = nextRot
camera.keyframe_insert(data_path="rotation_euler", frame=frames)

The script presumes Y is Up.


I already found he answer myself: It turned out that the version of the Heavypoly UI Config that I used had the dyntopo parameter integrated by default into the script that facilitates the switch into sculpt mode from a pie menu ;)


It's been a while but I forgot to answer this after I figured it out.

Unfortunately there is a whopping 28 pixel hitbox hard coded in to Blender's selection tools.

I cover my findings here in this post:
Object Selection Accuracy

But long story short, for some reason this massive hit-detection area is hard-coded giving the user no control over it. Maybe one day in the future... :\


I use Shift+B to zoom in the Timeline by drawing a rectangle while holding down LMB.

Doing this you will zoom in to the rectangle you draw.


bpy: How do you find the corners of a camera frustum?

Pass the scene to view frame
Think you got there in the end, here is @ideasman42's script modified to add empties to 5 points of frustum, for each camera object in scene.
All the info re resolution will come with the passed as keyword scene, else it defaults to None.
>>> C.scene.camera.data.view_frame(
view_frame()
Camera.view_frame(scene=None)
Return 4 points for the cameras frame (before object transformation)

Test script:
import bpy

def camera_as_planes(scene, obj):
    """
    Return planes in world-space which represent the camera view bounds.
    """
    from mathutils.geometry import normal
    print(obj.name)
    camera = obj.data
    # normalize to ignore camera scale
    matrix = obj.matrix_world.normalized()
    frame = [matrix @ v for v in camera.view_frame(scene=scene)]
    origin = matrix.to_translation()
    frame.append(origin)
    for p in frame:
        bpy.ops.object.empty_add(location=p)

# test call
scene = bpy.context.scene
cams = [o for o in scene.objects if o.type == 'CAMERA']
for cam in cams:
    camera_as_planes(scene, cam)


Transparent rendered object over tracked background

The default nodes created when you solve a scene with motion tracking and hit "Setup Tracking Scene" don't really work in all cases.

The problem is that the 3D scene with the transparent background is not added using an Alpha Over node on top of the background.

The basic nodes you need looks more like this:

Or maybe even something like this:


How to add duplicate units of a mesh to unwrapped UV sphere

It's not very clear what you want to achieve could you clarify the animation part?

UV unwrapping is made for the purpose of texturing alone, no geometry animation is possible through unwrapping.

Do you wish to make some sort of morphing animation transitioning from the plane shape into a sphere shape?

For the duplication part try looking into dupliverts here https://www.blender.org/manual/editors/3dview/transform/duplication/dupliverts.html


How do I increase the mouse manipulation speed?

While you're doing the inset (or most any transform), you can actually just start typing a number and Blender will use that and ignore your mouse pointer. You can see it in the header at the bottom of the view.

With Inset specifically, the scale appears to be that 1.0 insets all the way to a point at the center of the face, 0.5 is halfway, etc.


Changing colours precisely, procedurally

Yes, FAC is driven by luminance (from 0.0 to 1.0), and yes, two different colors can have the same luminance.
The task isn't impossible, but you would end up with a very complicated node tree, which will have to recognise each of the 18 colors and send them to 18 color nodes or a color ramp.
I think it would be simpler to use an image editor software to create a copy of the texture with 18 different shades of grey, and use this new texture to drive a color ramp.


how do I join two meshes without leaving a gap?

Possibly you can use Ctrl-R to cut loops in the plane on the right to match the number you have on the left.(I subdivided mine because I was dealing with a full plane that was square, yours is probably not needing that)

Then you can use Looptools add-on to Bridge the edge loops once you select them both at the gap between the two parts.


I don't know cmuconvert, but I know for sure that animations are not compatible with any rig. Basically, an animation can be used on your rig only if your rig is quite close to the rig used for creating the animation. Including bone names.

That being said, I did some research and found this thread about importing animations from cmu.
You might find the needed plugins here.


Can particles be different objects/shapes?

Yes, they can. And yes, it is. ;-)

One way is to render a group of objects, rather than just one object.

If you create a group, you can assign that group in the particle settings of your emitter. By default, it will randomly choose one item from the group each time it creates a particle. But there are some other settings where you have a little control over how it chooses.

To create a group, select several objects and use the shortcut CTRLG. That will group the selected objects together. That group will have a name that you can use in the render section of the particle settings on the emitter (shown below).


Blender Character looks abnormally smooth

The hood may have had smooth shading applied to it.  To remove this, I have two solutions:

If the character is one object, then select it. On the tools tab of the Tool Shelf there is an option under Shading called flat. Select that and the whole mesh should have flat shading.
If the character is multiple objects, then select the hood. Then repeat the step above to apply flat shading.

Hope this helps!


Game Logic and the delay sensor: how to make "delay" a random number

You can use a python script to change the delay to a different random value each time it fires.

import bge
import random

cont = bge.logic.getCurrentController()

sens = cont.sensors['Delay']

sens.delay = random.randint(60,120)

Add the script to a text block in blender and connect a python controller to the delay sensor.


No faces appearing on my model in UV editor

it looks like you have turned off 'Show overlays' by accident.
Without it turned on:

With it turned on:

This function is there to easily check your scene without all the assisting overlay graphics. For instance, when you're working in Eevee and you want to see the final result while moving through your scene, you can easily turn the overlays off to get the ultimate viewing experience.
Hope this helps!


Why is this UV map going horribly wrong?

The issue here is the angle from which you performed the Cylindrical projection. UV projections behaves differently according to the angle from which you're looking at your model. In this case, you should project from the angle that represents the length of your cylindrical object, which in your case is the top view.

You can also simply use the UV unwrap (U > Unwrap) to get a nice map according to the seams you created:


How to import a movie file in Blender 2.8 and 2.79 with Python?

sorry, I forgot to add a script and mistakenly specified this filepath.
I can run the below script.
Thanks.

import bpy, os
os.system("chcp 65001")

# I need this script.
bpy.context.area.type = 'SEQUENCE_EDITOR'

# and I need "filepath=".
bpy.ops.sequencer.movie_strip_add(filepath=r"O:\GK\Sozai\Sozaibitmap.mp4")
```


Apply new rotation and location to entire Animation

To rotate any animation that is stuck on an axis like this one, remove rotation on all axes for your root bone, then rotate that root bone in position in which you want your model to be.


I finally figured it out, just downloaded a file called "opengl32.dll" and put it in the Blender directory


How to save texture bake image file to local drive in python

An Image ID datablock has a save_render method.

bpy.data.images["Image Id Name"].save_render("C:/path/to/file.png")


Bmesh script to remove verts not linked to any faces
import bpy
import bmesh
from bpy import context

ob = context.object
me = ob.data
# clean all verts not connected to faces
bm = bmesh.new()
bm.from_mesh(me)
bmesh.ops.delete(
    bm,
    geom=[v for v in bm.verts if not v.link_faces],
    context='VERTS', # default
    )
bm.to_mesh(me)

Re your question method
At issue with the question method is that the same vert can be a member of many loops. Only that of the vertex in last loop will be assigned to your list.
Find with one to many relationships like this that the defaultdict class from collections when created with a list gives any key a default value of list() or [] which can be appended to.
import bpy
from collections import defaultdict

def get_custom_vertex_normals(me):
    me.calc_normals_split()
    loop_norms = defaultdict(list)

    for loop in me.loops:
        loop_norms[loop.vertex_index].append(loop.normal)
    return loop_norms

ob = bpy.context.object
loop_norms = get_custom_vertex_normals(ob.data)
for i, normals in loop_norms.items():
        print(i, [tuple(round(x, 4) for x in v)  for v in normals])

when run on default cube, outputs:
0 [(0.0, 0.0, -1.0), (1.0, -0.0, 0.0), (0.0, 1.0, 0.0)]
1 [(0.0, 0.0, -1.0), (1.0, -0.0, 0.0), (-0.0, -1.0, -0.0)]
2 [(0.0, 0.0, -1.0), (-0.0, -1.0, -0.0), (-1.0, 0.0, -0.0)]
3 [(0.0, 0.0, -1.0), (-1.0, 0.0, -0.0), (0.0, 1.0, 0.0)]
4 [(0.0, 0.0, 1.0), (1.0, -0.0, 0.0), (0.0, 1.0, 0.0)]
7 [(0.0, 0.0, 1.0), (-1.0, 0.0, -0.0), (0.0, 1.0, 0.0)]
6 [(0.0, 0.0, 1.0), (-0.0, -1.0, -0.0), (-1.0, 0.0, -0.0)]
5 [(0.0, 0.0, 1.0), (1.0, -0.0, 0.0), (-0.0, -1.0, -0.0)]

ie every vert has 3 loops for each face it belongs.
The average normal could be calculated via
avge_normal = sum(normals, Vector()) / len(normals)

or
avge_normal = sum(normals, Vector()).normalized()

to get a normalized sum vector. which when run on default cube edited into above
for i, normals in loop_norms.items():
    print(i, sum(normals, Vector()).normalized())

outputs
0 <Vector (0.5774, 0.5774, -0.5774)>
1 <Vector (0.5774, -0.5774, -0.5774)>
2 <Vector (-0.5774, -0.5774, -0.5774)>
3 <Vector (-0.5774, 0.5774, -0.5774)>
4 <Vector (0.5774, 0.5774, 0.5774)>
7 <Vector (-0.5774, 0.5774, 0.5774)>
6 <Vector (-0.5774, -0.5774, 0.5774)>
5 <Vector (0.5774, -0.5774, 0.5774)>

which could be more like the result you are after.


How to Edit Objects Independently in a Scene?

It seems like you've joined the two objects together as one. When adding an entirely new object, you should have selected 'create new object' instead of 'add object'.

However, in this case, your objects are linked as one. To separate them, go to edit mode, and select all the vertices that you want to separate as an entirely new object (your torus), use the command P and click 'selected'.

Hope this helps!


From the documentation it states:

  Matrix access to location, rotation and scale (including deltas),
  before constraints and parenting are applied

The key is that it is the matrix before constraints are applied, as some constraints can alter the local matrix.

API docs - bpy.types.Object


Unless you're using the soft body 'goal', changes to the original mesh will not affect the soft body simulation. Many of the other potentially useful parameters (such as Edge Length) are 'locked in' at the start of the simulation and changes similarly do not affect the simulation.

However, one way of achieving the desired effect is to use the Self Collision settings to exert a force within each 'bubble' to push it outwards, causing it to expand.

To achieve this, enable Self Collision and set the Ball Size to a suitably high value. This will simulate a collision ball around each vertex of the specified size, pushing each other vertex away. Set the Stiffness to a low value - this is the 'force' that each vertex is pushed away from its close neighbors. Reduce the Edge Pull to remove any force opposing the Self Collision 'push' and increase the Bending spring if necessary to prevent the bubble from collapsing. You should now find that each bubble expands to fit the available space.

Don't forget to add Collision to each bubble to prevent it from intersecting with the other bubbles and also set the Error Limit to a small value to improve the simulation.

This can produce the following result :


How to automatically merge disconnected bones' heads and tails

Quick Script.

As commented, might pay to upload file with armature if more detail like bone roll is required.

Similarly to Straighten all bone chains in an armature a quick little script (in this case) to move parent tail to child head, connect and remove last bone.

In edit mode, grab the parent bones of chains you wish to "flatten and connect"

import bpy
context = bpy.context
arm = context.object.data
for eb in context.selected_editable_bones:
    parent = eb
    while len(parent.children):

        bone = parent.children[0]
        parent.tail = bone.head
        bone.use_connect = True
        parent = bone
    else:
        print("remove bone", parent.name)
        arm.edit_bones.remove(bone)

Note haven't done anything for bone roll. Would probably use the Y axis of original bone as Z or X axis of re-positioned bone


Weight Painting - Stiff vs Flexible Deformation

What you're missing is another bone for the last horizontal part of the mesh, which will act as a "balance". In Blender Weights are always normalized, to distribute the movements between deforming bones, but if a vertex is weighted to one bone only, the normalization is calculated between a weight and zero: so a weight of 0.0001 and a weight of full 1.0 are treated the same way (both values are infinitely larger than zero).

The vertices in your "green zone" are affected by two bones, which blend their action, while the vertices in the "red zone" are affected by one bone only, leading to a "rigid" behaviour.


How to paint Weight Black to Weight Blue?

Try switch 'Show Zero Weights' to none ...at least to get rid of the black.

I think 'Clean' might be confusing the issue...

I can't see your brush settings but I paint with auto - normalize on, and find 'Smooth' the most useful of the Weight Tools for fixing.

The manual itself is also full of good info.


How to apply a texture only to certain parts of mesh?

Sounds like you need an object with two or more materials.

Under the 'Materials' tab on the right of your interface, click that "+" icon next to your single material, "Material.000".
When that happens you get a second material slot to which you may assign faces of your model. Either select a pre-existing material from your drop-down menu, or create a new material to use.
Select the faces you want to assign this new material, and with the
new material highlighted, click "Assign", under the materials list.

You'll see some other useful tools under the materials list that come in handy for assignment and selection.


How can I calculate global coordinates for GPencilStrokePoint in Blender 2.8 and Python?

The following script prints the global point coordinates for every grease pencil object in the scene. The coordinates seem to be accurate, judging from basic tests.

import bpy

for obj in bpy.data.objects:
    if obj.type == "GPENCIL":
        print(f"\n{obj.name}")
        for layer in obj.data.layers:
            for frame in layer.frames:
                for stroke in frame.strokes:
                    for point in stroke.points:
                        print(obj.matrix_world @ point.co)


How to import an object into an Armory game scene while the game is running?

If you mean add an object into the scene, you use the import. Click file in the top right, hover over import, and click wavefront for an OBJ, Then import what you want to. If you mean have it go into the game at a certain point, that'd take other scripts. I don't really know what you mean by a game, I assume you're making a game.


Rigging doesn't work: Bone heat weighting: failed to find solution for one or more bones

You need to remove doubles: Select your mesh, go in Edit mode, select all, press W > Remove Doubles, and on the bottom of the Tools panel (on the left), choose a Merge Distance of 0.2mm


The tilt of individual (or all) points on a curve can be adjusted by highlighting the relevant control points and pressing Ctrl+T followed by making the adjustment.

When you are using another object with a curve modifier this will adjust the orientation of that object as it follows the curve.


Where is the volume step size option in Blender 2.83?

Alright so i think the Viewport option is like Step Size but in view port and step rate is probably the same but in render mode.


Painfully slow at selecting bones in pose mode

I Noticed the same issue with Blender 2.79c. Even very simple models were presenting lags in bone selection.
What solved it for me was going to "user preferences->System" and changing the "Selection" option from "automatic" to "OpenGL Occlusion Queries".
Hope this helps.


toggle hide/unhide parent and children objects at once similarly to the outliner Shift+LMB function

Define and toggle a boolean property
From the other answer to link https://blender.stackexchange.com/a/147144/15543 it gives the object a hide_children property that if set hides the object and sets hide_children hence setting recursively for all children.
A checkbox to set the property is added to the text editor footer for testing.
import bpy
from bpy.props import BoolProperty

def hide_children(self, context):
    self.hide_set(self.hide_children)
    for o in self.children:
        o.hide_children = self.hide_children

bpy.types.Object.hide_children = BoolProperty(update=hide_children)

def draw(self, context):
    layout = self.layout
    ob = context.object
    layout.prop(ob, "hide_children")

bpy.types.TEXT_HT_footer.append(draw)

Since the object can be found from context, can toggle the boolean value of the property using the window managers context toggle operator
After you have run the script above to register the property on the Object class
>>> C.object.hide_children
False

>>> C.object.hide_children = True

>>> bpy.ops.wm.context_toggle(
context_toggle()
bpy.ops.wm.context_toggle(data_path="", module="")
Toggle a context value
>>> bpy.ops.wm.context_toggle(data_path="object.hide_children")
{'FINISHED'}

If You do not run the script beforehand will get an error
# same as not running script (unregister the property)
>>> del bpy.types.Object.hide_children
>>> bpy.ops.wm.context_toggle(data_path="object.hide_children")
context_path_validate error: context.object.hide_children not found (invalid keymap entry?)
{'PASS_THROUGH'}

Assign a shortcut.
With the script above run, and the property defined  can be set as a shortcut from context.

Image of Edit > User Preferences > Keymaps
Since once hidden an object cannot have context, and from the 3d view there is no way to select as a group AltH will unhide all previously hidden objects.
Note both the object (self) and context is passed to the update method could instead hide all objects and their children looping over context.selected_objects


Start with the template for 2d animation.

Set the color management to sRGB, the view transform to Standard and the look to None.

Press Tab to enter Edit mode.
In the outliner select the camera.

In the properties window select camera and enable Background Image.
Set the source to Movie Clip, select your file and set the opacity to 100%

This will allow you to use the video as background image when you are looking trough the camera view. (Note that this image is for reference only, and will not render without setting it up in the outliner)
Select stroke on the outliner (or create a new one using Add > Grease Pencil > Blank).
Enter draw mode and draw on top of the background video.

To render the grease pencil along with the video, set film > Transparent

Then set the compositor with a movie clip node with the video and the render layer and use alpha over to composite them together.


Problem: modeling philips screw head using modifiers

What you could do is join both of your boolean objects into one mesh. Then you can apply the modifier. This might also happen because you didn't apply one before using the other.


How to tween the alpha channel (visibility) of an object?

The outliner displays ALL object in the scene independent of keyframes. You can add and delete objects from your scene anytime on any keyframe.

However if you want your object to show up at a certain keyframe just animate its visibility by pressing I while hovering over the visibility icon of the object thus adding a keyframe for that property.

You could also do a search for the answers, since you are not the first one to have this kind of problem ;)
https://stackoverflow.com/questions/8844389/how-to-make-an-object-invisible-at-a-particular-keyframe-without-moving-it-in-bl


How to control the direction for the Build modifier?

The Build Modifier will use the vertices index number to determine their apparition order. These indices are determined by their order of creation. In your case, if the Build modifier displays the top, then the bottom, then the rest, it's probably because you've created the horizontal edge loops with a bevel operation. With successive extrusions the order will have gone from top to bottom.
To display the Indices option in 2.9, enable Preferences > Interface > Developer Extras, then go in Edit Mode, select the vertices and enable the Indices option in the  Viewport Overlays panel.
To sort the vertices the way you want, go in Edit Mode, put the 3D Cursor where you want, it will determine the last numbers, select all, in Mesh > Sort Elements > Cursor Distance, then in the Operator box click on the Face button.
For more complicated objects than simple vertical/horizontal ones there must be some addons or python codes that allow to sort the vertices index numbers.
You can play with the Build modifier Start value, if you want the object to appear in the other direction, click on Reversed.


Export multiple objects to individual glTF files?

Add-on based on the answer of Export multiple objects to .obj, adapted to export all selected objects to individual .glb/.gltf files.

batch_gltf.py
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

# Based on: https://blender.stackexchange.com/a/31852/

bl_info = {
    "name": "Batch Export GLTF",
    "author": "brockmann",
    "version": (0, 1),
    "blender": (2, 91, 0),
    "location": "File > Import-Export",
    "description": "Batch Export GLTF files",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ExportHelper

from bpy.props import (BoolProperty,
                       IntProperty,
                       FloatProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty
                       )

class ExportMultiGLTF(bpy.types.Operator, ExportHelper):
    """Batch export objects as gltf files"""
    bl_idname = "export_scene.batch_gltf"
    bl_label = "Batch export GLTF"
    bl_options = {'PRESET', 'UNDO'}

    # ExportHelper mixin class uses this
    filename_ext = ""

    filter_glob: StringProperty(
            default='*.glb;*.gltf',
            options={'HIDDEN'}
    )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator setting before calling.
    batch_export_format: EnumProperty(
        name='Format',
        items=(('GLB', 'glTF Binary (.glb)',
                'Exports a single file, with all data packed in binary form. '
                'Most efficient and portable, but more difficult to edit later'),
               ('GLTF_EMBEDDED', 'glTF Embedded (.gltf)',
                'Exports a single file, with all data packed in JSON. '
                'Less efficient than binary, but easier to edit later'),
               ('GLTF_SEPARATE', 'glTF Separate (.gltf + .bin + textures)',
                'Exports multiple files, with separate JSON, binary and texture data. '
                'Easiest to edit later')),
        description=(
            'Output format and embedding options. Binary is most efficient, '
            'but JSON (embedded or separate) may be easier to edit later'
        ),
        default='GLB'
    )

    batch_export_copyright: StringProperty(
        name='Copyright',
        description='Legal rights and conditions for the model',
        default=''
    )

    batch_export_selection: BoolProperty(
            name="Selection Only",
            description="Export selected objects only",
            default=True,
            )

    batch_export_image_format: EnumProperty(
        name='Images',
        items=(('AUTO', 'Automatic',
                'Save PNGs as PNGs and JPEGs as JPEGs.\n'
                'If neither one, use PNG'),
                ('JPEG', 'JPEG Format (.jpg)',
                'Save images as JPEGs. (Images that need alpha are saved as PNGs though.)\n'
                'Be aware of a possible loss in quality'),
               ),
        description=(
            'Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web '
            'applications due to the smaller file size'
        ),
        default='AUTO'
    )

    batch_export_levels: IntProperty(
        name='Collection Levels',
        description='Set the levels of collections',
        default=2
    )

    batch_export_materials: EnumProperty(
        name='Materials',
        items=(('EXPORT', 'Export',
        'Export all materials used by included objects'),
        ('PLACEHOLDER', 'Placeholder',
        'Do not export materials, but write multiple primitive groups per mesh, keeping material slot information'),
        ('NONE', 'No export',
        'Do not export materials, and combine mesh primitive groups, losing material slot information')),
        description='Export materials ',
        default='EXPORT'
    )

    batch_export_colors: BoolProperty(
        name='Export Vertex Colors',
        description='Export vertex colors with meshes',
        default=True
    )

    batch_export_cameras: BoolProperty(
        name='Export Cameras',
        description='Export cameras',
        default=False
    )

    batch_export_extras: BoolProperty(
        name='Export Custom Properties',
        description='Export custom properties as glTF extras',
        default=False
    )

    batch_export_apply: BoolProperty(
        name='Export Apply Modifiers',
        description='Apply modifiers (excluding Armatures) to mesh objects -'
                    'WARNING: prevents exporting shape keys',
        default=False
    )

    batch_export_yup: BoolProperty(
        name='+Y Up',
        description='Export using glTF convention, +Y up',
        default=True
    )

    def execute(self, context):

        # get the folder
        folder_path = os.path.dirname(self.filepath)

        # get objects selected in the viewport
        viewport_selection = context.selected_objects

        # get export objects
        obj_export_list = viewport_selection
        if self.batch_export_selection == False:
            obj_export_list = [i for i in context.scene.objects]

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

        for item in obj_export_list:
            item.select_set(True)
            #if item.type == 'MESH':
            file_path = os.path.join(folder_path, "{}.{}".format(item.name, self.batch_export_format))

            bpy.ops.export_scene.gltf(
                filepath = file_path,
                export_selected = self.batch_export_selection,
                export_format = self.batch_export_format,
                export_copyright = self.batch_export_copyright,
                export_image_format = self.batch_export_image_format,
                export_materials = self.batch_export_materials,
                export_colors = self.batch_export_colors,
                export_cameras = self.batch_export_cameras,
                export_extras = self.batch_export_extras,
                export_yup = self.batch_export_yup,
                export_apply = self.batch_export_apply
            )

            item.select_set(False)

        # restore viewport selection
        for ob in viewport_selection:
            ob.select_set(True)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ExportMultiGLTF.bl_idname, text="Batch Export glTF 2.0 (.glb/.gltf)")

def register():
    bpy.utils.register_class(ExportMultiGLTF)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(ExportMultiGLTF)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.export_scene.multiple_objs('INVOKE_DEFAULT')

I added all relevant arguments of the export_scene.gltf() operator (line 179), you can change them or add new properties to the operator, wasn't sure.

For versions pre 2.91, replace the batch_export_materials property (line 117) using:
    batch_export_materials: BoolProperty(
            name='Export Materials',
            description='Export materials',
            default=True
    )

Related: Batch exporting scene collections or selected objects using glTF-Blender-IO


How do I set an objects position relative its parent?

You can use Alt+O to setup 0,0,0 coordinates at parent location.

The operator is called Clear Origin, for 2.8+ you can access it from the 3D View header menu under Object > Clear > Origin.


How to make a curve path from scratch given a list of (x, y, z) points?

Maybe something like this?
See also: Create NURBS surface with Python

import bpy
from mathutils import Vector

coords_list = [[0,1,2], [1,2,3], [-3,2,1], [0,0,-4]]

# make a new curve
crv = bpy.data.curves.new('crv', 'CURVE')
crv.dimensions = '3D'

# make a new spline in that curve
spline = crv.splines.new(type='NURBS')

# a spline point for each point
spline.points.add(len(coords_list)-1) # theres already one point by default

# assign the point coordinates to the spline points
for p, new_co in zip(spline.points, coords_list):
    p.co = (new_co + [1.0]) # (add nurbs weight)

# make a new object with the curve
obj = bpy.data.objects.new('object_name', crv)
bpy.context.scene.objects.link(obj)

To add a point at the end it's simply:

spline = bpy.data.objects["object_name"].data.splines[0]
spline.points.add()
spline.points[-1].co = (1,1,5,1)

or to add more points at the end:

more_coords = [...list of more coords...]
spline.points.add(len(more_coords)
for p, new_co in zip(spline.points[-len(more_coords):]:
    p.co = new_co + [1] # if new_co is a list [x,y,z]

You can always get the coords of the points of the spline with

points_coords = [p.co for p in spline.points]

edit this list, i.g.

points_coords = points_coords[3:5] + [1.5,2,2.5,1] + points_coords[5:]

and then remove the spline or object and make a new one with the updated coordinates.


Does blender recognize the same background if present in multiple frames of an animation?

At least in cycles, no, and in other renderers, very unlikely.

In order to get physically accurate light transport you can't make assumptions like this, and Cycles definitely tries to be accurate in this regard.

Think about it, where does the computer decide where to cut from background to middle to foreground. How does it deal with reflected light or shadow onto the background? The only way to accurately figure this out is to trace the light rays, at which point you are rendering it.

If you want a static background, you render it separately and either composite it, use an emit only background pane or environment texture. This is generally the preferable solution as it is both simpler from a developer support perspective, and also puts control squarely in the artist's hands.


That's probably because a low number of samples. Cycles uses samples to render and to bake. Turn up your samples in the Properties window under the Samples heading.


I've tried this. It's made with bevels, mirror, extrusions, join and knife. I corrected the final extrusion as, as Lemon has pointed out, it looks like I inverted the cross.


I see from your file that you are not using the cache. Switch to modular type (under DOMAIN > physics properties > cache) and every time you change something, clear the cache and recalculate it (using the CACHE button under domain > settings).

try this and share your feedback


Why is Bone Transformation Constraint Speed too high?

salpix here i just solved it. if anyone finds the question i just made an error in the units i placed in the ranges. double check your units and drag the window to make it bigger and the view clearer


Hover the mouse over a field on the materials tab (alpha channel on this example)

and press i to insert a key.
Move a few frames ahead (arrow keys), change the value and press i again to insert a new key.

We now have a spline animating that field from one value to the other. It works just like normal animation.

A grey button means there are no keyframes. A yellow color means There is a keyframe on that frame, a green button means that the values have been animated, but there is not a keyframe on that specific frame.

An alternative to pressing the letter i is to right click on the value you want to animatate and select Insert Keyframe;


EEVEE rendering with a weird 'pixel effect'

Turn off shadow, go to light then click off shadow.


Can I move (the view) on a 2-D scale (Only up and down)?

Press ⇧ Shift while pressing the middle mouse button (or scroll wheel) and move the mouse to re-position the window.

Press ⇧ Shift and roll the scroll wheel to move the view up and down.

Press ⎈ Ctrl and roll the scroll wheel to move the view left or right

Press Home to re-center the camera view window.


How to distribute the objects on a sphere evenly?

You can do it using both dupliverts or particle system, but you have to prepare the mesh properly first.

Add an UV Sphere with default settings (I use these in this example) and delete the bottom half of it. Select the very first top edge loop, press Shift+S-->Cursor to Selected, then add a circle and set its vertices count to 6. Enable vertex snapping tool (magnet icon) and snap it to the default edge loop. Do the same with the lower edge loops, but this time add the circle with 6 more vertices. Delete the default loops with X.

Repeat the process until you get to the sixth edge loop (It should be 32-vertices default loop). Every lower edge loop should get 6 more vertices- I know it's a silly work but I don't know how to script ;P. Add a cube in the middle of the sphere.

In Object Mode select the cube, then the sphere, press Ctrl+P-->Set Parent To-->Object.

Select the half of the sphere and give it the Mirror modifier (Z axis).

Finally with the sphere selected go to the Object Data header (Duplication panel), select the Verts window and check the Rotation checkbox.


Color management: Monitor calibration issues + Compositor issues (+ ideas for improvement)

Main issues currently bothering me:

There are quite a few issues, and thankfully more folks are learning them.

The final render is displayed in my monitor's color profile, which is nice. However, after saving the file is in this profile as well, i.e. I have to process it in another step...

This is because Blender has a horrific file encoding chain. The default is to bake in the Display / View / Look transform, which means that if you have any colourimetric twists in your displays, that will end up encoded into the code values.
Hack Solution:

For canonical sRGB encoding to nonlinear display referred outputs, prior to saving to a display referred output such as JPEG or TIFF, change the Display / View / Look combination to the same combination with sRGB chosen as display.
For EXR encoding, the native buffer will be encoded, so the results skip all management altogether.

Proper Solution:

Pressure the development to implement an encoding panel. This would be something akin to a selection box with a stack of elements similar to a texture, that would have sane defaults and allow the audience to encode a specific chain of transforms into their output imagery.

Compositor: If I load a file, which should be on top of the render (model on a green-screen, logo, anything, ...) it is processed by the same color transformation as the render: Filmic + sRGB -> monitor's profile. The latter part is ok I guess, but Filmic should not be applied here. How to turn it off for images imported in compositor?

When you load an image, you must describe the encoding to Blender. Sadly, this is hidden away behind a bunch of obfuscating menu elements. One method is to open up the Image Viewer, open the sidebar properties panel on the right, and select the encoding that describes the encoding of the footage or shot.
This will cascade into another problem because, again, generic imagery does not work in a radiometric-like compositing environment. There's nothing short of hackery and quackery that can be done to try and get a generic sRGB image into the radiometric domain, as he data is not there.
Hack Solution:

Set the sRGB image to be Filmic encoded. This will artificially "stretch" the range to become a no-operation after the output chain.

More Proper Solution:

Use properly encoded imagery! Camera raws, log encodings with documented transforms, etc. can all be coaxed to do things more correctly. For all work generated from within Blender, never ever use any other file encoding other than EXR. Start with EXR. Stay there. Never leave. Only after completely finished, deliver to the delivery encodings.

It's a deeper subject than this, but hopefully there's enough here to get you moving in the right direction.


Why does blender crash when my missile disapears in the BGE?

This happens because the camera is parented to the missile. When the missile disappears, so does the camera. When the camera disappears, there is no longer anything sending the output to the display. This creates the problem, because blender can't update the display, and Blender crashes. You can fix this by having a scene actuator to set the camera to a different one. Then there will still be something sending output to the display. Logic setup below.


Align viewport rotation to normal vector like Shift+7 in edit mode

I solved it. If the tangent picks the wrong direction and doesn't align to the viewport, the rotation matrix inverts and uses the negative value of the angle for correction. Keeping it here for prosperity and to help those seeking this kind of alignment behavior.
import bpy
import bmesh
from mathutils import *; from math import *

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
       rv3d = area.spaces[0].region_3d

obj = bpy.context.active_object
mat = obj.matrix_world
me = obj.data

bm = bmesh.from_edit_mesh(me)
f = bm.select_history.active

up = Vector((0,0,1))
up1 = Vector((0,-1,0))

center = f.calc_center_median()
normal = f.normal
tangent = f.calc_tangent_edge()

mw = mat.to_3x3()
quat = normal.rotation_difference(mw.inverted() @ up)
rot_mat = mw @ quat.to_matrix()

loc, rot, scale = rv3d.view_matrix.decompose()

mat_scale = Matrix()
for i in range(3):
    mat_scale[i][i] = scale[i]

rv3d.view_matrix = Matrix.Translation(loc) \
    @ rot_mat.to_4x4() \
    @ mat_scale

vrot = rv3d.view_rotation
rot_axis = vrot @ up
rot_dir = vrot @ up1

rotdiff = rot_dir.rotation_difference(tangent)
M = mw @ Matrix.Rotation(rotdiff.angle, 3, rot_axis)
rv3d.view_rotation.rotate(M)

if (rv3d.view_rotation @ up1).rotation_difference(tangent).angle != 0:
    rv3d.view_rotation.rotate(M.inverted())
    M = mw @ Matrix.Rotation(-rotdiff.angle, 3, rot_axis)
    rv3d.view_rotation.rotate(M)

rv3d.view_location = obj.matrix_world @ center
bmesh.update_edit_mesh(me, True)


How to unwrap a model with every polygon facing the view?

You might get a similar effect by making all edges of the mesh 'Seams' and doing a normal unwrap.

Enter Edit mode on selected mesh
Select all edges
Ctrl+E Mark Seam
U > Unwrap

Selected faces show that face shapes are preserved in UVs.


Is it possible to change location based on proximity to another object?

Adjacency

Consider a driver in the Delta Location X which associates with the X dimension of the adjacent object.  Suit Location index to needs.

Image above.  Cube has smaller X dimension.

The cone is a parent as depicted in the Outliner Window.  The sphere delta location is determined by x dimension of the beveled cube.  The alignment must be taken into consideration.  Here the cube origin is the geometric center, thus the script has the corresponding math.

The blue object represents text.


Yes it is normal. If you don't select an object you won't be able to enter its edit mode. You'll enter the edit mode of the object you've selected. In the 2.80 you'll be able to be in multiple edit modes at once, which is amazing. Try it out! NB: You still need to select objects you want to enter the edit mode.


'Bone' object has no attribute 'constraints'

Okay I found a solution. I read that to get reference to pose bones (where the constraint can be set) you need to do it from the object and not the armature, so I adjusted my script to look like this:

import bpy
ob = bpy.context.object
altob = bpy.data.objects["Armature.001"]

if (ob.type == 'ARMATURE') & (altob.type == 'ARMATURE'):
    armature = ob.data
    altarmature = altob.data
    for bone in ob.pose.bones:
        for altbone in altob.pose.bones:
            if bone.name == altbone.name:
                crc = bone.constraints.new('COPY_ROTATION')
                crc.target = altob
                crc.subtarget = altbone.name
                print(bone.name + " = " + altbone.name)

so instead of setting 'bone' and 'altbone' to the 'armature.bones', I set it to the object 'ob.pose.bones' and 'altob.pose.bones' and it worked like a dream. Just need a piece in here to clear all the constraints before setting new ones, but that's something for another day.


camera is zoomed in for a close up render but render is zoomed out

If you zoom out while watching the camera, you'll see a box where everything outside is slightly darker. Inside this box you're seeing what the camera is actually seeing, so simply adjust the camera position to frame the shot you want.


Try Blender's Pose Library. If you create a pose you like manually, you can select the bones that correspond with it and press the "+" button in the Pose Library to create a preset. Now when you want that emotion, all you have to do is go in (select your bones first) and click the magnifying glass icon to assign the pose to a given frame.

Additionally, assuming your various characters use a standardized bone layout/naming system, you should be able to use one library with multiple characters with minimal tweaks.

Please note this does require a lot of manual work on your part to set up initially, so if that defeats the purpose of your question, try looking around for preexisting facial expression pose libraries online. (I would recommend making your own, though, as a third-party library may not use the exact bone/rig naming setup and cause some major issues.)


How to determine whether a python script is hostile?

os isn't the only module that provides functions to remove files from filesystem etc., shutils can be used for such evil things too. Or you could somehow shell-execute system commands to do so.

Module imports can even be camouflaged like this:

evil_module = __import__(chr(int("".join(map(lambda x: str(x), [1]*3)))) + '\x73')

So you won't immediately know what it actually imports (os module in this case).

What is to be seen malicious also depends on your view. Like with any trojan, virus or whatever, they don't necessarily damange your system or delete things. A python script could open a network connection and send spam mails, or transmit information about your machine to an attacker.

There are many possibilities to abuse python, and bpy makes it rather worse - bpy.ops.wm.url_open(url="...") could be used to open a prepared website, that infects you with a drive-by download.

The best protection is it run scripts from trusted sources only.


Here's another approach you could try:

Make sure your text object is extruded slightly, then convert it to a mesh by pressing AltC.
The mesh object will be a total mess. Use a Remesh modifier to subdivide it a bit more uniformly. You need quite a high level of subdivision here; in the image below, the middle object was subdivided with an octree depth of 6, but 7 would have been better.
Apply the Remesh modifier, enter edit mode and convert the object into a 2D shape by deleting one side of the object. Adjust the normals if you need to.
Now the slightly tedious part — you have to select all the vertices around the outside edges of the object. With vertex or edge select enabled, you can pick up multiple vertices by Alt clicking on the outer edges. Takes a while though...

Save these vertices as a vertex group. Exit edit mode and add a Cloth modifier to the object. Then go to the Physics tab, select "Pinning", and select your vertex group in the space below.
Change the Structural stiffness to something much smaller (e.g., 0.1).
Finally go to the Scene tab, make sure gravity is active, and change the direction so that it works in the direction you want the text to bulge out. Press the Play button in the timeline, and hopefully you'll see something like this:


Unwrapping tileable model for use with seamless textures

No need to use a UV map.

Use Generated coordinates and a Box projection for the texture.
And if you want the texture only on one face, just assign a different material to others.

Use Generated coordinates and a Box projection for the seamless texture.

Assign different materials to different faces.


Blender 2.8 Multires Sculpt with texture on

I'm not sure if this is what you are looking for, but if you change to Lookdev, you will see your texture.

Good Luck


Using bump node to achieve what displacement (on Bump mode) could do

If you wish to combine displacements you can do so with the MixRGB node here is a basic node tree combining a cobblestone and bricks displacement map together, although not using the bump node you can try using your bump maps in the image textures:

This produced the result:

Note that the MixRGB node in the diffuse color socket was not necessary, only in the displacement socket. This setup can be used regardless of the other shaders, specular workflow or using the principled shaders will not affect it as the displacement socket is separate from the other material outputs. So for your situation of using two principled shaders together this is a time and effort efficient way of getting nice and detailed combined displacement results from two materials.


How to make a plane responsive to light?

I'm not 100% sure what you're going for, but I made this scene with just text, a plane, and a single spotlight (Material added to the text - everything else default). This is in cycles engine, and I left my world properties panel open so you can see the settings. If you cannot reproduce, you may be suffering from some kind of bug, but I think more likely you have too strong a world background (cycles picks up even faint World Lighting), or hidden lights. Look at the example and let me know what I'm missing:


I solved this with manualy: I convert the MP4 with VLC to MP4. :) This is a rough solution but works.


How can I eliminate the added height when applying a thickness to Solidify modifier?

Adjust normals

Solidify modifier extrudes faces along their normal.

A default UV hemisphere has the bottom faces whose normals are not parallel to the XY plane. So the extrusion vector will have a Z component that will create the effect you see in the image below (which is an outer extrusion, while yours is an inner one, but it follows the same principle):

In blue are evidenced the vertex normals. Note how the last line of vertices has a non-horizontal normal projection.

To keep the bottom of the extrusion co-planar with hemisphere's bottom vertices you should start from a geometry who's last faces normals are not incident with XY plane:

The last picture was made by extruding the last line of vertices a bit on the Z-axis, so the geometry may not exactly represent a standard hemisphere.

To obtain a more precise result you can work with the default UV sphere settings and set an odd number of rings. This way, when you cut the sphere in half the faces will already have the correct normals and the resulting mesh will be a more precise approximation than extruding manually.


How to open a file from network location?

If the shared folder is accessible form your machine, i.e. you are already logged  to the share and can access it on the OS, you can type the IP address (or Computer Name) and share name in the address bar.


array modifier - gap even without offset applied

Object's Bounding Box

There's a lonley vertex who is altering your object's bounding box size.

The size of the geometry bounding box is what the array modifier takes into account for shifting the object with "Relative Offset" option enabled.

Just get rid of it and all should works fine.


Car python script stopped working when I edited part of the moldel

Nvm I figured out the problem. I checked the other car and realized I didn't connect a logic circuit to the visibility blocks of the wheels.


Hard to tell for sure without post a blend file we can inspect.
Most likely overlapping vertex or segments in your curve. Try checking your curve for duplicate geometry or overlapping segments as described in the link posted by Georges.

Otherwise try entering edit mode in your curve, and check if the radius of all your vertex are set to 1.
Go into edito mode, select all vertex and head to the Tool Shelf > Tools > Curve Tools > Set Curve Radius Button and set all to 1 or any other value has long as they are all the same.


Should I keyframe every bone in the rig at every instance, or just the bones moving?

Short answer: Either is fine.

Adding keyframes on more bones than needed can make the .blend file larger, but it is quicker to select all bones and add keyframes. Also, adding keyframes to all bones means that if you accidentally move a bone you do not notice while animating, the motion could be messed up and you may not notice.


Why OBJ export writes face normals instead of vertex normals

They are vertex normals. But because your cube is flat shaded, there are only 6 unique vector directions. In the obj file there are no duplicates. If you smooth shade your cube, you'll get 8 vn entries.

You can see that first face is made from vertices 1,5,7,3 and that they have normal vectors 1,1,1,1 (in same order)


Body physics and jiggling for iclone characters

This a highly simplified version of what can be done with a proper model.
The Blend file is below... (Vers 2.77)

Cage deforming is used here.  That uses the 'Mesh Deform' Modifier with a simple cube named as the cage.

The cage (cube) is deformed at it's rear vertices only and that deform's the model's rearmost vertices more than those further forward.  i.e. the more distant the model's vertices, the less the effect, hence the soft-body (wobbling) reaction.
-==========-
Warning - Cage rigging can act on vertices outside the cage so it would be advisable to create a vertice group, nominate ONLY those vertices to be affected.  That guarantees no gate crashers.
-==========-
The hook's motion was keyframed and those f-curves were further shaped in the Graph editor to emulate physics behavior.
If you're not inclined to keyframe manually, you may be able to bounce a ball and parent the hook to that, bake the hook's movements and loop the first cycle.


How to find out what particular vector component is animated?

The vector components are accessible through the fc.array_index value. If you only animate the X and Z components, you'll see that they are still indices 0 and 2, not 0 and 1.


BMEdge.is_boundary

Can select boundary edges using BMEdge.is_boundary Below is a test script, run in edit mode

import bpy
import bmesh
context = bpy.context

obj = context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)
bm.select_mode |= {'EDGE'}
for e in bm.edges:
    e.select = e.is_boundary
bm.select_flush_mode()
me.update()

Not sure here if you are after the "silhouette" verts. As in your question here


How can polished and frosted facets be created on a gemstone?

If I understand correctly, you want certain faces of the same object frosty while others are glossy.  Is this what you're thinking?  If not, please add additional info to the question:

1.) Select which faces you want frosty:

2.) Assign the selected faces a separate shader with roughness of 0.2:


Advanced Rigging For Robot Arms/ legs IK

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

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

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


I figured it out. I made a FloatProperty and put the function I was going to write as the update:

bpy.types.Curve.mean_twist = FloatProperty(name='Mean Twist', step=10.0, default=mean, unit='ROTATION', update=get_twist)

Then I wrote the function which got the average tilt of all the points, subtracted that from the floatproperty to get the difference after the change, and added that to all the tilts: tilt + (floatproperty-averagetilt)

def get_twist(self, context):
    cur = bpy.context.active_object.data
    points = cur.splines.active.bezier_points
    rot = cur.mean_twist
    tilts = [p.tilt for p in points]
    mean = sum(tilts)/len(points)
    new_twist = [t + rot - mean for t in tilts]
    points.foreach_set('tilt', new_twist)

Then I just added the float property to a panel as a slider. It changes the actual mean twist and works in Object mode.


The order of the modifier of the array should be on top then below the curve modifier.

And the Rotation and scale should be applied

Below i have change the order of the array on top and then the curve modifier.

Then applied the scale and rotation. (Ctrl+A)

Rotate at Z axis 90 degree

With the array increased the count and adjusted the bridge.

Press ctrl+N to flip normals

Adjust the curve to align the starting point


How to make a procedural node setup to for raindrop effect for EEVEE?

Use a Voronoi texture node to control roughness and normal (bump). Use a mapping node to stretch the texture in z-axis and animate the z-axis location to make the rain drops run down the sides:

On top of this, try to experiment with a noise texture to modulate the x and y axis to make the drops go down in a not so straight line.

Note: This approach only really work well on cube-like geometry with rounded corners.

EDIT: I worked further on this and with inspiration from Eris answer I updated the setup to the following:

The two voronoi textures are animated independently to make two sets of raindrops of slightly different sizes and speeds.

Even though I used Eevee for the above example, this works perfectly fine with Cycles as well. The first example was made using Cycles in 2.79, the second with Eevee in a recent 2.8 build.

Here is the .blend-file (Note: this is a Blender 2.8 file):


How do I create a sphere with six circles cut into it?

Create a cube a default cube
Enter Edit Mode
Inset all its faces at about [0.3] or [0.4] units
Add a Cast modifier
Add a Subsurf modifier at about 3 subdivision levels
Add another cast modifier
Profit!


How does squared samples "make tweaking easier?"

All it does is square the specified number of samples. So 10 samples becomes 100 samples.

From the commit log:

  Cycles / Sampling UI:

  Add a "Squared Samples" option to the UI, to use squared values for ease of use. This can make it easier from an artist point of view, to weak settings.

  With this enabled, all Sample values will be squared. So 10 Samples become 100 Samples.
  For the Non-Progressive Branched Path integrator: 4 AA Samples * 5 Diffuse Samples would become 16 AA Samples * 25 Diffuse = 400 in total.

Also see this related post and this thread on the bf-cycles mailing list


Unable to select individual parts of the mesh

If your model consists of multiple meshes, you can

Select all other faces of the mesh using Select > Select Linked > Linked, Ctrl + L
Then separate the selected faces through Mesh > Separate > Selection, P
Or make each mesh into a separate object through Mesh > Separate > By Loose Parts, P


Set the pivot to "active element" and the transform orientation to "normal"
Select all four faces in Edit Mode.
Once they are selected, hit Alt+E and select "region (vertex normals)"
While the tool is active, hold Shift (to move in smaller increments) and Alt (to turn on even thickness), now it's possible to offset the faces in a predictable way

It moves two units each step instead of just one, but it's a workable solution. Also adjust the extrude settings to offset by just one unit:


Does anyone know how to successfully pack linked objects (not just textures) into a single .blend file?

To quickly get all the linked data in one .blend file you can use Make Local command.

Select all the objects which are linked (or simply A to select all).
Press L and select All option. This will make all the objects, their data, materials etc. stored locally in this file, so create a full copy (in the same way as Append data, with only difference that you shouldn't search where to append from).

Note that you may want to save these locally stored objects as a new file so only to send it to renderfarm and not ruin linking of your original file.


In the compositor add a File output node and plug the Alpha output to it and Render.

That way you can save the Alpha channel as a separate file.


Why is png image in video fade out pixelated?

The "Lossless" setting is a variable bitrate value. When the image looses information during a fade to black the bit rate drops. Change the Output quality to "Constant Bitrate". Place a high value, that retains the quality that you want.


Armature - freely adapting bones in pose mode

Found it,

i just extended the "Chain Length" of the IK constraint from the upper arms from one to two.

Animation noob, sorry for wasting peoples time!


The video preview on Blender is suddenly just a still image. How do I make it actually show a preview of the video?

If the video has not yet been rendered, and you only want to play the preview then you will press  Alt + A . If it has been rendered, then you will use  Ctrl  + F11. I see that you're in the uv/image editor also, switch to 3D view to see your preview. You can do this quickly by changing windows with the menu on the far left of the header on the bottom of the window.


How can I bake the physics cache of linked objects?

Yes this can be done.

However the solution is admittedly awkward, and this is an areas Blender could be improved.

Initial Bake

Make sure the point cache has External and Use Lib Path option enabled,this way each library object can have its own cache when instanced in other files.
Now for the trick In the file that links this data in.

In the Properties Space, Select the object category.
Pin the object (Pin icon, top left corner of space).
Now, you can use the object ID selector to select a new object, one that is in the library and need the simulation to be baked.
Now navigate to he buttons and run the bake operation.

Note, This is really a hidden feature which we are not proud of!

Setting Parameters

To just execute the bake locally often isn't enough, you probably want to change the frame range and may even want to tweak physics settings based on the environment.

In this case the only option is to use a Python script which overrides these settings on load, give it a name that won't conflict with other Python modules and enable Registered in the text header so it runs on load.

Heres an example: my_init.py

import bpy
scene = bpy.context.scene
obj = bpy.data.groups["MyLinkedCharacter"].objects["HairDo"]
obj.particle_systems["ParticleSystem"].point_cache.frame_start = scene.frame_start
obj.particle_systems["ParticleSystem"].point_cache.frame_end = scene.frame_end

This script can be run manually at any time to update the settings.

Note

Rather then having single text-blocks per-file, the open-movie Sintel used a single Python script that loaded for all files, called finals_config.py. I'd recommend using a single script to manage this otherwise you can't easily see whats happening without opening up every blend file although this script become messy over the course of the project so its not a great starting point, more a reference as to what can be done.


Video Editor Text - Font Style Won't Change

I observed this behavior on Linux with Blender 2.83.5.
I found a workaround:

Create a font strip in VSE
Set the font you would like to use (the preview does not reflect this)
Delete the strip
Perform an undo. At least in my configuration, the text is rendered in the correct font.


problem with subdivision surface modifier

Use sculpting on the finger or try to roughly model them in edit mode and then use the subsurf modifier.


How to connect bezier curve endpoints with straight line

Here is a method to do it:

Select your vertices and press V to switch to Free Handles mode.
Select your vertices and the bottom handles and press S Y 0 to flatten on the Y axis.


How can you create a surface from combining 2 objects?

A tool which will cut your mesh in any case regardless of topology is Bisect.

Let's say we want to cut this:

Got to Edit Mode, Side View, and activate the Bisect Tool from the Tool Shelf:

Drag a line across your model, it will be the cutline projected from the view you're looking from through the whole model. The cut will be made, and the cutline selected:

In perspective:

Now, select one of the newly created vertices, and run the Select Side of Active Operator from the menu:

Tweak the operator settings to fit your situation:

Now, deselect the parts you want to keep, and delete the faces afterwards:

The whole process is a bit lengthy, because you have both faces you want to keep and faces you'd like to delete. If you manage to separate out the faces to cut beforehand, you can tweak the Bisect settings directly, as it has an option to remove either top or bottom half of the mesh.


Here is the line you need

  bpy.ops.transform.edge_crease(value=-1.0)

import bpy

class UIPanel(bpy.types.Panel):
    bl_label = "Crease Clear"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    @classmethod
    def poll(cls, context):
        return (context.active_object is not None) and (context.mode == "EDIT_MESH")

    def draw(self, context):
        self.layout.operator("crease.clear", text='Crease Clear')

class OBJECT_OT_HelloButton(bpy.types.Operator):
    bl_idname = "crease.clear"
    bl_label = "Crease Clear"
    country = bpy.props.StringProperty()

    def execute(self, context):
        bpy.ops.transform.edge_crease(value=-1.0)
        return{'FINISHED'}

bpy.utils.register_module(__name__)

Если ты хочешь чтобы кнопка осталась в системе, после перезапуска блендера, сохрани текст в файл с форматом .py и нажми последовательно эти кнопки

If you want the button to remain in the system, after restarting the blender, save the text in a file with the format .py and click these buttons sequentially


Registered class "could not be found" Blender 2.8

Thanks to Gorgious for the answer. It turns out that I forgot the s in objects at the bl_idname.


If you want less noise, increase the Samples under Gather in the World settings of the properties panel.

The gather panel:

  Samples
  The number of rays used to detect if an object is occluded. Higher numbers of samples give smoother and more accurate results, at the expense of slower render times. The default value of 5 is usually good for previews. The actual number of rays shot out is the square of this number (i.e.Samples at 5 means 25 rays). Rays are shot at the hemisphere according to a random pattern (determined by the sample methods described above); this causes differences in the occlusion pattern of neighboring pixels unless the number of shot rays is big enough to produce good statistical data.


I already know the awnser! You just go to files to open one. Then by the filters you check the one next to the blender logo. then you click the .blend1 version of your file. save it as the file how it was before and you're done!


This is not a ready to use solution for your animation you showed but it shows that with just some nodes you can delay things in animation nodes pretty easy.
with this node setup:

you will get this:
https://youtu.be/gx-QGavkipc


How to export a motion tracked camera to 3ds Max?

I've been doing this a lot recently at my work. I find the following solution works best:

Create a cube and align it to the camera exactly, one face should point exactly where the camera faces and you should note which face this is
Parent the camera to the cube, so that the cube follows the motion of the camera, then bake the animation of the cube and clear the parent, you should be left with a cube that follows the track of your camera
Note the framerate of your blender file, by default it is 24fps
Export the cube as a DAE file
Open max and ensure your project framerate is the same as in blender, if it isn't the animation will look weird.
Import the DAE file into max and align a max camera to the cube in the same way the cube was aligned to the camera in blender.
Link the camera to the cube then bake the animation of the camera and clear the parent.
script for this found here: http://www.scriptspot.com/3ds-max/scripts/bake-animation
Check that your max camera has the same FoV / Focal length as your original blender camera.


2D animating a simple image with simple movement

For a simple animation, start with the object in it's "starting position" with the timeline at 0. Press N to bring up the transform tools window, and press I over both the location and scale boxes to insert a keyframe (one press of I works for all three axis boxes).

Then, move your timeline forward, move and scale the object accordingly, and then again, press I over the rotation and scale, to set a new keyframe at the new time position with the new transforms applied. You should now be able to play your animation and watch the object move and scale accordingly.


Turn off Knife cut "auto complete" setting?

Pressing Esc or RMB at any time cancels the tool, and pressing LMB or Enter confirms the cut, with the following options:

Enter will leave selected every edge except the new edges created from the cut.


How do I update my Autodesk Import/Export Plugin?

The fbx import/export addon is one that ships with blender, newer blender releases will include a newer version of this plugin.

When you say you are using 3.1.17, I think of two possibilities, either you are reading the version wrong or you have a non-official version of the plugin installed. Blender 2.79 includes v3.7.17 of the fbx addon. In this commit made Oct/2014 the version of the fbx addon went from 3.1.0 to 3.2.0 and that 3.2.0 version of the addon was part of blender 2.73.

In your preferences, find the fbx addon details and you can see the version as well as the path to the addon file. If the path does not match the installation location of your copy of blender it will most likely be your settings folder. If this does show a version of 3.1.17 and it is not part of your blender install, find and delete that addons file/s.

If you have somehow managed to get an old version of the addon to replace the official installed addon you need to re-install blender and ensure that the correct addon files gets installed.

If blender 2.78 which included v3.7.7 of the fbx addon is able to import files that the newer version doesn't, you should report that as a bug explaining that the older version handles specific files better.

Being open source, all the files used to create blender are publicly available, you can find and download any or all of them. The fbx addon can be found in blenders addon repository which is now at v3.10.0, this is expected to work with blender 2.79 and may or may not work fully with older blender versions.


How do I create uvmap in order to apply texture to bezier curve

Curve objects create their own UV map.  These are polar-ish coords, where the V axis describes something roughly like angle from the curve and the U axis describes length along the curve.  While export functions have their own individual rules, any export function is likely to export a curve object as a bunch of mesh verts, edges, faces with the same UV as is used by Blender.  To access this UV in Blender, just make use a texture coordinate node and use the UV output.
If you want to edit this UV, it's necessary to convert the curve object to a mesh object, which can be done with a "convert to"-> mesh operation (alt c in object mode for me.)
For cases of export, where I don't know of any engine that's going to use Blender's curve objects, there's really no reason not to convert to mesh.  Your export functions are just going to be converting the curves to mesh in the end anyways.


Can I switch off the Auto Manipulation when using Transform Hotkeys?

You can use the native shortcuts for setting the tool to move rotate or scale. If you hit alt and release it and immediately after that hit the key for any operator, you will likely select the matching tool. This works with many things like b for border select, or ctrl+b for bevel in edit mode and so on, and it includes g,r,s as well.

Warning! This may contain some amount of personal opinion from this point. :) But I think there is some logic in it as well.

In general I would recommend to try and see if you can get used to Blender's way with features that are different from the package that you are used to. This is not because they would be better in any way or something like that, but because they may work better together with other parts of Blender because some workflows may differ from other software and you might be pleasantly surprised after you get used to them. Of course there will be things that you will want to customise and there is nothing wrong with making them as they are in other packages, I would just like to recommend not to rush too much so you know for sure that it's going to be more efficient for you to work in one way or another. I was surprised with many things when transitioning from Maya and am glad I gave them a chance for a bit longer than I wanted at first.


2 Ways you can fix it

Click the Cube and go to shading in the left hand tool panel instead of smooth just click Flat

OR

Click on the cube and apply the boolean modifier only and add the edge split modifier to it. And bring the edge split modifier on the top then the bevel modifier in the order.


Animate the peeling of top sealed packaging

Well, hook is right way. But, you need to add some Cloth Simulation.

To make cloth appeal like a plastic seal, I reduce mass, add more Viscosity and add more bending stiffness:

Next, you need to "Pin" vertexes, that are glued to top of a cup. Also, vertexes (that are moving by hook) must be pined. I made it from edit mode, but display in weight paint for appeal:

Pinned group in "Shape" panel in Cloth settings:

And here is a tricky part. You should unpin vertexes during animation. I use Vertex Weight Proximity modifier for this.

Add 2 planes: one hover "hooked" vertexes, and one for glued:

Last one will move and free pinned vertexes:

Combine two planes into one object using Boolean modifier with Union type. and use result in Vertex Weight Proximity modifier. Setup modifier like this. Note, that the Lowest value more than Highest and distance by geometry.

Here the modifier stack. Note, that Hook is before Cloth and Vertex Weight Proximity before Hook.

Also, I added smooth and solidify.


In Windows, Blender folder not in Start Menu for all users?

I don't know much about Blender's installation routine since I use Linux for 3D modeling for stability reasons (and regardless of the OS I tend to use the zipped version), but recently there was a post of someone who claimed that it's exactly the other way round for 2.77b.

Regarding you "is it normal" question - as a former IT admin I'd say, if a software runs properly and the only issue is that some icons that are not "in place", it's normal (aka "happens every day"). Just move the Icons over to the "all users menu folder" and it's fixed.

If this answers your question, please mark it as accepted.


How can i fix the lighting to make the ''glint'' looks like a perfect circle?

To make a perfectly spherical sphere, that responds well to modifiers, you need to use an Icosphere. This is a spherical mesh made from congruent triangular faces:

When using smooth shading or a subdivision modifier, there are no artifacts as all the faces are exactly the same in size and shape.

In contrast, a UV Sphere is made up in the manner of a globe, with degrees of Longitude and Latitude:


Particle system domain box deforms the character (smoke effect)

Your rig object has a non-uniform scale, giving the character a squished appearance.

To fix this, clear the keyframes on the scale (as the scale doesn't actually change, this won't affect the appearance of the animation), then copy the X or Y value to the Z value:

This shouldn't have been caused or otherwise had anything to do with the smoke simulation. Perhaps you may have accidentally changed the scale while Auto keyframe was enabled (as it is in your screenshot)?


Can I rotate multiple bones at once LOCALLY, without unparenting every single one?

Pivot point: individual origins - it's the icon beside the shading selector and the 3d manipulator icon. Select individual Origins.


Why it takes too long to make simple cuts in blender VSE?

When "rendering" a video from the VSE, blender essentially plays all of the source videos frame by frame that will be used to make up the current frame, it then merges each video frame with any effect strips to get the final image for the frame and sends that final frame to ffmpeg to be compressed using the encoding options. These steps will always be performed even if only one unaltered video stream is in the VSE and you want it saved using the same compression settings as the original video.

If you only want to cut a part of a video and keep the same video compression settings, you will find other software better suited. The ffmpeg cli command is one fast option, when you specify that the video and audio is to be copied, it will not decode/encode the video which makes it almost as fast as just copying the file. -c:v copy will copy the video track and -c:a copy does the same for audio with -ss 00:10:00 specifying the start time and -t 00:36:25 being the duration.

ffmpeg -i source.mp4 -c:v copy -c:a copy -ss 00:10:00 -t 00:36:25 cut.mp4


Get list from Animation Nodes using console

You can try using Data Interface node to export data outside AN.


The lambda problem - how to send a constant value through it

This works properly in Blender, since it uses a regular Python underneath. The following example uses a lambda with a default argument in order to evaluate the argument during declaration:

def test(a, b, c):
    print(f'a = {a}\nb = {b}\nc = {c}')

a = [1, 2, 3]
b = 2

x = lambda a, b, c=len(a): test(a, b, c)
a = [1, 2, 3, 4]
x(a, b)

The lambda uses a default argument for the third parameter, which is evaluated right away. The output is therefore:

a = [1, 2, 3, 4]
b = 2
c = 3

c still has the original length of a which was changed after declaring the lambda.

The issue that you're having is unrelated to the lambda though. The update callback is expected to take exactly two arguments. This is checked in the properties (bpy_props.c) through:

if (bpy_prop_callback_check(update_cb, "update", 2) == -1) {
  return NULL;
}

If you can supply a function that takes two arguments it will work properly.


Scripting setup to save all Cycle render passes to a single EXR image

The article here provides quite similar solution to my problem. The sample code goes like the followings for this diagram

#---------------------------------------------------
# File nodes.py
#---------------------------------------------------
import bpy

# switch on nodes
bpy.context.scene.use_nodes = True
tree = bpy.context.scene.node_tree
links = tree.links

# clear default nodes
for n in tree.nodes:
    tree.nodes.remove(n)

# create input render layer  node
rl = tree.nodes.new('CompositorNodeRLayers')
rl.location = 0, 200

# create SEP_RGBA node
sep = tree.nodes.new('CompositorNodeSepRGBA')
sep.name = "Split"
sep.location = 200, 200
links.new(rl.outputs[0], sep.inputs[0])  # image-image

# create VIEWER node
viewer = tree.nodes.new('CompositorNodeViewer')
viewer.label = "Alpha"
viewer.location = 400, 400
links.new(sep.outputs[3], viewer.inputs[0])  # A-image

# create COMBRGBA node
comb = tree.nodes.new('CompositorNodeCombRGBA')
comb.label = "Cyan"
comb.location = 400, 200
links.new(sep.outputs[1], comb.inputs[2])  # G - B
links.new(sep.outputs[2], comb.inputs[1])  # B - G

# create HUE_SAT node
hs = tree.nodes.new('CompositorNodeHueSat')
hs.label = "Violet"
hs.location = 600, 200
hs.color_hue = 0.75
hs.color_saturation = 1.5
links.new(comb.outputs[0], hs.inputs[1])  # image-image

# create output node
comp = tree.nodes.new('CompositorNodeComposite')
comp.location = 600, 400
links.new(hs.outputs[0], comp.inputs[0])  # image-image


"convert to" is not there in my blender 2.8 version

Make sure you're in Object Mode with an object selected, otherwise the 'Convert To' option won't appear in the search.

Otherwise, in Object Mode with an object selected, you can find the option in the Object menu.


I got it working. Leaving the answer here in case somebody else is looking for a way to develop a similar kind of custom "armature animation modifier" (if I can call it that). Again if anyone sees a better way, let me know!

Basically, I dug a little deeper into why the armature_update_post Python callback (which I added to BKE_pose_where_is, as explained above) wasn't working reliably. The problem was that BKE_pose_where_is can be invoked from an arbitrary thread, and therefore the Python callback runs in an arbitrary thread. In this Python callback, I was checking bpy.context.window.screen.is_animation_playing but this doesn't work because bpy.context.window returns None if not called from the main thread. (See ctx_wm_python_context_get in context.c.) So instead, I decided to add yet another Python callback so that the UI can tell the script when animation playback starts & stops, and let the script keep track of the playback state itself.

Here's a summary of the approach I'm using now (based on Blender 2.78):

Add a new Python callback armature_update_post and invoke it from BKE_pose_where_is in armature.c.
Add a new Python callback animation_toggle and invoke it from ED_screen_animation_play in screen_ops.c.
In rna_pose.c, add a call to BKE_pose_where_is_bone at the end of rna_PoseChannel_matrix_set, so that when a PoseBone's matrix attribute is set from Python, the bone is fully updated right away (specifically the chan_mat member of bPoseChannel). This was necessary because rna_PoseChannel_matrix_set seems to leave the bPoseChannel in a partially updated state. If you don't do this, the whole approach doesn't work.
Handle the callbacks in the Python script. In armature_update_post, if animation is playing, modify the PoseBone matrices however you want, in parent-to-child order (basically just scan obj.pose.bones sequentially).

That's just the general approach at a high level. As you can see, I wasn't able to implement a pure Python solution -- I had to hack in C a little bit. The Python callback runs kind of slowly, so the playback rate in Blender slows down. I might move the logic into C later to speed it up, but for now, at least it's working.


Try use option Freestyle in script for Blender

You are close, the use of bpy.types.FreestyleLineSet is wrong as this refers to the class definitions used elsewhere. The correct way to add a new lineset is freestyle.linesets.new('mylineset'), you also have a typo in linestyle.visiblity = 'RANGE'

A working version of your example is

import bpy

sceneR = bpy.context.scene
freestyle = sceneR.render.layers.active.freestyle_settings

linestyle = freestyle.linesets.new('mylineset')
sceneR.render.use_freestyle = True
sceneR.svg_export.use_svg_export = True
freestyle.use_smoothness = True
freestyle.use_culling = True
linestyle.select_by_visibility = True
linestyle.select_by_edge_types = True
linestyle.visibility = 'RANGE'
linestyle.select_silhouette = True


Answer is in your first two lines. Transmission pass is nothing else than colors of transmissions rays. Imagine diffuse color pass. It's color only. No other influence like shadows and glossy. Transmission pass is exactly the same, but color of transmission rays. Make your cube red (in glass shader) and you get red color in transmission pass.

PS: Does not make sense write the same few times in documentation

PS2: maybe you try find something that not exist :-)


A quick search for cursor yields Window.cursor_set

So i.e.

bpy.context.window.cursor_set("HAND")


Apply modifier for unwrapping but maintain animation

Set the spring's skrew distance to the appropriate value for the desired resting position.
Run the script below after setting the sides variable to the number of sides of the spring.

import bpy

obj = bpy.context.active_object

sides = 8
steps = obj.modifiers["Screw"].steps
iterations = obj.modifiers["Screw"].iterations

bpy.ops.object.modifier_apply(modifier = "Screw")
bpy.ops.object.vertex_group_add()

group = obj.vertex_groups['Group']

loops = steps * iterations + 1
weight = 0.0

for loop in range(loops):
    weight = loop / (loops - 1)
    group.add( range(sides*loop, sides*(loop + 1)), weight, 'REPLACE' )

After running the script, the skrew modifier will have been applied and a vertex group added with the correct weights.

At this point, you can either use an armature or a control object (with a hook modifier) to deform the spring along the Z axis. In the example below, I have used an empty and a hook modifier to rig the spring:

I wasn't able to get the deformation to work with the armature modifier, but the hook modifier can use bones as well, which worked fine.


How to make NLA strip pick up location based on previous action?

You can blend the actions in the properties of the Action Strip:

The extrapolation and blend settings are important.

Result:

You have keyframed the scale some bones of the upper body in the crouch action (perhaps accidentally) in case you wonder why this looks like this.

To stop movement while crouching simply keyframe the same position for the frames:


There's a little plus symbol at the bottom of the toolbar. Drag it up


Blender won't start on Tails 1.4 (Debian)

The problem is that you are trying to run a 64-bit version of Blender on a 32-bit system. Go to download.blender.org, click on the "GNU/Linux" tab, and click the 32-bit button. Then, extract the archive and run the blender executable.

For a more in-depth explanation of the error message, check out this answer on unix.stackexchange.com.


What is the best way to unwrap a sphere?

I find the results are best when islands best match the actual shape of the geometry.  The closer you get to this the less stretching you will have.

For a sphere, I find this works best for me.  A cube with sub-D at level 2 which is applied then corrected in Edit mode with the To-Sphere tool.

Then

Or even better for less stretching.  (however, more seams mean more chance for the lighting to show artifacts with specular highlights on normal maps).

EDIT:  It just occurred to me that some of the issues which people are having with stretching in their textures may be related to the Sub-Divide UV's  Option in either of the two sub-D modifiers(Multi-res).

If you don't set this button appropriately, then you will likely have stretching and it matter matter how well the UV's are laid out.

As a general guideline, it seems best to disable the Sub-Divide UV's option when your mesh is mathematically evenly spaced.

So when you have built your mesh with somewhat un-evenly spaced lines, then you may want to leave Sub-Divide the UV's on for the least amount of stretching.

I toggle it on and off rapidly while watching the model and how a checkered texture is become stretched or not.
I do the same thing with the little eyeball icon that turns the modifier on and off.

Keeping an eye on this should help minimize the baking difficulties.


How can i get a proper reflection on a material without a background or another objects?

In Cycle render engine you have an option to disable direct visibility of the objects to the camera.

Open Object Data tab and in Ray Visiility section disable this option on all the objects that you want to be invisible in render.

You can do the same with the background in World tab.


You can use Dynamic Paint simulation, which is the recommended way, and generate very vivid result.

Set Sofa as Canvas object, and choose Displace for Surface Type.
Set character as Brush object, and choose Mesh Volume for Paint Source.

Example File


Is it possible to set an object's origin with bpy.ops.transform.resize()?

You can use "center_override" for this. Here is the code:

bpy.ops.transform.resize(value=(1, 1, 1), center_override=(42, 42, 42))

Happy Blending! :)


How can use draw tool in sculpture mode? (red line)

The red line is from the "Stabilize Stroke" brush settings. It adds a delay to your stroke indicated by the red line. Drag further and the draw tool will work at the end of the line.
You can turn it off in the brush settings. Open the sidebar in Sculpt mode (N) or look at the tool panel on the right side of the screen: Brush Settings → Stroke → Stabilize Stroke


To show or hide Options tab in export window use T button while mouse cursor located inside the window. Alternatively you can click + icon that was added in blender version 2.74 next to the File Path input.