Translate an object local in Animation Nodes

The thing is the matrix translation node is basically a compose matrix node but with no control about rotation and scale. This means whatever you do with the translation matrix node it is always going to output a matrix with a 0, 0, 0 rotation and a 1, 1, 1 scale. If the objects you are looping through had a rotation and scale, they are going to "lose" them by going through this kind of loop. One way to solve this is in the following setup:

Here all the objects in the 3D view are going through the loop but are not loosing their initial loc, rot and scale. From there if you add a compose matrix node in the free input (which is going to input a loc: 0, 0, 0 rot: 0, 0, 0 scale: 1, 1, 1), you can controle all the objects realtive to their intial position, instead of overwriting it.
I don't know if this is also valid in the master branch of AN, but their is a handy thing added to the object matrix output node, which is dealing with object and matrix lists. The latest version of an can be found here. You don't have to loop anymore. The thing is there still is no matrix list math node (at least I've not found one), so you will still have to loop but this is useful for making a grid (if you are not playing with indices).

This is only an answer to the first part of the question, indeed animation nodes seems to have problems dealing with matrices. You can find the bug report here in order to solve matrices problem.
I don't know why this happens but somewhere your node setup you are trying to get elements from a list but this list is empty so it shows an error. I hope this was kind of helpful


How to create a bottom for this rock to make it a whole mesh?

You could copy some of your rock mesh (selection with inner region or circle select...) and orient it, so that you don't need to fill a large hole, but you have a gap between your rock mesh and that patch.

Then you could fill this gap with methods like shortest path select (hold ctrl while selecting) the gaps borders for short lengths of the gap and then fill faces (with F).

The gap filling result will be nicest if in advance to filling you extrude the parts of the gap closer to each other in multiple iterations(Then you have quads in most of the gap region)


You need to give your bones a suffix L (for left) or R (for right) if you want them to be symmetrized, example: finger1.R, finger1_R...


Is there a way to exclude parts of mesh from curving when using curve modifier

Yes. Select those parts in edit mode.

Press Ctrl+i to invert selection. Everything else is selected.

Create a vertex group. Assign the selected vertices to the vertex group.

Exit edit mode.

In Object mode apply the curve deformer and select the vertex group. It will be applied only to the parts you previously selected.


I have done a simple test and it did  not work without a value to add to the property. You need to have your logic like this:

The script only activates the actuator "Message", which send the message.

logic.getCurrentController().activate(logic.getCurrentController().actuators['Message'])

And if you dont set a value e.g "15" to add on the property actuator it will not work. You can't do ( + 0 = ?).

EDIT

I failed to make the random actuator work, but it's very easy with python.

For the mineral object: (You may already done this!).
1. Make a proterty call mineral
2. Add a collision sensor(True level triggering) with property player < and > edit object actuator - end object.

For the player object:

Make a proterty call player
Add an always sensor an a python controller
Add a collision sensor(True level triggering) with property mineral to the python controller

Script:

#import needed libraries
from bge import logic
import random

#main function or module.
def main(controller):
    # Param controller = bge.logic.getCurrentController
    #eval if collision sensor activated
    if controller.sensors['Collision'].positive:

        # Gold attr = gold attr  + Random num
        controller.owner['gold'] += random.randint(10, 50)
    print(controller.owner['gold'])

#Game update######################## every frame if always sensor true level triggering

#call function
main(logic.getCurrentController())

EDIT

to send the message use:

controller.owner.sendMessage('subject', body = str(controller.owner['gold']), to = 'object' )

and retrive it:

if logic.getCurrentController().sensors["Message"].positive:
    gold = logic.getCurrentController().sensors["Message"].bodies[0]

Api sendMessage

Api messageSensor.bodies


How may I establish a render farm over WAN?

The bandwidth requirement are highly dependent on your scene. With the official Network Renderer, you will need enough bandwidth to copy the scene file over to the each of the slaves (once), and then get the rendered images back (every frame). The communication overhead is negligible.


My symmetry is off but only on the lower jaw of my model?

At a glance, it looks like the lower jaw is a separate object (correct?) and that the origin of that object has been accidentally moved somehow. In Object Mode, select the jaw, right click, and go to "Set Origin". You should see a few options; select "Origin to Center of Mass (Surface)". That should get your origin back to the right place and fix the symmetry.


I can only see vertex colors in Vertex Paint mode - otherwise gray

Figured out a workaround. These objects don't have any material in the glTF, just the vertex colors. So I created a material on one object, basic Principled BSDF, and as the color input I added Vertex Color node with the color set to COLOR_0. Then I linked that material to all the other objects, and it seems to work.

A bit painful, not sure why the importer can't just do that, but it does work for me.


How to spin a curve to create a surface using python script?

Screw the curve too.

Similarly to creating with bmesh

import bpy

def poly(x):
    return   0.2 * x * x - x + 3

cu = bpy.data.curves.new("poly", 'CURVE')
cu.dimensions  = '3D'
bez = cu.splines.new('BEZIER')
pts = [(poly(z), 0, z) for z in range(10)]
flat = [p for pt in pts for p in pt]
s = cu.splines.new('BEZIER')
s.bezier_points.add(len(pts) - 1)
# set the points in one fell swoop
s.bezier_points.foreach_set("co", flat)
# doesn't seem to work for handles so set them in loop
for bp in s.bezier_points:
    bp.handle_left_type = bp.handle_right_type = 'AUTO'

# lazy way to add curve object
bpy.ops.curve.primitive_bezier_curve_add()
ob = bpy.context.object
ob.data = cu

# default screw modifier spins 360 on z
screw = ob.modifiers.new("Screw", 'SCREW')


You can also use Proportional Editing.
Works well for dense geometry and doesn't require further subdivision.

Scale the top loop
Enable Proportional editing, set Falloff > Sharp
Adjust size as needed


Fricked up my under-arm joint topogroaphy

I was able to do it by selecting the edge loop before the joint, hiding it and deleting the whole arm and rebuilding it from those vertices by extending it.


Blender render output is completely white

Your world shader is the culprit.
The Background Shader has a strength of 500!

Change that to a more sane value, and you will see results more like you would expect.


Did Blender 2.9 remove sticky option from floor constraint?

This option has been removed in 2019 as indicated here by Sergey Sharybin.

Remove Sticky option from the Floor constraint
This option from the very beginning of its existence needed more work
to make it work correct and this was never done.
This option was working fine during continuous playback, when there
are no skipped frames, but it was failing when AV-sync of framedrop
was enabled. It was never working correct when jumping between frames,
including rendering on a farm which usually does frame-range based
rendering.
With copy-on-write things became even more tricky, since the "stuck"
flag was never preserved between re-evaluations.


Topology of your dress has to be even - try keeping all polygon in square shape and similar sizes.
Always use collide boxes to collide with your dress.
Don't use mesh cage on your dress unless your dress model is complicated.
Rig your dress to the armature first, and then pin the upper part of the dress, leaving the lower part to be sim. That's about 30% or more that needs to be pinned (half way up the thigh and anything above).
In cloth sim, Set structural to 5 and mass to 1, and start tweaking from there. These two are the crucial factors, Others only serve to improve its behavior. Also, in blender, a large step number doesn't necessarily mean it's better. A lot of times larger step number gives you worse result.
When you are ready to sim it, always start baking from a rest position!
When something's off, free your bake first before fixing it. If you don't free your bake first, your changes will not be applied.


Please tell me how to fix this rigging problem

This model is very complex and requires manual weights editing. The automatic weights or Mixamo could only be a starting point.

The model is ripped with losses. There is no material data, and it's probably missing a small part and a vertex color data. This kind of game model demands deep 3D knowledge.

I made a rigging with Mixamo and tried to set up materials. I have not figured out how exactly those alpha maps are used, but overall it is correct. The weights still need attention.

A small tip I have learned: by default, Blender ignores color data for pixels with zero alpha, and you need to set Alpha from Straight to Channel Packed so it will not affect RGB value.


What you need is baking the displacement map. Baking normal map for that mesh doesn't work because the tangent value is undefined, meaning your mesh has shaped 90 degree difference of angel (as we always know tan 90 is undefined). However, if you make slight difference, say it shaped 89.99, it might work. The point is never make an angle difference that makes its tanget value is undefined


I think you are after instancing. How this works in Blender is explained here:

What is a Duplivert, or a Dupliframe, internally?

You can also use the Array modifier to make copies, then deform them with another modifier (lattice for example).

The equivalent of MoGraph node system in Blender is the Animation Nodes addon.


are intel cpus beter for blender than amd cpus (no opinions aloud just facts)

As far as which is better for Blender, AMD or Intel, I don't really know. Beside, if the benchmark is using cycles, they might have been using GPU rendering.

As for why Intel CPUs tend to outperform AMD, the quick and dirty answer to this is that Intel has more money to spend on R&D. There was a point in time where AMD had better CPU's than Intel (Atholon 64 vs Pentium 4), but this caused Intel to get their act together. AMD is making some nice improvements to their processors, but the resources they can invest in coming up with a better CPU doesn't even compare to what Intel can invest. Because of this, Intel is more likely to come up with a better CPU.


I can't seem to use any of Sverchok's mesh filter tools. Did something change in Blender 2.8?

I don't know what you are doing and how your layout looks like, but node tree checcked now:


What kind of uses could the Wavelength node be used for?

One might use it to get some form of iridescent effect (Wikipedia article). Elaborating on the idea that the perceived colour of parts of objects depends on the direction of the surface normal of each point on a surface with respect to our eyes. Compressing and rarefying a ribbed pattern around the scale of visible light wavelengths can change the colour we see as a result.


You will have to apply the Solidify modifier. This will generate the inner vertices.

Or you can do this without modifiers. Select your mesh, go into Edit mode. Select all the vertices you'd like to solidify and do one of the following:

hit Space, then type "Solidufy";
or press Ctrl+F > Solidify.

After execution of the operation you can adjust the thickness either pressing F6 or opening bottom of the N panel, where 'Last Operator' scroll located.


Create a curved circle with precise dimensions

A curve with its control points precisely placed and a Screw modifier will do this.

Is this the shape you wanted?

Edit:

Sometimes the handles get swapped around, and that kinks the curve around on itself.  So move the handles around and see what effect that has on the curve to make sure they're coming out on the right sides.  If you move the control points (the handles get highlighted too) with G for grab, X, Y or Z for the axis and 0 or 1 or whatever you need, you can get them in a symmetrical place - you have control over that at least.  To get the handles arranged you can turn on Snap (the magnet icon at the bottom in Blender 2.79) and turn on Absolute Grid Alignment (the second icon along after Absolute Grid Alignment, you can move the handles to a fixed point on the grid so everything is properly aligned and symmetrical.  If you then want more or less curve you can move the handles to another grid point, keeping them symmetrical.


FBX exporter with a material overwrite with python

So I made a work around. The key was saving the original material, assigning the overwrite material, then reapplying the original. You will need to change the settings for the fbx export click here for its structure.

 fbxs = [ ob for ob in bpy.context.selected_objects]
 bpy.ops.object.select_all(action='DESELECT')

    for ob in fbxs:
         ob.select_set(True)
         mat = bpy.data.materials['Overwrite']
         original_mat = ob.data.materials
         ob.data.materials[0] = mat

         bpy.ops.export_scene.fbx(...)

         ob.data.materials[0] = original_mat
         bpy.ops.object.select_all(action='DESELECT')


Apply the Skin modifier you must have right now, then you'll be able to weight paint.


How to calculate for every ray the total distance it has traveled from camera to emitter

Cycles only provides the Ray Length for the current section of the path (ie, between bounces or interactions with a surface) and does not prove a means of summing that over the entire path of the ray - the only link between one 'bounce' and the next is the intensity of light and we cannot even directly access that. However, we can use a maths trick to encode the 'length' into the intensity of light and later use the compositor to decode it.

Consider an imagined ray that follows an assumed path :

It leaves the lamp
It bounces off a reflective (glossy) surface
It bounces off the ground
It bounces off an object
It gets to the camera

Each 'surface' (and the lamp) has a Color - lets call those C1 (lamp), C2 (glossy), C3 (refractive), C4 (diffuse). In addition, the light may fade between the interactions - eg, light travelling from the point source lamp will 'falloff' as it travels and so will be less intense the further it is from the source - lets call those F1, F2, F3, F4.

The light from the lamp (with initial intensite 'I') travels the path from the lamp, through all the interactions and to the camera and at each stage the intensity of the light is multiplied by each of the interaction's Color and Falloff.

So,

FinalIllumination = I x C1 x F1 x C2 x F2 x C3 x F3 x C4 x F4

At each stage along the path we can control the Color of that interaction - so we could vary the resultant light based on the ray length for each 'bounce' and combine these to represent the total ray length, extracting the result in the compositor.

However, this mechanism only allows us to multiply values together - we need to be able to add each individual ray length into the total at each stage, and we can do this using exponents and logarithms.

We can use the Maths 'Power' node to raise a number to an exponent - eg, 2^5 (or 'pow(2, 5)' or 2x2x2x2x2) = 32. Mathematically, multiplying two or more such powers together (with the same 'base' number - eg, 2^5 and 2^4) is equivalent to adding the exponents together.

ie,
    b^n x b^m = b^(n+m)

The Logarithm function is the reverse of the Power function and this can be used to extract the result (n+m) at the end. We can use this trick to manipulate the 'color' at each bounce to add in the ray length at each stage and extract the result (the total ray length) in the compositor.

Using a large 'base' would result in distant rays flooding the more relevant 'closer' bounces - using a 'base' slightly less than '1' results in progressively smaller values for longer distant rays while keeping reasonable precision. 0.95 seems to work OK for my range of distances - use a smaller number to increase the precision at small scales (eg, 0.9) and a higher value to allow for much longer distances (eg, 0.98 or 0.99 or higher).

We can use the different color channels (Red, Green, Blue) to represent different quantities. By making one of the channels always multiplied by '1' we can use that to accumulate the falloff of the entire journey (ie, F1 x F2 x F3 x F4) and this can be used to adjust the exponential accumulation of the ray length prior to the logarithm to effectively 'cancel out' the falloff prior to extracting the result. I used Green to represent the exponential accumulation, and Blue as a constant to measure the natural illumination falloff so the logarithm of Green / Blue should provide the total distance travelled by the ray. This leaves the Red channel which could potentially be used to 'count' the number of bounces using a similar technique (ie, use 'base ^ 1' to add '1' for each bounce).

To achieve this we need to replace each material in the scene with one that performs the calculations to generate a Color based on ray length. Here are materials for Diffuse, Glossy, Emission and Lamps. Similar materials can be used for Refraction/Glass.

NOTE : The World illumination should be set to zero to avoid it conflicting with the ray length (since they'll be coming from 'infinity' and would swamp our measurements).

Diffuse

Glossy

Emission

Lamp

Once the scene is rendered you can extract the path length in the compositor using the following nodes :

Note that the 'base' (0.95) used in the compositor must match those in all of the materials.

To demonstrate, here's a test scene consisting of a diffuse cube and plane, an emissive sphere, and a glossy mirror :

The result of the captured ray length (using a color ramp to map colours based on distance) :

Showing a progressive 'pulse' based on total ray length (bear in mind that the total ray length is measured from emitter to camera, not just the distance from emitter to the surface - also where multiple paths exist the shorted path will tend to override any longer paths) :

Blend file attached.


How to render animation using different text each time?

import bpy

for obj in bpy.data.objects:
    obj.select = False

bpy.context.scene.objects.active = bpy.data.objects['Text']

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

bpy.ops.font.delete(type='ALL')

bpy.ops.font.text_insert(text="Scripted text")


I am trying to make an animation of a double planet, can't seem to get it right.

My solution is to use an empty (Empty1) as the Moon/Planet barycentre which follows a large path representing the star orbit. The moon and Planet each have a path that follows Empty1 around the Star.

Here you can see a Constraint example:

These are the loops indicating days and a year:

Of course the large orbit path should also be eccentric but I doubt that the difference in mass here would be noticeable ;-)


Insert Blank Keyframe with Grease Pencil not working + Time Offset Modifier

This Q was a result of a FLASH mindset where I can cut the loops as I wished.
Apparently in GP we cannot make these loops and cut as wish.
So, I copy pasted the frames as many times as needed, not the most beautiful solution but it works.


How do I make color materials into a single image file?

What you need is BAKING. I recommend looking up some tutorials on texture baking in blender. Ideally, you should have used some color pallet and put uv faces on it to assign different color to different faces and using only a single material. you can then do a cleaner unwrap and bake the textures to this new uv map to get the final texture.


You can use force fields to obtain this kind of effects, specially 'wind' and 'vortex'.

But I did not succeed the zigzag you mentioned

The paper is a soft body, with no particular parameters.

Then add some force fields and tune them..., for instance this kind of configuration, where :

Strength and flow allows to create an air flow at the given strength
Noise and seed add some randomness to the flow
Power and min/max defines a falloff of the field

I don't know if the zigzag is possible with a paper in real.. but anyway, as said before, I did not succeed to turn that into a zigzag...

Hope this help however.


Adding a knee bone for better definition to Rigify metarig

You can add knee bones to a Rigify rig but you need to do this to the generated rig, not to the meta rig.
(The meta rig is used by Rigify to define the location, shape, and size of the generated rig.
The generated rig will eventually be used for posing. It consists of numerous bones, such as deform bones (that deform the mesh and start with DEF- prefix in their names), control bones (for IK/FK), and mechanism bones, etc. All these bones can be found on the different bone layers.)
But Rigify has a custom property named "Rubber Tweak" for the shins (knees) and elbows that can give those areas more volume.
For comparison:

If you want to add an extra knee bone you can find the deform bones on bone layer 30. Add a knee bone between the thigh and the shin bone as described in the video:

Clear Parent (Alt+P) to separate them
select the ends of the bone, F to add the knee bone
rename it to DEF-knee.L
parent the shin bone to the new knee bone and check the connected checkbox

Additionally, you need to add 2 bone constraints to the new knee bone (switch to Pose mode, see  for details).

Rubber tweak option (right leg), extra knee bone (left leg)
Note: There is a bug (Blender 2.91), that makes Rigify not generate all needed layers. The bug happens now and then when you have edited the bones and press the Generate Rig button. Check if all layers are there before you proceed. Are Arm.R (IK) and Arm.L (FK) present? If they are missing have a look here:
Rigify->Generate Rig doesn't create all rig layers in the properties ui


Keep texture shadeless, but recieve shadows?

I don't know if there is a way to do exactly what you're talking about, but I have another idea.

I would duplicate the clean plate and move it ever so lightly closer to the camera (as little as possible). Then change its material to a transparent shadow-catcher. That way, you can see the plate through/behind it, but the letters can still cast shadows on it.

I'd love to see how well it works ;-)

I hope that helps!


Cutting an archway in a wall of a model of a building

You could model the arch's shape from a plane and use Knife Project.

Select first the arch then the wall in Object Mode
Change to Edit Mode and apply Knife Project

After that you should have a model like:

If  you want to connect the arches select them by Shift-Alt-RMB and Bridge Edge Loops

Alternativley (as suggested by Gandalf3) you could use the Boolean Modifier.

For this technique you would need to extrude the arch like the red object here:

Align the objects
Add a Boolean Modifier to your wall, and set operation to Difference
Apply the modifier

The result should look like:


Selecting multiple collections & all objects inside them

YES.
Create a new collection.
Drag-drop the other collections inside it.
Right-click top collection --> Select Objects.
(confirmed.)


I had the same problem and got my answer here: https://blender.stackexchange.com/a/84392/38217

Note that this executes on ANY Blender File you open, but maybe it will suffice.

import bpy
import sys

@bpy.app.handlers.persistent
def setup_path(*args):
    sys.path.append('/Path/To/My/Blender/Project')
bpy.app.handlers.load_post.append(setup_path)
setup_path()

  Put this code into a Python file and place it into
  ~/.config/blender/2.78/scrips/startup/setup-path.py (replace
  ~/config/blender with %APPDATA%/Blender Foundation/Blender on Windows,
  and something along those lines on MacOS).


How to model a turtle's shell starting from a circle/ using a circle?

Add a Circle and set its vertices number to 10.

Scale and rotate it to fit the picture using snapping tool (click on a magnet icon and set its type to Increment). Hold down Shift while rotating to do it precisely. [In this case i rotated a circle 18 degress]. Being in Edit Mode select the whole circle (A), then pres W-->Subdivide.

Delete one half of a mesh and give it a Mirror Modifier. Extrude the vertices to fit the reference image.

Apply a Mirror Modifier and then add a Subsurf Modifier. Select the outer edges and press Alt+Shift+S (with a cursor snapped to an origin point) to make them spherical.

Now set the pivot point to Individual Origins. Select the faces as pictured below, then press I and I again to inset the individual faces. Repeat the process with other faces.

Select the edges as pictured below, press G then Z. Select all edges and sharpen them using Shift+E shortcut.

Give it a proper shape using Lattice Modifier and proportional editing. Give it some thickness using Solidify Modifier.


Answered by @batFINGER in a comment: You need to either use the math namespace because you've imported it eg math.cos(angle) or to use directly, from math import cos. For convenience sake the math and mathutils methods have been imported for you in the console. from math import * (See banner message).


What is the best way to store a list of objects with some linked data?

Custom properties.

Could store the segments in a custom property on the object  with the same name as the modifier.

for obj in self.stored_selection:
    for mod in obj.modifiers:
        if mod.type == "BEVEL" and mod.segments > 1:
            obj[mod.name] = mod.segments
            mod.segments = 1

and restore with

for obj in self.stored_selection:
    for mod in obj.modifiers:
        if mod.type == "BEVEL":
            segments = obj.get(mod.name)
            if segments:
                mod.segments = segments
                #del(obj[mod.name]) # remove prop?

Another method would be to make a list of all the bevel modifiers with the segments value.  Need to proceed with a little caution when saving lists of object, or in this case modifier, references. If you remove an object that has the modifier, then try and reference later from list may produce a system fault and crash blender.

bevel_mods = [m, m.segments for o in context.selected_objects
        for m in o.modifiers
        if m.type == 'BEVEL'
        and m.segments > 1]

for m, segments in bevel_mods:
    # print object name modifier name segments
    print(m.id_data.name, m.name, segments)


If you just add random particles, they are all over the place, not mirrored, so the mirror function doesn't know what to do. You'll need to delete all particles in particle edit mode and use the add brush while symmetry is alread turned on.
usually you would place a couple of hairs far apart, comb them and use interpolated mode on the add tool, so you have a running start.


Is there a way to "lean" hairs without combing?

You'll want to be doing something with the tangents.

TL;DR Enable Advanced, set 'Rot' to 0.5 and play with the Normal and Tangent values.

You'll need to enable Advanced in the hair options:

Then go to the 'Velocity' section, under 'Emitter Geometry.' The 'Normal' value is set to the length of the hair divided by four. (Just don't ask me why.) Increase the Tangent value to something like 0.1, increasing the influence of the tangent on the length of the hair. (Those strands on the side are doing their own thing; that's lazy modelling on my part and should not happen.)

Then modify the Rot attribute (Tangent rotation) to 0.5 to make the particles rotate in the direction you wanted. If you wanted you could change it to another value to make the hair rotate in a different direction. Just play with it for the effect you want.

The 'Rot' parameter is basically rotating the tangent around the normal, with -1 to 1 mapped to -180 to 180 degrees. This makes sense if you imagine that there are two imaginary lines for every hair (in this case, on every face.) The red is the normal and the blue is the tangent. The hair is being pulled in both directions at once, so its length outwards is the Normal value (0.075) and its length sideways is the Tangent value (0.8). The diagram is nowhere near to scale.

If you want to change the rotation side-to-side of the hair you will have to do a bit of fiddling with the Normal and Tangent values, but not the Rot. Because of the way the Tangent and Normals work (as I explained above), we can do a little trigonometry to find the length and direction of the final strand. In particular, with a Rot value of 0.5, if the Normal value is n and the Tangent value is t:

the length of the final hair strand will be sqrt(n^2 + t^2) (Pythagoras)
the rotation of the final hair strand side-to-side will be arcsin(n/t).

(arcsin is the inverse sin function.)


Unfortunately not. The closest there currently is in official blender is follow playback, which will at least keep the playback head in the view.


If the video is already encoded into a single file with the instructor’s audio and the music, there is no easy way to do this, especially in a software with limited audio capabilities like Blender. There may be something you can do with a script, but advanced audio processing is not one of Blender’s strong suits.

If the video was edited in Blender, however, and you have access to the blend file, you can go to the Video Sequence Editor, select the audio track with the music and manually turn down its volume (by pressing n on the timeline to open the properties panel).

If it was edited in another software, you’ll need to open the project in the software it was originally edited in.


How to switch the object's parent from one bone to another? (grab, hold and drop object)

You can do it with the Child Of constraint. If you don't need to drop the object at the end, here is a quick way to do it:

Give your object 2 Child Of constraints, one with the first bone as Target, the second with the second bone. Don't forget to click on the Set Inverse button so that the object stays at its place. At frame 0 create a keyframe on the second constraint's Influence at 0. Keyframe your bones.

At frame 10, move your second bone (hand) from its current position to its position next to the object, and keyframe it. At frame 9 create a keyframe on the first Influence > 1, and on the second Influence > 0.

At frame 10 create a keyframe on the first Influence > 0, and on the second Influence > 1.

At frame 20 move the bone to its new location.


Duplicating with ShiftD will create a duplicate of the selected object, and immediately activate the move tool, so all you have to do is drag the new object to the place you want it. The original object will stay unselected and in it's original position.

Note that all the copied objects are independent from each other.

To create linked duplicates use AltD, the tool behaves the same way but all duplicates are linked to the original mesh, so altering this one will affect all of them.


Making the background see-through, with a recticle staying visible

You can use this kind of node setting:

The principle is the following:

Your image is used as diffuse
But it is also used as input to drive the mix shader
This is driven by the white parts here: the more white the more the mix shader will use its second input which is here a glass

Using a glass shader can help to have this kind of zoom like effect, just changing the IOR value of the node:


Workflow to model and texture a jigsaw puzzle

"How would one go about projecting an image across all these individual piece objects? That then get baked into textures? That can then be applied in TTS?"

I would just use the single image as the texture, and each piece would start out being in the same object mesh so that they can all be unwrapped from view at the same time and carry the same material - then you can separate each separate piece with P - 'separate by loose parts'. No baking needed.

Incidentally, I advise you to increase the resolution of your curve object before converting to mesh if you are concerned about the edges of each piece.


The list of vertex groups can be found in the object properties, we just need to search for the names we want and rename them.

You could fill in name_list from the start or just add one or two names as you find them and re-run the script. This is set to rename vertex groups in the active object.

import bpy

name_list = [
    # old name - new name
    ['lowerarm_L','forearm.L'],
    ['lowerarm_R','forearm.R'],
    ['upperarm_L','upper_arm.L'],
    ['upperarm_R','upper_arm.R'],
]

v_groups = bpy.context.active_object.vertex_groups
for n in name_list:
    if n[0] in v_groups:
        v_groups[n[0]].name = n[1]

Note that matching names this way is case-sensitive, for an insensitive match use -

v_groups = bpy.context.active_object.vertex_groups
for n in name_list:
    for vn in v_groups:
        if vn.name.lower() == n[0].lower():
            vn.name = n[1]


I don't think this is a polygon problem, you are just stretching the texture so much it just has nothing to put on this side of the brick, it has no information. It's just not possible to do this this way, you have to model it and texture it manually


How Texture Paint over assigned material

You have your image texture also loaded as a brush texture, so you are painting black on black. Press the little X to remove the texture from your brush and see if that doesn't help.


Deselect all markers first (hit A)
Click on the track name in the Dopesheet View (i.e. Track.009), twice if it's initially selected (first click deselect, second click selects track as well as the track marker). The Dopesheet View of your Movie Clip is on the upper right in the default Motion Tracking screen.


How to open an image editor window and display an image file in it?

Blender does not support creating a new window officially. However, there are some workarounds.

bpy.ops.screen.userpref_show()

One way is to open up a new User Preferences window and change its Area.type to 'IMAGE_EDITOR' using bpy.ops.screen.userpref_show() operator:

# Call user prefs window
bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
# Change area type
area = bpy.context.window_manager.windows[-1].screen.areas[0]
area.type = 'IMAGE_EDITOR'

bpy.ops.screen.area_dupli()

Another way is using bpy.ops.screen.area_dupli(), which creates a new window from a specific area of your screen. Find an area of interest, store the Area.type, set it to 'IMAGE_EDITOR' call the the opeator and reset the area:

# Copy context member
context = bpy.context.copy()

# Iterate through the areas
for area in bpy.context.screen.areas:
    if area.type in ('IMAGE_EDITOR', 'VIEW_3D', 'NODE_EDITOR'):
        old_area = area.type        # Store current area type
        area.type = 'IMAGE_EDITOR'  # Set the area to the Image editor
        context['area'] = area      # Override the area member
        bpy.ops.screen.area_dupli(context, 'INVOKE_DEFAULT')
        area.type = old_area        # Restore the old area
        break

Assigning the image

In order to display an image in that window, just load an image and assign its data block it to SpaceImageEditor.image eg using the active space: bpy.context.area.spaces.active.image = image. Complete example using the code to generate an image from: Is it possible to create image data and save to a file from a script?:

size = 640, 480
image = bpy.data.images.new("MyImage", width=size[0], height=size[1])

pixels = [None] * size[0] * size[1]
for x in range(size[0]):
    for y in range(size[1]):
        # assign RGBA to something useful
        r = x / size[0]
        g = y / size[1]
        b = (1 - r) * g
        a = 1.0

        pixels[(y * size[0]) + x] = [r, g, b, a]

pixels = [chan for px in pixels for chan in px]
image.pixels = pixels

# Call user prefs window
bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
# Change area type
area = bpy.context.window_manager.windows[-1].screen.areas[0]
area.type = 'IMAGE_EDITOR'

# Assign the image
bpy.context.area.spaces.active.image = image

Note: bpy.ops.render.view_show("INVOKE_DEFAULT") might be interesting as well.


You need to disable "Manipulate Center Points" to be able to rotate the object the way that you are thinking:

Funniest thing is, I went through that same book years ago and had the same problem while making that table :-)


How do I Include scene.camera name in render output filepath?

the script automatically creates the directories with your cams names. If it is already there, the script just puts the animated pics in these folders.
check this out:
import bpy
import os

scene = bpy.context.scene

oldPath = bpy.context.scene.render.filepath

for ob in scene.objects:
    if ob.type == 'CAMERA':
        bpy.context.scene.camera = ob

        filepath = bpy.context.scene.render.filepath

#        filepath = bpy.data.filepath # blend file
        directory = os.path.dirname(filepath)

        name = ob.name + "/"

        directory_to_test = os.path.join(filepath, name)

        if not os.path.exists(directory_to_test):
            os.makedirs(directory_to_test)
            print("created directory: ", directory_to_test)

        file = directory_to_test + "render"

        bpy.context.scene.render.filepath = file

#        bpy.ops.render.render( write_still=True )

        bpy.ops.render.render(animation=True)

        bpy.context.scene.render.filepath = oldPath


Decimate/un-subdivide turns quads into diamonds?

This happens when doing multiple iterations. If you un-subdivided once 3 consecutive times you would keep the same quad layout.

Try it. Subdivide a mesh three times. Then click spacebar, search un-subdivide, click it. Now click spacebar again, search un-subdivide etc.


You should just click on the toolbar on the left > Create > Lamp: Point. In Blender Render, unlit objects show completely black. Make sure you move the lamp around (G) so that the pistol is illuminated by the light.

EDIT: It looks like you are in the Material view. Switch to Solid view (on the bottom toolbar)


Texture shows in render but not in 3d view

This looks quite obvious to me: the normals are inverted, thus the faces get culled. In english, the textured view is optimised by showing only one side of the faces. This way the inside of the mesh doesn't get rendered.

For some reason you have the faces pointing the wrong way around (ie. Blender thinks that the inside of your mesh is the outside and vice versa.). To fix this, in edit mode select all vertices and go to the Shading / UVs tab (allready open in your screen capture) and under Normals hit recalculate. If this didn't work, you can try to manually invert them by hitting Flip Direction. Now the surface should work.

I hope this helps.


That just depends on what you set your Display to in your Render Properties:

Set it to Image Editor, Full Screen or New Window to see the result as it's being rendered.

Though you have to keep in mind that Frames that originate from a Movie Clip, Video Strip or Image Strip won't be rendered partially but as a whole image anyways. So you will only see real rendered images that originate from a 3D scene.


You probably need to set up a new cycles material for the spotlight. Blender Internal and Cycles use different shaders/materials for objects and lamps.


Uneven distances between the edges when extruding

What you're trying to do is a Shrink/Fatten but with a simple series of vertices. I don't think you can do it with simple vertices but you could do it with a trick: Use the faces normals.

Extrude up your mesh.
altE to Extrude Region (Vertex Normals).
Drag to get what you want.
Only keep the shape you want.


Go in Edit mode -> select your rdoor vertex group

Mesh -> Separate -> selection

delete your boolean modifier on door_cube.009

add a keyframe on frame 0 for your newly created door_cube.001 for location (from step 2)

go to frame 100

press G -> y -> -5.   Then keyframe location.

move your boolean modifier like so:

enjoy animation:

https://youtu.be/J0703WlP3oQ
i will delete the video, if you don't want me to show that.


This happens when we don't set the 'forward' and 'up' directions properly when exporting and importing.

When you click export to .obj in blender, you will be shown a screen to select the name of the .obj and output folder. Along with it, on the left of the screen, you will find the settings for export (if you don't see this panel, press 'T'). In those settings, by default, you can find the forward and upward directions as shown below.

When exporting, these directions are supposed to be the directions of the 3D program from which we are exporting. In our case Blender itself. So set it as follows. Because in blender, Z is the up direction and Y is the forward direction.Why? Because of what Blender shows as front view and top view.

Similarly, when we are importing, these directions specify the up and forward directions of the 3D program, from which the .obj file is exported. In your case, its blender again. So set it again to Y Forward and Z up.

Now, you won't get any wrong transform values.


trying to create a bmesh from csv coordinate list

The manuals suggest using the csvreader in a with block.

You made two mistakes.

You have to skip the first csv line, since it doesn't hold any values. (Or treat it differently.)
You have to parse the numeric values. float(row[0])

Working example.

import bpy
import csv, os, bmesh, math

#filepaths
filepath = bpy.data.filepath
directory = os.path.dirname(filepath)

verts = []
edges = []
faces = []

csvpoints= directory+"/points.csv"
pointsReader = csv.reader(open(csvpoints, newline=''), delimiter=',')

with open(csvpoints, 'rt', encoding="utf8") as csvfile:
    pointsReader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for idx, row in enumerate(pointsReader):
        if (idx > 0):
            vert = (float(row[0]), float(row[1]), float(row[2]))
            verts.append(vert)

obj = bpy.context.object

#create mesh and object
mesh = bpy.data.meshes.new("wave")
object = bpy.data.objects.new("wave",mesh)

#create mesh from python data
mesh.from_pydata(verts,[],[])
mesh.update(calc_edges=True)

#set mesh location
object.location = bpy.context.scene.cursor_location
bpy.context.scene.objects.link(object)


Can I keymap scrubbing the timeline with the mouse wheel?

I posted the answer to my question within my own question. Questception.
Alt+mousewheel scrubs the sequencer.


How do I move an object using WASD (like walk mode)

You have to parent CtrlP the object you want to move to the active camera.

A few quirks about parented objects and walk mode: Make sure the object is not intersecting the camera; if it is the camera will fly away when the gravity is turned on. By default the object will inherent all the rotation from the camera, use Vertex parenting (in my linked parenting answer) if the rotation is not wanted.

Switch the view to camera view NumPad 0, then enter walk mode with ShiftF.
When you are done "walking around" your scene press Enter, that will move the camera to the place where you ended walk mode. Because the object is parented to the camera it will move along with the camera.

You should unparent AltP the object from the camera after you are done.


How do i make a cloth simulation but make parts of it hold it in place like a cape

You need to create a vertex group where the cloth is supposed to hang, then in the Physics > Cloth > Shape > Pin Group, select this group. If you want some vertices to be half hanging, select them, decrease the weight you want to assign and press Assign.


How to select all edges/vertex between 2

Using 'Alt + Right-Click' will select everything in a loop of vertices. I'm not sure whether you can select 2 vertices and everything in-between, but another alternative would be using 'Alt-B' to view a filtered down part of the model?


Press A to select whole mesh, then F3 and search for Symmetrize; make sure to choose the correct direction.


The CustomFalloff expects a FloatList object instead of a normal python list. So you should import the FloatList from data_structures:

from ... data_structures import FloatList

Then in the execute function do something like:

strengths = FloatList(iterations)
for i in range(iterations):
        strengths[i] = factor * i

return stepFalloff(strengths, fallback)


Is there upper limit to vertices in texture paint?

I Found the problem for anyone that get stuck on the same thing.

Here
http://blenderartists.org/forum/showthread.php?281181-Blender-Unwraping-Problem

When i did the unwrap i got a small warning in the upper bar that said. object has negative scale...

in object mode use Ctrl+A / scale


That's true.. the Screw modifier doesn't seem to know how to display itself in Edit Mode, unless there are faces to display.

The screw of a single Mesh vertex is there, if viewed in Object Mode.. and if the modifier is applied, a valid spiral of edges results. (Not so for a single Curve point, where the modifier can't be applied in any case)

If you need to be able to see a screwed single vertex in Edit Mode, a get-around is to make a small E extrusion from it while editing, and delete it when no longer needed.

This does seem anomalous behavior.. but then, so many settings in the modifier deal with faces.. perhaps this case was overlooked, or considered too awkward?


You have to go into Edit Mode, to be able to delete geometry.

Then, click the selection-box with a line. (Directly below the yellow highlighted line).

After that, you can select the line you dont want and press the "X" key, and select "Edges" in order to delete the unwanted edge.


How to create individual shaped tunnel by using a curve?

You can do this by using a square shaped bezier circle (no oxymoron here as you'll soon see):

First add a bezier circle (Add --> Curve --> Circle)

Then go to edit mode (Tab), select all the control points (A), then press V --> Vector, to make all the corners sharp.

While still in edit mode, rotate the circle along the Z axis by 45 degrees (R --> Z --> 45 ).

Now use this circle as a bevel object for your tunnel curve:

Scale the circle (S) to adjust the size.

You can manipulate this circle to change the shape of the tunnel's profile whichever way you'd like.


Can't find my addon inside blender 2.90 (first addon)

Addon requires a Category

Give an addon a category, for example sake and to match op name have given it the "Object" category, can use anything here, best to stick with those available if possible. IMO this is prob a mesh operator, that adds modifiers to mesh objects

bl_info = {
    "name": "DC Mirror",
    "version": (1, 0),
    "blender": (2, 90, 0),
    "category": "Object",
}

We assign keymaps to run operators or assign properties. In addon this is "object.dc_mirror", below I've added a keymap to the window such that ShiftCtrlT calls the op.

After assingning it to "object_dc_mirror" notice how the name becomes "DC Mirror", this is confirmation the operator is registered and known to blender

And when run with a mesh object as context.  Tip: give the operator a poll method limiting it to only mesh objects.

Consult the docs re adding a keymap via code https://docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html#keymap

Common logic error

Worth mentioning that there is an issue with your addon if run again, it will add a new mirror modifier, but only ever alter the properties of the one having name "Mirror"

Recommend instead

def execute(self, context):
    ob = context.object
    mm = ob.modifiers.new(name="Mirror", type='MIRROR')

    mm.show_on_cage = True
    mm.use_bisect_axis[0] = True # x axis
    mm.use_clip = True

    return {'FINISHED'}


How to perform trig functions on a vector element-wise?

You could use the map list functionality

new_vector = Vector(map(lambda x: sin(x), list(vector_variable)))

maybe even better

new_vector = Vector(sin(x) for x in vector_variable)

see here


Change resolution of the rendered view ?

Itds "pixel size" option in propreties render tab , and its coming to 2.8


You can use Ctrl+Tab and select Vertex, Edge or Face from the popup menu, which will appear under the mouse. As far as I know, this is the fastest way to switch.

Update for 2.8: This function is now available by default when pressing 1, 2 and 3. To remap this back to the original behavior see this question.


You have an image in video sequence editor. remove it or disable sequencer in post processing (render tab).


Bake action with euler rotation instead of quaternion

I found a workaround or temporal fix. In Blender version 2.92 (at this moment alpha version) the euler discontinuity filter has been improved. If you select the problematic bone, which has a flickering rotation after baking the action with euler rotation, you go into the Graph Editor -> Key -> Discontinuity Filter (Euler) at the top. At the moment, it fixes many of the rotation flickering but not all of them. Maybe in the future, it will fix all of the problematic keyframes, as it is still alpha.
Maybe this also helps other people with the same issue.


Using a Blender textured 3d model in PowerPoint

Export GLB file with it's textures and import it to PowerPoint.

how to set up the glb textures properly is shown here:
https://docs.blender.org/manual/en/latest/addons/io_scene_gltf2.html

Edit:
This is the setup for the textures

and then import from file


Is there a way to look at the inside of a cube or other object?

Another way is to use Clipping Border.

Press Alt-B to set the border. It will hide anything beyond the border from the original view angle, and show the inside of a mesh object.

When finished, press Alt-B again to clear the border.


If you just need to create this random circular output, you can actually just plug the gradient node's color output into a noise texture.
Note: Geometry -> Position is based on actual position in the scene, so that may not be what you want to use.  I'm using object coordinates here.

You can control where the effect terminates by using a mapping node.  By default gradient texture generates a 1m radius sphere.  The scale relationship is inversely proportional, so to extend it over an entire axis, you can set that axis to 0.

Increase the scale of the noise texture for finer rings.


How To Add The Same Shader/Material To Multiple Objects?

import bpy

# Input material's name to append
matname = "SECTION"

if matname in bpy.data.materials :
    mat = bpy.data.materials[matname]
    objs= bpy.context.selected_objects
    for obj in objs :
        if obj.type == "MESH" :
            if matname not in obj.data.materials :
                obj.data.materials.append(mat)
else :
    print("Material '" + matname+ "' does not exist")


converting blender internal to cycles material

The addon don't seems to convert textures for now. These options mentioned in the wiki ("check "Extract Alpha Textures" and "Extract Procedural Textures" respectively") have been disabled in the script, probably because they are not finished yet (the addon is still in Beta).

You can easily do a manual bake of the Color and Normal and recreate a simple Cycles material with those two maps.


You want to import .obj and you opening .blend
Go to file -> import -> Wavefront (obj)


Once several objects are joined they will discard their modifiers and inherit those on the last selected object so it's not possible to join objects with modifiers on them and keep them unique, but you can limit the the modifier to a certain  vertex group :

Join the objects
Assign each object to a vertex group
Add two Bevel modifiers
Set each modifier to effect only one vertex group


How can I delete a large amount of Materials?

There are two ways to approach this problem. There's a tedious easy one, and there's a programmatic complex one.

The tedious answer has been alluded to in the existing answer and a couple of comments. I.e. Blender is designed to delete (skip saving) any "orphaned" data block, like a material, anytime you save a scene. Consequently, if you remove those materials from any objects so that they're not being used by anything, then when you close Blender and reopen the scene, they should no longer be there. There is a way, though, to force Blender to keep an unused data block, by giving it a "Fake user" by clicking the 'F' next to its name in the object tab. This makes the data block seem used, so that it doesn't get deleted when Blender closes. The solution is to (tediously) remove all of those materials from any object that's using them. Then close the scene.

The programmatic solution is to write a Python script which will do a lot of this for you. Depending on what your objective is, you might have the script look at each material, find the object(s) it's assigned to, and replace the duplicate material with some other material, so that all your objects are using the same material. There are other ways to approach the design, depending on what your goals are, but all of them should be relatively simple. For example, this script is very short, and does some things sort of similar to what you're trying to do to... maybe.

I hope that helps.


Change Current Frame acc. to Active Layer

You can do this using the below script:

import bpy

if bpy.context.scene.active_layer == 1:
    bpy.context.scene.frame_current=1
elif bpy.context.scene.active_layer == 2:
    bpy.context.scene.frame_current=11


How can I move inside the scene with a midle mouse without limits?

I think you are looking for "continuous grab" it can be turned on/off under User pref->Interface. Alternatively you can "focus view" with alt+midclick while hovering over something. Or you could type "walk/fly navigation" after hitting space. Hope it helps


There are two issues here.

The first is that bpy.ops.node.add_file does not return the new node, it simply returns a set containing a message of the status of the current operator. E.g. it will return {'FINISHED'} if it is successful.

bpy.ops functions are operators, which expect to be run from particular parts of the interface, not from code, hence why you are currently having to change the area.type to NODE_EDITOR before the code will work and why they're not returning the data they create. (You can read more here why bpy.ops should be avoided when possible.)

Instead, you can access the node data more directly (if a little more manually):

image = bpy.data.images.load(filepath="Your filepath")
image_node = bpy.context.scene.node_tree.nodes.new('CompositorNodeImage')
image_node.image = image

And then the same for comp_node:

comp_node = bpy.context.scene.node_tree.nodes.new('CompositorNodeComposite')

These functions do return the new nodes and by manually loading the image, instead of relying on an operator, and manually adding the image node and composite node you can a) return the new image and nodes to variables, b) use the returned data to link the image to the node and c) not have to set area.type any more because you're not using bpy.ops.

This will fix the first problem, but not the second. The second is that the nodes do not have an output or input property, they're plurals so they're called outputs and inputs, e.g.:

links.new(image_node.outputs['Image'], comp_node.inputs[1])


How do I make something light sensitive?

For the light itself you can't, but you can fake it using a physics object with the light shape and detecting this object through collision. The file below is a working example, and contains the instructions below on the Text Editor for convenience.

Use the Outliner to click the described object and check the given properties.

Project Structure

Scene '_lib_props':

'player' objects in the first layer, all added to the group 'player'.
'box' objects in the second layer, all added to the group 'box'.

Scene 'scenery':

'ground' and 'walls' are mesh objects.
The 'player' is a group instance of the group 'player' from the lib scene.
The 'boxes' are group instances of the group 'box' from the lib scene.

Player Structure

Check the Outliner for a better overview of the structure of the player.

Object 'flashlight_lamp_collision' is a mesh object parented to 'flashlight_lamp', and it contains the following properties:

Property 'flashlight' to be detected by the boxes.
Physics type Static, Ghost enabled, Invisible enabled, Collision Bounds set to Triangle Mesh.

With these options, this object can be detected by the 'box_sensor' objects.

Box Structure

Check the Outliner for a better overview of the structure of the box.

Object 'box_visual' is a mesh object parented to 'box_sensor', and it contains the following properties:

Physics type Static, Collision Bounds set to Triangle Mesh.
Object 'box_sensor' is a mesh object, and it contains the following properties:
Physics type Sensor, Invisible enabled, Collision Bounds set to Triangle Mesh.

With these options, this object can detect the player's 'flashlight_lamp_collision' using a collision sensor.


Turning off anti-aliasing: inconsistency between 'info' window and valid python commands

The anti-aliasing for the Workbench engine can be turned off through:

bpy.context.scene.display.render_aa = 'OFF'

The API manual is very helpful for cases where the Python command is unclear. The render_aa property is part of the class bpy.types.SceneDisplay. Searching for this type shows that bpy.context.scene contains a reference to an object of that type.

The reason why the command is displayed incorrectly seems related to T69803. The Python tooltips are incomplete for PropertyGroups because RNA_path_full_property_py_ex()(rna_access.c) doesn't return a full path. This is also the reason why you see Python tooltips with missing parts like bpy.data.scenes["Scene"] ... render_aa for the Render anti-aliasing property in the UI.

TL;DR It's a bug.


Render times changing over course of render

Render times are different for each frame, depending on the complexity of the content.

Any change inside the scene and within the image has to be computed separately.

Estimated rendering times are never accurate for the same reason, you can have a relatively simple scene to render at the beginning of the shot, and then have an explosion with particles and all kinds of complications or motion blur, those will take longer (sometimes much, much longer) to render.

3D Rendering is quite demanding in terms of resources and will push any computer. When computers get hot they go into a slower speed in order to protect the hardware. If the hardware reaches a critical temperature it will fail and shut down. If you experience abnormal heat and the computer is "throttling"  you need to invest in some kind of cooling system.


How to make physically accurate silver in Cycles?

I have one that uses RGB Curves, here are the coords,there are 4 points in the R,G,B and just 2 in color, hope it helps. If not LUXRENDER.

Red = P1(x 0.0, y .96) P2(x .55, y .96) P3(x .83636, y .95) P4(x 1.0, y 1.0)

Green = P1(x 0.0, y .94) P2(x .5, y .94) P3(x .85091, y .94) P4(x 1.0, y 1.0)

Blue = P1(x 0.0, y .91) P2(x .5, y .91) P3(x .81364, y .92) P4(x 1.0, y 1.0)

Color = P1(x 0.0, y 0.0) P2(x 1.0, y 1.0)


What version of OpenGL does Blender use?

Blender requires OpenGL 3.3, however we may take advantage of newer OpenGL versions too.

So while Blender depends on 3.3, it may use newer features when available and fail gracefully if they are not (as opposed to crashing or not starting at all).

Note that some features are user preferences too since we can't always rely on asking the driver if a certain feature works well or not (drivers don't always give us reliable information).

See: https://www.blender.org/download/requirements/


Is it possible to convert image texture's black color to transparent?

Yes.

First Cycles  Texture Non Color then Mix Transparency and Emission.

Nodes

You might consider processing your images once as format .png for you later convenience and node convenience.

Second a sample from Blender Render. UV Mapped Image. Texture 01 Image .. calculate transparency.  Threshold with color ramp gray scale . Affect color and transparency. Texture 02 color only multiply. You may want to threshold because the image may not be black exactly where you might first think.  There are many was to do this.  Torus Background and Text to show transparency.

2 Textures. Note the color ramp.


How to render specific frame ranges of an animation in batch mode?

Command line render options

Remder options  displayed by running blender --help in the system console

Render Options:
-b or --background
    Run in background (often used for UI-less rendering).

-a or --render-anim
    Render frames from start to end (inclusive).

-S or --scene <name>
    Set the active scene <name> for rendering.

-f or --render-frame <frame>
    Render frame <frame> and save it.

    * +<frame> start frame relative, -<frame> end frame relative.
    * A comma separated list of frames can also be used (no spaces).
    * A range of frames can be expressed using '..' separator between the first and last frames (inclusive).

-s or --frame-start <frame>
    Set start to frame <frame>, supports +/- for relative frames too.

-e or --frame-end <frame>
    Set end to frame <frame>, supports +/- for relative frames too.

-j or --frame-jump <frames>
    Set number of frames to step forward after each rendered frame.

-o or --render-output <path>
    Set the render path and file name.
    Use '//' at the start of the path to render relative to the blend-file.

    The '#' characters are replaced by the frame number, and used to define zero padding.

    * 'ani_##_test.png' becomes 'ani_01_test.png'
    * 'test-######.png' becomes 'test-000001.png'

    When the filename does not contain '#', The suffix '####' is added to the filename.

    The frame number will be added at the end of the filename, eg:
    # blender -b foobar.blend -o //render_ -F PNG -x 1 -a
    '//render_' becomes '//render_####', writing frames as '//render_0001.png'

-E or --engine <engine>
    Specify the render engine.
    Use -E help to list available engines.

-t or --threads <threads>
    Use amount of <threads> for rendering and other operations
    [1-1024], 0 for systems processor count.

The following command renders (render animation) frames 1 to 4, then 10 to 11 of file scripttest.blend

blender -b  some.blend -s 1 -e 4 -a -s 10 -e 11 -a

To render every nth frame set the jump value. Following command renders every second frame of first hundred, every third frame of second hundred frams

blender -b some.blend -s 1 -e 100 -j 2 -a -s 101 -e 200 -j 3 -a


There are a couple issues. My first question is why are you using two scenes? That will really complicate things. In this answer I have only addressed one as you can copy that information to the second one.

The first thing I noticed is you have your makes layers set, and although that could be handy in many instances, it really is not necessary in this case. Go ahead and disable all of them on all render layers:

Also you should try and change your compositor setup, all you need is something like this:

This setup gives me a nice result, and the issues you mentioned appear to have been fixed.


I think I may have an answer for that- but it requires an xbox 360 gamepad. Check out this game if you have a 360 controller...


Free 3d character models to edit in Blender

short answer : yes
look at https://www.blendswap.com/ you find lot of character to play with, some even rigged. Your at the beginning of your journey :) Welcome!


Are you talking about the 3D transformation "widget" or armature bones? Edit Mode? Object Mode? Assuming you mean the widget...

You may want to set the Pivot Point, which will control where the widget is displayed, along with the origin used for scaling and rotation. In EDIT mode (where most detailed modeling is done), if set to anything other than "3D Cursor", it should appear at the selected vertex. In OBJECT or EDIT mode, you could set it to "3D Cursor" and move it around by placing the cursor. (Of course this is of limited use when rotating or scaling)

But, the best solution is to not use the transformation widget at all. Blender was made with the idea of one hand on the keyboard, and one on the mouse. To perform transformations, just use keyboard shortcuts G to Grab (Translate), R to Rotate (and R again for Trackball style rotation), and S to Scale. You can also use the keyboard to constrain to a single axis with X, Y, Z, or the middle mouse button. Use Shift when selecting an axis to lock that axis and use the other two.


Is it possible to change the animation length of many Rigid Bodies?

Go to Properties->Scene->Rigid_Body_Cache.

Change the end from 250 to 2000


How to increase spacing between duplicated objects parented to a curve using *DupliFrame* ?

If you want to increase the spacing between all the instances evenly, that necessarily reduces their number, so reduce the number of frames in the curve's path animation panel.


Non-manifold geometry is essentially geometry which cannot exist in the real world (which is why it's important to have manifold meshes for 3D printing).
As JulianHzg points out in the comments, intersecting geometry (faces sticking through other faces) is not technically non-manifold geometry on it's own. However it will often cause the same issues as non-manifold geometry, i.e. confused volume calculations.

Non-manifold geometry can be problematic, because it complicates some tools & operations:

Rendering of refractive effects

Fluid simulations

Boolean operations

3D printing

Among many other cases.

You might want non-manifold geometry in some kind abstract model (as non-manifold geometry cannot exist in the real world), or as an approximation of a very thin object (e.g. paper, leaves, etc.)
Common causes of non-manifold geometry:

Disconnected vertices and edges:

Internal faces:

Areas with no thickness:

Fixing non-manifold geometry:
You can select all non-manifold geometry with CtrlShiftAltM.
Internal faces can be selected by pressing 3D view > Header > Select > Internal Faces in edit mode.
Loose geometry (elements without any other connecting elements) can be selected with 3D view > Header > Select > Loose geometry. Note that it only selects vertices, edges, and faces depending on the current selection mode.
Other useful tools for repairing non-manifold geometry:

ShiftG (Select Similar). This is often useful to select vertices with only one connecting edge, etc.

CtrlL (Select Linked). This is often useful in combination with Select loose and Select similar to select all geometry connected to the selected geometry.

W> Specials > Remove doubles Doubles, (multiple vertices in the same place) are usually non-manifold (not always).

Since a common cause of non-manifold geometry is lack of thickness, the solidify modifier can also be useful.


How to output numpy array from the animation script node

You can use Generic type to output ndarrays.


Instead of Joining the mesh objects into one, you can keep them separate if you wish.   Here I show two spheres that were then bound to an armature (armature modifier).  They respond to the appropriate nearby bones in pose mode.  This is how I might control both a character and possible control cloths (instead of with cloth modifier, although you can get "character bleeds through clothing" effects).  Several child objects could be parented to a master parent, but you'd have to experiment with side effects.


You can't use the Bevel operator to bevel the edges of your Solidified plane, without applying the modifier, because the edges don't exist at the time the operator is invoked. You can use a Bevel modifier to do it, below Solidify on the stack.
The first bevel, rounding the corners in XY, could be done with an operator, and that may be better, allowing you to, say, inset the plane, to avoid the normals in the triangulation of the large n-gon interpolating badly over the edges into the thickness. However here we go with modifiers all the way, on a once-subdivided plane..

A bevel of the corner vertices only, by vertex-bevel-weight:

Solidify, with defaults..

Bevel the rim, by angle, again, with default settings out of view..

The resulting normals aren't perfect, but can be fixed with a Weighted Normal modifier.


Workaround to keyframe the world setting?

You could merge all your world settings into one world setting and animate node properties.

You could use a mix node, as shown below, to animate between different HDR images and animate the factor from 0 to 1 to switch between them. Adding additional mix nodes after the first one would allow you mix between as many HDR images as you want.

Keyframes can be inserted on node properties in the same way as other properties, by pressing I while the cursor is over that value.

As you said that some other nodes were also different in each setup, you could either animate the values for each node or again use a mix node to switch between whole networks of nodes instead of just an environment node as shown below.

Note that to mix 2 background shaders a 'Mix Shader' node is used instead of 'MixRGB'.

Nodes can be copied from one world setting to another with Ctrl+C and Ctrl+V


Volumetric Light not working on Cycles (but good in preview)

The problem was that the volume object wasn't set to render on its properties.


Yes, Go to rendering panel and change the format [ GREEN ] to AVI JPEG or AVI RAW For more high quality without using a sequence of images. Select image files [ GREEN ] Such as PNG or JPEG for image sequences which you can put together manually but are usually more high quality. Click the folder [ YELLOW ] To select where to save the file.


So why can't I use bool on a simple bend cylinder? It is even meshed!

In your screenshot it's not a mesh. You can't use the boolean modifier with a curve object, even if it's beveled. You have to first convert it to a mesh.

I am not a Python developer, so I don't know how to perform that step in code, but that is likely what your problem is.
Edit: Here is another question that has a Python implementation.


When exporting as .FBX, I don't have the option "include animation" that I've seen in tutorials

The following settings work for me with bridging Blender/UE4 but they may differ from engine to engine.

Use 'Armature + Mesh' to transfer the model and its associated rigging.

Use 'Armature' only to transfer subsequent animations.

Be sure to uncheck 'Add Leaf Bones' for UE4.  Other Engines may work best with this option activated.  A bit of trial and error should get you through that part.

Carefully go through the game engine created model/animation directory for what you imported and verify each new file to make sure they should be there, delete whatever mistakes happen from the transfer process.

If you happen to be using UE4, there is a video playlist published by Epic that shows how to handle these things on their end.

More info on the topic can be found using the following keywords:
"Unreal Engine, Youtube, Zak Parrish, Getting Started: Introduction to Blueprint 3rd Person Game Creation"

Here's a link to the playlist

https://www.youtube.com/playlist?list=PLZlv_N0_O1gZS5HylO_368myr-Kg2ZLwb


How to assign separate material to separate mesh

Actually your objects are linked-duplications, it doesn't look like because you gave them different booleans. So any modification on one of them (material or mesh) will be replicated on the other. If you want to keep their mesh linked but want to have separate materials, choose Object instead of Data in the Material panel:

If you want to completely separate them, go in the Object menu > Relations > Make Single User > Object & Data.


Why size and position changes while changing parent?

Because when you parent an objectA to an objectB, objectB will follow objectA's transformations (location, rotation and scale), but it will keep its own transformation references, they won't be affected by the parent, and you will find them back if you unparent it.

If you want to keep the transformation you're currently seeing in the scene for this object, instead of simply deparenting, deparent with AltP > Deparent And Keep Transformation.


Is it possible to vary the material color by location for a fluid?

Eureka! Thanks to Vince Scalia's suggestion of using a gradient node I figured it out and the results work perfectly.

Now this was just for testing so it's a really simply case but you can see this material now simulates a light illuminating only the inflow.

I'll show a picture of the node tree for clarification:

So the mapping nodes are for the coordinates of where we want the illumination to be. You need to have both the x-y location as well as a separate node for the height (z) of the inflow. Set the gradient texture node to spherical as well as your scale; a math node to combine each of them... input that into the factor of your mix shader with glass and an emission node and viola! Then you can add as many other lights as you want by just duplicating the entire node setup, changing your coordinates in the mapping node and adding another mix shader to combine them. Input all this data into the volume parameter of the material output. With this scheme you can now illuminate a fluid at any location any number of times with varying colors and best of all you can animate the whole thing with key frames!


blender running so slow i can take a nap when clicking a menu

Sounds like a memory shortage. Add more physical memory to your machine, reduce the complexity of your meshes and particle systems (when allowed) or pay for an outside cloud rendering service.

In any case, it may be more cost effective to just hard-reboot the machine instead of waiting for the File -> Quit menu to show.  I hate hard crashing my machine, but I'd likely get things rebooted, modified however needed, and running at normal render speed sooner than by shutting down properly.

But first, just in case - check if you're running some other apps at the same time that might be hoarding memory.  Email, web browsers loaded with pages with bad javascript, movie players, another instance of Blender.


Select all of your strips you want to put in order and run this script:

import bpy

strips = bpy.context.selected_editable_sequences
strips = sorted(strips, key=lambda strip: strip.frame_final_start)

cleanup = []
for i in range(1, len(strips)):
    st0 = strips[i-1]
    st1 = strips[i]
    cleanup.append( [ st1, st1.channel ])
    st1.frame_start = st0.frame_start + st0.frame_final_duration
for x in cleanup:
    x[0].channel = 1
strips[0].channel = 1

It's a version of this script: VSE script for to add constant gaps between strips?


How to model 4 camera automatically in python

Some fixes.

Lose the "bling" ... many moons ago a language named COBOL was
nicely aligned on equals signs, would stick with pep8 for python. The
result below is result of autopep8 via nvim text editor.
Never a fan of scripts that delete everything first, took that out,
it was an issue with your original logic, since the scene now had no
objects.
Made one loop to add each camera. Named via fstring formatting rather than string addition (which can be slow).

Resultant script.
import bpy
from math import radians
from bpy import context, data

scene = context.scene

#***********************Camera parameters************************
focal = 3.04  #focal lenght (mm)
sw = 3.68  #sensor width (mm)
sh = 2.76  #sensor height (mm)
eul_mode = 'XYZ'

number_cam = 4

location = [(0, 0, 3), (3, 0, 3), (0, 3, 3), (0, -3, 3)]
rotation = [(radians(0), radians(0), radians(0)),
            (radians(45), radians(0), radians(90)),
            (radians(45), radians(0), radians(180)),
            (radians(45), radians(0), radians(0))]

for count in range(number_cam):
   cam_name = f'Camera{count}'
   cam = bpy.data.cameras.new(name=cam_name)
   cam.lens = focal
   cam.sensor_width = sw
   cam.sensor_height = sh

   cam_obj = bpy.data.objects.new(cam_name, cam)
   cam_obj.rotation_mode = eul_mode
   cam_obj.location = location[count]
   cam_obj.rotation_euler = rotation[count]
   scene.collection.objects.link(cam_obj)


Why does this baked Ambient Occlusion have a dark patch on one of the faces?

Ok, I figured it out, it has to do with the mirror modifier. Had to turn it off temporarily (for view and render), and then everything bakes good. Then turn it back on.


Use Blender game engine with bpy, is it possible?

No the bge module is only available when the game engine is running. Similarly, the sensors and actuators that you setup with logic bricks will also only work in the game engine.

To write an operator that responds to events you want to look at a modal operator. You can also find a few examples in the script template files that are available in blender's text editor.


During Edit Mode, Circle selection goes wild

I have contacted Blender Dev team and they suggested my graphic driver might cause of this problem.
What I installed combination were:

Blender version : 2.79a &
GeForce Game Ready Driver version : 391.01

This combination was not good. I upgraded/downgraded Blender but selection problem won't disappear. Then I downgraded nVidia driver from 391.01 to 388.71. Then the problem has solved, back to normal behavior.

nVidia driver consists more than 10 components and looks like newer version of component(s) from 391.01 is still in my system. So, I am not sure which component was the reason of problem but downgrading graphic driver certainly help, if you encounter similar problems.


Why is my video playing limited to a couple seconds when i add it to VSE?

I'd be willing to bet that you need to set the frame range. The length of your video is pretty close to 250 frames, which is the default.

Check out #2.

The length of the video is also controlled by frame RATE. Make sure this is set to the same frame rate as the original video.

Check out "Frame Rate" set to 24fps below.


Is there a way to see the script inside of any of the pre-made Blender modules?

The majority of the game engine is not Python. It is written in C, and as a result it is compiled into the engine and cannot be viewed as 'python.'

I'm guessing you're looking at the Geodesic Chess blends, in which case nearly all of the scripts are in the Scripts folder rather than inside the blend. The non-script modules include:

bge (built into Blender Game Engine)
mathutils (built into Blender and Blender Game Engine)
os (built into python, for accessing files)
json (built into python, converts python dictionaries into nicely formatted text files)

Documentation for them can be found by clicking on the links above. You may also want to look at Reading the BGE API.

As for the unreadability of blend files, this is because it is stored as binary data, which cannot be read as text (well it can, but as you have discovered, it is meaningless).


The -b command line option tells Blender to run from the command line. But it expects you to pass on a further sequence of commands. If you don't, Blender just quits because you gave it nothing to do.

Also note that the order of commands matters. blender -b -S Scene2 filename.blend -a for instance will open the default scene, then try to switch to Scene2 (which won't exist), then open filename.blend, and then render the frame range defined in the file. After that it quits. blender -b filename.blend -S Scene2 -a will on the other hand first open the file filename.blend, THEN switch to Scene2, then render the animation.

See the manual for more information on this matter:

https://docs.blender.org/manual/en/2.80/advanced/command_line/launch/index.html
https://docs.blender.org/manual/en/2.80/advanced/command_line/arguments.html


You can press Ctrl+H to hide and show the handles. You can also find this setting in the view menu of the Graph Editor:


How to close render 'View Render' after the render by bpy.ops.render.render()?

The new window has context after op call.

EDIT: Looked into this and remembered it did as expected using a timer.  Hence added a timer call in handler to delay the window closing.  Have run this numerous times with delay 10 seconds without any crashes.  Try with smaller delays.

Worth mentioning the behaviour of render operator depends on User Settings > Interface > Editors >  Temporary Windows  Render in new window being set.

If it is, the context is switched from old to new window when the operator is invoked.

Another way to get a new window would be to

windows_before = set(context.window_manager.windows[:])
.. operator ...

windows_after = set(context.window_manager.windows[:])

and get the new window via

new_window = (windows_after - windows_before).pop() # if there is a new window

Here in a test script, the render window is cancelled (closed with close operator) 10 seconds after, using a timer,  the render complete handler is fired..

This will go astray, prob a core dump because of removed reference to window. if the user manually closes the window.  Passing instead some info about the window eg it has one image editor  its index in window manager collection would be a way to alleviate this risk.  Also might pay to look at context.mode after render call, to see if it reveals anything useful.

Python console test, get its index, test is this the render window?

>>> C.window_manager.windows[:].index(C.window)
0
>>> len(C.window.screen.areas) == 1
True
>>> C.window.screen.areas[0].type == 'IMAGE_EDITOR'
False

Using the window close operator, i believe only requires having a window for context.

import bpy
from time import sleep

context = bpy.context
w = context.window
print(context.window)
bpy.ops.render.render('INVOKE_DEFAULT')
print(context.window, w == context.window)
c = context.copy()

def shut_window():
    bpy.ops.wm.window_close(c)
    return None

def render_complete(scene):
    bpy.app.timers.register(shut_window, first_interval=10)
    #shut_window()
    bpy.app.handlers.render_complete.remove(render_complete)

bpy.app.handlers.render_complete.append(render_complete)


A problem with edges and vertex after smoothing

I am wondering why those edges are hard in the first place. There could be double vertices there. I would make 2 suggestions. The first is to remove doubles in edit mode. Select>Alt M>Merge by distance and set 0.0005 to start with in the operator bottom left. Up the distance a little tiny bit if necessary. The second suggestion is to apply Smooth Shading to your model before you apply any subsurface modifier (right click the body in object mode>choose Shade Smooth) Doing so would have a couple of benefits at this stage. You might find you don't need the modifier and therefore keep it low poly. And, in this case, you would see any pinching or areas that need fixing as they will show up as bad shading.


It's likely the issue is causedby seeing the backside of your meshes Normals. This causes it to appear invisible if you aren't looking at the faces from the front. One way to prevent this is to take your mesh, duplicate it, then flip the normals so that you can see it from both sides. Here is some documentation explaining different ways of going about this.

http://www.katsbits.com/tutorials/blender/double-sided-faces-different-materials.php

It is possible however, enable Double sided in Properties > Object Data > Normals. But this uses considerably more resources to render than a mesh alone.


Select one side (left/right) from 1 diagonal to the other, only borders, and scale it on X axis to 0 (S, X, 0) then move it away

Continue with other sides (up/down-> Y axis)

Once all four sides scaled and moved away, select the other vertices, scale them down, then select the borders again

scale and move them to fit your UV bounds

Select everything but the border vertices and from the UV menu, click minimize stretch (or Ctrl+V)

use mouse wheel to blend the effect to your liking, when it's ok, hit enter


I figured it out that in the render settings (with 'Scene' selected), I could set the Alpha to Transparent, then change the blend settings to Over Drop.


If your character has an armature, resize the armature instead of resizing the mesh. The hair length should be correctly affected by the resize.
If you don't use an armature : Parent your character to an Empty, then resize the Empty.


Pointy meshes pierce cloth sim. How can I get around this while also keeping the physical qualities of my cloth (e.g. mass, stiffness, etc.)?

As far as I can see, there are two issues causing this problem.

Keep in mind I am using an early 2015 MacBook air to do this so I cannot go to as high samples as you or others reading this can.

Blender calculates most of its collisions through vertices. As they come within close proximity of one another, it slows the vertices velocity. If it is moving fast or there are more vertices pulling it down (As in your mesh), blender has a tenancy to let the vertex pass. So to fix this we need to increase the number of collision vertices. This also can be done using two changes. One is to up the number subdivisions of the cloth mesh and the other method is to up the number of vertices of the point.

Subdividing the mesh is simple enough. Hit subdivide. But to get performance, you may need to select the area close to the point and subdivide that a lot, as I have done in my image below.

Adding more vertices on the point. This can be done by adding a sphere or icosphere to the point of the object. This needs to be small enough that it won't be noticeable from the distance you are rendering at. If it is far, it can be quite large, if it is close, you will need to make it smaller. I have made an example, though it is of low resolution, it still fixes the problem. If you don't want the ball in the render, turn it off in the Outliner window.

The quality steps and collision steps. They will only do so much to the quality of your simulation, but it does help. In my final output, I set my quality steps to 25 and collision steps to 5. The one that made the most difference was the quality, but I think both should be increased.

Here is my result:

Remember, this is on a low power laptop. It took around 1 min to produce the first 58 frames. Yours may be at the same by the time you up the quality. In my render, you can see the change in mesh in the final result between High subdivisions and low subdivisions. If you want to minimise that effect, subdivide on an ever-shrinking area so it fades into the higher quality point of contact.

Hope I helped and best of luck with your project,

BFB


It sounds to me like you are going to have to repose the object that you are lining it up to. 2.81 Has the new pose move tool in sculpt mode that will make that easy if it is not rigged. However, if you want to pay for something like Auto rig pro, you could have that pose fixed in not much more than a minute the easy way.


Make sure your FLOW object is fully inside of the DOMAIN Object.  If it is not, nothing happens.


How could penetration between human models be avoided?

No, Blender isn't capable of doing that (yet). I've tried combining armature-based animation with physics-based cloth/rigid body simulation, and the latter always override any manual animation I've made.

I'd try to limit the range of punch based on bounding-box proximity between the two characters, or trigger a knocked-back animation (faster than the punch animation) depending on how far the punch animation is played + bounding-box proximity.


Best way to create blended cylinder/hexagon?

You can use the Bridge Edge Loop, an operator available since 2.63 version, to connect two different profiles (obiuvsly works best if they have the same amount of vertices):

A similar function can be found in the LoopTools Add-on, but has fewer options (it's where the Bridge Edge loop operator came from):

A possible result:


How can I scale my fluid simulation so that the droplets aren't so large?

After Ray M rewrote my Question headline, the changed wording caused the site search engine to find a similar -- duplicate, actually -- question (Smaller drops in fluid simulation) and this led me to the answer:

Higher resolution will make droplets smaller.

I have therefore done a 2-hour Bake at resolution 200, and am awaiting a multi-hour render to see the result.  I think I'm learning that realistic Fluid Sim is very, very expensive in CPU time. [btw thanks Ray :-)]


It looks like you want to remove the influence of the object on the lighting of the scene. To do this, mix the material of your object with a Transparent Shader, using a combination of the "Is Reflection Ray" and "Is Shadow Ray" outputs of a Light Path node as a Mix Factor. (Shadow Ray removes the shadow, Reflection Ray removes the light bounce - we want both, so we add them):
With Shadows and Light Bounces:

Shadows and Light Bounces removed:


I would use Boolean Modifier. 3 times to be exact.

First cut a sphere shape out of a panel.
Do this by moving the panel into the sphere, until the edge of the panel is in the center of the sphere. Then add a Boolean Modifier, select the sphere as the Object and Apply.

(the panel might have missing faces, or an open side. If this happens you'll have to close up the mesh first I'm afraid.)

Then move the panel with the piece cut out of it into a Sphere, only a tiny bit deeper than the previous panel and put a Boolean Modifier on the Sphere this time (and select the panel as the Object), and again apply.

Then rotate the panel 90 degrees and do it again.

(To finish it off you could Shade Smooth the object and putt an Edge Split Modifier on it, to make it look nicer.)


Why isn't my chain following the bezier circle?

Actually your curve was rotated on the X axis, which makes the chain go crazy, so first apply the rotation (CtrlA):

then choose the right Deform Axis in the Curve modifier (-Y):


I can't find where to change the strength of the sun in version 2.70a

I'm not aware of a recent change of the energy slider in the lamp properties in the Blender internal renderer. From the image you posted you are using the blender internal renderer.


Antialiasing textures in cycles (Blender 2.77 and higher)

This is not exactly a solution, but I highly recommend a program called 'Substance Painter 2' - it lets you do fantastic mapping and texturing for a relatively low price, You can trial it for 30 days free, and it bakes normal maps, AO etc all with AA much better than Blender does.

I actually gave up trying to bake normals with Blender, as the results always had errors and artifacts. Substance Painter made it really easy, I didn't have to use a cage anymore, and it was worth every dollar.

I got it via steam at 50% off a couple of months ago, so if you can't afford it now and you have steam, put it on your wish list.

Regards, C.


Body is deforming badly, thinking it's because of Catmull-Clark

So the biggest difference between your pictures is that in one, the armature is unposed, and in the other, the thighs appear to have been rotated 180 degrees.  The solution to that problem is, as the old doctor joke goes, "Don't do that."  If you want your model to look good, don't pose the model in poses that a real person could never match.  If that picture is from a realistic pose, you'd want to include that pose in the file to demonstrate the issue; I haven't been able to recreate it from your picture (with just a bit of effort.)
Your model does feel a little bit playdough-ey.  I can see what you're talking about.  In this case, the reason for that are the weights, which feel a little bit diffuse to me-- not sharp enough.  You might consider using a weights/smooth operation, on all groups, with a negative expand/contract, and see if that improves your experience of it.
One thing that you may not realize is that you've told Blender to subdivide the model after the armature modifier, but it's very unlikely that SFM has the real-time subdivision that Blender has (because CC subdivision is costly, and so game engines don't do it.)  If you're getting any subdivision on your export, it's probably being applied to the model before the armature.  Subdividing after an armature is usually preferable for animating purely in Blender, but if you want to get a feel for how it'll look in SFM, you'll want to drag the subdivision modifier up in the stack, to above the armature modifier.
Another thing I notice on this model, that may be contributing to your feelings about it, is that there's quite a bit of volume loss on the joints.  You might consider enabling "volume preservation" on the armature modifier-- but then again, you might not, as this might not be something supported by SFM (the game engine will be doing the deformation, and only in ways that it knows how.)  There are some ways to change the "topology" of a model to better hold the shape at the joints that don't require this, and you might consider researching joint topology.  You might also consider "corrective shapekeys", assuming shapekeys are supported by SFM.


How to make textured planes double sided?

I found a quick solution to fix this problem(I can't believe how quickly I figure it out) what you need to do is to go into the plane/model and select the shader, then go into "Particles/additive" and select "Alpha Blended" this will make your textured plane visible from both sides :)


Boolean difference not making any diiference (Python scripting)

Setting the context object to cube1 with context.scene.objects.active = cube1 before running the apply modifier fixes it.  Object operators run on the context.active_object, which was cube2.

import bpy
context = bpy.context
scene = context.scene
cube1 = context.active_object
bpy.ops.transform.resize(value=(2.0, 2.0, 0.9))
bpy.ops.object.modifier_add(type = 'BOOLEAN')
bpy.ops.mesh.primitive_cube_add(location=(0.0, 0.0, 0.0))
cube2 = context.active_object
cube1.modifiers[0].object = cube2
cube1.modifiers[0].operation = 'DIFFERENCE'

scene.objects.active = cube1
bpy.ops.object.modifier_apply(apply_as='DATA',modifier=cube1.modifiers[0].name)

A less operator-centric approach

import bpy
context = bpy.context
scene = context.scene

cube1 = context.active_object
cube2 = cube1.copy()
# create a copy of mesh data, for bool mod
cube2.data = cube1.data.copy()
cube1.scale = (2.0, 2.0, 0.9)
mod = cube1.modifiers.new("SomeName", type='BOOLEAN')
mod.operation = 'DIFFERENCE'
# uncomment below to have cube2 in scene
#scene.objects.link(cube2)
mod.object = cube2
bpy.ops.object.modifier_apply(apply_as='DATA', modifier=mod.name)

The modifier apply operator can also be replaced with

scene.update()
cube1.data = cube1.to_mesh(scene, True, 'PREVIEW')
cube1.modifiers.remove(mod)


How to Import Blender 2.79 built-in matcaps to Blender 2.80?

OP's comment here reminded me that you could probably check the v2.79 tag (i.e. release) to find these files.
Here they are on the official repository:
https://git.blender.org/gitweb/gitweb.cgi/blender.git/tree/v2.79:/release/datafiles/matcaps
Here they are on the GitHub mirror:
https://github.com/blender/blender/tree/v2.79/release/datafiles/matcaps
The one you're looking for looks like Matcap 9:


Blender changes image colors when rendering

PNG is a terrible format. You should forget it even exists.

Blender does only what the operator instructs it to do. If the setting are to output on a certain color space, then that is the color space it will use. If the original source is in a different color space blender has no way to guess what that might be.

Any image displayed in the wrong color space will always look wrong.

When doing visual effects you need to plan how to have all of your material be in the same color space. If one source is encoded using a different gamut than the other they never going mix nicely and any transformation will further distort the color on one or the other. Long story short: you can't mix apples and oranges.

All compositing should be made using linear values in a common color space.

The ideal scenario would involve controlling all of the variables.

Ingest your footage in resolve, set the correct input transforms, color space and gamut (Vlog to 709). Then export the plates as linear scene referred values (de-Log it), convert it then to the correct color space you are going to be working on (most likely 709): set the project to be Color Managed and use 709 scene as output color spaces. Export then as EXRs to be used in Blender. Work your magic in blender, export the elements to be combined back to resolve as linear-scene referred EXRs. then composite in fusion (read the suggested link).

Else you need to go a more complicated route, which is to create a definition of V-log in the Ocio config, supply the correct LUT and color matrix, so that the footage ingested is linearized correctly and with the correct 709 gamut in blender. Work then your amazing magic in blender and re-encode as V-log and save as Tiff files. Bring those files in resolve and integrate them into your project.


Why do I get weird shadows on my baked normal map?

I think you're seeing z fighting which is when you have two nearly identical meshes on top of each other.  You have both dragons visible in the outliner, you should hide one of them.


What is the reference point for edges angle display?

(Face Info: angle) gives you the internal 2D angle between two edges, in the plane defined by the 2 edges.

(Edge info: angle) gives you the internal  2D angle  between the face normals of the faces adjacent to the edge, in the plane that would be defined by the 2 face normals, if their origins were brought together.


OBJ (along with other most formats) are interchange file formats, generally meant for cross application data transfer, like importing and exporting between software, not a reliable way to save data.

You should only use them if you plan on using your assets elsewhere in an application or software that can't directly read .blend files.

Saving your assets in a format other than .blend will invariably result in data loss. At the very least materials and textures, but in most cases also modifiers, rigging and any other Blender specific data, along with animations, constraints, simulations among others.

You also can't dynamically link data from objects and easily reuse it, once imported it becomes static local data, removing any benefits of shared libraries like an always up to date central file used across all projects, or automatic update propagation, especially useful in multi user environments.

OBJ should be used as an interchange file format, not a long term storage solution for a project or library file.


Different scales on multiple purchased models and mixamo/fuse models

If you are using rigs and are not the rigger, restrain from scaling them. Some rigs work with absolute values and would not be functional at a different scale.

Scale up and move your static meshes (classroom). This can only be done after importing the .obj file into Blender.