Starting with the basic shape of the eyeglass frame.
I started with a circle with 64 vertices and formed that to the inside of the frame and then extruded that out and shaped the outside of the frame.

Then extruded that shape up to create the thickness of the frame. (I also used a Mirror Modifier and a Sub Surf Modifier).

I then selected the vertices that would make up the nose piece and pressed CTRL + “I” to inverse the selection. Then pressed “H” to hide that.

Then selected the following eight vertices and turned on Proportional Editing “Connected” choose “Sharp” for the falloff and pressed “G” and moved them up.

Then changed the falloff to “Linear” pressed "S" and scaled them in.

You can press ALT + “H” to unhide the rest of the vertices and/or Tab into Object Mode to see the result.


I see solution in using viewer bmesh and than operate in separate tree by object in and joining them
https://yadi.sk/d/Y0755AytIfALnQ
try this file as example


There is no such a thing as DXF object in Blender. Lines from DXF format are usually imported as curve objects. You can manipulate them exactly in the same way you would manipulate any other curves in Blender. If you needed to change the spline types inside the curve objects you would need to enter edit mode Tab, select any vertex of the spline(separate segment in a curve) you wish to change the type of and do it in the T panel:

You might also wish to change the type of the handles that can be done in the T as well or with a shortcut v when you have vertices of a spline selected.


To use the UILayout.template_palette you need data that has a property of type bpy.types.Palette

Here is a small test to add a new custom palette, assign it a couple of colors, yellow and red, set red as active.

The image paint tool settings palette property is assigned the new palette.

The palette is displayed in the image editor toolbar under the "misc" tab.

import bpy

class PaletteDemoPanel(bpy.types.Panel):
    """Creates a Panel in the tool panel of image editor"""
    bl_label = "Palette Demo"
    bl_idname = "IMAGE_PT_palette"
    bl_space_type = 'IMAGE_EDITOR'
    bl_region_type = 'TOOLS'

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

        ts = context.tool_settings
        if ts.image_paint.palette:
            layout.template_palette(ts.image_paint, "palette", color=True)

def register():
    bpy.utils.register_class(PaletteDemoPanel)

def unregister():
    bpy.utils.unregister_class(PaletteDemoPanel)

if __name__ == "__main__":
    register()

    # put some test code here to create palette etc
    # add a new pallete
    pal = bpy.data.palettes.get("CustomPalette")
    if pal is None:
        pal = bpy.data.palettes.new("CustomPalette")
        # add a color to that palette
        yellow = pal.colors.new()
        yellow.color = (1, 1, 0)
        yellow.weight = 1.0

        red = pal.colors.new()
        red.color = (1, 0, 0)

        # make red active
        pal.colors.active = red

    ts = bpy.context.tool_settings
    ts.image_paint.palette = pal


Problem 1: Fixing particles

To fix this go to the particle system tab under Velocity and turn the Object option up to 1.00.

Problem 2: Path follow

To fix this, go to the start of the animation, select the path, go into Edit mode and, with all points selected, click Toggle Cyclic in the Tool Shelf. You should now see a gap in the path, which is the start and end. Determine which one is the start(the path lines are leading away from it) and select it. Press Shift + S and select Cursor to Selected. Click Toggle Cyclic and go back to object mode. Select the object to follow the path and press Shift + S again, this time choosing Selected to Cursor

Problem 3: Delay animation start

The only easy way to do this is to use a Follow Path constraint instead. It allows you to offset the animation. You could also just rotate the path with the object around the Z axis to start at a different place.

Also, I would but the animation end up to 100 for a smooth loop, if its going to be looping that is.


Selecting faces of "inside" of solidified surface

'Apply' has a specific meaning in the context of modifiers. In this case, it looks like you've only added the Solidify modifier and enabled edit-mode viewing. Since the base geometry is still a plane, the correct interpretation of it is to select both upper and lower faces produced from solidifying it.
To 'fix' this, all you need to do is apply the modifier --- producing a new base geometry. To do this in 2.8 and below, enter object mode and click the apply button on the modifier's card. In 2.90, this changed from being visible as a button to being an item on the drop-down menu to the right of the modifier's name. CTRL-A works as a shortcut when the mouse is over the modifier's card.


Cannot find the knife tool (already in editing/ modeling mode)

Don't think the knife tool is available for metaballs. Should convert it to a mesh before.


IK constraint causes crazy global rotation

Here is what I would say:

Select your armature, go in Properties > Data > Display > B-Bone, so that you can easily see your bones. Select all the bones in Edit mode and ctrl alt S to thin them.
In Edit mode, select the foot_IK.L and drag it back behind the foot so that you can see it. Also, rotate it 180° on the X axis so that its head is in the good position.
Now, the parentage is bad, neither the foot.L nor the foot_IK.L should be parented to the shin, and the foot.L should be parented to the foot_IK.L, so, in Edit mode: Select the foot_IK.L and alt P > Clear Parent and select the foot.L then select the foot_IK.L and ctrl P > Make Parent > Keep Offset.

It should work correctly.


Blender multiple Image texture one Material

A good solution to this is to take advantage of Node Groups. You can extract the common portions of your different materials into a group, then share it across all of them. You can then edit the contents of the group to make changes to all the materials that share it at once.
For example, suppose you have a material that looks like this:

If you want to share the Principled BSDF settings across many different materials but use different image textures, you can select the Principled BSDF node and press CtrlG to convert it to a new node group:

By default, all of the node’s inputs are made into group inputs, but in this case we only want the Base Color to be provided by the enclosing material, so we can delete all the other inputs in the node properties panel (accessed by pressing N):

This produces a node group that looks like this:

Pressing Tab to leave Edit Mode for the new group and return to the original material, we can rename the group to something more informative:

Now you can add the node group to other materials using ShiftA ▸ Group ▸ <name of group>:

To edit the group contents, just select it (from within any material) and press Tab to enter Edit Mode again. Any changes you make will affect all the materials that use the group, so there’s no need to duplicate anything between materials.


You could use an Ambient Occlusion Shader for the plane. This will give the plane a constant color while still giving you the desired ambient shadows without the shadows from the light source. By default the Ambient Occlusion is pretty weak. We can use the compositor to make the Ambient Occlusion more prominent.

Add an Ambient Occlusion Shader to the plane
Enable the AO render pass

In the compositor:

use the RGB Curves or a similar node to make the AO pass darker
Invert: needed to properly control the factor input
Use the Multiply node to control the strength of the darkening
Subtract: this is a Color -> Mix node. This is the final output

NOTE: you can use the Distance parameter in the World Panel to change the proximity in which Ambient Occlusion is shown.

AO before vs. after compositing


Cabinet door won't bevel (Archimesh addon)

I think problem is that bevel modifier has a special setting "Clamp overlap", that limits bevel width by size of the smallest edge in model. You can do one of 2 things:

1) Unclick "Clamp overlap", in cost of quality of model, because it will cause  overlapping faces.

2) Limit faces with beveling, for example, by weight.

Then select edges what you want to bevel, and press Ctrl+E -> Edge bevel  weight


The SVG importer has no options.

SVGs are imported as curves.

2D curves can be filled or not. The fill settings are here:

If fill it's set to none, your curve will only be an outline.

Note that the outline will need some extrusion or bevel to be visible/renderable.


As I said above, your faces are flipped. You can install the Flippist Addon.
The rest of the steps are shown in the image below:


You are connecting an all-black image with an alpha channel to a diffuse shader, and Blender won't know what to do with the transparent areas.

It will paint black in the black areas, but in the transparent areas there is no color information, so it will... paint black.

Also as far as I know TIFF images have the ability to save color information even for fully transparent areas, whereas in your case they are black, with full transparency (as can even be seen directly in the google drive link preview you provide). So if Cycles where to use the color information for those transparent pixels it would yeild... black again.

Either

Use the alpha channel to mix two colors.
Use the alpha channel to mix two different shaders.
Change your picture to a black&white image instead of all black with alpha
Change your picture to have white pixels in the transparent areas


In order to set pixels of the mist transparent where the original render is transparent, you can multiply the alpha pass with the mist pass.
The full steps to achieve this result are:

Enable film transparency (Render Properties > Film > Transparent)
Enable the mist pass (View Layer Properties > Passes > Data > Mist)
Switch to the Compositing workspace or open the compositor and enable Use Nodes
Add a Math node (Add > Converter > Math), set the mode to Multiply and use the Alpha of the render layer and the Mist as inputs. Alternatively this should also work with the Mix node set to Multiply and the factor set to 1. The effect is that the alpha is used to mask the mist. When the alpha is zero the result of the math node is zero as well, thus the result is transparent in exactly the same places as the alpha channel.
Use the result from the previous step for further compositing.

Below is a visualization of the intermediate steps of the compositing node tree.
Image pass

Alpha pass

Mist pass

Mist pass multiplied with alpha pass (masked mist pass)

Image pass mixed with masked mist pass (final result)

Compositing nodes


Why do measurements change when switching from Global to Local in edit mode?

When you are using Local, you are looking at the dimensions relative to the scaling of the object (if scaled in object mode).

Global will show you the absolute measurements.

As an example. Here's a cube that has been scaled 2 times in the $Z$ axis.

If you switch between local and global coordinates in edit mode.

The measurements in local units are relative to the scaling and show that the cube is 2x2x2, whereas the Global units show the absolute measurements showing that the cube is no longer a cube, but a cuboid that is 4m tall.

Why should you care for local or global measurements?

Please read: Why is it important to apply transformation to an objects data?


The problem is solved. A dvd drive was faulty. After deactivating the drive, Blender 2.78c now runs smoothly. For this idea, I thank Duarte Farrajota Ramos,


It looks like your object is a bit tilted. You can simply correct the Axis value it in the Operator box:

Or you can create a new Transform Orientation ("+" button), to keep it selected in the panel:

Then spin the face:

But as you see it makes the shape go down on the Z axis, is it what you want? If not, you could use the CtrlE > Bridge Edge Loops instead. Duplicate the face, align it with the global axis:

Use the Bridge Edge Loops tool, tweak the parameters in the Operator box:

For the second shape you show, I would do it this way:

Create an angle:

Move up the tip:

Bevel the angle:

Extrude along normals, etc...


Spacing objects evenly around a curved surface

The first thing you want to do is to set your cursor to the middle of your hammer (represented by a cylinder in my case).

Then add your spike somewhere around it. To create several spikes around the edge, you have 2 methods:

1 - Use the cursor as a pivot point

Duplicate your object, rotate it around the Y axis by XX degrees and repeat the operation.

But this one is harder to modify as you have to delete you cube and realign them if you want to change its shape. The second option use an array modifier which is more adequate to the situation.

2-Array modifier
Same beginning with the cursor, but create an empty object that you want to leave at the cursor position.
This time, don't forget to move your object in edit mode instead of object mode so that the geomtry center point remain at the cursor location.

Add an array modifier to your object and deselect everything

Select the empty object as object offset and change the count

If nothing is shown, this is normal, just select the empty object and rotate it around the Y axis, your spikes should start moving.

In the example, I rotated it by 45° with 4 new cubes 4*45° = 180°, the last cube is rotated by 180°. Hope it helps


Blender 2.8 removed use_environment_light API, what to use instead?

The property use_environment_light was part of the settings for the world when the Blender Internal render engine was used. This render engine has been removed in Blender 2.80 and replaced by Eevee. Like Cycles, Eevee uses the nodes based system for the world settings. Enabling environment lighting isn't necessary, it's always on.


Can I merge multiple objects into one, while keeping the rig working?

For the rigging of machines / robots / non-organic objects, etc. you have 2 methods.
If you want to keep separate objects, use basic parenting: Select on piece, shift select the armature, switch to Pose mode, select the bone you want and CtrlP > Bone
If you want to join all your objects into on (i.e. your case), parent with vertex groups:

Select all your objects, join them with CtrlJ
Select the object, shift select the armature, press CtrlP > parent With Empty Groups (which is going to create vertex groups in your objects but no vertex is assigned for the moment)
Go in Edit mode, select one part of tour object (example: the head), go into the Properties panel > Object Data > Vertex Groups, select the head vertex group (i.e. the vertex group that has the name of the bone that is supposed to control the head), click the Assign button under the Vertex Groups list, and so on


Adding a custom shortcut for sculpt mode

Starting with Blender 2.68 (earlier versions have a bug):

In the 3D view header click Object Mode to open the menu
Right click on Sculpt Mode and choose Add Shortcut.


need to display speed on my ship while keyframing (view3d)

Using pl - cl will give you a vector that tells you how much you have moved on each axis, this is not normally the same as distance travelled which is the length of the diagonal line between the two points. You may recognise the equation c2 = a2 + b2 used to calculate triangle lengths which can be adapted to 3d points. If your object is moving on only one axis then you can do simple calculation of the locations on the one axis.

def distance(a, b) :
    """distance between two 3D points"""
    return sqrt((a[0]-b[0])**2+(a[1]-b[1])**2+(a[2]-b[2])**2)

To draw the speed in the 3Dview, have a look at the bgl and blf modules. You can find some examples here

If you have animated the planes movement then you should get better results by using fcurve.evaluate(frame) to get the object location.

import bpy

ship = bpy.context.object
ship_curves = ship.animation_data.action.fcurves

def distance(a, b) :
    """distance between two 3D points"""
    return sqrt((a[0]-b[0])**2+(a[1]-b[1])**2+(a[2]-b[2])**2)

x_curve = ship_curves.find('location', index=0)
y_curve = ship_curves.find('location', index=1)
z_curve = ship_curves.find('location', index=2)

for cur_frame in range(0,12):
    cur_x = x_curve.evaluate(cur_frame)
    cur_y = y_curve.evaluate(cur_frame)
    cur_z = z_curve.evaluate(cur_frame)
    cur_loc = (cur_x, cur_y, cur_z)

    prev_x = x_curve.evaluate(cur_frame-1)
    prev_y = y_curve.evaluate(cur_frame-1)
    prev_z = z_curve.evaluate(cur_frame-1)
    prev_loc = (prev_x, prev_y, prev_z)

    travelled = distance(cur_loc, prev_loc)

    print('Travelled {:>8.3f} since the last frame.'.format(travelled))


Change Blender's Preferences Dynamically

When registered to run on startup, it has the name of the module, in the case below ui_panel.py is a registered text.

if __name__ in ["__main__", "ui_panel"]:
    print("Running ", __name__)  # see the diff between reg or run script
    register()

The refresh (aka reload) script operator is, which IIRC is the operator called by hitting F8

bpy.ops.script.reload()

Instead of cancelling with

return {'CANCELLED'}

use

return self.cancel(context)

then append the operator call to your cancel method, (ie after removing the timer),.

My preferred way of turning on and off modals is using the update method of a boolproperty

def start(self, context):
    if self.bgl_draw_speaker:
        bpy.ops.wm.draw_speaker_vis()

bpy.types.Scene.bgl_draw_speaker = BoolProperty(update=start,
                                                name="Draw Details",
                                                description="Show BGL Visualiser")

and have if not scene.bge_draw_speaker as a way to terminate the modal op.


OpenVDB loading in Blender is limited to smoke simulation caches. The system is not designed to load external files. There's probably some horrific way to format an VDB so that Blender is fooled into thinking it's a smoke cache, but I'm not aware of any working setup for that.
There is an eventual plan to add a volume object to Blender that would support loading arbitrary OpenVDB files, among other things. There is no timetable or version for this.

In the meantime, in certain limited cases you may be able to get by via using Houdini's scatter SOP to fill the VDB with points, exporting these points to Alembic, then using Cycles' Point Density texture to render the point cloud. It won't have the exact shape and is of limited functionality, but depending on your needs it may do the trick.


Front Mesh making back mesh impossible to see, help?

You can hide the vertices you don't want to see. Just select the ones you want to hide and press H.

Also, the reference image will only show when you're aligned with an axis and in orthographic mode—hit 1, 3, 5, or 7 on the numpad to align the view, and then 5 to go into orthographic mode.*

*The manual says that orthographic mode is the default in Blender, but it's not.


Scene playback with wrong/unwanted Sequencer audio

Adjust the Start and End Frames of your Scene to match the Frames where you placed your Scene into your VSE. Then if needed grab your animation keyframes in the Dopesheet Editor and reposition them accordingly.


You could, but I would not recommend it, for these reasons:

Keep in mind that some GPUs out there do not support high
resolution textures.  For instance some older iDevices (and more, but that's off the top of my head).  Blender is very flexible, but some other programs are not.
That is not a power of 2 (the primary reason that we use 1024, 2048,
4096, 8192, etc.), and may not work on some GPUs.  Very bad memory usage.
Texture management becomes really hard.  Versions, overflow from one to another, using layers to keep track of everything, etc.

So my recommendation is to have the textures separated out, still at the 2048x2048.  This allows you to use the GPU efficiently, have good support for GPU RAM, and for instance if you were using GIMP, easily apply filters without having to worry about messing up other parts of the texture.


Blender does not utilize full amount of VRAM

Unless you have multiple graphics cards you are unlikely to be able to max out the memory use.  Some of the memory will be used by other processes and windows.  I've found it is always worth closing all other windows and any other unnecessary processes when I'm close to the limit.  They all use RAM which could affect your render but they all will likely have staked a claim on some VRAM too.  I don't know whether minimising the Blender program windows makes any difference but I do it anyway.  If you are on Windows I've also found that switching themes can help.  Current Windows versions and their UI effects are not a particularly efficient users of VRAM so dropping back to the Classic theme will probably help.  I've also read that changing font size to normal and switching off clear type and anti-aliasing can help although I've no evidence to support that.


Problems using joined objects as a boolean cutter

You don't need to start with three different objects just simply start with one object and add the Bevel Modifier.


Technique to get a more organic shape from a base model head

The head is box-modeled from a uv-sphere. The video is a timelapse but you can follow along if you stop it after each step, basically after each second ;-)
Most of the time you only have to move vertices along the axis a bit and add new geometry with the knife tool (K in Edit mode). For the neck (a cylinder) add edge loops with Ctrl+R.

How to Get It In Shape
The mentioned relaxation of the vertices can be achieved in Blender with the Smooth brush, which also works with low-poly mesh. After you added the new edges switch to the Sculpt Mode. Select the brush with a very small strength (~0.08) and touch the top of the head, the forehead, cheeks and chin area.  The Smooth brush reduces the volume and the chin will get smaller if you touch it a few times.
The flat area of the ears can be pulled out slightly if you pull the pole and the vertices around it to the side. Use the Snake Hook brush or Elastic Deform brush. This will give the head a rounder appearance.
Then pull the outer vertex of the cheekbone downwards with the Snake Hook brush (alternatively, you can do this in Edit mode). Finally, move both vertices that form the cheekbone a bit forward, along the y-axis, to give them more volume.
That's it.
Later, when the mesh has a higher density, you can use the Smooth brush to smooth it, the Elastic Deform and the Inflate brushes to restore the volume and to adjust the shape.
The relax tool (in the Loop Tool add-on) is great to smooth edge loops. For example when you messed up the lips or the eyelids.
It is best to see the changes in the frontal view:


how do i indent into a cube to get such curvature

Just to have it all in one place, Proportional editing works well too.
Set Falloff > Sphere and adjust size to your needs.


There is a way. You must have all margin lines aligned to be able to close your top tabs. For example, Img 1 will close, but Img 2 and Img 3 won't.

Img 1:

Img 2 & 3:

To close your windows, collapse the top Info bar to the left by grabbing and dragging the hashmarks at the bottom-left, to the left. Then, grab the hashmarks at the top right of the bottom Info bar and drag upwards. Lastly, grab the divide line between the top of the 3D Viewport/Outliner and drag it upward to condense the Info bar.


What are surfaces and metaballs used for?

I can't speak for metaballs, but surfaces are the geometry you would use before computers could handle smoothing polygon models. The idea of a nurbs surface is that you have a number of isoparms, which are the control points, much like a lattice. The computer interpolates smoothly between adjacent isoparms, which generates the smooth surface you see in the viewport. It was a very efficient way to render a surface with the hardware of the time.

Today, surfaces can be used for hard surface modeling, ie cars, planes and environments, although their use is fading quickly.


Why does my model duplicate itself in pose mode

I had the same problem with deformations producing duplicates. I figured it was related to the fact that I had added additional bones to the armature post the Ctrl + P > Set Parent > Armature Deform action and the new bones were interfering with the deformation since the weights had not been assigned (@David's comment was the clue for me).

To solve this issue you need to go to Object Mode, select the Mesh, then select the armature and redo the Ctrl + P > Set Parent > Armature Deform action. I used the Automatic Weights option as before and Bam!

The deformations in pose mode are back to normal.


How do I get a simple deform modifier to twist from the bottom of the object instead of the middle?

You just have to slide your controlling empty 1 unit down.


How to invert the colors properly in Blender?

Blender will generally linearize colors when importing 8bit images. Photoshop does not. Normally, Blender's behavior is correct but in this case you are encoding data here, not colors. You can inform Blender of this and disable the de-gamma step by setting your input color space to "linear" or "raw" instead of "sRGB".


If Cycles is Physically Based, Why Doesn't it Calculate Fresnel Automatically?

Cycles could have a shader with in-built fresnel, in fact one is being worked on: https://developer.blender.org/D2313

The reason fresnel is a separate node used to mix diffuse/glossy shaders was an intentional design decision to allow more flexibility when putting shaders together. It allows you to mix shaders in any way you need. One problem with this is that a lot of the time you need to combine shaders in the same way. The alternative is an "ubershader" that combines everything in one black box, such as the Principled BSDF shader in that patch link. By adding the Principled BSDF as a shader node you'd have a single node when you needed a general-purpose physically based shader, or you can choose to roll your own shader combinations if you need more control.

The drill down into your core question of "why doesn't it just happen?": you don't just code "do things physically" and BAM, the renderer is realistic. You need to code each step of the rendering process so that it behaves the way real light would. In the case of Cycles shaders, this step is (currently) left to the user.


Mapping texture to repeat itself from a bigger map

As everything will be packed onto just 1 texture, tiling would repeat the whole texture and this is unwanted. Nowadays engines don't have problems with polygons so if you want a part of that packed texture to repeat simply create the surface of many polygons each mapped to the same area on the packed image.

To utilize multiple tiling textures you would need support for multiple materials with multiple UV maps. Each section of model would then have different material with different UV map. Blender can do this but I have no clue about the format which you might use.


Building off of the answer by @CoDEmanX, here's a simple example:

import bpy

class OBJECT_PT_HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        layout.prop_search(scene, "theChosenObject", scene, "objects")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.theChosenObject = bpy.props.StringProperty()

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Object.theChosenObject

if __name__ == "__main__":
    register()

which gives:

How script works

The prop_search command lets the user choose one item from a bpy "collection" (in this case, the collection context.scene.objects) and saves the name of that item into a string (the string context.scene.theChosenObject).

If you need to use the object in a different part of script.  Use

scene = context.scene
obj = scene.objects[scene.theChosenObject]

By the way, if you had wanted a "Materials Selection Box", you could have used

layout.prop_search(scene, "theChosenMaterial", bpy.data, "materials")

and similarly for textures, meshes, or any other bpy collection.

Limitations

We are only saving the name of the object (for example, scene.theChosenObject could be 'Cube').  If the user changes the name of the object, scene.theChosenObject will not change and you will not be able to use it to reference the object anymore.

See here for more on this problem.


I suspect your seams are not disconnecting the two sections - possibly you have duplicated geometry. In Edit mode, select all vertices and do a Merge By Distance to ensure you haven’t got overlapping geometry (possibly the result of a cancelled Extrude operation) then check your seams again and re-unwrap.


VSE problem blurring license plate - mask is jumping all over video

It's likely that you're running into the problem between Interframe Compression vs. Intraframe Compression.

Blender (and other video editors) often have trouble scrubbing through video that has been compressed referentially. In this type of compression, one frame is encoded as the changes from the previous frame, so all the data isn't there for every frame. This means, it's really easy to get lost between keyframes. I've seen this problem when I'm tracking video it seems like the track is really bad, and jumping all over the place, but what's really going on is the frame you're seeing isn't the right frame for that time signature.

Try converting to an Intraframe format (each full frame is compressed individually) like a JPG image sequence in an AVI container. Blender can do that conversion pretty easily.


Mechanical ribcage having variable number of ribs and derived heights

Method 1: even rib size

You can use a combination of some modifiers such as:

Array (using object offset pointing to an empty to get the step
distance to increase; notice that the empty doesn't have the same Y coordinate of the object origin, so each step the repeated object gets nearer to the center)
Boolean (to cut away the parts that exceed the middle line with a "control" box)
Mirror (to repeat the other half)

Method 2: slightly deformed ribs

Use a regular X-axis Array modifier (much simpler to set up than the array previusly presented) and deform the result with a lattice with two control points only in order for each direction (U,V,W) to get a linear deformation:

While the second method is probably faster, the first would give you more control and precision.


How to get shadows information in cycles

Ok, so  I achieved the result I wanted. Unfortunately, it's not fully procedural. What I needed to do was to bake shadow map of the plane and than I could use this information to make a final artwork.


You can duplicate Grease Pencil layers by clicking the Copy button in Grease Pencil panel located in N sidebar.

Note: This is a coming feature in 2.74. More information see here. Currently you can try the daily version if you have to.


Had the same problem. The solution was changing <polylist> to <triangles> in source as CODEmanX suggested.


How I would do it

Your best bet for scaling, rotating, moving, and animating all that stuff would be through the VSE.
1. In the compsitor remove the green background to make adding the background easier later on using the keying node.
2. Open blenders VSE and add in your newly rendered transparent video through SHIFT+A > movie
3.With your clip selected add a transform strip via SHIFT+A > Effect Strips.. > transform. Once there you can change the size rotation and location all from the properties panel on the timeline. Your probably going to want to keyframe the movement of the tank so using the timeline put the timeline where wish and using the transformation strip you can change how the tank looks relative to the frame. Hover over the location, roation, and whatnot and then press "i" to keyframe it.
4. After you render that run through the compsitor with an alpha over node and add your pic - that should do it.

References

https://www.youtube.com/watch?v=h0F5X4b7jug
http://blenderartists.org/forum/showthread.php?261401-how-i-add-or-active-keyframe-for-VSE-blender
https://www.youtube.com/watch?v=0PZ_cxjxexM


When you paste a mirrored pose, blender does the the following:

Mirror each bone's transformation in local space across the the YZ plane, this means that say a movement of 1 on the X axis will become a movement of -1 in the X axis.
Apply the mirrored translation of all bones that match the mirror naming convention or the original bones

Step 1 is probably the bit that is catching you out here, if the initial positions/rotations of the mirror bones are not a mirror, then the copied pose will not create a proper mirror.

In order to fix this, you need to go into edit mode and make sure each mirror bone is in the correct mirror position. The easiest way to do this is to enable X-Axis Mirror in the options section of the 'T' panel and then select one half of your armature, and press G then Enter to apply a translation of 0 to them. The mirror option you enabled will then snap the other bones to the correct mirror positions.


Offset Transform on top of Alembic Transform Cache

The only way to do this at the moment is to  add a Copy Transform constraint, check its Offset checkbox, and let it target an Empty. The Empty can then control the offset.


How to access vertex_color layer directly from inside BMVert

Vertex colors are stored in face loops, you can't ignore/overlook this.

However its reasonable that you might want to generate vertex colors per vertex and not have to deal with looping on vertex-loops while generating/manipulating the colors.

Your best options would be to have 2 functions for converting colors between loops and verts. This could take & return array of Color objects. Then at least you can keep the conversion isolated and not complicate your color calculation logic. (If your generating new colors you only need one function to go from vertices to loops of course)


The high resolution mesh does not need to be UV mapped at all.
Baking the normal map works by calculating the difference in the surface normal between a particular point on the low resolution mesh and the nearest point on the high resolution mesh. As long as they are sitting on top of each other, everything should work as expected.

Above you can see the two meshes are on top of each other (the middle image is only the wireframe of the left image, not another mesh) and the resulting normal map.

So the position of the surface is used to determine which points on the low and high resolution meshes go together, the UV of the low resolution mesh is simply the target output of the bake and no UVs are used in the calculation of the normals, thus the high-res mesh doesn't need any.

Also, clean topology is also important for correct deformation in rigged models. As long as there are no overlaps and the islands aren't too close together (3-5 pixels is usually fine) the quality of the UV map isn't too important.

Thus the workflow is:

Retopologize the sculpt
Unwrap the low-res mesh
Place them on top of each other (if they aren't already)
Select the high-res, then the low-res mesh
Tab into Edit Mode of the low-res mesh, select everything
Make sure you're using Blender Internal render and create a new image. I recommend enabling 32-bit Float to prevent any banding or other image artifacts.
In the bake panel, choose Normals for the bake mode and enable Selected to Active
Hit the magic bake button
When it's done, save the image as an EXR or a 32-bit format, otherwise some of the information in the normal map will be lost and you'll get obviously visible banding.


Render appears to have z-fighting but render view doesn't

You have a "backup bottle" hidden in the viewport. Items hidden in the viewport will still be visible in renders. This is why you see Z-fighting. Either delete the object or move it to a separate (disabled) collection.


Iterate over CollectionProperty with blendfile.py

blendfile.py actually supports getting elements of a collection property with some super neat and simple API!

    for blend_file_path in blends:
        with blendfile.open_blend(blend_file_path) as blend:
            scenes = [block for block in blend.blocks if block.code == b'SC']

            for scene in scenes:
                # get custom properties
                properties = scene.get_pointer((b'id', b'properties'))

                if properties is None:
                    continue

                # iterate through all the property groups
                itor = properties.get_pointer((b'data', b'group', b'first'))
                while itor is not None:
                    if itor.get(b'name') == "ms_lightmap_groups":
                        length = itor.get(b'len')

                        for i in range(0, length):
                            group = itor.get_pointer((b'data', b'pointer'))

                            if group is not None:
                                # iterate over all the properties
                                # (!) i specifies the index in the collection
                                prop = group.get_pointer((b'data', b'group', b'first'), base_index=i)
                                while prop is not None:
                                    name = prop.get(b'name')

                                    if name == 'name':
                                        offset = prop.get((b'data', b'pointer'))
                                        length = prop.get(b'len')
                                        blk = blend.block_from_offset.get(offset)
                                        blend.handle.seek(blk.file_offset, os.SEEK_SET)
                                        atlas_name = blendfile.DNA_IO.read_string0(blend.handle, length)
                                    elif name == 'resolutionX':
                                        resX = prop.get((b'data', b'val'))
                                    elif name == 'resolutionY':
                                        resY = prop.get((b'data', b'val'))

                                    prop = prop.get(b'next')

                                atlases[atlas_name] = (2**(resX+8), 2**(resY+8))
                                print("Found atlas %s" % atlas_name)

                    properties_itor = properties_itor.get_pointer(b'next')

BlendFileBlock.get(...) and BlendFileBlock.get_pointer(...) both have an optional base_index parameter which is gets you exactly this.

May this be of use to someone else out there :)

Happy blending! :D


Texture-Coordinates Normals -> Mapping-Node doesn't work as expected

It looks fine to me..

However I like to use a separate RGB node to separate out the Z part of the normal for this kind of effect.

If you connect the normal output of the texture coordinate node straight into the color input of a an emission shader, you'll see that there that the three "channels" (X,Y,Z) get mapped to RGB. So faces pointing towards positive Z are blue, positive Y green, and positive X red. (faces pointing in between will be additive combinations of those colors, such as pink, yellow, white, etc.)

If you separate out the blue component, you are left with a map of faces pointing upwards (along the Z):

By feeding that into a color ramp node to fine-tune the blending, then using that to mix between shaders/textures as in the tutorial, you get a result like this:

In the above screenshot I also applied the scale and add some loopcuts to the terrain object to make the mesh density more even, reducing the "stretched" look.


Just found it out myself: The curve was not looping.

Move the object so that the error is clearly visible.
Select curve, go into edit mode.
Find the segment where the array modifier quits the curve.
There, look for the ending of the curve (The segment is not attached to its beginning) and select it.
Tool shelf, "Toggle Cyclic".


It looks like you have too many IK constraints on your legs and arms. You should have just on per leg or arm (on the shin or forearm bones) and then set the targets to the foot or hand, and the chain length to the number of bones in the leg arm. To avoid bending on the twist bones at the top of each arm/leg, you will need to adjust the settings to lock particular axes on the bone ik panel in pose mode.

See https://www.blender.org/manual/rigging/armatures/posing/bone_constraints/inverse_kinematics/introduction.html


Yes.

Keyframe the rotation on the axis you like.
For example

Object mode, select object,
select frame 0, insert keyframe rotation
select frame 40, rotate z 180, insert keyframe rotation
select frame 80, rotate z 180, insert keyframe rotation
play the animation frames  0-80 and witness the revolution
improve the animation

If you need a video tutorial please state so in the comments.


fur in falling softbody simulation not coming with the object

Change the order of your modifiers.
First soft body.
like this:

UPDATE: answer to your 2nd question:
yes you can, check hair dynamics


How to create a button for wind in Blender

I would go with drivers for the relation button ↔ snow, with and force fields for the wind effect. Create your button object, and make it drive the properties of your wind.


How to get automatic keyframing to work with the VSE Transform tool add-on?

I know this is an old post, but anyone else looking for this should know that I have fixed this feature and a number of other problems in my fork of VSE_Transform_Tools.


How do I change the default output file format and location

You can set the settings however you like and then press Ctrl+U to save de default blender scene.

Next time you open blender or start a new project your saved preferences will be as you like.

And yes, there is a good reason why you want to render as images first and then encode as video later:

If you render as video and something goes wrong you will have to start over, as opposed as having to render only the missing frames on an image sequence.
Rendering directly as video can tie up your machine for a very long time, with no real way to stop and re-start the render process.
Other reason to use image sequences is that you can then experiment with different video encoding settings, and compression schemes, and data rates without having to start from scratch.

Render directly to video only to assess the progress, pacing and problems with the animation project, rendering a small or low res as a video file will allow you to evaluate animations in real time.

As for the .png being the default format... well... there is an interesting discussion on this link:

Why is the default image format for saving renders is in PNG?


First you want to unwrap your pot, which you said you already have.
Next you want to make sure that you either have sufficient subdivisions or add a subd modifier at the top of the stack so the displacement modifier has enough geo to actually displace.

Add the displace modifier, go to the Texture Properties tab and select Image or Movie as the Type and load the image you posted.

Back on the modifier tab, set the Texture Coordinates to UV, the UV Map to the map you made above and adjust the strength as you see fit.


Python - Baking vertices position for a frame range

Ok, unfortunately @Jerryno solution didn't work so I ended up trying something else.
I successfully made it wok by triggering the animation with bpy.ops.screen.animation_play() in the __init__ function, then doing my action in the modal function and finally stop the animation when 'ESC' is entered or the action is finished (in the __del__ function).

The handler is added in an invoke function running modal.


Hey I'm not quite sure what you mean, a photo would be helpful but if you accidentally exited 3D View you can select 3D View mode back from the mode select panel on the top left.


How do I change how bright it is when sculpting?

do not sculpt in render view.. if not using just change mat caps :) and in material view, u can change the strength of hdri in the same  mat cap window hope it's help


Ah! I tried ctrl-spacebar, which had no effect, but then accidentally tapped the alt key (yes, clumsy of me, I was trying to do this while holding a cup of tea), and the original view came back.

So the answer is, 3-key combination: Ctrl - Alt - Space bar.
This toggles 'full screen' for whatever view the mouse is hovering over.

Thanks moonbots!


can't figure out why part of UV map is stretching

Your topology is messy, when you unwrap Blender has no choice but to connect the faces, which gives stretched UVs. If we take a look at the corner we first see that the vertices are not connected, the face continues inwards:

Delete it, then you see that this edge floats:

Delete as well and cut again with the knife:

Now delete the face on the left and see, you have inner faces, delete them:

Now fill the hole:

Now unwrap again and your issue has disappeared:

There may be some other issues in your topology though, make sure that you don't have other inner faces, floating edges, etc... Another way to fix your UV problem quickly would have been to select one of the faces, then press ShiftG > Select Similar Normal to select all the faces of this wall, switch to side view and U > Project From View, but it would have left all the topology issues:


How to show accidentally hidden menu bar?

You probably Maximized the active window.

To go back, try hovering your cursor over the Main 3D view, and type in the following key combination:

Shift + Spacebar


I believe you are after this shading effect:

It is possible with some vector math on normals. The goal is to change normals to be pointing towards camera, but the Incoming output from Geometry node will override all normals equally, ignoring in which direction the curve is heading. Luckily we can determine the local vector of the tube's direction:

Can I color a curve in Cycles by the direction it's running?

The rest is a matter of 2 vector cross products to get a vector incoming to camera but also orthogonal to the curve's direction:

If you want to do this on meshes, you will have to write your own OSL shader.


Why does a plane with an image texture show as black in Cycles?

Add some Texture Coordinates! Generated works out of the box, and UV is even better. All pretty standard stuff. :)


In your case, I think you want to parent the smaller objects to the main objects.  This would be done by shift-selecting the smaller objects then finally selecting the larger object.  Finally, press Ctrl-P and select Object.  The objects with the red-orange outline will be parented to the object with the orange outline.  This means that their movement is now relative to their parent object.  You can find documentation of this behavior here in the blender manual.


go to security and privacy and click on general then click on open anyway


Either one of them. This are the 2 most used game engines and Blender can easily export mesh, textures, animations, for each one of them.


Beginner sculpting. I pressed Control + Shift + LMB

The black areas are masked.

  Masks are used to "protect" parts of the model from being edited by the sculpting tools. They appear as darkened areas of the mesh. The darker a masked area is, the less effect sculpting on it will have. Masks can be edited with the mask brush, as well as cleared or inverted accross the entire model. The masking feature is active as soon as sculpt mode is entered; there is no separate toggle.

Also see this: Button or menu entry to clear the sculpting mask?

The dotted red line is something different, you probably defined a render rectangle, and Ctrl-Alt-B should remove it. Also see this: Render just part of a final image from Cycles?


How to prevent unused cameras from playing their animations?

A camera itself doesn't play an animation, only the active camera determines what is visible in the rendered animation.

You could ignore the other (inactive) camera it wouldn't be visible in the rendering if it disturbs in the viewport.

Besides simply switching it to invisible in the outliner (as you already described) you could move each camera with its path to another layer. M layer# (0-9)

Assuming all scene data is on layer 1

Layer 1 Scene objects
Layer 2 Camera1 and Path1
Layer 3 Camera2 and Path2

Another possibility would be create different scenes but this would be harder to maintain.


Which external renderer should I use for architectural visualization?

You would choose a raytracer that has features that are required for architecture projects.

An example is YafaRay. YafaRay supports features like Global Illumination and Background Illumination which are specifically useful for architecture visualization.

Cycles has Global Illumination (since a few years ago) and I am not sure that it has as good Background Illumination as YafaRay.

YafaRay is distributed with an open license and you can use for free. It is designed to be used with Blender.


The easiest way is to use the 'Bridge Edge Loops' tool in the specials menu, accessed by W.

Select the edges around your holes on both sides of the mesh (click to select an edge whilst holding Alt to select edge loops).
Open the specials menu W.
Select "Bridge Edge Loops" and you should end up with the result you desire.

Alternatively, you could simply use a boolean modifier with a cylinder. This will automatically create the internal faces.


Keying visibility of object collections with single property in 2.8?

You could make a link to object animation data.
First step: Keyframe single object visibility
Select one object and in Object Properties under Visibility keyframe property Show in Viewports. This can be done by hovering cursor over the checkbox and pressing i . Keyframe will be placed in your timeline to current frame. For example you can keyframe object visible at frame 0 by checking the checkbox and keyframing it and make it disappear at frame 100 by unchecking the checkbox and keyframing it.
Second step: Link other objects animation data
Select all the objects you want to keyframe and last select the object that was already keyframed. Press Ctrl + L  and select Animation Data. Now all selected objects will appear and disappear at the same frame.


How should I handle a large number of objects?

Blender supports Object Color to override the Material RGB Diffuse.

Object properties, set a color there (also possible via Python)
Link all Objects/Meshes with a single Material, with option Object Color set.


Fill a mesh of edges without adding new edges or creating non-manifold geometry

You can use the Fill Holes command for this.

In Edit Mode, select your mesh (Select > All)
Go Mesh > Clean Up > Fill Holes
Done


That's happening because using u UV Mapping->Unwrap works best if you treat the UV Islands as if they are made out of paper.  Paper doesn't stretch so if the UV Island you are trying to create would tear if you tried to make that shape with paper then it will also distort when you try to unwrap that shape in Blender.

PGmath is correct in that you should define seams for the model.(Or use 'Smart UV Project' which is usually very messy for complex shapes :(

Activate Edge Selection mode using the header button or by pressing Ctrl+Tab then select the second entry on the popup menu which is Edge.

Now select an edge and press Ctrl+e and look down the list for 'Mark Seam' the selected edge will now be highlighted in red.  Now when you use Unwrap, that marked edge will form one of the edges in the UV map coordinates.

After unwrapping, I selected all the UV Islands and Pressed Ctrl+p 'Pack Islands' to re-align them.  There is an option to Rotate the Islands which can be unchecked.

Here's the .blend so you can have a closer look at the seam placement.

http://www.pasteall.org/blend/34450


Recreating the line detail in shadows from The Wolf Among Us in blender?

This won't take care of all the effects you're looking for, but you'd be able to get some of the pattern to show up in darkness by the material shadeless.  That won't create the effect you point out in the shadows on the floor, but it would work for the pattern on the wall.


Scene with multiple objects - Is it possible to export everything as a single object, but maintain multiple objects in the outliner?

Historically, I like to make two files. A working file for editing and a flattened or joined file, saving over or making a new copy of the joined file each time I edit the working file. It stays quite organized with proper naming conventions. I am not aware of another way to accomplish what you are asking.


You need to be in object mode to duplicate an object (as a separate object). In edit mode it will duplicate your selection IN the same object.


You can select the vertices you don't want to edit and hide them (H), then perform the edit, then unhide all (Alt H).


The themes are saved as an XML file under scripts/presets/interface_theme. You can manually navigate to there and grab the XML files.

Installing a theme is easier, you can use the install Theme... button in user preference panel.


Rip tool not considering the mouse direction

Rip depends on your mouse position. So if you want to rip off other side, you should place your cursor on the right side of your edge.
Example:


Cycles is not shown in the render engine list

Perhaps you deleted the cycles render engine add on in preferences. If so I would recommend just redownloading blender from blender.org


How to generate realistic shadows on a shadowcatcher of a single object at a low elevation angle?

Answering the question from ZargulTheWizard's comments - since the sun lamp and camera were in the same location, no shadow with perfectly crisp edges would be visible to the camera. To get the shadow images from the specific angle like I wanted, I left the lamp at the specific angle to create the shadow and then moved the camera directly overhead (0, 0, height) the object to capture the "stretched out" shadow effect.
Again thank you so much everyone for your help!


That sample looks like a creative use of removing of an I frame in the stream.

Not sure how familiar you are with video encodes, but a stream is frequently comprised of I, P, and B frames. I frames are intra frames, or whole pictures, P frames are predictive, and B frames are bi-predictive.

Only I frames are whole images, with P and B frames being partial image chunks that move according to the pixel vectors in the encoded file. That is, the encoded file compression calculated what direction the pixels were travelling in, and uses those smaller chunks to save space by moving smaller portions of the image around instead of using a whole frame. Over time, smaller pieces might be updated because they have changed significantly from the original I frame.

When we strip out the I frames, we end up with the motion vectors telling the decoder to move the same area of the image. However, without the I frame, it is moving chunks of the previous shot, as with your example. Slowly, over time, some of those pixel vectors are updated with newer image chunks, hence why the dog gradually appears.

How to replicate this in Blender is no trivial task. If you were to track the entire scene, using many hundreds of points, you could possibly achieve a similar effect by gradually transitioning portions of your image from the first shot to the second. That is, assuming you have shot A and shot B, you could use a tracked version of shot B to gradually transition in portions of shot B over time. Coupled with shot A being a simple subdivided plane, you could possibly shape deform it based on shot B's tracked points. If the tracked points used smaller, geometric shapes, slightly blurred, you have the basis for a general transition by fading in portions over time, until the entire image is replaced.

Shooting from the hip, but that is a loose approximation as to what the datamoshing trick does in your sample.


Make sure you have the right name
The operator is bpy.ops.object.make_links_data()  note it's object not plural.
The error.
>>> bpy.ops.objects.make_links_data()
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "/home/batfinger/blender-git/xxx/bin/2.91/scripts/modules/bpy/ops.py", line 202, in __call__
    ret = op_call(self.idname_py(), None, kw)
AttributeError: Calling operator "bpy.ops.objects.make_links_data" error, could not be found

No error.
>>> bpy.ops.object.make_links_data(type='ANIMATION')
{'FINISHED'}

The active object is the source the other selected objects the targets.
Set active object with python.
To sum up, to make links from "Cube" to cones "Cone", "Cone.001", "Cone.002" would
obj = context.scene.objects.get("Cube")
if obj:
    context.view_layer.objects.active = obj
    for o in ("Cone", "Cone.001", "Cone.002"):
        o.select_set(True)

    bpy.ops.object.make_links_data(type='ANIMATION')


How to discover default values of properties via python script?

To get all the default values of all properties defined on the context object.  Using the RNA (bl_rna) will apply to all objects in blender.

import bpy

context = bpy.context
obj = context.object

for prop in obj.bl_rna.properties:
    if hasattr(prop, "default"):
        default = prop.default
        print("%s (%s) default:" % (prop.identifier, prop.name), prop.default)
        # check arrays
        if getattr(prop, "is_array", False):
            default_array = [p for p in prop.default_array]
            print("default array", default_array)
            current_value = [p for p in getattr(obj, prop.identifier)]
            print("current value", current_value)
            print("is default value", current_value == default_array)

Also have a look at 2.78/scripts/modules/rna_xml.py  which creates xml from blender objects.


That issue is know as z-fighting. What that means is you have two 2d surfaces at exactly the same level, and the 'glitchy' effect is due to there being no indication of which face should be on top.

The solution to this depends on your end goal.

You can move the extruded vertices up on the z axis, however then your extruded vertices will no longer be at the same height as the original ones on the z axis.

The other option is to not extrude the vertices, and instead add a loop cut to the face ring you have. To do so, press Ctrl-R and hover over an edge. You will see a pink line appear where it will add a new edge loop. Left click to place the loop at the appropriate location, then either slide the loop to where you want it and left click again, or just right click to leave the loop in the middle of the two existing loops.


Did you try adding these edges (shown in red)?


Subdivision surface not working properly

in the Subdivision Surface modifier, the Render value is for the definitive render, the one you get when you press the Render button in the Properties panel > Render > Render, it is not for the Rendered display option you have on the dropdown menu of the horizontal menu bar of the 3D View, this one takes the View value into account. It's a bit confusing, yes.

Also, in Properties panel > Render > Sampling > Samples, you choose the final Render sampling value and the 3D view Preview sampling value. You generally don't work your 3D view with a value as high as the Render value because it would take too much time. But in Blender 2.8 you'll have Eevee which is quite fast.


This looks like an issue with the NVIDIA-Optimus powersaving technology, which is somewhat commonly found in laptops.
As the linux driver runs applications per default with the internal Intel graphics adapter, perfomance issues are to be expected.
Running blender with the prefix command prime-run, forces activation of the dedicated 3D adapter and should resolve the performance issues.


How is the Internal render engine different from Cycles when it comes to Normal map?

There is an error in your node setup:
Yours:

Correct:

Note that the normal value gets plugged into the normal option on the shader node, not into the displacement.


How do I make one bone that controls the entire rotation and movement of the armature? (or do I need to do that?)

Using object mode would achieve the same effect. You might need to animate the character in Unity. The position and rotation gets imported too. You could still use a parent object or an offset animation.
If you need bones you can try disabling the deform checkbox and creating a control for the rig with constraints.


How do I output to HDR10 Movie format in Blender?

While Blender supports rendering in wide-dynamic range (32bit float) scene-referred files, as of v2.90 Blender lacks the ability to save these in a format most HDR displays and video players will accept as input. You can save OpenEXR sequences from Blender to create a finished HDR video in other software such as DaVinci Resolve.
It is possible to export 16bit TIFFs from Blender that are already formatted for HLG or HDR10 PQ with the help of ACES by using one of the appropriate HDR ODTs such as "Rec. 2020 ST2084 1000 nits". For more information on ACES in Blender, see this question Using Blender with wider gamut than 709 primaries (like ACES) You will still need additional software to convert to a 10bit HEVC/VP9/AV1 video file and apply the relevant metadata so that players and TVs will recognize it properly. This can be done with FFMPEG however instead of needing something like Resolve, or by using one of the many frontends for FFMPEG. Note that many more common FFMPEG frontends (such as Handbrake) do not support 10bit encoding or adding the HDR10/HLG metadata. Staxrip and Hybrid are examples of frontends that can do the job.
Encoding Dolby Vision is significantly more complicated and building the final playback file requires some special tools and licenses that most people do not have access to.


How to achieve this kind of custom brush in Blender?

Following the suggestion in the previous answers, I made the brush to work closing to the ZBrush.

I used a SculpDraw with a custom Texture and Rake activated.

Stroke Method to Space and set the space to 30%, in this case.

I tested in a double subdivided cube and I used a Multiresolution modifier with a value of 6.

Unfortunately, it does not work well on too close curves, but I think it's a good start.

Also, I'm providing a screenshot of my Blender setup.

Just in case, I'm using the 2.79b version.


Foreign text in Blender isn't processed correctly

Interface
The wiki page on Blender Internationalization shows how to set your preferred language

3D

You can enter foreign languages with alternative symbols (like a cyrillic alphabet). You must pick a font that supports the extended character set. The default Bfont does not have many extended characters, that's why you aren't seeing them. You can read more about support for fonts on the Modeling/Text wiki page

3D using the Text Editor


When I move one bone everething of objects moves. | Blender

Select your mesh and in the Viewport Overlays panel, enable the Face Orientation option, you'll see that the normals are flipped (they are red). In Edit mode, select all and press AltN > Recalculate Outside, then parent again:


Change sequencer image strip filename through python

The Sequencer Strip has a name property, which is assigned by the user in Blender. It also has an SequenceElement list which contains all "file" elements of that strip. (Especially with image sequences you have multiple files.) We need to access the SequenceElements filename property. Image strips only have a single SequenceElement which will be indiced with 0.

The correct code is:

import bpy

for scene in bpy.data.scenes:
    if scene.sequence_editor is not None:
        strip = scene.sequence_editor.sequences_all
        if strip is not None:
            for obj in strip:
                if obj.type == 'IMAGE':
                    obj.name = "ok"
                    obj.elements[0].filename = "ok.png"


You can't do this directly in the 3D scene as far as I know. You are probably looking for a "Shadow Catcher" type of material, but this is currently not supported in Blender Cycles yet. There are plans to add it in the future but nothing that works currently.

The only way I know to achieve this currently, is in post production through compositing, using the image you show as a mask to mix it over another image in the Blender Compositor
Use it as an inverted mask where dark areas are more opaque as opposed to white areas being more transparent as shown bellow.


Twisted IK handles. mesh is twisted. what am I doing wrong?

Instead of giving a Copy Rotation constraint to your feet, you could parent them to the IK controllers in Edit mode. But if you want to keep the Copy Rotation for some reason, choose the Z axis and Space > Local Space/Local Space.

In Edit mode, bend the knees a bit forward so that Blender knows in what direction to bend them.

In Pose mode, select the lower legs and in the IK constraint, change their Angle to 180°.

I'm not sure about the spine orientation, it would probably be better if you switched the bones direction, they should point upwards.

It's better to create a root bone, parent the first spine, the controller and the target bones to it.


Save Cycles Materials as Open Shading Language file

Currently this is not possible.

Gladly Blender is OpenSource and all OSL files for OSL supported nodes can be found in the git repo https://git.blender.org/gitweb/gitweb.cgi/blender.git/tree/HEAD:/intern/cycles/kernel/shaders

There are some nodes that are Cycles specific and will not be able to run correctly in other software packages as needed variables/context might not exists in those packages or named differently.

But it should be possible to create an overall function for your Material to simulate a Cycles material graph to a certain extend.


How can I create sets of orthogonal rings on a sphere that I can extrude inward?

Use Booleans

I can't think of a topology that has the loops that you describe ready to work with.
So, depending on your project needs, I would advice to try other ways of modeling your object.

For example you could take advantage of booleans in the exact way you described.

In the main object extrude inwards the edgeloops of a sphere, then duplicate and separate those faces in another object.

Rotate the object on the Y axis by 90°, re-extrude the faces to build a watertight mesh and use it as target for a Boolean modifier to carve the grooves in the other direction while maintaining a certain degree of felexibilty in the modeling

Final result:


Creating a curve from selected edge and extruding?

Why don't you make the drawers separate meshes? It's more logical and it will facilitate your work. Also, rather than converting curve to mesh, you should just draw the 3D profile with edge loops, then extrude, then bevel, etc...


Apply *Relative* Shape Key to another mesh?

Shapekeys save relative movements. You can test this by adding a shapekey then altering the mesh and seeing how the shapekey effects the mesh.

A simple shapekey movement - up four across five

After moving the original corner the shapekey moves up four and across five from the new starting position.


Why does object grab attach to another object

You have snapping turned on in the screenshot. How does it act when you turn it off? It is the horseshoe magnet at the top of the screen if you don't know


The following script calculates the clip start, end and dof distance locations and visualizes them in the viewport (like the Limits option for cameras), the rotation mode does not matter:

import bpy
import bgl
from mathutils import Vector
from mathutils.geometry import intersect_point_line

def is_camera(ob):
    return ob is not None and ob.type == 'CAMERA'

def draw_callback_px(self, context):

    sce = context.scene

    if is_camera(context.object):
        cam_ob = context.object
    elif is_camera(sce.camera):
        cam_ob = sce.camera
    else:
        return

    mat = cam_ob.matrix_world
    cam = cam_ob.data
    start = mat * Vector((0, 0, -cam.clip_start))
    end = mat * Vector((0, 0, -cam.clip_end))
    if cam.dof_object is None:
        dof_loc = mat * Vector((0, 0, -cam.dof_distance))
    else:
        pt = cam.dof_object.matrix_world.translation
        line_p1 = mat.translation
        line_p2 = mat * Vector((0, 0, -1))
        loc = intersect_point_line(pt, line_p1, line_p2)
        dof_loc = loc[0]

    # 80% alpha, 2 pixel width line
    bgl.glEnable(bgl.GL_BLEND)
    bgl.glLineWidth(2)

    #sce.cursor_location = dof_loc

    def line(color, start, end):
        bgl.glColor4f(*color)
        bgl.glBegin(bgl.GL_LINES)
        bgl.glVertex3f(*start)
        bgl.glVertex3f(*end)
        bgl.glEnd()

    line((1.0, 0.0, 0.0, 0.8), start, dof_loc)
    line((0.0, 0.0, 1.0, 0.8), dof_loc, end)

    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)
    bgl.glColor4f(0.0, 0.0, 0.0, 1.0)

class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"

    def modal(self, context, event):
        context.area.tag_redraw()

        if event.type == 'ESC':
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        if context.area.type == 'VIEW_3D':
            # the arguments we pass the the callback
            args = (self, context)
            # Add the region OpenGL drawing callback
            # draw in view space with 'POST_VIEW' and 'PRE_VIEW'
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_VIEW')

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "View3D not found, cannot run operator")
            return {'CANCELLED'}

def register():
    bpy.utils.register_class(ModalDrawOperator)

def unregister():
    bpy.utils.unregister_class(ModalDrawOperator)

if __name__ == "__main__":
    register()

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        bpy.ops.view3d.modal_operator({'area': area}, 'INVOKE_DEFAULT')
        break


How can render a video skipping frames based on any arbitrary rule?

I think it should work like this

import bpy
#configure the startframe, endframe and the step size
render_list = [
#startframe, stopframe, step
[0, 50, 1] # Frame 0 to 50 with stepsize 1
[50, 100, 2] # Frame 50 to 100 with stepsize 2
]
for config in render_list:
     bpy.context.scene.frame_start = config[0]
     bpy.context.scene.frame_end = config[1]
     bpy.context.scene.frame_step = config[2]
     bpy.ops.render.render(animation = True) #execute animation with current settings


I can't open Blender 2.8 files after I save them. Because it tries to open with 2.79

You don't need to delete anything.
Just open blender 2.8, in the top menu select File > Open and open the file created in 2.8

If you want to permanently open all *.blend files with 2.8 you would need to modify your operating system's default applications (do a search online for that. Customizing the operating system is not a topic for this site).


How do I Auto-Keyrame ONLY changed values?

Strictly spoken this is not possible. However, you can at least avoid channels being auto-keyed that do not have a keyframe on them yet.

So first, as suggested by josh, insert a single keyframe on a channel you'd like to animate, say Location Z. Then you need to switch the Active Keying Set to Available, and next to the Auto Keyframing dropdown enable the little button to the right with the keys:

Then only the available channel will be keyed, not all three of them. If however you also have a single keyframe on the rotation, that channel will also receive a keyframe, regardless of the value having changed or not.

The Graph Editor also offers a function that will remove any non-value-change keyframes using a threshold, Clean Keyframes. This way you can quickly get rid of duplicates and duplicates of same keyframes on channels, or even channels that did in fact never change their value using the Clean Channels operator:


It happens because one or several bones are influencing this part of your mesh when they should not.
Select the armature in Pose mode, shift select the object, switch to Weight Paint mode, select the bone called Chest, you'll see that its vertex group contains vertices that are part of the arm:

So in the N panel, choose Blend > Subtract in order to remove these vertices from this group and it will work fine:

You could also shelect these vertices in Edit mode, go in the Properties panel > Object Data > Vertex Groups list, in the dropdown menu on the right of the list select Remove From All Groups, then assign to the group called Arm_L only.


Final video is faster than what I see in the viewport

I would never trust playback in blender to be a representation of anything resembling real-time. It really depends on how powerful your computer is. For the most part, preview in the 3d viewport it is usually slower unless you are visualizing on a very simplified mode, like Bunding Box, maybe wireframe and with low settings on modifiers or anything that can help your computer cope with the demands of the scene. If the speed looks fast when you play using frame dropping i probably means that the animation might indeed need to be slowed down. When using Frame Dropping the computer is trying to target the desired frame rate by not generating all of the frames in the animation. To do tests renders use OpenGL rendering (as suggested by @moonboots) It will give you a better sense of what your animation looks like in real-time.

You can of course change the final output's speed by altering the Time-Remapping See: How can I modify the frame rate without changing the overall animation speed?


To do this, enable dynamic topology in sculpting mode, which will increase the subdivison level based on the dyntopo settings on whatever section you are sculpting on. Then, if you set the brush strength to zero, it will increase the topology while having no additional effect.


Can I use Project from view while having several images for different sides?

What Ian Hubert does is a bit punky, but as his characters are far away it works fine. Basically I think he projects his mesh from view, then moves the vertices in the UV Editor so that the UV matches as much as possible with the picture:

Then, for the sides and back, he probably unwrap this faces and put the UV islands over a part of the picture that will texture correctly this part of the body:

At the end, if you plan to paint in Weight Paint mode to bring some corrections to the projected texture, duplicate your object, unwrap again, but this time with the Smart UV Project option (with a enough margin), give it a black image texture, bake the original. Now you can paint over the new object, for example with the Clone brush, without affecting the original picture, which could cause problems because overlapping UVs:


Object not zeroing out to the center of the grid

You have set delta location in the Delta Transform rollout which is now adding transforms to the current location.

Reset it back to 0 for all the options and origin point will be moving to 0 once location applied. This can be done either manually or via Ctrl+A menu > Location To Deltas after you snapped selection to cursor (which should be in the desired location already, center in this case).


Vertex normals incorrect, but face normals look correct?

Those are probably custom normal data imported from 3Ds MAX

Try the Clear Custom Split Normals Data button in the Properties Window > Object Data Tab > Geometry Data Panel (It will only be visible if there is any actual custom normal data stored)


Is there a way of letting hair particles "grow"?

Unfortunately, the scale of particles cannot be animated, but there is a simple work around: animate the scale of the objects that are being distributed by the particle system.


I want to make the year '2020' out of coronavirus cells... how can I do it?

You can do this with Text and a Particle System.
Start by adding text, and converting it to a mesh:

Extrude the mesh a bit in edit mode, then go back to Object Mode and add a Particle System Modifier.

In the particle settings, choose "Hair", and down under render, choose "object" and select your "cell" from where it says "instanced object" (I used an ico-sphere to represent your "cell").

You can change the scale/rotation/etc.. in the particle settings panel. You can also choose to show the "emitter text" or not (note that there are 2 different "show emitter" boxes - one for the viewport and one for the render).
This last step is optional - you can see that the mesh made by the conversion from text contains some ugly topology. You can "clean it up" rather easily by using a Decimate Modifier set to "planar".


It doesn't matter if you choose Germany or Netherlands as both are right next to each other but US is far further away if you live in the UK. As far as I know there is no major difference in speed when using the Netherland mirror 1 or 2. MSI is the installer and the zip has the actual program in it thus using the zip will mean that the Blender won't show up in your program files.


Grass grows through the floor of my building

I am guessing you are using a hair particle system for your grass. If so: Use a vertex group and weight painting to control placement of grass (and its length, if you want; see : Increase Intensity of Vertex Group ).

In edit mode, subdivide the mesh on which the grass is placed, select the mesh squares outside of the house and assign them to a vertex group. You can control the placement even more if you then switch to weight paint mode.

This use the vertex group control in your particle system to place the grass only in the vert'ed areas.

You'll end up with something like this, but prettier):

Also related, particularly about finer placement of hairs:

How do I make hair particles appear on top of the emitter and not through it?

Hair renders from regions outside vertex group


Why isn't hair particles density updating with the vertex group?

Good question! This seems to be a bug in Blender, because if I add interpolated children (like in the video), then the weight painting has immediate effect, but without interpolated children (probably you tried without children or with simple children) it doesn't.

If nobody has a better answer than me, I suggest that you report a bug in the Blender bug tracker.


It looks like you want the Extrude menu (AltE).

For example 1:

There are several ways to activate the Extrude region operator:

Press E
Press AltE for the Extrude menu and select it
Press the button in 3D view > Tool shelf (N) > Tools > Mesh tools > Add > Extrude Region

For example 2:

There are two ways to get this result:

Press AltE and select Region (Vertex normals)
Select Extrude region (Vertex Normals) from the extrude drop down at the top of the Add section in the Tool Shelf

You can also two operators to get the same result:

Press E (Extrude), Esc (confirm extrude, cancel transform) and then Alt+S (Scale along normals).

For example 3:

There are a couple ways to activate the Extrude Individual operator:

Press Alt+E > Extrude individual faces.
Press the button in 3D view > Tool shelf (N) > Tools > Mesh tools > Add > Extrude Individual

Local orientation

Note that in blender, the Local orientation is based on the rotation of the object. The above methods use the normals of the extruded geometry, however if you want to extrude along the objects' local orientation you must do something slightly different:

Set the transform orientation to Local in 3D view > Header:

With the geometry you want to extrude selected, press E and then Esc to cancel the transform. If you are in face select mode you will notice you can see the indicators for faces where the new faces have been created:

Press SShiftZShiftZ and move the mouse:

Shift locks the axis that is specified, so if the other key pressed is Z, it will scale only on the X and Y axes.

Pressing ShiftZ twice ensures that the objects' local orientation is being used. Global orientation is always used by default (first keypress), and then the orientation specified in the header is used after the same axis constraints are specified again (second keypress).

Note that you can also use this technique for extruding along the Normals the same as the first methods, just select Normal as the orientation in the header instead of Local.


Starting with a landscape.

Place a plane where your water should be.

(It doesn't have to be that big I just made it big for clarity, all you need is the plane to be as big as the water surface.)

In Edit Mode subdivide the plane.

Add a subdivision Surface modifier and a Displace modifier.

In the display modifier select Texture. (A new one will be created if there are none)

Assign the texture to be used as displacement. I used a wood Texture, but it's up to you how you want the water to flow.

Play with the Strength settings to get the right height for the displacement.

To animate the displacement.

Create an Empty and add a couple of keyframes for the motion.

On the displace modifier set the Texture coordinates as Object
and Assign the Empty as the object.


How do I fix the Problem With Half my Object disappearing?

Most likely the face normals are facing the wrong way. Select the object that produces error, go into edit mode, select all with A and recalculate normals with CTRL+N.


In Blender you can begin to grab either using the right mouse button or the G key.

After that you can move the wanted vertices, but if during this movement you hit G again, the movement is limited to the edges connected to the displaced vertex.

In complement, that can be used with more than one vertex, here are some behaviors :


How do I prevent cloth from being blown through an object?

I add an answer to be able to post my example (as I intended yours) that seems to work, and I guess does what you wish:

As said I pretty much used default values for all, except wind force...
Of course I have an example, very simple, setup but this may give you an Idea of what's not working. Maybe you can provide a better example for us to check?

And here you have the file to experiment, hth:


Difference between instance object and object in dependency graph

The difference between a copied object and an instance is that the copied object is a separate entity that can have its properties, materials, modifiers etc. adjusted without affecting the object it was copied from. Instances of an object are practically identical except for their location, scale and rotation. Changes to the object affect all instances of it. For example a particle system that uses Render As: Object creates instances of an object for every generated particle.

The following ways exist to create instances of objects:

Particles based on objects
Creating collection instances
Instancing of a child object at vertices of the parent
Instancing of a child object at faces of the parent

You can test this yourself by running the following script in the Scripting workspace. It will print the instances and objects that are present in the scene.

import bpy

depsgraph = bpy.context.evaluated_depsgraph_get()
for dup in depsgraph.object_instances:
    if dup.is_instance:  # Real dupli instance
        obj = dup.instance_object
        print(f"Instance: {obj.name}")
    else:  # Usual object
        obj = dup.object
        print(f"Object: {obj.name}")
print("---")

More information about this topic can be found in the manual.


You are in solid viewport shading mode.

Look at the header of the 3D View and locate the four spheres. There you can change the viewport shading mode.

When you are in Solid shading mode, the color in the 3D viewport is from the materials Viewport Display > Color. When you are not using nodes (as with your red cube), then the material's Base Color is the same as the Viewport Display > Color.

However, when you activate nodes, the rendering settings (defined in the nodes) and the Viewport Display settings are not synchronized anymore.

To preview the material settings and material nodes, switch the viewport to material preview by clicking on the third sphere in the header of the 3D viewport.


How can I check the chosen preset in Python?

That's not possible in Blender's current preset system implementation.

Plain preset execution operator, script.execute_preset, merely executes the script file corresponding to selected preset and changes the menu title temporarily. It doesn't store nor provide access to preset selection info. I needed this feature once, and had to subclass the operator myself to get it.

Yes, you can only check specific values modified by the preset's script file.


You should begin with the circle arc, then extrude up, down and inwards. When you'll have finished, use a texture to create the stones.


Right Clicking Deforms instead of moving points?

It sounds like you have proportional editing on.

Try hitting O (NOT zero) on your keyboard and try again.


How to get rid of an already applied solidify modifer

Providing the inner and outer surfaces are not connected you can select one of the vertices on the inner surface and use the Select/Grow option (Ctrl+Numpad +) to grow that selection to include the whole of the inner surface and then delete (X).

In your example you'll need to manually select and delete vertices along the edge where the inner connects to the outer first.


How can I effitiently pack texture according to existing UV?

I'm not sure you will gain something keeping your current UV, you will have a hard time getting accurate and precise texel density & texture details on your mesh.
Using orthographic projections like that is not that effective, at least not on organic shapes and not with some help from other projections and other techniques.
I'd suggest you use your current technique only as a way to quickly build a final texture that correctly wrap around your mesh with no waste.
A simple way to do that is simply to bake your current projected-from-front texture into another texture that's based on a more correct UV map.
Assuming you start with such a scenario, with your mesh, unwraped by projection, with a simple material like a sole emission shader with your texture plugged in:

Head to the Properties editor > Object Data tab > UV Maps panel > click the + icon to create a new UV map and give it a nice name.

With that new UV map selected, make you new unwrap to your needs. Using auto UVs unwrap methods or manual unwrap, or both, ... as you wish.

In the shader editor, add a UV Map node and a new Image Texture node. Plug the UV Map output in your new Image Texture node, ans select your new UV map in the UV Map node. That's what will enable your new texture to use that specific UV Map instead of the default one. Then use the Image Texture node's New button to create the new texture in which we will bake.

Make sure you keep that image texture node selected, and only that one. That's how the baking will know in which texture to bake.
In the render settings, set the render engine to cycles. Then in the Bake panel, if you plugged your color texture in an emission shader as I did, set the bake type to Emit. Otherwise, you would probably need to set it to Diffuse and check only the Color influence. Also play with the margin value, the baking will overflow your uv islands a little to avoid empty pixel parts, but if you est it too big it will overflow on other islands.

Hit the Bake button, it will bake your first UV map's result into your second uv map. Once done, you will have your new texture that uses your UV space as you want:

Then you can replace the texture in your shader.
Be aware that when you have multiple UV maps on a mesh, only the one with the camera icon can be used in your shaders without manually specifying it via a UV Map node. So if you don't want this, check the camera icon on the new UV Map to set it as default, or even delete the other UV Maps if you don't need them.


Need some feedback for eyelid modeling/ topology

You probably need to create a topology more like this one:

So that when you rig with rows of bones, you can more easily fold the eyelid this way:


Camera couldn't rotate along a spiral path

For the file with the spiral, disable the Follow Path constraint's "Fixed Position"* option and click on the Animate Path button:

If you want to go from top to bottom, select your spiral, switch to Edit mode, as you can see if you display the normals they go from bottom to top, so select all and right click > Switch Direction.


Use this button to toggle gizmos off and on.

You can choose the kind of manipulator you want to enable:

Note that the gizmo will show at the origin of the selected object. For multiple objects the gizmo will show at the median.
To move rotate and scale, a different kind of gizmo will appear depending on the chosen tool.


Emission Material should not emit light (Cycles)

You can enable the emission only for the camera rays :

With camera ray filtering :

Without :


I think Maccesch meant that in the context of reflecting shaders.

Think of it this way:

In a diffuse+translucent material, you want the light transmitted through in addition to the light reflected off the surface.

Though you may want to darken the translucent node a bit to simulate absorption:

In a diffuse+glossy material, you want some of the light to be reflected specularly (glossy), and some to be reflected and scattered (diffuse).

Here "some"  can be conveniently defined by the factor of a mix node (which in this case is defined by the angle of the surface to the camera, via a fresnel node). Using this setup, at most you can reflect the same amount of light as received:

You don't want to reflect more light than what hits the surface, as easily happens with an add shader:

The exact difference between the two nodes is nicely covered in question you linked.


Not able to apply material to a Animation Node target

You have to unwrap your object.
When you don't unwrap your object and use UV coordinates in the texture coordinate node, Blender will make some assumptions about the material, which is why you see the generic looking color that you see.
Unwrap the plane to add a UVMap to the object, and that will solve the problem:


Use array values from a C++ program in blender

You can print your cpp values to the console and execute the app with python's subprocess module. Here is a simple cpp program that outputs random x,y,z values:

#include <iostream>     // std::cout
#include <vector>       // std::vector
#include <ctime>        // std::time
#include <cstdlib>      // std::rand, std::srand

int main () {

  std::vector<float> z(10);
  float x = 0.171;
  float y = 0.324;

  // iteration to store random numbers
  std::srand (static_cast <unsigned> (std::time(0)));
  for (std::vector<float>::iterator i = z.begin(); i != z.end(); i++){
    *i = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
  }

  // iteration to print x y z values
  for (std::vector<float>::iterator i = z.begin(); i != z.end(); i++){
    std::cout << (*i * x) << " " << (*i * y) << " " << *i << "\n";
  }

  return 0;
}

The output should be something like this:

0.170636 0.32331 0.997869
0.0806884 0.152883 0.471862
0.0141332 0.0267788 0.0826505
...

Get the values

Use Popen.communicate() to read the output and split the lines as you like:

import subprocess

# path to the app
app = '/home/user/Desktop/app'

# communicate can read the data:
out, err = subprocess.Popen(app, stdout=subprocess.PIPE).communicate()

#  split the string by line
out = out.splitlines()
print (out)

# create lists
xValues, yValues, zValues = [],[],[]

# append the values to to the lists
for line in out:
    line = line.strip()
    columns = line.split()
    xValues.append(float(columns[0]))
    yValues.append(float(columns[1]))
    zValues.append(float(columns[2]))

# print the values
print (zValues)

Creating keyframes

Iterate through the z values, set the start frame, offset value (optional)  and use keyframe_insert in order to create keyframes for the selected object(s):

# get selected object
obj = bpy.context.active_object

# animation start frame
start_frame = 1

# frame value
frame_number = start_frame

# keyframe offset
offset = 3

# iterate through z values and apply them
for i in zvalues:
    # set the frame
    bpy.context.scene.frame_set(frame_number)
    # set new location
    obj.location = (0,0,i)
    # insert keyframe
    obj.keyframe_insert(data_path="location", index=-1)
    # add offset value
    frame_number += offset

Adjusting the timeline

To adjust the timeline use bpy.data.actions to get a list of actions in the scene and assign the last key value to bpy.context.scene.frame_end:

# get all actions
action_list = [action.frame_range for action in bpy.data.actions]

# sort, remove doubles and create a set
keys = (sorted(set([item for sublist in action_list for item in sublist])))

# assign new start frame
bpy.context.scene.frame_start = start_frame

# assign new end frame
bpy.context.scene.frame_end = keys[-1]

For more details see this answer: How to find number of animated frames in a scene via python?

Result


Why "Save as" and "Export" is not working in my menu?

pie.operator_context = 'INVOKE_DEFAULT'

this line before the operator

pie.operator_context = 'EXEC_REGION_WIN'

and this line after will do it


Can I replace an object with another object and keep animation?

The best way to replace a "replace" button. :)

Create a proxy object that will be animated. Create as many ships as needed. naming them as object and mesh can be useful.

change the mesh of the proxy object with another ship.

The same animated object can be any ship you like with the same animation.

The resulting object is a linked duplicated, same as AltD. They share the same mesh. If you need an independant duplicate (same as ShiftD), press the button beside F (normally 2, counting objects sharing the same mesh) to make it a new object independent of the original. Use F button to give the mesh a fake user before changing it if you want it to be saved in the .blend even if no object use it (else it will disapear when you reload your .blend file).


I want to do -Back to the future- like flame stripes

Final:

Emitter:

For Emitter/Flow I've used two Planes with some Loop Cuts sized differently to have random fire width. Important thing is here real world scale. Both of them are 10m long and ~15cm width. Scale applied (!).

I've assigned Transparent material to them so they are not visible in render.

Domain:

Domain has pretty high Resolution along with Smoke High Resolution. Settings like below.

Material is simple, without smoke.

Wind:

Last part is Force Field > Wind with some Noise.

  If you need any specific explanation, please ask in comments.


Object doesnt look as it should in shading

Your normals are not consistent.

You can fix this (as Ramos suggested) by selecting all your vertices in edit mode and pressing ctrln. This will attempt to automatically determine which side of your mesh is "outside" and make all the normals point outward, instead of inward.

You can confirm that this is the case by entering edit mode and turning on visible normals in the 'numeric' panel to the right of the 3D viewport.

More from the Manual:

  To show the normals of the faces, you can open the Transform Panel, find the Mesh display tab, and click on the small cube without the orange dot. You can also change the height of the axis that points the direction of the normal. The default is 0.1 .

If this doesn't work, you probably have non-manifold geometry.
What is non-manifold geometry?


How to switch colors on Base Color Image Texture Node?

Material Nodes
For switching simple image you can try something like this ...

Compositor Nodes
But for your texture would be better use Compositor with some Matte nodes to extract colors more accurately (or use any other image editor that supports color selection).

Yellow-Braun

separate color by Matte node, Desaturate, Invert, ColorRamp to adjust final black color

Grey

separate color by Matte node, Invert, RGB Curves or Color Mix node to make it yellow

After that, mix them together with Alpha Over node on top of original image where are stored Blue Black and red parts of texture. Save and use as texture in material.
version 01

version 02

Notes:

To get more freedom in adjustments could be better assign material to different parts of the mesh as unique material (with the same textures). Like that you can easier to let rid of yellow lines on black surfaces just without need to mask texture since material is assign just to that part and not the others.

Anyway I highly recommend to use some image editor than node system. In Photoshop could be done with masked yellow-braun layer, and grey layer, recolored above original, just in a few minutes. Only two layers, each with just two adjustment layers. And easily adjust mask manually for some details if needed.


How can I make duplicates of an object using empties as placeholders?

First select the cube and create a group Ctrl + G

Then select all your empties and go to the Properties Panel > Object > Duplication click Group and then choose the newly created group from the dropdown.

If you have selected more than one empty, hit Ctrl + L with all of them selected and click on DupliGroup to have the Group property copied to all of them.


The curve has start and end with no direct indices. Set current frame to zero, then select followed object and a curve as active, then Set Parent To > Follow Path, you will see a dotted line pointing to start of curve and move object to it. If Curve direction is wrong use Edit Mode > Segments > Switch Direction. Curve origin doesn't matter.

By default animation adjusted to 100 frames starting from zero. You can tune Curve Path Animation in Object Data tab.

Result in 60 frames.


Knife Project is a possibility.. (Illustrated with X across, Y up)..

EX  extrude a long edge horizontally, Shift D duplicate, P part off into a new object.
X delete the original extrusion, X delete 'Faces Only' of the new object,  move up in Z, and tweak its X.
Header Menu > Mesh > Knife Project the grid down onto a couple of your segments:

Hide the grid...

Shift D R Z 60
the segments, and Shift R repeat,
Alt M > 'By Distance' merge double vertices.

or, work under a radial Array modifier, if you've got more symmetrical work to do.