Why I cannot join these two vertices with hotkey J?

In edit mode J will make an edge between two vertices, and also cut the underlying faces and edges crossed over by the new connection. This does not work if there is no face associated with a selected vertex.

In your screenshot, the lower vertex looks like it is on the horizontal edge but the lack of selection highlighting shows that it is a floating vertex with only one edge attached to it.

Also looking at the upper selected vertex, you will see that there are two horizontal lines, one orange and one black, this would indicate that you have two horizontal edges, one of which has the selected vertex, there wouldn't appear to be a face attached to these edges.


Can no longer scale objects in object-mode (though edit-mode works) (Gray nodes?)

You have the Manipulate Center Points option enabled at the bottom of the 3d view. It's the little button with the 3 dots that is located to the right of the arrow you have pointing to the object mode menu. Click on the icon again and you should be good to go.


Error when trying to import Scipy module to Blender

Just a guess, but perhaps you have a different version of python installed on your system than the one being used by Blender.

To keep things simple, I usually install scipy into Blender's python.

I run the get_pip.py file in Blender's text editor.

Then I install using pip by running this in the text editor:

import pip

pip.main(['install', 'scipy'])

Doing this will allow you to import scipy without needing to append any path.

Depending on how you have Blender installed, you may need to run Blender with administrator priveledges in order to do this.


What does "data" inside standalone game mean in the Blender License?

If you use an addon to export your game in BGE (Build Game, Game Engine Publishing, etc), the addon will attach your blend file at the end of blenderplayer executable. This way, your blend file is part of the executable, so your blend file must comply the GNU GPL license.

To avoid this, you can keep your blend files external to the executable and simply run them through the Game > Start Game From File actuator, so that your blend files can comply any license you want.

Alternatively, you can run the blenderplayer through command line, with a batch / shell script. I've made this tool using this method, you may find its information useful.


The first thing to try is enabling "merge" on the mirror modifier.

(Corrected/updated answer - initially had misread the question assuming you had applied 'smooth' operation, which actually changes the base mesh. Ctrl-5 does not actually change the underlying mesh.)

What's happened is that the smoothing is averaging vertex positions inwards, but the 'clipping' option of the mirror modifier is keeping vertices on the centre-line in place, so the center-line vertices don't move.

Note that pressing Ctrl-5 is shorthand for adding a Subdivision Surface modifier with 5 subdivisions in the Viewport (which is usually overkill). That Subsurf Modifier has a 'Render' level of 2 - which means you are seeing more smoothing in the viewport (5 levels) than you will when you actually render an image.


From the Blender Manual:

Smart UV Project
Breaks the mesh into islands based on an angle threshold.

The islands are arrange to best fit the texture.
If you want to select an island, press L while the pointer is over a vertex to select the linked ones.


How to get an unlit textured view in Object Mode?

In Blender Internal (Blender Render):

In addition to what you already did ((1) Textured viewport shading mode, (2) GLSL Shading in Properties Panel), go to the object's material and set it to Shadeless.

In Cycles:

Simply use the Material Viewport Shading mode.


Turns out I've answered my own question. Here's a quick script for anyone who finds this later down the road. Just attach this to a text property and you should be good.

import bge
from datetime import datetime

textObject = bge.logic.getCurrentController().owner
timePassed = bge.logic.getRealTime()
timePassed = str(round(timePassed,2))
textObject.text = timePassed


Lighting requires extreme values (Blender 2.8)

There is nothing extreme about the values. You should not worry about them. Those are only numbers. It doesn't matter if it's 1 or 1000000. The proportions matter more - if you have sunlight in the scene it should not be dimmer than light from a light bulb and so on.

If it is more convenient for you to work with some specific units you can adjust the exposure to match them in the Color Management settings:

or under Film settings:


Does changing the fps change the speed of the animation?

Generally, the keyframes (as the name indicates) of blender animations are based on frame numbers instead of absolute time. So if you render an animation that has been created with 30fps in mind at 60 fps, the video will be half the length.
If you really want it to be 60 fps and you do not want to redo the whole animation, you could make use of the "time remapping" parameter (https://docs.blender.org/manual/en/latest/render/output/settings.html), as described here for example: How to render an animation at a higher framerate?


Animating the process of creating a 3d scene

After setting up the animation in blender, render out the final video. Then do an opengl render of the 3d scene, this will render the 3d viewport version of the animation. You can adjust the display and object properties to adjust how the scene looks.

Once you have the two videos, add them to the Video Sequence Editor, then you can cut the strips so that each is visible at different times. You can add a wipe effect to switch between each video or you can use animated masks for more elaborate transitions.


Simple Boolean Intersect issue Blender 2.82a

Sorry! My misunderstanding. I had to select the cube, add a difference boolean modifier, choose the sphere, press "Apply" and then remove the sphere myself to get the indent.


Specifically for the commands you mention there exists a CAD add-on called mesh tinyCAD, allows you to easily do the following things (this is not an exhaustive list):

VTX (like _extend):

automatically extend edges towards their projected intersection
generate a vertex at the intersection of two edges  ("weld")

V2X:

generate an unattached vertex at the projected intersection of two edges

XALL:

intersects all selected edges.

BIX:

generates the bisector of two selected edges

CCEN:

given any three selected vertices (in one object), this can recreate a circular set of vertices of any number and scale.

For questions about the add-on or ideas use the project's issue tracker

For _fillet you can use the bevel command: CtrlShiftB With 1 vertex selected

It starts out as a bevel but you can increase the number of segments to turns it into a fillet.
Adjust radius


Blender uses a concept of 'users' of datablocks. When you create a sphere (or whatever) Blender creates the object and any associated datablocks (eg, the Mesh data) and links the object to the datablocks - ie, the object is a user of that datablock.

When you delete something (eg, an object, a scene) Blender removes the deleted item but leaves the datablocks outstanding - this is why the Sphere datablocks are still outstanding in your file, but they are 'unused'.

At the point of saving your .blend file, Blender checks each datablock to see if it has any users. Any datablock without users are automatically discarded at that point - so saving your file and then re-opening it should purge those 'unused' datablocks.

This purging of 'unused' datablocks can sometimes be a problem - eg, you have have created a number of elements (eg, animations or materials) that are not currently in use in your project. Left to its own devices, Blender will identify these as 'unused' and would purge them the next time you save your project. To avoid this you can add a 'Fake User' by clicking the 'F' against the material, action, etc. or in the Outliner. This 'fake' user ensures that the datablock is never purged as it is always flagged as 'in use'.

In summary, save your file and re-open it and those datablocks should no longer exist.


Proportional editing creates rough edges around shape

Your proportional editing is set to connected.

You can change it to Projected (2D) to get your desired result.


Whoops! Turns out the material was already using nodes, I was just looking in the wrong place. I'd been looking for the material nodes in the "Texture Node Editor" view, but where they were actually located was in the "Shader Editor" view. From there, I was able to follow the instructions from the first answer to this question: Bump Map applique in Blender 2.8?


Color into Alpha - Nodes and Vertex Paint

Plug it into a color ramp and then make the white color transparent (Set the alpha to 0)


You can model the pyramids either scaling extruded individual faces to 0 and then removing doubles(w->r), or you could poke the faces(alt+p) and then select the middle vertices by the amount of adjacent faces or connecting edges(shift+g menu) and use Shrink/Flatten(alt+s) to move them outwards in the direction the surface is facing. You could then grow selection(ctrl++) and bevel(ctrl+b) the edges so they remain sharp(ish) after Subdivision Surface modifier. You could crease the edges(shift+e) instead of beveling to have them completely sharp with the Subsurf, but that would be a bit unrealistic since edges are rarely completely sharp.


Is there an easy rigging tool in blender?

No, but there are two options:-
You can learn inverse kinematic(I am also learning that). It simplifies many things in rigging.
You can add the addon “Rigify” ( I hope I spelled it right). It adds premade skeleton in blender and you can dont have to install from some site. It lies in preferences.


Blender is saving as a blend1 file, not blend

That's Blender's file versioning system. A very subtle but quite helpful feature. When you open the settings panel, under File, you can specify how many previous versions of a file you want to keep around on your computer.

So everytime you hit save, Blender maintains a stack of previous versions of the same file so you have some backup of your work and don't overwrite your progress when saving.

In the above screenshot, the last 5 versions of one .blend file are saved. All suffixed individually (.blend1, .blend2 and so on).

You can enable showing file versions in the open file dialog if you want to pick a specific version from your save history (red arrow). And also you can toggle showing normal .blend files in that dialog (green arrow) which is what your student probably did.

Hope this helps!


Personally I would recommend something like this:

(Granted, this is a low poly character that contains triangles. You don't want triangles in a mesh that will be using subsurface. However, it forms the general shape.)

(FYI Here's a page linking to a bunch of examples of body topology: Polycount wiki: Body Topology), and of course, there's always Blender Cookie (archive).


You desperately need an HDR background (in the world settings).

You can find free HDRs all over the internet but I personally prefer Greg Zaal's because he actually releases high quality, free ones:

http://adaptivesamples.com

Add an HDR with an environment node in the cycles world settings something like this:

A single ground plane will help a bit, but this is how you need to really get better looking glossy materials if you don't have an entire scene already filled in.

You can read about this technique and other material techniques here:

http://www.blenderguru.com/articles/making-better-materials/


I have created an addon that will create a mesh cube that encompasses all selected objects. Of note is that non-render objects such as camera, lamp and lattice objects report there bounding box as a zero size cube, this can lead to a cube of zero size that is only seen in the outliner.

To use you can save this link to your addon folder or to somewhere convenient and use the Install from file button in the preferences. You will then find Create Bounding Box under the Add Mesh menu.

This will give you a single object that clearly shows the outer dimensions in the object properties as if all objects had been joined.


How to change unit scale for all future meshes

I found it.

When I added new mesh default size was 2m (but scale 1x1x1). It is in the menu (e.g. Add Cube)

Change it to 1m and size is same as scale


Where does my Python output go when I start Blender with a script in Windows?

Git Bash is different from regular terminals, as it tries to bridge the gap in behaviour between UNIX terminals and Windows' console (cmd.exe). Run winpty ./blender.exe to get more immediate output of your print() commands.

Note, however, that winpty seems to mangle filenames, so you have to resort to absolute paths in Windows notation to prevent this.


Here is the simplest way, using Cloth Simulator defaults.

Select body, then in Physics tab, select Collision:

Add Plane mesh, set smooth, then in Edit Mode, scale to cover body and subdivide it to desired level of billow detail. Select Cloth in the Physics tab:

Raise Plane above all parts, then press Alt-A to begin simulation:

Pick your favorite frame:


Geometry Nodes sample texture attribute and materials

You didn't specify if you wanted to work with Eevee or Cycles but right now it seems it only works with Cycles.
You'll need an object with sufficient geometry since the material attribute will be linked to the geometry.
I used a subdivided cube.

After that, create a Geometry Nodes Modifier that initializes a custom attribute and an Attribute Sample Texture.

Tweak the settings of the texture as you wish.

I used a very simple Material setup to plug the custom attribute in. Use an Attribute node set to Geometry and type in your custom attribute name.

Result :

Note : Cycles Only
Adressing the second point of the question : Instancing.
Add a Point Instance node before initializing the attribute.

Result :


Can't find Spin Menu to create a rotational object

The Spin function works on vertex, while the bezier curves are based on control points. You could transform the curve in mesh (Alt C, mesh from curve) and then use the spin function, but you would loose the interactivity of the modelling process; so the best way, with bezier curves, is to use a screw modifier, instead.
Choose the right axis (in my example z axis).


Read:

How can I get better results when doing camera motion tracking?

and

Some Data Failed to Reconstruct, Motion Tracking

If there is motion blur or your footage is blurry, it is very unlikely that you will get accurate tracking regardless if you are tracking backwards or forward.

Things you can try:

Make the search area for the tracker larger

(if the search boundbox is not visible enable it on the marker display section)

Use a different tracking preset:

Prefetch the clip (to prevent errors when decompressing the video frames)
Set the Motion model to Affine or Perspective
Use Match: Previous Frame instead of keyframe.
Enable Prepass and Normalize.

Note that there is a chance that  you might encounter errors tracking backwards if your video is encoded using Long Group of Pictures (GOP) encoding and not intra-frame encoding (look that up on your favorite search engine). Blender has issues reading backwards or dealing with video encoded with variable frame rates. In that case you would need to re-encode the video before tracking, or convert it to an image sequence before loading it to blender.

Read:

https://blender.stackexchange.com/a/8635/1853

and

Why is tracking getting less accurate after going past cached frames?


How to set vertex weights using Blender's Python API?

I made two small changes to your script that might help it work as intended.

I switched to using bmesh to save the selected verts data. I find it a bit more reliable and stable than the built in mesh data.
I saved the vertex indices instead of references to the vertices themselves in the list comprehension. This makes sure the list, which is comprised of simple integers, will persist after you go back to object mode (bmesh vertex references would have been destroyed). You don't need anything except the indices for this script anyway. This could have been what crashed your script, not sure but you'll have to test and let us know.

So here's the updated code [EDIT: the previous code failed because it was impossible to access v.groups once we only saved vertex indices and not vertex references. The script needed to decide if it transfers and inverts a weight for a given vertex. The following is based on the previous idea, with changes from Hatrou Hansou, and works OK]:

import bpy

# ensure we are in edit mode
bpy.ops.object.mode_set(mode="EDIT")

# configurable parameters
src_group = "Arm_03.L"
dst_group = "Arm_02.L"

obj = bpy.context.edit_object
src_group_index = obj.vertex_groups[src_group].index
dst_group_index = obj.vertex_groups[dst_group].index

mesh = obj.data

# Saving vertex indices only, instead of vertex objects in this list
# Copy v.groups.group, do not reference v.groups (unstable)
sel_verts_ig = [[v.index, [g.group for g in v.groups]] for v in mesh.vertices if v.select]

# no more SEGFAULT in this line
bpy.ops.object.mode_set(mode="OBJECT")

print("Working")

for ig in sel_verts_ig:
    v1in = False
    v2in = False
    i = ig[0]
    for g in ig[1]:
        if g == src_group_index:
            v1in = True
        if g == dst_group_index:
            v2in = True
    if v1in and v2in:
        obj.vertex_groups[dst_group].add([i], 1.0 - obj.vertex_groups[src_group].weight(i), 'REPLACE')

print("Finished")


From information in a BlenderArtists thread, keyframing object layer is not a developer-approved way to animate visibility, and is now deliberately disabled.

If what you really want to animate is visibility, you can keyframe the object's Restrict Render property directly  in the outliner space, by moving the mouse above the camera icon and pressing I.


Bones affect the mesh based on their proportional weight on each vertex. The influence for each bone is calculated by dividing that bone's weight by the total weight of all bones affecting that vertex. So if the weights of all the bones add to one, then the bone influence will be the same as the weight, whcih makes things easier to reason about (the normalise function in blender will make all the bone weights sum to one).

For example if vertex 1 has the following weights:

Bone1 : 0.5
Bone2 : 1
Bone3 : 0.5

Then Bone1 has an influence of 0.25 (0.5 / (0.5 + 1 + 0.5)).

In your case you only have one bone affecting the vertex so the influence of that bone will always be one.


How to undo the "join" command without pressing control or command Z?

You can separate selected splines into new curve objects.

Go into edit mode ↹ Tab of the curve object. Select the part which should be separated (linked selection L is useful here). Press P to separate.


Nearby objects won't move independently?

This is a guess, but it sounds like you might have Proportional editing (O) enabled.
See if it is enabled in 3D view > Header:

Blender 2.7x:

You can disable it by pressing O or clicking the icon in 3D view > Header:
Blender 2.7x:


It's not possible.

You should use Blender as a Frame Server and then use another Encoding software to do the job for you. ;-)


Addon preferences don't show consistently

When you install the add-on from the zip provided by GitHub, Blender unpacks the zip's contents, a folder called modular_tree-master, into Blender's local add-on storage folder (the exact location varies between operating systems). The main point is that the add-on folder is no longer modular_tree, that's also the problem.

There's an assumption in this section of the code.

class TreeAddonPrefs(AddonPreferences):
    bl_idname = "modular_tree"

Hardcoding bl_idname like that assumes that the folder name (or "package name") is still  "modular_tree".

There are many solutions, some more convoluted than others..

0. Renaming the content of the zip.

(don't do this, only included for completeness).

You can rename the folder inside the zip to simply modular_tree (using something like 7zip) before installing, it will display the add-on preferences correctly. But doing that is kind of a hassle, most of your users will need to do it if they aren't getting your add-on as a GIT project.  you should be fixing it in one place for everyone.

1. "Monkey Patching" the __package__ name

One way to force the package name is:

# somewhere at the start of your __init__
if __name__ != "modular_tree":
    sys.modules["modular_tree"] = sys.modules[__name__]

then you can do

class TreeAddonPrefs(AddonPreferences):
    bl_idname = __package__

2. using basename and dirname of __file__

# somewhere at the top of your __init__.py
from os.path import basename, dirname

then

class TreeAddonPrefs(AddonPreferences):
    bl_idname = basename(dirname(__file__))  # directory name containing this file

The result is that it doesn't matter what the zip was called / or the eventual folder.


The short answer:
To get nice results with booleans on polygons you have to make the two entities have a similar level of division. If you can align the geometry for both entities then you will get mostly clean topology too.

The realistic answer:
If you can get away with avoiding the boolean operations then you will learn a lot more about modelling, and you will work faster (have more control, and be capable of fixing issues). The idea of a boolean operation is more based in maths than in practical polygon modelling, but it is possible and can look good. Here is a quick youtube search for this topic

Booleans have become really quite nice in Blender 2.5+ onwards after implementing the CARVE library. But don't expect the convenience of a solid modeller like SolidWorks or other CAD packages that represent geometry internally as mathematical equations.

The time spent trying to line up two entities for a clean boolean might be better spent modelling by hand (in this case). Using a few circle polygons and a mirror modifier you'd be surprised how much easier this is to model - plus the added bonus that you can quickly change the geometry without having to individually boolean the whole thing.

example image

the geometry here isn't optimal if you want to bevel the sharp edges, that requires a bit of planning - and beyond the scope of this answer,

example .blend  (shows all the steps to get the basic idea) At least when you do it by hand you can take into account that you might want to bevel a few edges and create the extra guiding geometry to do that.

Try doing a bevel on booleaned geometry, it's a world of pain.


That Cycles checkbox only disables transparent shadows, hence it's location next to the transparent depth controls. It has no affect on regular shadows from material without the transparent BSDF, and even materials with the Transparent BSDF will still cast shadows with it disabled. Just without taking transparency into account.

There is no global control to disable shadows, you need to disable shadow-ray visibility on all objects. If you need to do it for a lot of objects, the following bit of Python will switch off the checkbox for all selected objects:

import bpy

for obj in bpy.context.selected_objects:
    bpy.context.scene.objects.active = obj
    bpy.context.object.cycles_visibility.shadow = False


How do I scale a rigged character without making it move randomly?

Found a solution.
The bones probably had a scale component on them, so they reset each time you hit play.
What I did was parent it to an empty then scale the empty instead.


When You set Z dimension to 0, it makes z-scale automatically to 0. It means that all Z - coordinates in model will multiply by 0:

 global coordinates = local coordinates * scale

When you select “Snap to Grid” it snaps globaly, and global coordinates needs to convert to local.  That means if you have scale 0.5 local coordinates must by twice bigger. So, the formula is:

local coordinates = global coordinates / scale

So, if you set scale to 0 the formula will be:

local coordinates = global coordinates / 0

But division by zero is mathematically impossible. So it will raze an exception that reset coordinates.

See also: Why is it important to apply transformation to an objects data?


Skeleton changes size in different modes

All you have to do is go into pose mode and select each bone individually(you might be able to select all but I didn't try) and press "Ctrl+A" and apply location, rotation, and scale.


How to get lists of UV island from Python script?

The API doesn't provide an operator or a data structure that specifies the list of UV islands as far as I know, but you can use the bpy.ops.uv.select_linked operator as a basis for a script that finds all the islands.

import bpy
C = bpy.context
o = bpy.data.objects[ C.object.name ]

# Go to object mode to read UV data
bpy.ops.object.mode_set( mode = 'OBJECT' )

uvLayer = o.data.uv_layers.active
uvs     = [ uvLayer.data[i] for i in range( len( uvLayer.data ) ) ]

others = uvs.copy()

islands = []

def select_island( uv ):
    uv.select = True

    bpy.ops.object.mode_set( mode = 'EDIT' )
    bpy.ops.uv.select_linked()
    bpy.ops.object.mode_set( mode = 'OBJECT' )

    return [ i for i, uv in enumerate( uvs ) if uv.select ]

for i in range( len( uvs ) ):
    bpy.ops.object.mode_set( mode = 'EDIT' )
    bpy.ops.uv.select_all( action = 'DESELECT' )
    bpy.ops.object.mode_set( mode = 'OBJECT' )

    flat = [ idx for isle in islands for idx in isle ]
    if i in flat: continue

    island = select_island( uvs[i] )

    exists = len( set( flat ).intersection( set( island ) ) )
    if island and not exists: islands.append( island )

print( islands )
print( " number of islands: ", len( islands ) )


Animation Nodes: Create Polygon Indices List

A mesh that have polygons has to have edges that align with those polygons. In this case, you haven't provided edge indices to the node, so a mesh can't be created. The easiest way to create edge indices is to use the Edges From Polygons node.


GreasePencil goes trough a mesh in wireframe mode 2.79

Okay, the Related sidebar just provided one of the workarounds once the question was posted:

See background image through solid shading in edit mode

it is possible to remain in the Solid mode and then simply switch the background image from being on the back to be on the front. Then some opacity tweaks will do the rest.

Still if someone could point out where was my mistake in the default set up it'd be much appreciated as it will help me understand the GP workflow a bit better.


trying to box select vertices doesn't select all vertices

The selection tools by default only select vertices not hidden by other faces. In your case, the vertices very close to each other (on on the same point) are preventing one or other of each pair from being selected.

To avoid this ‘masking’ you can swap to wireframe mode (Z) before making the selection. This will allow you to select all vertices within the box region.


I got the idea while writing my question. I'm not very good at 3D math with matrices etc but it worked.

Maybe someone will be helped by this.

cam_rot = scene.camera.rotation_euler
bpy.ops.object.text_add(location=(x,y,z))
textobject=bpy.context.object
textobject.rotation_euler = cam_rot


How can I manually assign individual vertex UV coordinates?

You can edit the uv manually in the UV/Image Editor.
After marking seams and unwrapping, open up the UV Editor.
If you check Normalized, you can select vertices and input their coordinates in the range of 0 - 1.
When you check the Keep UV and edit mode selection in sync button , the 3D View selection is the same as the UV editor selection.
You could select vertices in the 3D View and input their uv coordinates in the UV editor.
Note, that you can also use the standard select, grab, rotate and scale tools in the 2D space of the UV editor.


Keep bone constraints from custom bones in Rigify metarig? (Not entirely SFW)

When you add bones to the metarig, and don't set their "rigify_type" property, the script just adds those bones to the last layer with prefix "ORG-". It also keeps any constraints intact. But none of such bones are deforming ones. Of course, you can assign their Deform property after the generation is done, but that's not we want. :-) So, if you want some bones to be deforming ones, you need to find the first bones of each bone chain, what supposed to be deforming, and set for these bones rigify_type = basic.copy (or basic.copy-chain), and set the "Deform" option of that type. In that case you will have all your bones in the resulting rig with "ORG-" prefix, with all the constraints in last layer. Also you will have all the Deform bones copied to "DEF-" ones in third to last layer, all parented to their "ORG-" equivalents. Hope, it will help.
See "Extensions:2.6/Py/Scripts/Rigging/Rigify" for details on rigify types.


Where can I specify how many sides 'Select Faces By Sides' uses?

As with most operators in blender, you can access the operator options by either opening the side toolbar (T) in the 3D view or by pressing F6 immediately after running the operator:


You changed to Object or Edit mode as you said, the combobox(button) where you can change to Object or Edit mode also offers the option for Sculpting Mode.

While the option to change to Sculpting mode is only available if an object that can be sculpted on is selected,(no camera, light, empty, etc..) that is to say generally only mesh objects can be sculpted on.

Here a little video showing the change to Sculpt mode:

Happy Blending.


Create custom graph and access values from Python

After a bit of investigation it seems you can't use Graph Editor for "standalone" FCurves.
However, you can link them to any object and name them as you like. I used the default Cube in example below, but it might be as well an empty mesh.

Below script uses Cube as object that "holds" your curves within its animation_data.action. It creates them if they do not exist, and if they exists current one is picked.

import bpy

placeholder = bpy.context.scene.objects["Cube"]
if not placeholder.animation_data:
    placeholder.animation_data_create()
if not placeholder.animation_data.action:
    placeholder.animation_data.action = bpy.data.actions.get("curves") or bpy.data.actions.new("curves")
action = placeholder.animation_data.action

print(placeholder)
name = 'my_curve'

fcurves = action.fcurves
for f in fcurves:
    if f.data_path == name:
        break
else:
    f = action.fcurves.new( name )
    f.select = True
    f.keyframe_points.insert( 0, 0 )
    f.keyframe_points.insert( 100, 10 )

Then you have get to edit curve you can add points by duplicating existing ones using shift-d.

After shaping it you can use FCurve.evaluate() (API docs - bpy.types.FCurve). For example like this:

for i in range(100):
    print(i, f.evaluate(i))


Pixel Coordinates of Rendered Image with Python

It seems I found the way how to get pixel coordinates through Rendering Crop. Select a Crop Node and use the script.

import bpy

scene = bpy.context.scene
nodes = scene.node_tree.nodes
cropNode = nodes.active

if cropNode.type == 'CROP':
    nodes.active.min_x = scene.render.border_min_x * scene.render.resolution_x
    nodes.active.max_x = scene.render.border_max_x * scene.render.resolution_x
    nodes.active.min_y = scene.render.border_min_y * scene.render.resolution_y
    nodes.active.max_y = scene.render.border_max_y * scene.render.resolution_y


Extending hair length in particle edit mode

Uncheck the keep lengths on the toolbar menu for the comb tool. This will enable you to extend an individual key without affecting the others. As for the subdivision question, only the selected keys will be subdivided.


multi resolution needed in order to sculpt?

You can sculpt a simple mesh (a cube) without anything else.

You can sculpt any mesh and use dyntopo. You'll get a full triangulated mesh with as much topo as you want/can, exactly where you need it.

You can sculpt on a quad based mesh with multires. You'll get a new level of details with each subdiv. The whole mesh is subdivided.

But using a multires on dyntopo is exactly what you shouldn't do. Multires (or subdivision) is not supposed to work well with triangles.

Both have pros and cons, they are a different way to do sculpting.

a Cube with quad and a cube with triangulated faces, with a subdivision (same as multires):


There are a number of key factors you must have to even get close to this effect:

You need to have a material with some amount of glossy mixed into it.
Then you need to bevel the edges of your geometry
Add a light to the scene (a strong one if possible).
You should be able to get some level of light reflection off the edge in the render.
Then in compositing you'll need to pump up the glint with nodes and then run it through a glare node to get something similar to the example.

Level Up Tip
If you can get that working, you might want to try Troy S's new LUT's for blender which allow your scenes to be rendered with high dynamic range. One of the main benefits of high dynamic range is that glints and glares are much more powerful in the compositing phase.

Screen Shots (using default sRGB LUT)

Material setup, geometry and light

Alternate angle of object in scene

Compositing Setup to accentuate glint and add glare effect


How do I make my camera in my main scene move using buttons in an overlay UI scene?

GUI

Get rid of the "moving" logic (not needed with the below method)

Replace all property actuators with message actuators. Choose meaningful subject names, such as "move forward".

Enable True Level Triggering at the according sensors to send the messages as long as the operation is requested (-> the key is pressed).

Camera

Replace all property sensors with message sensors e.g. listening on "move forward".

Remarks:

Interobject connections are not needed.
You can have as many object serving as UI as you want
UI objects can reside in any active scene.

I hope it helps


Can't install pip due to PermissionError on Windows 8.1

On Windows 7, I go to the start menu, type cmd, when cmd.exe pops up, I right-click that and choose 'Run as administrator'. This solves the permission errors. Here's a guide for how to do it on Windows 8.1, see method 1.


You should read error messages more carefully, it says the mesh has NGons not "rignors"

NGons are polygons whith N sides, that means your model that has more than four sides.

NGons are generally considered a bad modelling practice in general, and should be avoided for a multitude of reasons; and in many applications and file formats they are not even supported, so sounds like you have some cleanup to do.

Open all your meshes in Edit Mode and look for faces with more than 4 sides and remodel them so you have a proper quad dominant topology.

One quick (but unadvised) way to fix it it to blindly triangulate your mesh, by selecting all your faces in Edit Mode and pressing Ctrl+T.

Other less ill advised method is to transform all into quads with Alt+J.

Lastly the recommended method is to properly retopologise your meshes using a carefully planned topology that will ease future editing


Finding vertex locations at a given frame using python

Instead of setting scene.frame_current = frame, run scene.frame_set(frame),

The docs mention this since its a common issue.

Updating all objects animation state in a scene can be very heavy with complex scenes, so it was decided not to do this on setting the frame attribute.


You can definitely do a lot of editing in the compositor and then save the results, and then reload in as a new texture. Here in this simple example I am using the Compositor window and bringing my painting in that is show in the lower right hand uv image editor in it's first state in monotone value. I use an Image Node to bring it into the compositor, and then direct it to a Viewer node for output, using the Backdrop to see it there. In the lower left uv image editor, you can see I have chosen 'Viewer' output to see the same as the backdrop, and that is where the result can be saved by choosing 'Save Image As' from the Image options in the header. I have used a simple Color Mix node set to 'Color' and chosen a light blue and not so full strength. You can use all kinds of filters and correction nodes to edit your images there. Just don't confuse the Viewer node with the Composite output node - the viewer is what you need to send the output to the image editor.


How to add a thick resin "clear coat" over a material?

You can use the principled shader in 2.79.

Just use the clearcoat slider, even if something is plugged into the normal socket it still does NOT affect it. (There is another socket for clearcoat normal to add bumps (realism)).

This is it turned off:

This is it turned on:

I cranked the normal map up way to high, I was just using it to make it more clear.


Is it possible to animate hair particle (object) size?

I'm getting the same result as you, changing the value after keyframing the Size property reverts to the previous keyframed value; it may be a bug or a limitation of the current system.

As a workaround, you can animate the value through the Graph Editor.

Just keyframe it regularly as you already did, then open the Graph Editor, select the object and move the curve vertex corresponding to the desired keyframe up or down according to the effect you wish to achieve.


I can only see the wireframe of my objects and they don´t appear in the render

I`ve solved it, I don´t know why but I had this (the box inside the red circle) in "wire".


Is there any method to make almost an automatic 'hive'?

I'd start with 6-sided cylinders, and array modifiers:

1st modifier to create a duplicate at a diagonal offset (x:0.5, y:0.766 )
2nd modifier for 1 row in say the x-direction (x:.667, and not 1, as the boundig box covers both the cylinders)
3rd modifier to fill the plane in the y direction (y:0.857)

Then I'd either apply the modifiers and remove unwanted geometry, or use boolean modifiers to create holes where I want them (or to limit the structure to a given volume).

The black grooves can be a simple plane, or you can slighty modify the initial cylinder (and/or adapt the array offsets if needed) by extruding the lower set of edges outward. Close the other end of the basic cylinder for the yellow plates.


Union partially overlapping cubes without boolean modifier

Turns out Python+Blender is not the right tool for the job. I used Python+OpenSCAD instead and so far I have not experienced any issues with the union boolean modifier. Glad to find out there's an easy solution that just works and that there's no need to do any complex stuff in Blender.

From OpenSCAD I can export to STL and import in Blender if I need to do some manual adjustments.


Setting A Circle's Rotation From A Changing Number in the BGE

All your need to do is take your timer's output (the timer var in my script), convert it to radians and then insert it in the object rotation vector.

import bge
import math

cont = bge.logic.getCurrentController()
circle = cont.owner

x = math.radians(timmer)
circle.worldOrientation = (x, 0.0, 0.0)

The reason for the math.radians() conversion is worldOrientation is a vector storing the rotation for the X, Y and Z axes in radians.

As a side note, a much simpler way to get the rotation of a object in degrees  is with these two lines. I used the same variable names you did to make it easier to see where it would fit in.

euler_rotation = circle.worldOrientation.to_euler()
circleRotation = math.degrees(euler_rotation[0])


For this instance, selecting all the vertices and doing Mesh->Vertices->Remove Doubles will solve it.

In general, for automatic weight painting, your model must be very clean, with no duplicate verts for example, and not be rotated nor scaled.


You should declare the variable inside a shader

struct complex {
    color r;
    color i;
};

shader node_complex(output float result=0.0)
{
    complex test;
}

This will resolve the compilation error. The issue is that Global variables in OSL are predefined and it is not possible to create custom global variables.

You can use these structs inside shaders and pass it around.


Blender model deformation when moving with bone

Don't parent With Automatic Weight, because it will give influence to several bones and your helmet will bend, instead parent to > Bone: Select the helmet, shift select the armature, then switch the armature to Pose mode, you'll see that the helmet is still selected, and press ctrlP > Bone. Parent With Automatic Weight is good for organic objects, but for machines, robots, etc, use a direct parent to bone.


Where can I change the color of the parts marked in red?

Basically every styles you want to change can be found in Themes panel.


2.76 - How to use ATI/AMD GPU without Linux proprietary driver?

I'm affraid that is not possible. Apparently (checked on luxrender) the GPU is only detected by blender using privative drivers, but even knowing that cycles is not fully capable with ATI/AMD cards. The kernel must compiled on the fly before start rendering and you can't use (even with the propietary drivers) volume absorption or scattering with the GPU and you still have to use CPU for it.
Blender works better with Nvidia CUDA i got the experience using blender on linux for several years and comparing with windows. and the results with AMD cards are disapointing.


Is there a way to quickly swap active images for UV maps?

Maybe Texture Atlas can be of help enter link description here


To get a mask of the top of the model, you can use the Normal output of the Texture Coordinate node. This gives a map of colors -1 to 1 along the X Y and Z axis. You can use a separate XYZ node to use only the Z axis, which can be used as a mask of the top of the model.

This gives a nice result

I used the Subtract node to control how high the mask was on the donut. Because the output from separate XYZ is a black and white image, you can manipulate it easily.

Then I added the Sugar texture onto black using the Z Normal as a mask, giving a black and white texture with the white dots acting as sugar.


Is it possible to get back to `Add mode`?

The options at the bottom of the Tool Shelf (left Panel in the 3D view) and the 'F6 menu' only exist when you're adding an object.

If you add an object (Cube, UV Sphere, Torus...) and press enter to accept the addition, you're too late in changing the options with the F6 menu.

Shift+A > Add Torus, press F6 or T, now you can change the settings, before you press enter or carry out a further action.

Objects you add are not procedural, you cannot just change their parameters at any time,but only when you add them to your scene.


Is there a way to manipulate objects as group in Blender 2.8?

A collection allows to create collection instances.

As p2or said in comments, you can also in 3D view ShiftA, then 'collection instance' and choose the collection you want to instanciate.

Once done, you use the instance as one object:

On the right here the original collection, on the left, the instance that you can manipulate as if it is an object:

You can "edit" the instance from its base collection:

Either manipulating the individual objects:

Or modifying them in edit mode:


Why is this procedural displacement texture not showing up on render?

Don't use a mix shader node to mix RGB information.

The input for shaders and RGB information is quite different and cannot be mixed randomly. Read:

Cycles - (Shader) Nodes - inputs outputs - What are the exact data types?

and

Cycles - (Shader) Nodes - inputs outputs - What are the exact data types?

Real displacement is avaliable as an experimental feature only, So you need to enable "experimental" in the feature set and set the displacement to "true" or "both" in the materials section.

Read: Getting "experimental" true displacement to work

And the last, and most important piece, is that the plane needs some subdivisions for the displacement to work. A plane with just 4 vertices is not going to work for what you need, so in edit mode add a few subdivisions to the mesh.


How do I catch keyboard input for a blender plugin?

I have no means to test for your intended usage, but maybe a modal operator is viable. Based on your use case, here's an operator template you could modify:

class VIEW3D_OT_process_input(bpy.types.Operator):
    """Process input while Control key is pressed."""
    bl_idname = 'view3d.process_input'
    bl_label = 'Process Input'
    bl_options = {'REGISTER'}

def modal(self, context, event):
    if event.type == 'ESC':
        return {'FINISHED'}
    elif event.ctrl:
        pass # Input processing code.

    return {'PASS_THROUGH'}

def invoke(self, context, event):
    context.window_manager.modal_handler_add(self)
    return {'RUNNING_MODAL'}

Watching input event being passed as argument, the operator will keep running (by returning PASS_THROUGH) until a condition, in this case pressing Esc button, is met. The input processing code itself is only executed if Ctrl key is pressed.


Array Modifier duplicating in wrong direction

All you should have to do is apply the rotation. The hotkey to do this is CTRL + A -> Rotation.

An alternate method (that you probably shouldn't use if you want it duplicated on the x) is to put the value of one in some of the other value boxes (make the current on 0 first).


Add a curve with 2 control points
Edit mode, change type to Poli
On the sphere, add an Array Modifier select Fit Type=Curve and select the curve as target object
add a Deform/Curve modifier select the curve as target


Two stage collapse using rigid body physics?

Unfortunately blender doesn't really have much support for this kind of thing at the moment (the rigid body simulator itself was just added fairly recently). Ideally the fracturing would be done real-time, based on impact forces etc.

However, it's possible to fake it with constraints, as you mentioned.
I like use this addon for setting up lots of breakable constraints between the shards.

There are a couple ways you can go about this.

One way is to fracture object object into lots and lots of little shards, and constrain everything together with breakable constraints (using the addon).
Video of result, and blendfile.

Another way is to fracture the object normally, then manually cell-fracture the bigger shards and constrain them together with the addon.
Video of result, and blendfile


Symmetrize bones not working as expected

You didn't put a .L at the end of ‘Bone.006’ and ‘Bone.007’ on the hand, and ‘Bone’ on the foot. So when you press W>Symmetrize it doesn’t make a copy of those bones, and the copied children on the right side are still connected to the parents on left side.


How to use the rotation matrix calculated by Matlab in Blender?

Some rattling on.
Not sure one arbitrary rotation matrix and one location vector with very little more info is enough. Instead of a very long commment, here is some ways to try and work this out.
The matrices given.
>>> print(R)
<Matrix 3x3 (-0.4877,  0.8728,  0.0190)
            ( 0.4404,  0.2648, -0.8578)
            (-0.7537, -0.4100, -0.5136)>

 T = Matrix.Translation((1.5581, 1.2190, 1.4871))

In blender (row order matrix) the columns of a 3x3 rotation matrix are the vectors of local axes.  If the camera was placed such that it focused directly on (0, 0, 0) (In blender a camera looks down its $-Z$ axis)
For example in default blend, with a track to constraint on camera to look at cube at (0, 0, 0)
>>> C.object
bpy.data.objects['Camera']

>>> print(C.object.matrix_world.to_3x3())
<Matrix 3x3 (0.6563, -0.3579,  0.6642)
            (0.7545,  0.3114, -0.5778)
            (0.0000,  0.8803,  0.4744)>

>>> print(C.object.matrix_world.translation.normalized())
<Vector (0.6642, -0.5778, 0.4744)>

ie its local  $Z$ axis matches its normalized location
if it was same for given data would expect
>>> T.translation.normalized()[:]
(0.6295621991157532, 0.4925462305545807, 0.6008740663528442)

to match a column (or row, not sure of order) of rotation matrix, unfortunately it does not,.
Using angles given to  get this matrix by setting order to ZYX and transposing
>>> print(Euler((map(radians, (141.4, -48.9, -137.9))), 'ZYX').to_matrix().transposed())
<Matrix 3x3 (-0.4878,  0.8728,  0.0187)
            ( 0.4407,  0.2647, -0.8577)
            (-0.7536, -0.4101, -0.5138)>

Reversed order suggests pitch, roll, yaw type rotation.
Transposing suggests either column order of matrices, it is also a cheap way of inverting a rotation matrix.
>>> print(Euler((map(radians, (141.4, -48.9, -137.9))), 'ZYX').to_matrix().inverted())
<Matrix 3x3 (-0.4878,  0.8728,  0.0187)
            ( 0.4407,  0.2647, -0.8577)
            (-0.7536, -0.4101, -0.5138)>

Which also suggests there could be a difference in +/- for CW / CCW rotation.
>>> print(Euler((map(radians, (-141.4, 48.9, 137.9))), 'XYZ').to_matrix())
<Matrix 3x3 (-0.4878,  0.8728,  0.0187)
            ( 0.4407,  0.2647, -0.8577)
            (-0.7536, -0.4101, -0.5138)>

Seeing what happens, set the matrix world to
C.object.matrix_world = T @ R.to_4x4()

for the hell of it in this one have used
C.object.matrix_world = T @ R.transposed().to_4x4()

since it is easy to see in image that (if the object of interest to focus is around (0, 0, 0)  it's looking the wrong way and is upside down.
Can make a conversion matrix via
>>> bpy_extras.io_utils.axis_conversion(
...         from_forward='Z',
...         from_up='-Y',
...         to_forward='-Z',
...         to_up='Y')

Matrix(((1.0, 0.0, 0.0),
        (0.0, -1.0, 0.0),
        (0.0, 0.0, -1.0)))

Or can see that flipping 180 degrees around $X$ axis would give same result.
>>> Matrix.Rotation(pi, 3, 'X')
Matrix(((1.0, 0.0, 0.0),
        (0.0, -1.0, -8.742277657347586e-08),
        (0.0, 8.742277657347586e-08, -1.0)))

So with one of the conversion matrices above as S
>>> S = Matrix.Rotation(pi, 4, 'X')
>>> C.object.matrix_world @= S

In as much as it doesn't exactly answer your question, I hope it gives enough info that if you have two locations and a rotation from each that points directly at a known point (eg the origin) then it would be a relatively easy task to work out the space.


3D animated glass object in video -> how to add reflection

Tough one, in the reflection you would see the person holding the tank, but from a different perspective (arms. chest and head and the sky behind).

So to get an accurate reflection, you would need to generate a 3d character that matches the person holding the tank, or shoot some video from a low angle that contains the image that would be reflected and map that onto the surface of the water.
The cheapest (and inaccurate) way to do this would be to create a surface that reflects a plane with the current image mapped to it. That plane would need to be invisible to the camera but visible to glossy rays.


Why does blender need my CPU when I'm GPU rendering?

It has to calculate and bake the frames when you are rendering... Try to think of the GPU doing the huge graphic tracing, and the CPU baking the elements in the scene, like keyframes for example... The CPU also is the one who adds the frames to the final file... Hope this helped! :)


Ngons aren't the only problem which can prevent Dissolve from working, non-manifold geometry is one more. There are internal faces in your mesh left after applying Mirror modifier:

Above Select > Select All By Trait > Non-Manifold was used to select all internal faces.

Remove the faces and then dissolve the edges with either Limited Dissolve or X > Dissolve Edges.

In more general case this is one of the problems which arise if you don't delete the faces which are on the mirror plane of the modifier (if you add Subsurf these will be visible as a seam in the middle of the mesh).


It is really easy using animation nodes.

Here is version with orientations set


I fixed it. I tried a lot of things, so idk what made it work..... I would say put the normal on OpenGL if ou're having a similar error.


Snap group of vertices into one vertex individually

This way doesn't merge. It involves pressing keys, but you do have to tell the application what you want, somehow.

Keyboard . (period) set the pivot point to 'Active Element'
Make your selection, ensuring your target vertex is active, for instance by selecting it, and Box/Circle selecting the rest.
Hit S0


Silk Option Missing from Cloth in Psychics Tab

Cloth presets are just a script placed within the folder where blender is installed

/blender/blender version/scripts/presets/cloth/

create a new text document with the following:

import bpy

bpy.context.cloth.settings.quality = 5

bpy.context.cloth.settings.mass = 0.150

bpy.context.cloth.settings.structural_stiffness = 5

bpy.context.cloth.settings.bending_stiffness = 0.05

bpy.context.cloth.settings.spring_damping = 0

bpy.context.cloth.settings.air_damping = 1

and save the file as silk.py

Or just use those values on blender and save a new preset using the plus (+) sign on the presets.


Hello, what to do when UV Image Editor is completely gray?

You have probably hiden the UV Editor grid accidentally. To restore it hold the Mouse Scroll and drag the mouse left/right/up/down. You may also scroll the mouse wheel to make it appear. Another method is pressing the Home button.


When creating your animated tree, note all values and use the export preset. (It doesn't export all settings, that's why we have to manually input the rest.)

Go to the dope sheet and choose the action editor mode. You will see that a windAction has been created. Press the F-button next to the action's name to give it a fake user. Delete the tree. Since you gave the action the fake user, it is still existent, even though the armature is deleted.

Create the same tree with the same generation values (which we wrote down earlier). Change the animation settings as desired e.g for a stronger wind.

A new action is created next to the existent one. I renamed it strongerWind.

Go to the NLA editor and add a track with ShiftA. Add an action with ShiftA as well.

Check sync length and extend the action by increasing the end frame. Add the other action as well.

Offset the NLA strips. By scrubbing over the frames you will see, that either action is played in the 3D view. Select the first action and enable Animated Influence. Set two keyframes on the influence with the I key. Select the 2nd action and enable auto blend. Auto blend creates a blend between two overlapping action strips.

Set the first action to additive blending. Go to the graph editor, you will see the two keyframes for the animated influence, which we created. Here you can add more keys. The action is multiplied by the influence. If you the motion to be small, use an influence close to 0, if you want the full animation amplitude, use and influence of 1. With this technique, one action would be enough to slowly increase the strength of movement over time.

The animation results from first increasing the influence of the windAction, then blending over to the strongerWindAction.


Is it possible to use SSAO in Eevee without world lighting?

If you only need it in the final render, you can apply it in the compositor:

Enable the Ambient Occlusion pass in Properties > Render Layers > Passes.
Use a Mix node to multiply it with the render.


i have solved it by myself by learning python and making new system, using this script. anyway thx for  answers...

from bge import logic as GameLogic
c = GameLogic.getCurrentController()
own = c.owner

enemydetect = c.sensors["enemydetect"]
punchright = c.sensors["punchright"]
if punchright.positive and enemydetect.positive:

    obj = enemydetect.hitObject

    obj["HP"] = obj["HP"] - own["RightDamage"]


Problems with A.N.T. landscape. doesnt edit

What version are you using? Did you add the landscape through Add -> Mesh -> Landscape? Remember that as of blender 2.79, you don't have to install it using a separate file, blender already has it in its optional addons with the compatible version.

For that you can go to user preferences -> add-ons and search for A.N.T and activate it like this:

Ps. I had some trouble when i was first starting out and downloaded the addon from a previous version, causing compatibility problems.

As described here you could  try:

1 -close blender

2 - rename C:\Users\yournamehere\AppData\Roaming\Blender Foundation\Blender\2.79
  to
   C:\Users\yournamehere\AppData\Roaming\Blender Foundation\Blender\2.79.bak

start blender, should be good as new now.

Remember to always download from the official blender site, blender.org


Why can't I apply texture paint to my object in blender 2.8?

I think you have to connect the image texture node to your shading node instead the rgb one.


Blender 2.83, compatibility with files from older versions

Yes, you can do it (you can always have more versions of blender installed on the same computer). You only need some care about the liquid/smoke/fire simulations that have been updated recently.


Creating a subdivided plane using projected threads

This can be done using a subdivided plane and the Knife Project function.

Make a plane of required length and subdivide it
Create your threads (I used another plane) and move it in front
Select Threads + Plane and go Edit Mode > Mesh > Knife Project

Making thread pattern ,Shift+D to duplicate the vertices

Projecting threads onto the subdivided plane.


I want to put text inside of rock and have an object drop on it and make the rock crumble leaving only the text

If I understand what you are wanting to achieve correctly, this can be accomplished using rigid body physics. First you need to have an object suitable to crumble, or shatter, the cell fracture addon works well here.
If you do not have it enabled, then go to user preferences and enable it.

Fracture your object, then add rigid body physics to one cell first. In the (tool panel under physics>add active) Next, go to the physics tab, and select enable deactivation and start deactivated.

It also may be useful to adjust the friction settings here as well. Then B to border select all the fractures and click copy from active in the tool panel.

Now, select your text and add physics to it. This time click add passive.

Lastly, select your bottle and add it's physics which will be active. In the physics tab, select animated.

Now you can hide the rock object for now, keyframe the bottle's location at frame one, and it's final location upon resting on the text. When you are done setting your keyframes, unhide everything, and that's it!

I just used a cube and Suzanne for my example, but you will be to achieve these results and more after following these steps.


Why can't I use loop cuts after beveling?

I tried that with Blender 2.81 and a beveled cube. It works. So it seems that the bevel is not the reason for the problem.
Check the geometry: Go into edit mode an "Merge Vertice by distance" (v2.80) or "Merge" (CTRL-V in edit mode). Ensure that the normals of the faces are pointing outside. If this does not help there is a workaround: In edit mode select all edges in question and subdivide instead of loop cut.


Make Links - Object Data Causes wild results

They are not disappeared, but they are all at the same place as HiPoly :)

Problem here is you applied Rot and Loc, that are zero now for each object origin, but their Object data are not. That means if you Ctrl+L > Object Data to each object it copy exactly the same.

To fix Location is not a problem just select all, search for Set Origin > Origin to Geometry. But how to restore Rotation I don't know.

If you have a version before applied transform, would be better.


I couldn't get m.ardito answer to work.
I wanted to move vertices with different y position to all the same plane.
I found lots of answers on forums with answers like

"select the vertices and press S Z 0 to put all the vertices in the same z-position, then move then set the 'Median Z' value in the transform properties."

I just could not get these to work.

In the end I modified a the script I found.

import bpy
import mathutils

class OBJECT_OT_MoveX(bpy.types.Operator):
    """Move selected vertices to cursor's location"""
    bl_idname = "object.movex_operator"
    bl_label = "Simple Move Operator"

    @classmethod
    def poll(self, context):
        return context.mode == 'EDIT_MESH'

    def execute(self, context):
        MoveSelectedVerticesToCursor(True, False, False)
        return {'FINISHED'}

class OBJECT_OT_MoveY(bpy.types.Operator):
    """Move selected vertices to cursor's location"""
    bl_idname = "object.movey_operator"
    bl_label = "Simple Move Operator"

    @classmethod
    def poll(self, context):
        return context.mode == 'EDIT_MESH'

    def execute(self, context):
        MoveSelectedVerticesToCursor(False, True, False)
        return {'FINISHED'}

class OBJECT_OT_MoveZ(bpy.types.Operator):
    """Move selected vertices to cursor's location"""
    bl_idname = "object.movez_operator"
    bl_label = "Simple Move Operator"

    @classmethod
    def poll(self, context):
        return context.mode == 'EDIT_MESH'

    def execute(self, context):
        MoveSelectedVerticesToCursor(False, False, True)
        return {'FINISHED'}

def MoveSelectedVerticesToCursor(moveX, moveY, moveZ):
    bpy.ops.object.mode_set(mode='OBJECT')

    for vertex in bpy.context.object.data.vertices:
        if vertex.select:
            new_location = https://blenderartists.org/forum/showthread.php?280330-XYZ-location-of-Verticesbpy.context.object.matrix_world.inverted()*bpy.context.scene.cursor_location
            if moveX:
                vertex.co[0] = new_location[0]
            if moveY:
                vertex.co[1] = new_location[1]
            if moveZ:
                vertex.co[2] = new_location[2]

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

class MyPanel(bpy.types.Panel):
    bl_idname = "OBJECT_PT_my_panel"
    bl_label = "Align to Cursor"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    #bl_context = "object"

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

        row = layout.row()
        col = row.column()
        view = context.space_data
        col.prop(view, "cursor_location", text="3D Cursor Location")
        #row.prop(bpy.context.object, "OBJECT_OT_delete", text = "Cursor to selected")

        layout.row()
        layout.label(text="Align selected vertices to cursor position", icon='MESH_DATA')
        row = layout.row(align = True)

        row.operator(OBJECT_OT_MoveX.bl_idname, text="X")
        row.operator(OBJECT_OT_MoveY.bl_idname, text="Y")
        row.operator(OBJECT_OT_MoveZ.bl_idname, text="Z")

def register():
    bpy.utils.register_class(MyPanel)
    bpy.utils.register_class(OBJECT_OT_MoveX)
    bpy.utils.register_class(OBJECT_OT_MoveY)
    bpy.utils.register_class(OBJECT_OT_MoveZ)

def unregister():
    bpy.utils.unregister_class(MyPanel)
    bpy.utils.unregister_class(OBJECT_OT_MoveX)
    bpy.utils.unregister_class(OBJECT_OT_MoveY)
    bpy.utils.unregister_class(OBJECT_OT_MoveZ)

if __name__ == "__main__":
    register()


What is the 3rd option in an enum property for?

From the documentation you linked:

  items (sequence of string tuples or a function) – sequence of enum items formatted: [(identifier, name, description, icon, number),
  ...] where the identifier is used for python access and other values
  are used for the interface.

The third item is therefore the description, which is used for the interface.


How to rotate an EditBone? is it possible

While you can adjust the head/tail/roll directly, EditBone's have a helper function for this:  EditBone.transform, which I think is the most direct answer to your question, just pass a rotation matrix to it.

This is simply a python helper function, see the code.


You can pretty much follow any UV unwrapping tutorial on the internet for that. Modeling assets is pretty much the same for all the 3D real-time engines out there.

However, I would highly suggest, that you learn how to unwrap properly as soon as possible. "Smart UV Project" doesn't necessarily give the best result and as soon as your modeling skills go beyond the primitives (cubes, cylinders and the like) you want to have more advanced texture maps.

Besides that, I'd highly suggest that you also start with proper material setups and thus with node materials (maybe also with cycles) as soon as possible. You can then bake your materials to texture maps and use them for your game assets. The big advantage here is that you don't need to adjust your UV map to the "direction" your texture takes (e.g. bricks are arranged into a specific direction).

The biggest pitfall when creating 3D game assets is the use of too many materials. Every material needs to be loaded and processed, thus generating CPU and GPU load. Do this many, many times and the FPS of the game will drop. So in the case of a building, it would be advisable to have only one texture map for the walls and the roof. This is also where baking and maybe even the Texture Atlas add-on come in.


How do I evenly wrap a mesh around a sphere

You don't tell a lot about why, for example, you begin with a flat shape, is it necessary? Anyway, I guess there are several ways to get the final shape. Here I tried Cast and Array modifiers.

If you need to start with a flat shape, you could do it with the CAST modifier:

Create your star mesh.

In Object mode, create a circle a bit above the star, made of some concentric edges loops, keep only the edges. Choose top orthographic view, select the circle, then the star, go in Edit mode and in the bottom menu bar choose Mesh > Knife Project, it's going to print the circle edges on the star geometry.

Now your star has enough geometry for a nice deformation (here it's not optimal but you can rearrange it).

Create an empty at the same point as the star origin. Give your star a Cast modifier with the empty as Control Object.

Rise the empty a bit, play with the Cast Factor, the star is going to deform and shape as a sphere!!!!!!

Keep a copy of your star + empty objects, apply the Cast modifier, to make your shape even more spherical you can shrinkwrap it.

You could do it with the ARRAY modifier:

Create a UV Sphere. Keep only a segment.

Create an empty at the sphere's origin point. Give your object an Array modifier / Object Offset mode, with the empty as Object.

Choose the right array count, rotate the empty on the Z axis so that it recreate a complete sphere. Go in Edit mode to edit your segment.

Edit your mesh until you get the result you want.


Consider changing the [width] property from the properties of your console.  You need to know the length of the longest line by inspection.

Under MS Windows it is done with the properties panel as depicted below.
Your OS was not specified.

Blender output seems wrapped to the current width of the console.

You can also consider changing your print statements to some some other function which writes text it to a file, append, open and close.  File Redirection may be possible.  I am not currently using Linux/Variants but in some programs one may choose the console.


I believe I see the problem: the Color Ramp's alpha information is available (in its second socket), but is not being passed on to the surface shader (only RGB, not RGBA, is being forwarded to the surface values). If we're willing to move back into shaders before the final render (as opposed to the raw color-to-surface pipeline), then we could switch from this, which does not respect alpha to clip:

To this, which does:

I am not sure if there is a way to get transparency information properly incorporated in an RGBA sense into shader nodes without using at least a single penultimate shader (rather than just color information). Someone more knowledgeable than I am may be better positioned to comment on that, though, or maybe to explain why that appears to be the case. This is certainly unfortunate, since adding the penultimate shader removes the non-photo-realistic flat-shading effect that was presumably the point of using Shader-to-RGB in the first place. The only alternatives I am aware of involve post-processing/compositing to remove the regions intended to be treated as transparent.

As a partial fix, I find you can recover flat shading while retaining transparency if you use an emissive shader where you would normally use a diffuse shader, after the shader-to-RGB transformation (so that lighting information can still affect where transparency appears, as a result of the initial diffuse shader node):

This probably has its own disadvantages, although the most obvious objection (that it won't react to lighting information) does not seem entirely relevant (since lighting information can still affect at least the extent/shape of the emissive node's coverage through the initial diffuse shader node that precedes the Shader-to-RGB node).

For completeness, here are my previous, incorrect speculations, which may still be valuable to users with similar problems:

ORIGINAL: You probably just need to change the material's blend type from Opaque (the default) to one of the Alpha-aware blend types. Alpha Clip is a common suggestion. This is where the setting is located in the materials tab:

EDIT1: There is, also, a general setting for whether alpha information in pixels will be filled with Sky or Transparency in the Render->Film settings.


Okay I think I may have found the issue?  Where you have an Add node I think you really want a Multiply node, as follows:

And the render looks more like this:

Which seems more like your reference photo I would say.


Is it possible to have a particle randomly rotate around a single axis?

It it possible to modify certain properties of particles with Python.

I only managed to modify particles that are alive as their properties seem to be overwritten as they are born. But if the properties are set after a frame change, i.e. as soon as new particles are born, this method works.

The following script registers a handler that inverts the angular velocity of half of the new particles after every frame change. I'm not familiar with a way to trigger the handler during baking, but caching the animation and using “Current Cache to Bake” works.

import bpy
from math import floor
from random import random

ps = bpy.data.objects['Cube'].particle_systems['ParticleSystem']

def refreshNow(val):
    current_frame = bpy.context.scene.frame_current
    for p in ps.particles:
        if current_frame == floor(p.birth_time) and random() < .5:
            p.angular_velocity *= -1
            p.prev_angular_velocity *= -1
    bpy.context.scene.update()
    return val

def my_handler(scene):
    refreshNow(0)

def register():
    bpy.app.handlers.frame_change_post.append(my_handler)

if __name__ == "__main__":
    register()


Image in compositor is rendering white (or just a small portion of the original)

The image you are loading and the blender scene are not the same size (in pixels)
Blender will not auto-size your images to fit within the compostion.
To know how big your image is press N in the UV/Image editor to bring out the side panel.

If you load an image that is larger than the composition, you will only see a portion of the image.

If you add a scale node and set it to fit, then your image will be scaled to fit within your composition.

Note that if the images are a different aspect ratio than the output, you have three choices:
stretch: deform the image to match within the aspect ratio of the container)
Fit: keep the images proportions but fill the remaining either with a transparent background or with black (if the "Use Alpha" option is unchecked)
or Crop Not stretching the image, resizing to fit vertically center cropping horizontally.


Text object alpha BGE python for fade in/out 2.79

Animate the alpha of GameObject.color

Tested using gamelogic module template, with a mouse sensor on text object. Clicking 10 times makes the text object "fade away".

def main(cont):
    own = cont.owner
    # color vector xyzw  ~ rgba
    own.color.w -= 0.1
    own.text = str(own.color)


Here is an example of what I meant in my comment above:

use the "loop cut and slide" (CRTLR) tool to create 4 cuts
then select the 2 pairs of vertices that you don't need, and "dissolve" them using CTRLX


Try this
The result
You can parent the plane to the object that casts the rays, add to it constrain "Track To", choose your camera and play with constrain's settings. Also you can render it from another scene and than mix with original scene using compositor


Keying Set Failed To Insert Any Keyframes error message?

You've set your Keying Set (1) to Button Keying Set, but you didn't add any properties for keyframes to be added to (2). That's why when you press I no keyframes are being added. To change that, you need to get rid of the Keying Set by clicking on x sign or setting something meaningful, like LokRotScale for example.


I know this is an old post but I came up against this very same problem myself today while using 2.82 and was able to find the a way to replicate the result Chris Plush had, so it's likely this post will come up in a google search in the future :).
Select the vertices hit Shift + D to duplicate them and right-click to keep them in place.
Press P to separate.
When you Tab out of edit mode you will have the smaller mesh for the front side panel and the side guide mesh will have remained intact.


how to make star-shaped circle into a regular circle plane

I'd try to use something like rectangles instead of single N-gon. Like this:

Just delete face only, select the outer edge, press E to extrude, right click to cancel moving, S to scale almost to the center. then use Ctrl+R to add few edge loops, and fill the center. It will subdivide more consistently. And fix duplicating faces (flickering ones) to avoid problems on rendering.


How do I apply complex texture in Blender?

i built you a setup how this works in blender. for better understanding you should inform yourself about UV-Coordinates, and Normals maps.

For animating the glow effect of the armour you could animate the marked green multiply.
For animating the glowing helmet you could animate it with the mapping node, for example with rotation. But this depends what kind of effect you want to achiev.

What i didnt took into account is the color id map/mask texture so you could controll the glowing areas individualy. To achiev that you could implement this solution: Using an RGB map to assign various shaders in a material

Body-Material:

Helmet-Material:

if you have any further questions, feel free to ask.


Combine F-Curve Modifiers with baked Sound

Add an envelope modifier to the baked fcurve to remap to your desired range.

Another way, and one I use extensively in my sound drivers addon, is to bake the sound to a custom property prop, then set up a driver , SCRIPTED EXPRESSION type, with the baked property as a variable (SINGLE_PROPERTY type) var  datapath '["prop"]' and make the expression 60 * var.

(var and prop are only suggested names for example case)

To add and bake a property, choose the object you are going to bake on, open the "Custom Properties" Panel, add a property, key in a number, make it a float type (eg 0.0) and then add a keyframe. Select and Bake to Sound from the graph editor as you would any other property.

You can see the datapath on the active fcurve properties panel N used for the datapath of the driver variable,  or use the copy data path on mouse menu of the custom property field, and paste  into the datapath field of the driver variable.

Go one level further and add another custom property and use it in the driver as the multiplier, then you can change the amplitude of the baked fcurve effect directly from a slider in the UI.

To make it easier I have put together an addon, Sound Drivers.

This post is also relevant to  What's the range of values on a sound-baked f-curve? .


give this material setup to your domain:


In Cycles, how can you make Particles Emit Starting from the Left to the Right?

You can use the same workflow seen for Blender Render

The ParticleSystem texture's editor is the same for both render engines (as it is for many things that don't involve shading properties)


The Dope Sheet and the Graph Editor are different Editors.
Dopesheet shows keyframes only.
The Graph Editor will show f-Curves
You can toggle/switch from one to the other by pressing Ctrl+Tab
Or to access the Graph editor directly by pressing Shift+F6


How to change the color of clipping border display?

There is a setting for 'Clipping Border' now in newer version of Blender.
themes / preferences / 3dview / clipping border color option box.
The default color is a dark grey, and the setting for transparency is called 'A' for Alpha Value. The default Alpha is 1 which is Opaque, if you move the slider to '0' the View Clipping Background is Transparent!


Exporting Node Textures / Texture Baking

PBR and texture baking are simple when you organize your concepcts correctly.
First thing you have to UV Unrwrap your model because you're telling how blender and Unity will shrink-wrap the textures to your model.

When you are working with a PBR Workflow you'll have in most times 4 maps :

1 ALBEDO/DIFFUSE
Is a color map, represents the colors,logos,textures etc... in your object;
2 METALNESS (IN SOME CASES SPECULAR MAP IS ALSO USED)
How metal some object is,and where it's metal or where isn't;
3 NORMALS
Normal maps is a technique used for faking the lighting of bumps. Are commonly used to represent a HighPoly mesh into a low poly, or add details visible beacuse it says to render where the light has bumps or not.
4 ROUGHNESS
How rough a object is,how "reflective" it's...

Here's a example of maps :

Then rendered :

But you also could've been using AO,Emissive,Opacity and heigmaps.

They act like informations to the render know how to properly render your object correctly in any light circunstances. Your light in baking process is irrelevant.

But the light when you RENDER, will matter. The render uses your PBR maps to know how light will affect the object so you can get better results based on real life's physics.

Baking is the process where you make the maps itself.

Here's a example to texture Baking a NORMAL MAP :

There are 2 objects a low poly(not that low) and a High poly

When you bake the normal map,you'll got a map to use in low poly mesh to fake light bumps into it and get a smoother result.

Hope it will help you in a basic level, if something isn't clear, please let me know friend.

In addition ,Blender 2.79 will have a native solution for PBR Workflow in cycles, check it Later.

Principled Node - Blender Manual


I would do some manual loop cuts with Ctrl+R and then follow the instructions I wrote in this answer here


Every section listed alphabetically

Textures

CC0Textures CC0/Public domain license
CG Textures License covers commercial use, but not open source software. *Registration required, free at low resolutions*
Good Textures Similar to CG textures, but with a more lenient license. *Registration required*
Lovetextures
Mayang's Textures
nordicfx non-commercial
OpenGameArt CC-BY
Pixar 128 Library 128 textures with normal and height maps originally made by Pixar Studio in 1993 and updated in 2015, CC BY 4.0
PixPlant's Seed Images Various licenses
Plain Textures *Registration required*
Poliigon Paid registration required for high resolution versions; several high resolution free textures available
Share Textures Collection of CC0 textures
Subtle Patterns
Textures.TheFree3DModels Attribution required Noncommercial
Texturebits
TextureHaven CC0
Texture lib free for commercial and none commercial use, license is very lenient
Texture Mate
Texture Ninja A collection of CC0 textures
texture pilot *Registration required*
Texture X Free high resolution textures.
Yethiel's Collection of Textures Various textures collected by an individual with CC0 license
3dmd.net  Small library and no high resolution
3DTextures

HDR/JPEG Skydome Images

HDRI Haven CC0
Adaptive Samples CC-BY-SA.
Chocofur HDRs High quality paid HDRs; one free available here
GiantCowFilms.com CC0/Public Domain
HDRI Hub Free Samples
Maxwell render resources
MrBluesummers HDR lights.
NoEmotion HDRs High resolution HDRs; CC-BY-ND
nordicfx non-commercial
Open Footage CC-BY
Philo's Sky Collection
sIBL hdrlabs CC-BY-SA
 0ptikz's skies

Stock Photos

BucketListly CC-BY-NC
Foter Various CC Licenses
FreeImages
Image After
Immediate Entourage many masked images
Library of Congress Public Domain
MorgueFile
openclipart
OpenImages
Pexels CC0
Pixabay free, but with some restrictions
Pond5 *Registration required*
PhotoPin Various CC Licenses
PublicDomainPictures reduced resolution free, Public Domain
Stockvault non-commercial
Rawpixel free for commercial
Unsplash CC0
USDA Public Domain
US Navy Public Domain
Visible earth NASA Public Domain
3dtotal some textures too
Pxhere Free stock photos


When should I rotoscope in the compositting proces?

When to rotoscope?
Whenever you need to evaluate the integration of the video element you want to composite.
Can rotoscoping be done in blender?
Yes.
You can draw and animate masks that can be used in the compositor. Mask drawing tools are quite robust in blender, allowing you to add, subtrac or intersect different masks and layers, and it allows you to create sharp or feathered edges.
Advanced and semi-automated rotoscoping can be done by parenting masks to tracking points on the video clip editor.


Why is there a transparent rectangle behind my object?

I think you enabled the crop to render region on the output settings
What you can do is either disable it or ctrl + alt + b to remove any render region crop.
To add it again, you can use ctrl + b and select a portion you want to render


Incorrect/triangulated texture when importing .obj file

The issues you find here are a combination of three distinct problems all related to the quality of the original models, and most likely not caused by Blender or import method.

You model has bad topology - Most likely caused by being apparently made by some sort of NURBS or Solid modeling application, or maybe abuse of Boolean operations. Not really easily fixed unless you remake it from scratch
Your model has overlapping geometry - Particularly on the rifle handle there seem to be some duplicate or overlapping almost coplannar surfaces. You may try to clean that up by hand
Your model has inconsistent normals - Easily fixed by selecting all your faces in Edit Mode and pressing Ctrl+N.

Also have in mind that this has nothing to do with materials or textures, as OBJ doesn't really support proper material importing or exporting


Objects stays solid when render in camera view

It looks like you have accidentally set a Render Border in your camera view, however, the border is so small that it appears that nothing is being rendered. I have highlighted the very, very tiny selection border in your picture below, but to turn it off use Ctrl + Alt + B. If you're interested in actually using it later, you can draw a new border with Ctrl + B


How to get an event when an object is selected?

You have to pass "location" (string) to path_resolve():

import bpy

# Callback function for location changes
def obj_location_callback(ob):
    # Do something here
    print('Object "{}" changed its location to: {}: '.format(
        ob.name, ob.location)
        )

# Subscribe to the context object (mesh)
def subscribe_to_obj_loc(ob):
    if ob.type != 'MESH':
        return

    subscribe_to = ob.path_resolve("location", False)

    bpy.msgbus.subscribe_rna(
        key=subscribe_to,
        # owner of msgbus subcribe (for clearing later)
        owner=ob,
        # Args passed to callback function (tuple)
        args=(ob,),
        # Callback function for property update
        notify=obj_location_callback,
    )

# Ensure only meshes are passed to this function
subscribe_to_obj_loc(bpy.context.object)


Applying a texture to a cube shows up in the editor under the texture viewport and doesn't in render

So i had a look , but no textures were in the file so i took a guess , What i THINK is wrong is that you have assigned the material with no texture , To fix this , in the image below there are 2 materials , click the negative button ( make sure you have selected the material with no texture ) . Then go into edit mode , and press a until everything is selected , Click the logo material and click assign


For liquids contained within a mesh you should always ensure that the ‘container’ has thickness (either by modelling the thickness or by adding a Solidify modifier. You should then ensure that the Resolution of the fluid domain is set high enough so that each cell in the simulation is smaller than the minimum thickness of the container. This will ensure that the fluid does not protrude outside the mesh.

For an cleaner boundary (eg, if the container is transparent) between the fluid and its container (to stop them intersecting) you can add a Boolean modifier to the fluid to remove the parts that intersect into the container mesh.


Nothing is coming from fluid inflow in Blender 2.8

It looks like the problem is that the inflow object is a circle curve with no face geometry. The fluid simulator will need some face geometry in order to generate fluid. The circle can be filled in Edit Mode by selecting the entire object and using the 'F' hotkey to fill in the circle with a face.

Note: your Domain Viewport setting is set to display Geometry. This mode will not display the fluid in the viewport and will just show the domain box geometry. Setting this mode to Final will show the final quality fluid result in the viewport.


Using new PointerProperty with custom property

This is how I do it in the Blender addon for LuxCore:

import bpy
from bpy.props import PointerProperty

def init():
    bpy.types.Material.luxcore = PointerProperty(type=LuxCoreMaterialProps)

class LuxCoreMaterialProps(bpy.types.PropertyGroup):
    node_tree = PointerProperty(name="Node Tree", type=bpy.types.NodeTree)

(The init() function is called in the top-level register() function)
You can then access the node tree like this (example from the Python console):

>>> material = bpy.data.materials['Material']
>>> material.luxcore.node_tree
bpy.data.node_groups['Material']

I think it's a good idea to add all properties specific to an external renderer to a PropertyGroup like "luxcore" or "appleseed" to prevent any conflicts. Cycles does the same thing.

Important

Note that PointerProperties attached to the material are not properly loaded in versions prior to 2.79a RC1: https://developer.blender.org/T53509

See also my notes on PointerProperties in the blenderseed bug tracker for issues with backwards/forwards compatibility: https://github.com/appleseedhq/blenderseed/issues/31


Problem importing .stl files, it has a lot of faces and vertices

Remove doubles first, W > R
If helpful, use the planar decimation modifier. It will create ngons though.

⎇ AltJ is the shortcut for the tris to quad operation.


Edit: The 'mesh mode view' is actually viewport wireframe view and does not display all the edges and vertices you should be able to see in Edit mode. I would suggest opening the attached blend file to take a closer look.

I've made this visual guide which I hope helps more than the explanation you provided in your post. The mesh is displayed in three states; edit mode, with the subdivision modifier visible and without.

(Since I'm not using the Math meshing addon, I'm using an ico sphere with an extra step to generate the required shape).

I've also attached the blend file, so you can see how it's set up precisely.

As a general guideline, you'll likely want to use insets only. Smoothing in edit mode isn't required since the Subdivision Surface modifier will display all edges as smoothed, unless you either crease them or add edge loops close by. Both options will sharpen your edges.

Using insets also means that your mesh topology likely will be (almost) quads only. This makes it easier to later edit mesh features, like changing the scale of edge loops or moving things around. You can make complex shapes with subdivision surface modifiers, while still having a relatively simple mesh.

As for scaling the inset faces, you're generally going to use Median Point and Individual Origins. Controlling their depth can be done using median point and scaling; the size of the faces themself perpendicular to their normals uses scaling along individual origin.

My resulting shape:


Smoke simulation only rendering when I apply smoke modifier

The reason what is think is your density for smoke in principled volume shader is very low you have set it to "0.100"  try increasing it to 1.00 or even more.


You can easily find in the outliner which bone is the highest in the hierarchy. It is the Hips. But if you want to make it move you better animate the whole armature in object mode instead of moving the root bone far away from the object's origin.


It's not really a fix, but I did manage to find a way around this.

Turns out when I generated normal maps that worked, I (accidentally) did it using Blender Render instead of Cycles.

So I moved my objects into a new file, did all my sculpting, and generated a half-decent normal map from them, which I can save and use in the original Cycles file with no issues apparently. There are still some weird bits but they're mostly parts of the mesh I didn't take much care with, as I won't be using the normal map for them. Getting the whole thing to a usable state would be pretty straightforward I imagine.

Result:


Did you check the "Write Normals" option in the export dialog?
The tooltip for that says: "Export one normal per vertex and per face, to represent flat faces and sharp edges"

To test it I edited the vertex normals of a cube with the blend4web add-on and reimported it and the altered normals were preserved on re-import. So with the checkbox checked it should do it the way you want.

EDIT: I looked in the file and I think see what you mean. Let me investigate.
EDIT2: So it seems the vertex normals are only written once, when they are needed (no duplicates) and in the "f-group" they are then referenced. Each face points to its vertex indices and (via the number after the second slash /) to the belonging vertex normal indices (f v//vn - the middle can also have an index for texture coordinate --> f v/vt/vn). So multiple vertices may be  associated with the same vertex normal index if they share the same value.

https://en.wikipedia.org/wiki/Wavefront_.obj_file

So in order to have a dictionary (vertex index - vertex normal) you would need to go through the faces (the f-group) and follow the reference for each vertex normal, discarding all vertex indices you already have sampled.

EDIT3: Answering your comment below :)

There are sometimes more 'vn's than 'v's, because there are actually more vertices. One entry in the "v group" doesn't really represent a vertex but a set of unique vertex coordinates.
If you e.g. look at the corner vertex of a cube that is hard-shaded, this one vertex is actually 3 vertices! These 3 share the same coordinates and thus only get one 'v', but they have different normals - one for each face the three-fold corner vertex is part of.

They still can only be moved together - a ripped vertex (meaning two or more unconnected vertices in one place) is represented by having more 'v' entries with the same coordinates. For unripped vertices that are part of a hard edge Blender doesn't show the real count in the scene stats, but if you import it e.g. in Unity the vertex count suddenly is much more.

It looks like that this is just the way that the obj format is designed - not unique identities but just pointers to values. You could of course rewrite the exporter to force duplicates, but it would be difficult to be consistent, because of what I described above. It think would result in all hard edges beeing split. Anyway I think it would be more complicated than just reading out the obj file with some loops and stuff. The information is there, it is just represented differently than we would assume at first glance.

EDIT4: To correct myself above - when reading out the obj it's not really possible to discard any vertices if you want to preserve all info. The combination of v, vn and use in an f is what makes them unique, right? So really you can just walk through the faces and fetch the values. Or gather unique v-vn pairs but lose info about their faces.


Armature refuse to be dupicated to the other side

There are two separate issues with your setup.

First about the symmetry issue of the armature.
For symmetrize the X-axis is used. So the orientation of your model should be correct. If I see the screenshot you posted, the orientation is wrong (the Y-axis is the desired mirror axis there). In your blend file you have corrected this, but you still have to apply the rotation ( CTRL + A -> Rotation) on the armature, because symmetrize uses the local orientation. (May I also suggest you rotate it on the Z-axis by 180 degrees, so that when you are in front view you see the front of the dog?)
Furthermore you have to make sure the naming of your bones is consistent for the left and right side. Blender's convention is that bones on the left side end with .L and bones on the right side with .R. When you use symmetrize, the bones get mirrored from left to right by default ("-X to +X"). But after the operation you can switch this to "+X to -X" if needed in the operator toolbar. If the bones on the left (or right) don't exist yet they are created and get the proper suffix .R (or .L).

Secondly about the mesh not deforming properly.
You have to apply the mirror modifier that's on the mesh, so the right side can deform independently from the left side.  Now the right half of the mesh mirrors the (deformed) left half.

After this you should remove the armature modifier and delete all vertex groups from the mesh. Then parent the mesh again to the armature and choose 'With Automatic Weights' (or whatever you prefer).
The pole angle on the IK constraints on the right needed to be corrected after symmetrize (set to 0).

Here is the corrected blend file so you can study it if needed.


You can keyframe any value on the nodes by Right Clicking on the value and then choosing Insert Keyframe. This will set a keyframe on the current frame.

When you add a keyframe the field will turn yellow to indicate there's a keyframe on that frame. If you move along the timeline, the field will turn green to indicate the field is keyframed, but not on the current frame.


Can tell me how to get this weight paint option in Blender 2.8 (screenshots inside)

You need to enable Vertex Selection Masking For Painting, then you can only paint the selected vertices. Now maybe I miss something but it looks like, unlike 2.7,it doesn't display any vertex, selected or not, so maybe the best way is to Show Wire in the Viewport Overlays panel, it still won't show any vertex though...

So if I'm right, to do what you want to do, it may be easier to switch to Edit mode and to use the Weight value and Assign button under the Vertex Groups list?


Final render looks different than preview render

Yeah, usually that type of darkness is caused by the volume scatter or volume absorption being too dense. As mentioned, I don't know why the view is different from the render, but altering the settings of the volume absorption and scatter will help correct it.


for what i am seeing in the wireframe pic, your box model is disconnected from every box model you made, so automatic weights isnt gonna work properly if your models are splited or separated individually like this, but then parent every model to the respective bone, instead with bone parent option in the menu when doing re-parenting...


Export .dae with "include UV Textures & Include Material Textures

I have exported many .DAEs with textures from 2.79 without any problems.

The top image you posted is from an older version of Blender. To paraphrase what Mr Zak said, the export menu in 2.79 has changed to what you show in the bottom image.

The settings that work for me are:


Properties bar shrank (ate magic mushrooms?)

Make sure your mouse cursor is hovering the desired editor or area, then press Numpad + or Numpad - (plus and minus sign from the numeric keyboard on the right) to zoom in or out of the interface.


Animation: customize bounce interpolation

There is no way to customize them.

The only way out is to not use the premade interpolations. Stay in Bezier interpolation, and use "free" handles to create your own bounces:


Blender hair particles shape. Change to ribbon

Found this!

This setting is now in render tab - geometry section.


Is there a way to render particles as if they were a single liquid?

If you set up a particle system that works, you can use metaballs as the object it emits, so it looks like it's one smooth "fluid". Metaballs will merge together into one smooth shape. The result isn't perfect, but it's decent:


min () expected sequence error only happens for newly created objects in edit mode

You need to update your edits if you are not using bmesh. Add these lines first to your def:

if bpy.context.object.mode == "EDIT":
    bpy.context.object.update_from_editmode()


Moving mesh in object mode, armature is not moving, mesh stretches

The issue was caused by proportional editing feature in blender.


How can I make face uv orientation clearer?

There are two much easier things you can do to visualize the direction that faces are pointing than change the user preferences.

The first is activating the normals.

Now every face will have a blue line pointing in the direction it is pointing.

The other thing you can do is enable Backface Culling.

Here I have added some loop cuts so that there are more faces to see.

If one is inverted, and pointing inward, you will also see through it. this is good for working in the BGE where faces pointing inward will make your mesh look really weird.


Possible cause: combination with keyboard sensor

Just as it is the configuration looks fine. But there is a danger.

You combine the message detection with keyboard detection. That means the actuator will only be activated when you hold the specified key  and receive a message at the same time.

It might be you want to activate the motion actuator when either the key is pressed or a message is received. In that case I suggest to replace the AND controller with an OR controller.

To analyze if the message can be received at all, you can disconnect the keyboard sensor (leaving the message sensor).

To analyze if the motion actuator has any effect on your object, you can disconnect the message sensor (leaving the keyboard sensor).

I hope it helps