Problems with Solidify Modifier and Model Shape I'm currently making a 3D model of a tray to 3D Print. Unfortunately, when I try to give it a thickness of 4mm using the solidify modifier, it will mess up the shape/diameter/other of the object.

Does anybody have any ideas on how to make it apply correctly? I've played around with the modifier a bit, and got it to apply the correct thickness without changing the diameter of the tray. But it still does not apply to the model correctly.

This is a screenshot of the tray without the modifier

This is the tray from underneath

This is the desired thickness of 4mm. As you can see it looks fine - that's because I still haven't applied the Modifier. I think the Subdivision surface modifier is messing it up.

When the modifier is applied...

It makes a very weird vertice pattern, not too sure where to start moving them.

File Link:

I checked the file, the subdivision surface modifier is first then the solidify modifier. Also there were some extra (double) vertices that messed up the modifiers.

Solution:

Deactivate all modifiers
Go in edit Mode and select all with A
Press Alt+M "by Distance" (should remove 12 vertices)
Move solidify modifier to top with the small arrow
Select the object and go in object mode to RMB and select smooth shade
Go in the "Object Data Properties Panel" the green upside down triangle
Unfold the "Normals" section and activate "Auto smooth" default value of 30 is fine
Smile

The surface now looking better, the thickness can be slightly reduced as the subD modifier works over it, so you can adjust it a bit by increasing the offset in the solidify modifier.

Also the offset of the solidify modifier is working based on the normals of the objects faces, which should normally face outwards.
Using a positive offset you make your object thicker then it was, negative offset it gains thickness inwards.

Your main problem with the subD modifier is though that you would need to have a control-loop at the bottom to ensure the form/thickness.

Here the file with a control-loop at the bottom.


Making hair go straight up instead of following the shape? So I'm making trees on a hill. But from what I know, trees grow straight up, and not at an angle. So how would you make the hair particles go straight up and not at an angle. Here's an example of the problem I'm having.

I would like the trees instead of going outwards, to go upwards.

How could you do this?

Enable Advanced and Rotation, then set the Initial Orientation to Global Z:

Note that you'll have to rotate your objects so they are facing either the +X or +Y direction instead of the +Z direction. See Why are the objects in my hair particle system not sitting on top of the ground?.

By using this technique the orientation of the particles is kept independent of their size, and you can add some random rotations via the Particle settings > Rotation > Random settings:

Adding such randomizations will help make repeated use of the same models less noticeable.


Compositor Blows out Image I am exporting into half EXR's with ACES_cg (would full help?)

But as you see in the second image the compositor output is blown out. But when I take a look at the EXR it is not blown out but still does not go over 1 why?

Can anybody explain to me why and how to fix it or is it just a limitation of Blender? And Thank you
Here are my Color managment settings:

This is my fault I messed up the compositing the denoise node was not set to HDR and flattened everything


Is it possible to export marker location over time? It seems that the motion tracking workspace is designed to be used to guide a 3D scene, but is it possible to export the position of one (or more) markers over time?

I just wanted to do the same thing: Export tracked marker locations in screen space for each frame. There is a Motion Tracking Export Plugin which seems to do that. Looking at its source code, the marker coordinates can be obtained in a few lines of Blender Python script:
import bpy

frameStart = bpy.context.scene.frame_start
frameEnd = bpy.context.scene.frame_end

clip = bpy.data.movieclips[0]
#videoWidth = clip.size[0]
#videoHeight = clip.size[1]
tracks = clip.tracking.tracks

for i in range(frameStart, frameEnd+1):
    firstTrack = tracks[0]
    #trackerName = firstTrack.name
    marker = firstTrack.markers.find_frame(i)
    x = marker.co.x # relative X coordinate between 0 and 1
    y = 1.0 - marker.co.y # flipped, relative Y coordinate between 0 and 1


In need of node displacement on z axis only I am working on a water shader, using nodes to displace the waves of an ocean. Here is the simplified version using a checker texture to visualize my problem.
Since I want to make a cross section of the ocean ( waves on top, and a smooth glass shader on the sides to see the inside ) I need the top of the plane of the cube to displace on the z axis only, while the sides adjust their height accordingly to touch the top plane. Is it possible, and how if it is, to stop X and Y from going outwards?
My Blender version is 2.83

The "Displacement" node displaces geometry along the local normal. If you want to push the geometry along a definite axis, you can use the "Vector Displacement" node and only populate the Z input field.
Don't forget to set the matrix to "World space" in the node though.


Create ghost character from a certain point in cloth simulation newbie here, so please be kind.  I tried googling and searching here for an answer but I think I just don't know correct terms to use.

I am trying to model a ghost for a game.  I have a frame (UV sphere extruded down) and a plane with cloth modifier that I drape over it.  When I run the cloth simulation, I eventually get the ghost shape that I want.  Now, I want to add some actions for it.  How do I "pause" it at the ghost shape that I want and start making animations for it, like Idle (I want the cloth to swing around a bit, like the ghost is swinging its hips) and Walk (I want the cloth to flow back like it's walking).  I hope that made sense.

Thanks!

When I run the cloth simulation, I eventually get the ghost shape that I want.

...

How do I "pause" it at the ghost shape that I want

Part 1.
 Go to the frame you want and make sure the cloth settings are perfect. This change will be permanent.  Go to your modifiers panel and click Apply.
 This will convert it from a dynamic modifier into an editable mesh.

Now, I want to add some actions for it.

...

I want and start making animations for it, like Idle (I want the cloth to swing around a bit, like the ghost is swinging its hips) and Walk (I want the cloth to flow back like it's walking).

Part 2.
Next you'll want to rig the ghost. An armature system is a complex topic but I'll give you the basics.
 Start by adding a bone to your ghost.
 Enable X-ray so you can see what you're doing
 Making sure your bone is positioned at the top of the ghost hit TAB to go into edit mode and E to extrude it down once.
 Back in object mode select your ghost, hold down SHIFT and then select your armature you just created. Press CTRL and P to bring up the menu in the illustration.
 Finally animate the ghost how you like it to look.
Here's a GIF of what I came up with:
 Not bad for simple it was to create. More bones gives you more control obviously.


Could you run some parts in the script of blender In MATLAB you could sometimes break the code into cells and run them individually, this usually saves a lot of time. So i was curious if you could do the same in blenders script.

The thing you described sounds like a cell running script system: Running part of python script - Stack Overflow
Which could found in Spyder and IPython(Jupyter) as IDE level. Blender itself doesn't support this feature for now since it's a little bit complicate. Although  you can simply define block using tag or selection code to specified some code from text editor and exec it. Which is described in Blender Tips and Tricks — Blender Python API.
Below is a simple add on (operator) which will find the first match # region # endregion block before current line and run the cell.

I do update a newer version in Github.
import bpy

_START_TAG = '# region'
_END_TAG = '# endregion'

class TEXT_OT_run_cell_script(bpy.types.Operator):
    """Run current selected cell script in python."""
    bl_idname = "text.runcell"
    bl_label = "Run current cell"

    @classmethod
    def poll(cls, context):
        return context.area.type == 'TEXT_EDITOR'

    @staticmethod
    def get_codecells_mapping(c_lines: list) -> dict:
        stack = []
        cells = {}
        for idx, line in enumerate(c_lines):
            if line.startswith(_START_TAG):
                stack.append((line[len(_START_TAG) :], idx))
            elif line.startswith(_END_TAG):
                if len(stack) == 0:
                    continue
                cell_name, idx_start = stack.pop()
                cells[idx_start] = (cell_name, idx_start, idx)
        for cell_name, idx_start in stack:
            # Fill unmatched block
            cells[idx_start] = (cell_name, idx_start, len(c_lines) - 1)
        return cells

    def execute(self, context):
        # print('EXECUTE addon')
        text_obj = context.area.spaces.active.text
        codes = text_obj.as_string()
        # print(codes)
        c_lines = codes.split('\n')
        cells = self.get_codecells_mapping(c_lines)
        # print(cells)
        if cells:
            cell_idx = -1
            idx = text_obj.current_line_index
            for i in range(idx, -1, -1):
                if c_lines[i].startswith(_START_TAG):
                    cell_idx = i
                    break
            name, start, end = cells.get(
                cell_idx,
                (text_obj.name, 0, len(c_lines) - 1)
            )
            # print((name, start, end))
            self.report({'INFO'}, f"Execute cell: [{name}]({start}:{end})")
            exec(
                compile(
                    '\n'.join(c_lines[start:end]),
                    filename=f"S-Cell-{name}",
                    mode='exec',
                )
            )
        return {'FINISHED'}

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

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

if __name__ == "__name__":
    register()

Text block:
# region Hello
a = "Hello world"
# endregion

# region print
print(a)
# endregion

# region import BPY
import bpy
# endregion

# region move obj
bpy.context.object.location.x += 0.1
# endregion

New Information
This addon manually provide a local scope to the exec function, and that local is stored in module, which give it the ability to share variable among each cell. But the global variable is ignore and pass as an empty dictionary. It might cause some strange behavior (I mean, crash) when cell code itself accessing these built in function.
Old Information
Notice that since we don't pass any local inside the execute function. These cells will use the scope that inside the operator. It will make it hard to use since the scope is not provide by user and script cells variable are not share among each other.


4 fast cores or 6 slower ones? I have the option of 3.33 ghz 4 core processor, a 2.66ghz 6 core or a 2.93 ghz 6 core.
I know that the middle one will be slower than the last, you don't have to tell me that.
What I would like to know is what would work better? 4 fast cores or 6 slower ones? I know that if you do the math the last one is the best but how many cores can Blender use?

I would also like to know what would be the best for blender internal renderer and cycles (if there's any difference.)

Blender can use up to 8 cores, and it does.
For rendering, or baking the two most CPU intensive tasks, the 2.93 ghz 6 core would be better. The clock speed is not as important as computational power, and for that the more cores wins.

For Cycles a good GPU would be faster then any of those CPUs listed. However if you are rendering on the CPU (like me) then the same is true more computational power will win out over a faster clock speed.

Blender guru article on buying a computer for blender.


Many edges connect to one vertex enter link description here
I want to ask how to solve a simple problem: if many edges connect to one vertex.

It looks bad in object mode. So I wonder how to solve them.
If you know, please tell me. thanks a lot:)

I guess too many triangles create some pinching and artefacts. What you could do is delete the joint between the body and the legs, make sure that they have both the same amount of vertices (I had to delete a non essential edge loop to have 11 vertices on each side), then bridge. Now you have quads everywhere and it looks good.


How to prevent Blender randomly flipping textures assigned to a face of a cube I'm encountering a problem that Blender sometimes flips a texture assigned to a face of a cube.  The screenshot below illustrates the issue:

The texture "castlewallside1a" has been assigned to both of the visible faces of the cube.  This texture includes a grass strip, which is supposed to be at the bottom (as seen in the preview).  The screenshot shows that it's been correctly assigned to the face on the left, but is inverted when assigned to the face on the right.  Both assignments were done the same way: select the face; unwrap it; select and assign the texture.  The cube itself is aligned normally (the barely visible face at the top is the top of the cube).
I've tried inverting the cube before assigning the texture, but this does not help.  The only workaround I've found is to create a second texture that's already flipped and assign it to the second face.  While this does work, it doubles the number of textures and should not be necessary.
Is there a way to prevent this from happening?  Also, is there a way to manually rotate the texture after application?  Rotating the face is not a solution, as this twists the cube into a knot.

Susu's comment was dead on: the UV editor is the way to address this issue.  I'm new to Blender and had never used the UV editor, but read up on it after seeing the comment.  For others in the same position, the UV editor allows you to accurately control the mapping of textures to the faces of an object, including mapping different textures to different faces from a single texture map.  Here's the approach that worked for me:

Prepare a single texture file containing all the textures you want to apply (the texture atlas).  For example, you could build a cross-shaped graphic with six textures for an unwrapped cube.
In Blender, press the UV Editing button at the top to split the screen between the 3D Viewport and the UV Editor.
Put the 3D Viewport in Edit Mode and unwrap all faces of the cube.
Select each face in turn and use the UV Editor window to select the portion of the atlas that should be used to texture the face, rotating or scaling as required.

This doesn't address the question of why Blender randomly flipped the texture in the first place, but it does make it irrelevant.


Texture mapping with multiple UV maps So, as a newbie relatively new to blender, I started doing some texture mapping (blender internal Render). I created a texture for the main object and a couple of transparent decals to decorate it. (basic effects made in GIMP). Simple stuff, just to know how it works.

After unwrapping, having 2 UV maps made, creating both new material and textures, enabling UV mapping coordination I always end up with:
 - all - 1 faces of the cube being covered nicely in the main texture
 - 1 face covered in blank material with a decal in the middle of it
 - the whole thing partly coated by a huge "stain" of a decal

So, the problem is that I can't layer textures correctly. Is there a way to have one texture covering everything and more transparent ones on top of it?
I am working on a bigger project right now and having this ability would be useful

First unwrap the cube (I used Follow Active Quads).
Add the default Color grid image texture as the image.
Add a new UV map (I called it decal). In order to do that open Properties Editor > Data tab > UV maps rollout and press "+" button. Select the face you want the decal on and press U >Unwrap.
Add another image texture in the second texture slot, set the UV map to decal and the set the Extension to Clip.

Both image textures are on the same material. The material is not specific to any face, it is on the entire model. The UV maps control where the textures go.

Here is the result, default Color grid as the texture and the blender logo as the decal.


Is it possible to safely and reliably maintain a reference to a blender object in python? I'd like to be able to refer to the same object multiple times from python. I'd ideally like to be able to move back and forth between using the python console and using the UI.

The official documentation appears to offer conflicting advice about how to maintain references to objects from python, on the "Gotchas" page. Under the heading "Data Names" we have the following:

  Its better practice not to reference objects by names at all, once created you can store the data in a list, dictionary, on a class etc, there is rarely a reason to have to keep searching for the same data by name.

This suggests keeping a reference to an object directly, rather than by name.

Further down the same page, under the heading "Help! My script crashes Blender", we have the following:

  Do not keep direct references to Blender data (of any kind) when modifying the container of that data, and/or when some undo/redo may happen (e.g. during modal operators execution…). Instead, use indices (or other data always stored by value in Python, like string keys…), that allow you to get access to the desired data.

And a little further down:

  As suggested above, simply not holding references to data when Blender is used interactively by the user is the only way to ensure the script doesn’t become unstable.

This suggests that keeping a reference to an object directly is unsafe if we'd like to work interactively, and we should instead refer to an object by name (I think this is what is meant by "string key") or by index. If I've understood correctly, the index of an object may change if other objects are removed, so accessing objects by index is also unreliable.

Is there a safe, reliable way to maintain a reference to an object, or is this just a pain point of the python API?

Use a PointerProperty

As pointed out in Is it possible to use bpy.props.PointerProperty to store a pointer to an object?  can point to any blender bpy.types.ID type object, in example adding an object_of_interest pointer to the scene.

import bpy
from bpy.props import PointerProperty

bpy.types.Scene.object_of_interest = PointerProperty(type=bpy.types.Object)

Run script above and test in python console below.

Starts off not set, None

>>> C.scene.object_of_interest is None
True

Set it to the context object

>>> C.scene.object_of_interest = C.object

>>> C.scene.object_of_interest
bpy.data.objects['Cube']

Rename it

>>> C.scene.object_of_interest.name = "Foogle"
>>> C.scene.object_of_interest
bpy.data.objects['Foogle']

>>> C.object
bpy.data.objects['Foogle']

Remove it

>>> D.objects.remove(C.object)

Back to None

>>> C.scene.object_of_interest is None
True

If we did this via reference ie

object_of_interest = C.object

deleting then re-referencing would mean death to blender.


How can I "normalize" the scale of what seems to be either an infinitely large or infinitely small object I'm having issues with an obj file I've imported into Blender. At first I thought the import was broken in some way because the import would go smoothly, but there was no model to be seen. Eventually I figured out that I could snap my view to the object by pressing . on the numpad and it was in fact there, just extremely small or large (I can't tell). I've tried scaling, but the sizes are so extreme that it doesn't seem to be working. Also due to the extreme nature of the object I can only see certain parts of it at a time depending on the angle in which im viewing it at it starts to de-render the parts not directly in front of the camera.

Normalize dimensions.

Look at the dimensions in N panel and choose the largest eg for (1, 2, 3) is 3. Then scale by 1 / 3 = 0.3333 to make the largest dimension 1. If the dimension is (0, 0, 0) there's nothing can be done.

Script to do this, scales such that largest dimension of selected mesh objects is set to max_dim.  (Used 2 as default to correlate with cube sphere etc)

import bpy

max_dim = 2

context = bpy.context

mesh_obs = (o for o in context.selected_objects
        if o.type == 'MESH' and o.dimensions.length)

for o in mesh_obs:
    o.scale *= max_dim / max(o.dimensions)


Is there a way to know (programmatically) how many objects are visibile in a rendering? i'm new here, i browsed a bit before posting but i haven't found any solution yet. I'm writing a small script to create several random
images with spheres of different sizes and i'm looking for a way to know
how many of them are visible in a render. The final idea is to have a dataset to test some computer vision algorithms such as that i have the number of objects present in each image.
I'm attaching the script so far.

#!/usr/bin/python2.7
import bpy
import bpy_extras
import random
import math

def makeMaterial(name, diffuse, specular, alpha):
    mat = bpy.data.materials.new(name)
    mat.diffuse_color = diffuse
    mat.diffuse_shader = 'LAMBERT'
    mat.diffuse_intensity = 1.0
    mat.specular_color = specular
    mat.specular_shader = 'COOKTORR'
    mat.specular_intensity = 0.5
    mat.alpha = alpha
    mat.ambient = 1
    return mat

def setMaterial(ob, mat):
    me = ob.data
    me.materials.append(mat)

def createSphere(loc, siz, material):
    origin = (0,0,0)
    bpy.ops.mesh.primitive_uv_sphere_add(location=loc, size=siz)
    #bpy.ops.transform.translate(value=(1,0,0))
    #bpy.context.object.location = location
    setMaterial(bpy.context.object, material)

def createScene():
    #Cleaning the scene
    bpy.ops.object.select_by_type(type='MESH')
    bpy.ops.object.delete()

    #Create a material
    materials = (makeMaterial('Red',(1,0,0),(1,1,1),1),
                 makeMaterial('Green',(0,1,0),(1,1,1),1),
                 makeMaterial('Blu',(0,0,1),(1,1,1),1))

    rand = random.randrange(50)
    print ("Number of spheres %s" % rand)
    for i in range(rand):
        location = (random.random()*10-5, random.random()*10-5, 0)
        size = random.random()
        createSphere(location, size, materials[int(random.randrange(3))])

def render():
    step_count = 32

    for step in range(0, step_count):
        cam.rotation_euler[2] = math.radians(step * (360.0 / step_count))

        bpy.data.scenes["Scene"].render.filepath = '/home/daniele/VR/vr_shot_%d.jpg' % step
        bpy.ops.render.render( write_still=True )

#Set a seed to make reproducible
random.seed(32)
cam = bpy.data.objects['Camera']
createScene()

render()

You can give each object a unique object ID ("pass index" in the object properties).These can be output as render pass; each pixel will have the ID of the object that's visible there. This will not only give you a count of the number of objects (just count the number of unique values) but also a ground truth for segmentation & shape recognition.

This Python script will give each selected object another ID:

import bpy

for nr, obj in enumerate(bpy.context.selected_objects):
    obj.pass_index = nr + 1  # reserve pass index 0 for "no object".

For more info, see the ID Mask Node section of the Blender manual.


UV-unwrap cylinder (lightsaber) with extrusions / insets I have a cylinder with several extrusions applied to it.

Basically:

create cylinder
select top edge, extrude
scale horizontally (in x/y)
extrude
move vertically (in z)

... and so on ...

Simplified to 1 extrusion it looks like this:

Problem

The problem I have is the unwrapping. When I UV-unwrap it via cylinder projection I get the uv-map of the 1st image. However this is only the vertical area. The horizontal area as shown in the 2nd image is just a flat line which of course leads to a stretched image when a texture is applied.

Question

How do you properly unwrap that object? Using "Smart UV Project" creates rings from it. Which takes away valuable uv space. Isn't there a way to e. g. flatten the cylinder? Think of stretching it in length. After some investigation the most fitting solution I found was to do a normal unwrap and then use UVSquares. Or is there a better approach?

The full example with the problem looks like this:

Thank you very much for the help!

You might be looking for Follow Active Quads. This is a method of unwrapping (available by default as a menu option after hitting U to unwrap). This will unwrap the mesh based on the last selected quad (4 point polygon).  The effect is to create a totally flat UV map based on that last selected polygon. Usually you use it to (for example) unwrap a sphere to a totally uniform square of polygons.

Otherwise, I would just mark a seam down the entire cylinder (top to bottom) and do a normal unwrap.


How would I bevel complicated corner? I'm curious how I would bevel this complicated corner to the red lines.  I just can't figure it out so any help would be greatly appreciated.

You can use proportional editing to 'round' such corner.

Select the edge and move it inwards (this will be the bevel radius)
Enable Proportional editing set to Sharp
Use the Size slider to adjust the influence


Increase the effect of Ambient Occlusion with Cycles? I use cycles render to bake Ambient Occlusion map. However, the shadow on the object is too light. I want to increase and make it darker. I have been trying to adjust ColorRamp and it didn't change anything. I might have done something wrong.

Q: How to increase the effect?

So, I created a new cube and did what you suggested, but there's nothing change. The shadow didn't get darker like yours. That's exactly what I've been trying to figure out. It must be nice if someone can show me a tutorial! I'm kind a beginner! :D

To make my question more clear, these images below might give some clues. I really don't know how to fix this!

Thank you so much!

You are using fairly light colors in the ramp. I suggest to start with a simple B/W ramp to change the contrast on the AO node. Once you get the desired intensity, then only start changing the color ramp.


How to select faces by area I found this documentation: https://docs.blender.org/manual/en/dev/modeling/meshes/selecting/advanced.html

Under "Face Selection Mode" it says:

  Face Selection Mode:

  ...

  Area
  Selects all faces that have a similar area as those already selected.

But I can't figure out where in blender this option is hiding?

It is listed under Select Similar which has a ⇧ ShiftG shortcut and can be found in the Select menu.

Note that the area option (and others face/edge related) is only available if face select mode is the only active selection mode, if you have multiple selection modes active you will not see the option.


Snap to face not working Snap to face isn't working. After enabling it, I selected the face I want to snap to and pressed enter (which I think is supposed to be done) and my snap to bar on the bottom looks like this.

I want to move this vertex

but it ends up like this, even with snap on.

Help?

When set to median and face as target an objects median (center) will snap to a face.
This example shows how snapping works with different objects and snapping an edge of the same object.

When you use closest as snapping target then objects will snap to the top of the face.

Snapping doesn't work by pressing Enter by itself.

Using Face|Closest|Project individual elements on the surface of others you can achieve the following results but you should press g before pressing Enter.


Rendering texture from Mixamo DAE file (I'm a beginner, please be kind)

I've exported a DAE file with textures from Mixamo and opened in Blender.

I can see the texture applied in Texture Paint mode, but can't figure out how to render or bake the texture on the model.

Based on everything I've found online, the nodes should look like the following:

I've tried putting the Mix Shader between BSDF and Material Output. And tried to switch Base Color with the diffuse node under it. But no results still.

But I just can't get anything to show in Render mode but a black model.

Am I close? Or have I missed the mark completely.

I had the same frustration that it still didn't work after reconnecting all the nodes.
The critical difference is the alpha value in the Principled BSDF node.
Blender viewport shading will render black if alpha == 0, ignore alpha otherwise.


Edge holes topology. How to make holes like this? I do not understand how to properly make edge holes for a subsurf modifier.
What I want

What I have
(Some artifact on the corners)

You can use the extrude function to do this.

Lets say you have the following mesh:

Now we need to add some extra edge loops to the area want want to extrude. This can be done by clicking CTRL + R.

Once for the top and repeat that for the bottom.

Once for the side. Do this also on the other side

Now we going to Face Select and select the part we want to extrude

Now we can extrude the selected faces by pressing E and dragging it to the position you want.

You can add a few extra edges to it to control the subdivide but I find mostly that its not needed and just creates more vertex.

Result


Chest Bone Moves Unwantedly With the Hip Bone I have a rig I prepared using Rigify. Everything is fine, however, whenever I move the hip bone, the chest bone distorts as if though it has a constraint affected by the hip, but this is not the case.

How do I fix this so that I can move the entire rig freely without experiencing this distortion? What causes this distortion?

Please see a longer version of the GIF at http://i.imgur.com/7OamgVn.gif for more information.

You appear to be using the initial metarig which rigify provides for you to scale and position to suit your character. After positioning this rig to your model you should then generate the animation friendly rig.

The initial metarig -

The generate button is available in the armature properties

The animation rig that gets generated -

Notice that when the final rig is active it displays a rig layers panel in the properties sidebar (press N) and while in pose mode a rig properties panel is available showing properties of the selected bones.

CGCookie has a tutorial on using the rigify addon that demonstrates the steps needed to use rigify.


Blender for optical modeling II My question is similar to this question: Can blender be used for simple optical modeling? .
I apologize for asking a similar question but I don't have enough reputation to comment on the original question.

Like in the original question I would like to view a scene through a modeled lens.
What I want to archive in the end is "real" out-of-focus blur (I am aware that one can play with the blur-nodes of the build-in blender cam, but I want to see the blur as generated by my specific lens)

As suggested by Liss' answer to the original question, I set up my scene using Luxrender as renderer as follows: (the answer contained guidelines, the specific details are my guesses of how to exactly set it up)

created a simple lens (intersecting two smooth UV-Spheres, luxrender material glass or glass2 with IOR=1.41)
created a translucent plane (alpha 0.01) to act as film
set blendercam to orthogonal and placed behind film
as a test-object to be viewed through the lens I set a cube with a checkerboard pattern (to detect blurry lines when out of focus)

However when rendering the cube (or film) at distances to the lens where the cube should clearly be out-of-focus I still get a pretty sharp image.

From what I had understood Luxrender is very physically accurate so that tracing rays through a lens should result in blur.
Is this correct? And if so, what am I missing to achieve the blur?

Blender Cycles is decent at rendering some optical effects.

This is an example of Total-Internal-Refraction simulation. This is done by placing a light source close to one end of some tubes set to a +IOR.

Source File for Fiber Optics

This is an example of (heart) shaped bokeh by placing a cutout in front of the Blender camera. (There is no lens simulation)

Source File for Shaped Bokeh


Mesh reverts back to the state before the script was run I created a script (operator) that converts a selection of quads into a diamond pattern.

It works fine but when I try to Inset the newly created selection and change any of the options (like switching to individual face insets) the mesh seems to revert back to the original topology before my script was even run (see image below).

Video of what happens (I decided to select the faces manually but same result):
https://www.youtube.com/watch?v=UHUNfZG1Qnw&feature=youtu.be

Image Example:

I noticed that if I change the selection somehow after running my operator I stop having the Inset issue, so I'm assuming my script is missing some command to fully apply the changes it makes to the mesh or something.

After running the script I call the operator from the F3 menu.
Steps to reproduce:

1- Select grid of quad faces.

2- Use F3 to call the Operator after registering it.

3- Press I to inset and move the mouse to give the inset any amount.

4- Without leaving the tool, activate Individual on the inset options or viceversa (changing other options has the same effect).

5- Mesh reverts back.

Here's my operator:

import bpy
import bmesh

def main(context):

    #context = bpy.context
    ob = context.edit_object
    me = ob.data
    bm = bmesh.from_edit_mesh(me)

    # Store the faces, the edges and the edge border of our current selection.
    faces = set(f for f in bm.faces if f.select)
    originalEdges = set(e for e in bm.edges if e.select)
    borderEdges = set(e for e in originalEdges
        if (e.is_boundary or not all(f.select for f in e.link_faces)))

    # Poke the faces and select all of them minus the outer border of triangles.
    ret = bmesh.ops.poke(bm, faces=list(faces))
    for f in ret['faces']:
        f.select = not bool(set(f.edges).intersection(borderEdges))

    # Dissolve the original edges (minus the border) so we end up with a diamond pattern.
    deleteEdges = originalEdges.difference(borderEdges)
    diamondEdges = set(e for e in bm.edges if e.select).difference(deleteEdges)
    bmesh.ops.dissolve_edges(bm, edges=list(deleteEdges))

    bpy.ops.mesh.select_all(action='DESELECT')

    # Select the Edges that form the Diamond Pattern
    for e in diamondEdges:
        e.select = True

    # Easy way to convert our newly selected edges into faces
    bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='EDGE')
    bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='FACE')

    bmesh.update_edit_mesh(me)

class VitalyPoke(bpy.types.Operator):

    """
    Description:
    Uses the Poke operator and some caveman code to convert a selection of quads into diamond-looking faces
    """

    bl_idname = "arc.vitaly_poke"
    bl_label = "Vitaly Poke (ARC)"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

Man that's a doozy

I have no idea, thought it could be a select flush hassle, as another way to get it to "work as expected" is to toggle into another select mode and back.

Couldn't get any wranglation of code to do it though, even toggling edit mode with code as commented... strange one

I have put together this as not an answer but as a means to express an alternative poke n select code. edges is the boundary of the selection, either is a selected boundary edge (one link face) or only has one of two linked faces selected.

The bmesh poke operator returns the faces created. Any faces that don't include an edge in edges are selected.

Result of using method below

def main(context):
    ob = context.edit_object
    me = ob.data
    bm = bmesh.from_edit_mesh(me)
    faces = [f for f in bm.faces if f.select]
    edges = set(e for e in bm.edges if e.select
            and (e.is_boundary or not all(f.select for f in e.link_faces)))
    ret = bmesh.ops.poke(bm, faces=faces)
    for f in ret['faces']:
        f.select = not bool(set(f.edges).intersection(edges))
    bmesh.update_edit_mesh(me)


How can I Toggle "Autolocking of Layers" without accessing "Layer Specials" Menu (Blender 2.92.0)? I'm experiencing a lot of tedium while animating with Blender Grease Pencil because I do not yet have an efficient workflow. I'm wondering if there is a hotkey, or if not, a way to easily create one, to instantly access the "Autolock Inactive Layers" menu item under the "Layer Specials" dropdown which can be found under the Object Data tab in the Properties Panel. It is a toggle behavior, so only one key would be needed. I get the impression that this Layer Specials menu might not exist in previous versions of Blender, so please take note of the version I'm using (2.92.0).

An alternative solution might be to have a faster way to instantly turn on or off the editability of every single channel in the Grease Pencil Dope Sheet. I find it rather insufferable that I must currently scrub with the mouse to get the entire list of channels to be made editable or not editable. It seems there should be a single master toggle icon at the very top of this list that would effect all channels at once.

I never felt the need for a solution to this problem until working with Grease Pencil in earnest. One is often needing to switch the behavior between having the editability of non-active layers on or off. This is especially the case because of the need to sometimes have strokes and fills from the same object on different layers, where manipulating the two elements at the same time will require inactive layer editability to be on, while manipulating them separately will require it to be off. I find it tedious to access the "Layer Specials" menu by mouse, especially when it will often be the case that the Object Data tab is not the one currently open in the Properties Panel.
Thanks for any suggestions on this. My progress will depend on finding a better way.

While I was just about to post this question, a possible answer dawned on me. If you right-click the "Autolock Inactive Layers" option from the "Layer Specials" menu, you can add the function to Quick Favorites. I completely forgot about that option! This is great for getting me through at the moment. But I'd still like to know if there is another solution.


Display properties of object in blender im retopologizing for the first time in blender and was wondering how i can show doublesided display ? for the object im doing retopo for. My example in the attachement, you can see the gum and teeth and gum dissapear when i go from the bottom view.

Thanks in advance and Greetings !

You are asking "how I can show doublesided display" but if i'm understanding your problem correctly what you need is to not show double sided faces.

To do that open the Viewport Shading menu and put a check against Backface Culling.

Edited to add:

You appear to have a set up something like in the screen shot below:

View from below and the teath in my "snake head" are hidden (no Backface Culling):

With Backface Culling enabled teath are visible :

and finally Vieport Display > In Front unchecked:

another edit :
Perhaps for the inside where the In Front option is causing problems, disactivate that and use a Offset distance in the Shrinkrwap modifier to keep the faces above the high poly model as in the image below.

......... or simply assign the outside faces to a vertex group for ease of selecting/deselecting and hide them while working on the iside if the snakes head.


How to remove the effect reflection of shadow In this image, why the shadow is strongly reflected on the person. How can I fix that problem ? I am using a direct lighting by setting  the rendering parameter as:

This is because you appear to have one light source and no bounces/indirect lighting.
So the only faces to receive any light will have to be facing the light source.

In the real world light is reflected and transmitted everywhere, resulting in almost everything getting illuminated at least a little bit.

You have several options to simulate this:

Increase the number of bounces in Render settings > Light paths, allowing light to reflect off surfaces and illuminate "around corners" in a physically correct fashion:

Enable ambient occlusion or add some ambient environment lighting:

In the real world there is always ambient light coming from the sky. Even with indoor renders this can make a difference (light coming through windows etc.)

Note that AO is an approximation of actual environment light, but as it's all based on distance it will illuminate things even inside closed shapes where environment light cannot normally reach.
Add more light sources with different sizes:

If you still want to stick with 0 bounces and no global illumination, try adding a few more light sources. Vary the strength and size to prevent it from becoming too "flat":


Backface culling as a mesh property Is there a way to mark a mesh (or a face in a mesh) in Blender as not visible from the backside, regardless of the view settings?

I'm creating meshes via the Python API, but if you know how to do it from the UI, let me know too.

This has to do with implementing the "solid" flag from the X3D standard.

In cycles you can use the backfacing information on the Geometry node to control a transparent shader.


Do UV islands scaled to 0 have anything applied to those surfaces? This is the dodgy shader setup I've done https://twitter.com/James___UK/status/1262658211934543873

I have two UV maps, one for the inner surfaces of the glass jar and one for the outer, and then with the UV islands that are irrelevant to each UV map I just scaled them to 0. Do they still have any value attached to them if I do this? I have a hard time telling from looking

Apologies if I've explained this terribly

If those islands are used to map a texture, they will map a solid color (representing one pixel of the texture).
Such technique can be used to create pixelation.

If they aren't used to map any texture, it doesn't matter.
Then I'd reccomend scaling to 0,0001 instead of 0, so they can be scaled back up if needed :).


World Background Image: Environment Texture does not scale right I try to use a background image for the World. I read that HDR images are best for that - so I went out and took an HDR image. But I cannot get this image scaled and applied right to my scene, it seems to be bended and stretched all over. I would like to see the whole image in the background of my object at once.

Tried to apply a Texture Coordinate Node and a Mapping Node and mess with the settings for quite a while now with no success. Even other answers like this one here did not help. Does it have sth. to do with the format and resolution of my image? Are there other settings I have to adjust?

This the downloadable image I try to use (HDR 3264 × 2448 jpeg 4:3) :
Outdoor Scene

The image you are using is not an Environment texture, it is a regular High definition photograph. You can't plug such an image into an Environment texture node, as they have their own type of mapping.

My recommended solution is to set it up as a regular image texture with this as your mapping:

The result is this:

You can then use the mapping node to adjust how your image fits into the scene.


Applying a Texture on a ply mesh I've got a *.ply file from a interoral scanner. The *.ply-export comes with a texture file but the vertices of the mesh itself remain monochrome. I now need the texture put on the model (and if anyhow possible transfer the color to the vertices, but one thing after another). I tried some ways described in the net, but so far nothing matches my problem fairly.

I found a workaround:
Open the ply model im MeshLab.

Go to Filters->Textures->Convert PerVertex UV into PerWedges UV
(it may say it is missing the texture. If it does, copy the texture file into the
MeshLab program directory. May be a bug or I am too stupid :P )
Then go to Filters->Texture->Transfer: Texture to Vertex Color....
The standard values were enough for me.
Afterwards go to File->Export Mesh as... and export it as a *.ply. Make sure the vertex colors are checked in the following dialog and hit export.

In Blender import your freshly exported *.ply-file and change the view to "Vertex Paint". Et voila.


How do I make a transparent brick texture? I have a grid set up with a brick texture, and I want to have only the green mortar showing up, so I tried setting the alpha for color 1 and color 2 to 0, but the bricks are still opaque. How can I fix this? Should I even be using a brick texture for this?

"Fac" output it is alpha value. Connect it to Alpha input

Note, that if you are using EEVEE, you should also select transparency mode (Blend mode) in material settings:


transparent background for volumetric smoke? Bug? I'm trying to use transparent background in a simple smoke simulation.
As soon as I check transparent, in the film settings (cycle), the image loose the color (it is indeed transparent but black).

I've a simple volume shader and just a white background

EDIT: as requested here is the blend with a quick smoke with default settings, nothing specific.

I've seen this closed bug and this question maybe the bug is still there?

Anyone can confirm this behavior and have a workaround with the compositor?

Because simply mixing the black transparent png with the color doesn't produce the same result

Short answer: You want to use the volume scatter shader for this, not absorption. (or use the post-pro workaround in the other answer).

Ok, let's back up a bit and I'll try to explain why Cycles produces the values it does with the absorption shader: First of all, the volume absorption shader does not add energy to the ray or add contributions for a light in any way, it can only remove them. This is because absorption does not alter a ray's path, it merely removes energy from it. With transparent film, it's subtracting from the already black background, thus leaving you with a black smoke plume. "But wait!" you're probably saying, "my background isn't black, it's white!"

Oh boy. What a fun can of worms we got into here. So when you're rendering with a transparent background, you need to make the RGBA color of the background black. The reason for this is how the alpha over operation (or "normal" blend mode in Photoshop parlance) works. You can read the formula here: https://en.wikipedia.org/wiki/Alpha_compositing If you look closely, you can see what it does is multiply one layer by the alpha (blacking out the transparent portions) and multiply the other by the inverse of the alpha (blacking out opaque portions) then sums the results. So the function of the alpha channel in this case is to tell the software what part of the existing background to remove to allow the new background to be added.

This works just fine for 100% transparent sections no matter what else you mess up along the way (like writing the RGB channels as non-zero). It's partially transparent areas where the problems start. The non-zero RGB values in the background represent incoming energy from the background, which you do not actually want. You're providing different energy values later by way of comping in your final backplate. When you have a partially transparent region though, you want to preserve some energy (the energy reflected by the occluding object), so rays returning the value of the occluding object have non-zero RGB and an alpha value of 1. (ok, they might have RGB=0 if the occluder is black, but let's just assume it's not). Rays that continue to the background have an alpha of 0, thus the average alpha provides the proper scaling factor so the right amount of composited backplate energy is left on the pixels.

But what if those backplate rays came back with a non-zero RGB? The alpha channel does not distinguish between colors from the occluded object and colors from the backplate, it just represents how much energy is supposed to pass through the occluder. Thus, you get an unnatural glow as you are stacking the energy of the render background and final composited backplate, where this wasn't supposed to happen. Oh yeah, and because of antialiasing all objects get a partially transparent region around their edges, so even opaque objects get a halo if you don't black out this background.

And all this glowy mess isn't fixable in post either, at least using just the main beauty pass. If you have an occluded environment AOV (like cycles' environment pass) you can subtract that from the beauty pass and straighten things out, but no messing with a "convert premultiplied" switch will do the job.

This is all fairly arcane, so to make it easier on the user when you enable transparent film Cycles just stops all camera-ray contributions of the world background, forcing it to return RGB=0 in all cases. Your volume absorption shader tries to remove energy (especially red and blue energy) from a ray that has no energy to begin with, thus your smoke is black. Using the scatter shader instead causes it to REFLECT green light, thus remaining visible on its own. If you'd rather have the glowy green look, you can also specify that directly using the emission shader instead of, or in addition to, the absorption shader.


How do I wrap my vertices to the mesh? I want to shrink these floating vertices to my mesh for superior editing accuracy but I can't figure out how. Any help would be appreciated.

I found what I was looking for. The button I needed was "adjust edit cage." It bought down my "edit cage (which I couldn't figure the name of, making this question more confusing)" down to the jumpsuit mesh. See pic below for the button I used.


How to create a rope I have a buoy on the surface of a fluid simulation that moves around.
It has no Rigidbody attached, only a few rotation and location constraints which should cause no problem.

I am wanting to create a rope that attaches to the floor of my simulation and the buoy. It should fold relatively naturally as the line slacks. I have attempted one tutorial which got me close, creating a rope that bends and is affected by gravity, but it breaks if I try to attach the end to the buoy. (Link Below)

https://www.youtube.com/watch?v=ydX7bzLFbTo

I have tried hooking a bezier curve but it didn't want to attach to the vertice. (The little icon said I couldn't :( )

If anyone has any tutorials or ideas, it would be great if you could post them.

I have a relatively good knowledge of blender though I am a bit vague on where to find buttons and such :)

If any additional information is required I will help where I can.

EDIT:

Apologies, but i am on a school laptop and websites like imagur.com are blocked, so no images :(
FYI, i wont see yours either, sorry ;P

My fluid simulation is basic, restricted by the domain and a starting fluid object and some small waves.

I have a small plain subdivided with shrinkwrap on it wrapping to the fluid domain, so it 'follows' the surface

I then have a buoy that is constrained to that small plain by z axis and all rotations so it seems to "float" on the surface

I have another Plane on the floor with a passive rigidbody and collider

Now the string (this is what i did):

I had a single edge, one vertex at the buoy, another on the floor. I then subdivided it 30X. I then saved each end point separately to a vertex group. I then hooked the vertices to the floor and buoy (I also tried empties). I added the softbody simulation and followed the steps in the link (maxing default and stiffness). The rope held place but only the first vertex moved when the buoy moved. I then tried disabling goal, getting a realistic rope effect, with no edge stretching as should be, but both end vertices would not stay hooked.
Im stumped, but this is the closest I have gotten.
I don't have any add ons if that makes a difference.
If you want to know any preferences or settings of blender or solo objects, just ask :)

Many thanks to Rich for helping me solve this!

I created a single edge at the length I wanted my string/rope. I then subdivided it till I saw fit (will not look choppy).

Create three vertex groups:
  One for one end, one for another, and one with both (in my case
  pin_Float, pin_Floor and pin_Ends)

In turn, click on each control object and hook to the specified ends (not the double ended one ;) )

Add a soft body to your string and set 'default' and 'stiffness' under the 'Soft Body Goal' to max. Then underneath assign the vertex group with both ends to 'Vertex Group'

Play and adjust the settings under 'Soft Body Edges' until the rope moves as required

I also applied 'Soft Body Self Collision' and a Skin modifier

The Rigidbody and Collision physics can also be applied making it very easy to use.

Again, thanks to @Rich Sedman for his help.


particles.location not returning proper frame values I'm doing some proof-of-concept stuff in preparation for a script to play with particles, and I've hit a frustrating roadblock.
I'm trying to return a list of a particle's position over time. Using frame_set to set the current frame, the particles.location to append the positioning and iterating. My test setup is a 4 frame long blank scene with a plane emitting three particles on frame 1 with a bit of a normal value so there is visible movement. I'm just running the script through the text editor and watching output in the terminal window.
My problem is that it returns the position from the last frame for all the frames. I know that the frame number is iterating properly (I have added it to the output to make sure). If I hard-code a frame number into frame_set(x) it returns the proper value for that frame, but if I have frame_set(variable) it returns the value for the last frame for all the frames.
Right now my test snippet is only trying to return the position for a single hard-coded particle [0] out of the three that are being emitted right now.
This is incredibly frustrating. I'm not the most practiced coder, so I hope I'm just making a dumb mistake and overlooking something obvious, but if someone else could lend their eyes I would appreciate it.
import bpy
from math import degrees, floor

def comp_data(context):
    scene = bpy.context.scene
    aspect_x = scene.render.pixel_aspect_x
    aspect_y = scene.render.pixel_aspect_y
    aspect = aspect_x / aspect_y
    start = scene.frame_start
    end = scene.frame_end
    fps = floor(scene.render.fps / (scene.render.fps_base) * 1000.0) / 1000.0

    return {
        'scn': scene,
        'width': scene.render.resolution_x,
        'height': scene.render.resolution_y,
        'aspect': aspect,
        'fps': fps,
        'start': start,
        'end': end,
        'duration': (end - start + 1.0) / fps,
        'curframe': scene.frame_current,
        }

def p_list(particles):
    nulls = []

    for ob, _ in enumerate(particles):
        nulls.append([ob, name_particles(ob)])

    return nulls

def name_particles(ob):
    name = "pNull_{0}".format(ob)

    return name

def particle_position(particles, comp_data, p_list):
    p_position = []
    frame = []

    for frame in range(comp_data['start'], comp_data['end'] + 1):
        comp_data['scn'].frame_set(frame)
        p_position.append([frame, particles[0].location])

    return p_position

context = []

ps = bpy.context.object.particle_systems[0]
particles = ps.particles

##a = comp_data(context)
##print (a)

##b = p_list(particles)
##print (b)

c = particle_position(particles, comp_data(context), p_list(particles))
print (c)

You are using the reference to the location of the particle, hence they are all the value of the last frame, fix by using a copy of the location in your list.

p_position.append([frame, particles[0].location.copy()])


Keyframe Help With Arrow Keys Brand new to Blender, working through some tutorials and I'm currently doing some keyframe animation.  When I go to use the Arrow Keys to jump to frames, my left and right (-1/+1) keys are working correctly.  So is my down arrow key (-10).  However, anytime I try to jump ahead +10 frames with the up arrow key I get a message "No more keyframes to jump to in this direction".

This is happening even when I'm on the first frame, does anyone know how I can get my +10 frame jump key to work or what I'm doing wrong?

▲ jumps to next keyframe of the active object,
▼ jumps to previous.

They don't change frame by +/- 10. If you wanna do so, use:

Shift▲ +10 frames,
Shift▼ -10 frames.

Shift◀ to jump to start frame,
Shift▶ for end frame.


Can IK constraint be setup so it respects constraints of affected bones I'm trying to rig a robot arm where every bone can rotate only around one axis. It works fine when i position them one by one, but if I put an IK bone to control the whole arm, the limit rotation constraints on all bones are ignored. I understand that the whole IK task changes dramatically when there are other constraints but was wondering whether there might be some solution to this.

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

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

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


Init object every time file new is called I'm using a Python class static members properties in order to store the state of the addon I'm developing. It works fine and my Python class is brand new every time I start Blender. Problem is, if I do file->new or revert, that class is not created anew and still stores values that are relevant to the old file. Is there any way to achieve that?

A persistent onload handler

Application handlers.

Code taken directly from Persistent Handler Example

import bpy
from bpy.app.handlers import persistent

@persistent
def load_handler(dummy):
    print("Load Handler:", bpy.data.filepath)

bpy.app.handlers.load_post.append(load_handler)

Other things to consider re comment for revert and new is look at

bpy.data.is_dirty

for toggle from True to False. Wont matter if  a clean file is reverted.


The animal armatures aren't showing up as options. How do I fix this? I'm trying to rig an animal, but when I go to Add>Armature only the single bone and human armature show up as options. Rigify is on, and I've tried restarting Blender and my computer several times. How can I fix this? Any help is appreciated.

Wrong version. Updated from 2.7 to 2.8 and that fixed it.


Selecting Mitsuba Renderer Crashes Blender I'm trying to render an animation using Mitsuba in Blender on a computer running Ubuntu 14.04. However, every time I try to select Mitsuba as the render engine, Blender instantly crashes. Trying to export a Mitsuba XML also causes a similar behavior. I though that the executable path was the problem, but when I set that path to /usr/bin/mitsuba, it still crashes. How can I fix this issue?

Using this developer build, seems to solve the issue on my machine. More information can be found here. I had the same problem.

Also, the path should be /usr/bin and not /usr/bin/mitsuba


Model not smooth and imperfect after mirrored in Blender enter image description hereI am new to Blender. Here are the problems that i faced. After i mirrored and smooth division the model, the mirror seems like not doing well. It is obvious in object mode. The model is not smooth at the middle of the middle part. Another problem is the mouth of model does not match perfectly after smooth subdivision as shown as the picture.

Does anyone know how to resolve this?
I can not continue with this until I can get the mirror perfect.

Thanks in advance for those who reply.

It looks like you are using a "subdivision" modifier before the "mirror" modifier. That causes the rounding of the border you see in the lips.

Try to put the mirror modifier first (i.e. at the top of the list, use the triangle buttons to move a modifier).

And what I usually also do in this kind of situations, is set the "clipping" option in the mirror modifier, select all vertices in the mirror plane and move them back and forth a bit to "lock" them on the mirror plane (a small movement along the mirror axis shows you very quickly when the vertices "lock").


Animate change layer In 2.4 It was possible to move an objet to another layer with keyframe.
" Changing Object Layer

Many times you want an object or actor to wait off stage until it is their time to come on and do their thing. In Blender, you commonly render only a few of the twenty available layers. So by animating an object’s layer “membership”, you can animate its visibility in the 3D views (avoiding it to clutter your workspace) and at render time. Furthermore, as you can set some lamps to illuminate only objects on their layer, changing an object’s layer can also be a way to change radically its lighting…
Changing from layer 4 to 10 and 14 at frame 10.

To animate an object’s layer membership, go to the frame when you want the object to appear. Ensure the object is on a visible layer (M to see and move it between layers). Insert (I) an Ipo key, and choose Layer in the menu that pops-up. In your Ipo Curve Editor window, you will see that the Layer channel now has a value corresponding to the current layer. Back up one frame, move the object to an unselected (invisible) layer. Now, here’s a slight glitch: you cannot add a Layer key because the object is on an unselected layer. So, temporarily enable that layer by ⇧ Shift-selecting it from the layers buttons, insert another Layer key, and then de-select the undesired layer. "

How to do that on 2.77 ????

Dji

If your only concern is animating the visibility of the object, you can do this easily by keyframing the Restrict Viewport Visibility toggle for the object in the Outliner.


How to cut a rounded hole in a sphere? What are some good techniques to make a rounded/beveled hole in a non-flat surface?
e.g. something like the blender material preview scene:

The Boolean Modifier and the Knife project tool work well, but they create uneven topology that is difficult to bevel.

Image from the blender wiki

This might take considerable more work for more complex shapes but one way would be to use the Shrinkwrap modifier to snap the outline of the shape to your mesh.

Next, join both shapes and delete the parts of the sphere that your outline contains, now fill in back the rest of the shape.

As I said, this method is not perfect and would require some careful editing to make sure the mesh keeps its curved appearance but for simple outlines/shapes it should work fine.

General tips when doing this are to keep your outline clean and preferably as lines as the Shrinkwrap modifier tends to distort faces depending on the surface it is snapping to.

Another way would be to use the Boolean modifier and cut out the shape.

Add the modifier to the object you want to cut and select the object (an extruded Blender logo in this case) and set the operation to Difference with the logo as the target, delete the outside piece of the logo and you should have a nice cut out shape on the sphere.

Once Smooth Shaded this will be very blocky but running a Tris to Quads operation with AltJ and applying an Edge Split modifier should make it look better.

If you need bevelled edges, the boolean modifier leaves very sharp cuts so you should be able to select the jumbled ones and merge and dissolve vertices as needed until you get a clean edge ring without affecting the curvature of your shape much.


Center axis on bone head Until before the holidays, I was happily using a key combination that would center the rotation axis nicely on the bone head, setting it to “local” rotation.

But I have completely forgotten what key combo I was using. D’oh. And I have searched and searched to no avail!

Can anybody remind me what key combo sets the axis center on the bone head?

Two ways:

Press ALT + .
Select it in the menu:


Sketchup 3d model import with wrong topology? Imported this 3d Model from google sketchup ,and when i open it with blender or 3Dmax i get those extra lines all over , is there a way to get them deleted ,or remove them with ease ?!?!

Those are the result of triangulating faces, possibly because of the file format used for the exporting (e.g. .3ds will do that regardless whether you asked it to or not).

To get quads-based topology back:

It should be possible to convert them back to quads with Alt+J, but this might not work in all cases (depends on topology complexity). You will need to convert faces which were converted not in desired way manually;
use another file format for import / export, e.g. .fbx or .dae.

Note: the need in converting depends on the final result you're aiming to.


How do I apply force to an object that must move with the forehead? See picture below. So I make a small square object that must be Rigid Body in the BGE physics panel or else I can't apply Servo Motion force via code/Logic Brick. Good so far - the small object falls to platform and I can apply force in x/y/z direction. Now I need the small object to move where the baby's head moves to. These will move face bones. When I give it a Rigid Body Joint, it works, and it has a x/y/z location limit, however the small object falls like 1 inch and stops at its limit and so does the skin because the object has mass, and shouldn't have mass... Help?

I know I can get this to work mechanically or control bones by animation but that's lots of work for either way...ex. I must make all possible animation speeds plus save them as run code!...

I solved it. Found a blend showing what I needed.

http://bulletphysics.org/Bullet/phpB...69367c52979f40

If you're up for seeing it yourself in action, all I did was add 3 bricks below there's (of the top cube) that makes it move ex. left when you press A. I used Simple Motion. And was able to record it into Cycles. Looks good. Gravity is natural anyways and won't show up in the face springs.


Texture paint not working on sculpt Blender 2.8 So I have followed many tutorials on how to paint textures and it does work in simple objects, but not on a this sculpt. I can paint vertices and weight but not texture. I have tried to change to edit mode and back like suggested here: https://blenderartists.org/t/not-again-cannot-texture-paint-in-3d-viewport/532884 , no luck.

I can't paint in 3D or UV
I see the cursor I see my texture in the same color
it is connected to the model
I can flood fill and change
the color of everything (again proving that the texture is linked)
Mask is not activated
my normals are correct (I can not paint inside or outside)

but the brush does nothing.

/edit: here is the file as requested

There might be a new way to paint in 2.8 but for the moment your object doesn't have any material, so create a basic node chain like Image Texture (with your "main Okulossos Paint" image loaded) > Base Color input of a Principled BSDF > Material Output.

Now you still won't be able to paint, it's because you've opened a completely black texture for your brush, so close it and you'll have access to the normal color palet:


EEVEE - Volumetric Thickness I have been using the procedural cloud node from

https://www.blendernation.com/2018/11/06/free-procedural-cloud-system-for-eevee-real-time/

and I have not been able to control the actual density / thickness no matter what I try. Below is the image of the closest I can achieve in dissapearing the pole within the volumetric material. If someone could give me any guidance it would be greatly appreciated.

Ive tried numerous alterations for 2 days, I wouldnt know where to start in listing the things ive tried.

Volumetric Clipping! The whole time I was fidelling with nodes when the solution was under properties panel under volumetric clipping start/end... Jesus I hope someone who has this issue finds this post!


Path Tracing Sample in the viewport When I activate the shading Rendered in the viewport, the number for path tracing sample keeps going with a single number. The number of the last sample is usually listed but it is not the case in the file I imported from a site. I checked the render settings and the number of samples for the preview is set to 0, the one for the render is set to 55. But the render keeps going for an hour and more. I wonder why.

If you look at tooltip, you will see "unlimited if 0":

So it will render until you stop it.


How to make a BGUI widget always focused/active? I am trying to make a textual interface that doesn't rely on the mouse in order to focus widgets. All I have is a TextInput widget and I want this to always be focused/active such that it doesn't need selecting by the user with the mouse in order to type, I want whatever the user types to be input.

I have got as far as making it so that the user only needs to hover their mouse over the widget in order to use it using:

co.owner['sys'].layout.input.system.focused_widget = co.owner['sys'].layout.input
co.owner['sys'].layout.input.just_activated = 1

I can't however seem to find which attribute needs changing in order for the widget to always think the mouse is hovering over it,

co.owner['sys'].layout.input._hover = True

doesn't seem to do this.

I've also tried

co.owner['sys'].layout.input.activate()

but this constantly refreshes the input field so I can't type more than 1 letter.

Any thoughts?

I think I have managed to solve this by doing the following:

co = bge.logic.getCurrentController()

keyboard = co.sensors["textinputkeyboard"]

    for key,status in keyboard.events:
        if status == bge.logic.KX_INPUT_JUST_ACTIVATED:
            co.owner['sys'].layout.input._handle_key(key,False) #text will always be lower case
            if key == bge.events.ENTERKEY: #This is so the enter callback still works
                 co.owner['sys'].layout.on_input_enter(co.owner['sys'].layout.input)

The above will work so long as the mouse doesn't make the text input active, in which case every character will be typed twice. In order to avoid this I commented out line 472 of bgui/widget.py:

widget._handle_key(key, is_shifted)

I realized this is a bit messy, but it works! If anybody has a cleaner way of doing this (I'm certain there is!) hmu.

I found a clean solution to this:
First, remove the if statement:

if self._hover:

from the _handle_key() method in bgui/widget.py.

Then include:

    co.owner['sys'].layout.input.system.focused_widget = co.owner['sys'].layout.input

So that the textinput widget is always focused


Python script to determine XYZ of tip of cone My scene contains a cone named 'MyCone'

I'm trying to construct a Python script: get_XYZ_for_tip( 'MyCone' )

How could I go about doing this?

This script finds the vertex that is referenced by more edges than other vertices, this should meet the 'tip-criteria' to make a function getTip simply return the vert.co value.

import bpy

obj = bpy.context.scene.objects.active
mesh = obj.data

v_edge_tot = [0] * len(mesh.vertices)
maxedges = 0
maxvert = None
for edge in mesh.edges:
    for vert in edge.vertices:
        v_edge_tot[vert] += 1
        count = v_edge_tot[vert]
        if count > maxedges:
            maxedges = count
            maxvert = vert

vert = mesh.vertices[maxvert]
print(maxvert)
print('v %f %f %f' % (vert.co[:]))


How to add ambient light when using cycles render? There seems to be an "environment lighting" setting when in Blender render, but there does not seem to be anything equivalent in Cycles.

Currently, the rendering of my scene just looks grey, even though some objects I have coloured white, and I am hoping adding ambient light will fix that.

In a typical photographic situation, you would add fill light from a soft / broad source. This could be above your object in question, or a fill light lower down and in front. Using an area light allows you to get the softer breadth required to avoid hard shadows.

Light ratios also tend to be completely whacked unless you are using a viewing transform that emulates a more photographic range of light as well, typically over-crunching the shadow data, and horrifically crimping the highlight data that is in an image. If you are interested, have a look at this question.


How to rotate an object on the local axis? I am adding a Torus and after rotating it a little bit on the Z i have to rotate it on the X, but its being rotated wrongly as you see.
I want my torus to be rotated straight like a tire.
I have asked this question before but my previous question and the answer was very complicated, i did not understand anything so this time i want to make it simpler if its possible. Thank you

Hitting RZZ will rotate an object about its local Z axis.
The second time you hit Z switches from global to local axes.

If you want to default to local axes, you can switch the mode from "Global" to "Local" in the header of the 3D view:

About your specific case:
In Blender, a torus is created with its local Z axis pointing through the hole at its center. Unless you have applied its rotations since it was created, hitting RZZ will rotate it about its local Z axis. (You'll see  the axis displayed as a blue line). The second time you hit Z, in this case, switches from global to local axes.
Or, if you turn on your rotation gizmo (the small button with an arc on it to the left of where it says Global' in the header at the bottom of your 3D view), and switch the 'Global' to 'Local', you'll see the axes available to you.


Blender in game volume control? Is there a way to use python to control the master volume in game. I want that all sounds are controlled by one object so I can do any settings in game.

Globally change volume with this Python snippet.  Also affects sound actuators.

import aud

device = aud.device()
device.volume = 0.5  # Change this value to whatever

http://www.blender.org/api/blender_python_api_2_76_2/aud.html

Keep in mind that a new device isn't created until you re-start blender, so any changes made in-game will persist until you actually close blender.


A way to get Rate of Change in translation or rotation into a shader node I am doing a space scene with a space ship, and i'm trying to be physically realistic when it comes to how ships move in space.  As such, I only want my thruster effects to fire when the Rate of Change of rotation or translation is changing.  I could animate it all by hand, but I don't want to if I don't have to.

Is there an input node I can get this information with?  Everything i've seen is just plain location data.  Oris there an addon or script I haven't been able to find?  Can this information even be retrieved with a script and i'm up a creek?

Blender doesn't give value changes off the sleeve. What you need is to evaluate an animation (F-Curve) in current and previous frames and compute the difference. This solution uses a script that adds a custom frame change handler. Other way could be with PyDrivers or using Animation Nodes plugin.

Run this, it will add new properties to objects and it will update them every frame. You can access them in driver:

import bpy
from mathutils import Vector, Euler

curr_frame = None

def frame_handler(scn):
    global curr_frame
    if curr_frame != scn.frame_current:
        curr_frame = scn.frame_current
        for obj in scn.objects:
            obj.speed = (obj.matrix_world.translation - Vector(obj.last_loc)).length
            last_quat = Euler(obj.last_rot).to_quaternion()
            quat = obj.rotation_euler.to_quaternion()
            obj.angular_speed = quat.rotation_difference(last_quat).angle
            obj.last_loc = obj.matrix_world.translation
            obj.last_rot = obj.rotation_euler

bpy.types.Object.last_loc = bpy.props.FloatVectorProperty()
bpy.types.Object.last_rot = bpy.props.FloatVectorProperty()

bpy.types.Object.speed = bpy.props.FloatProperty()
bpy.types.Object.angular_speed = bpy.props.FloatProperty()

if frame_handler not in bpy.app.handlers.frame_change_pre:
    bpy.app.handlers.frame_change_pre.append(frame_handler)

Added props of interest are:

speed (in blender units per frame)
angular_speed (in rads per frame)

Use them in driver like this:

Here I am driving Y-scale and view-port material color with speed:

Note: this will only work when playing the frames sequentially. If you jump around you will get crazy values. This is a very simple handler using values from last and current frame, but it could be adjusted to read from the Fcurves of objects if you need.

Also it expects rotations in euler, but it transforms it to quaternions anyway. So if you want quaternions no problem.


Is there any way to connect blender to processing? I would like to produce processing style effects in blender or other traditional applications, either 2d or 3d. I have been looking for ways to connect the language to blender through blender's internal python interpreter. So far I have found nothing. I even looked for ways to call jython libraries within blender, as processing.py is a jython wrapper around the java original, and the closest I have found was some information on blender java. I would much rather use an up to date more feature rich version of blender than a java port. Does any one know of a way to call jython from with in Cpython that would be compatible with blender or a java or javascript to python method that would work? Even the location of a pure python script that works like processing would be acceptable.

Maybe the question is a little off topic for the blender.stackexchange

There is python-osc for talking over OSC between Blender and any OSC supporting program (Processing comes with an OSC library). You could make your own bindings.


How to remain the appended Brushes in grease pencil? The appended brush pack disappeared and reset to the default brushes every time I restart Blender. Is there a way to remain the appended Brushes in grease pencil(?)
Similar Question haven't been solved:
How to manage Grease Pencil Brushes in Blender 2.80?
The brush pack are appended and download from https://cloud.blender.org/p/gallery/5f235cc297f8815e74ffb90b
https://cloud.blender.org/p/gallery/5ccfe64353b85e279cf72acd.

After appending, select the brush, open the Active Tool and Workspace Settings menu on the right and next to the brush there is this shield icon.
When you hover your mouse over it it displays:

Fake user. Save this data-block even if it has no users.

Make sure to click that so it's blue, and to do this to every different brush you want to use next time, or else Blender sees them as unused and doesn't bother saving them.


Normal map (not quite right) outline Im not really sure why the outline of the anvil shows up on the normal map.
does anyone know what is causing it?

The outline you worry about just caused by setting Bake Margin to 16 px.

As said in manual for Render Baking:

Margin
Baked result is extended this many pixels beyond the border of each UV “island”, to soften seams in the texture.

This value should depend on margin of unwrapped UV map - not be more.


Keep Operator Properties popup expanded How do I keep the operator properties pop up menu expanded by default?

I'd like to make it open by default, but I don't know how.

This setting is saved with the startup file preferences.

On a blank startup file just use some operator (like say Add > Plane) and expand the operator options panel once (you can delete the object or undo afterwards if you like).

After expanding the panel go to File > Defaults > Save Startup File and next time you call any operator with options it will be expanded.

Since this is saved in the startup file, it should be available in all new Blender sessions as well.


How do I sharpen video strips in Blender? I see the Gaussian blur among others, but no sharpening filter.

Currently there is no sharpen strip effect in the VSE (although you might be able to build one with blur).

The only solution currently is to load the strip media as a node in another scene and apply the sharpen filter node there.

Then use that scene as a source replacement for your VSE strip.


Ghost button for Pie menu Pie menus work sorting / placing the buttons as it seems via
82467913

but this is not idea specifically when you have less buttons than 8.

Is there a way to create invisible place holder buttons so for example slot 1 and 3 are not used but only 4 7 8 9 6  and 2

In the image below I split show and hide mesh up into two sections.
I would prefer Show Mesh to be just empty.

The pie menu items are filled in a specific order - first the left item then the right, the bottom item then the top, then the top diagonals and the bottom diagonals are filled last. If the numbers used for each position seems odd for this layout compare them to your numeric keypad.

The primary design of the pie menus is to place one menu item at each location. As we have found this can be abused to show many items at each location.

While items are added in order to specific locations, we can effectively 'skip' an item by having a label with no text taking the position we want blank, it will need to be followed by a call to menu_pie() to make the next item to go to the next position otherwise it will be positioned with the label.

pie = pie.row()
pie.label('')
pie = layout.menu_pie()


Part of object and texture colour not rendering properly, lamps beside sun does not work I am trying to make a photo frame in Blender 2.65. I have not updated it as I feel it is not worth my time, as I very rarely use it (less than once a year). I am also new to Blender and find the user interface and functions/buttons to be very non-intuitive and frustrating. I am using Cycles.

I made the entire frame and a plane to project an image onto as the 'photo', in Rhinoceros then exported it to Blender. At first it rendered fine but then various things weren't working. I stumbled my way to making a properly scaled (for my purposes) frame and UV unwrapped a picture to project onto the plane as the photo in the frame. But, now it won't render properly. Before I UV unwrapped (and used an image as the texture directly), it used to render properly. Now, the top right hand triangular section of the photo only, and not the rest of the frame, will not render properly. If I move the plane forwards or backwards a little, it will not render at all. I do not have a glass in front of it, I couldn't get the glass to be transparent, and so deleted it. I am using a sun as my lamp as none of the other lamp work.

Not only that, for certain images that I use as my 'photo' in the frame, the colours will not render properly. The image I used is this photograph:
https://www.flickr.com/photos/99592065@N06/32565504846/in/album-72157679793623586/

This is what my render looks like:

This is what the render looks like with a different image:

And this is what the photo should look like:
https://www.flickr.com/photos/99592065@N06/34915821210/in/album-72157684732224085/

It wasn't doing it before and I have no idea what is happening and how to fix it.
I have included the blender file here but the photos are my own and probably won't show when you download the file, so you may need to substitute your own image texture, and, please note, I made the frame in Rhinoceros in centimeters but for some reason, it is in meters in Blender. Not sure if it has anything to do with the other lamps not working. Also I noticed that the colour not rendering properly only occurs with orangey/reddish/yellowish coloured images.

there are several things that went wrong:

no lamp other than the sun working:
thats indeed due to the fact that your frame is 400 m wide. Lamps in Blender (as in the real world) have a quadratic light falloff. so the strength is dependent on the distance from the lamp and your object. if you want to have light from 500m away, the strength must be something like (insert a really high value here).
The sun doesn't have a falloff in blender as it has no real location, it's just a directional light source.
Your image plane is not a plane. it has 8 vertices and the faces overlap each other.
go into edit mode with TABface select (shift + TAB) select the front face and delete it ( X > Faces)


When using spotlight as a projector, the projected image is consistently slightly offset in rendered image I am attempting to simulate structured light 3D scanning within Blender (v2.78c), however have encountered an unexpected alignment issue that I have have not been able to resolve thus far.

I have isolated the issue in a simple blend file which has:

One simple plane surface to scan
One camera

2001x1080 resolution (and retested with 2048x1080)
49.134d FOV

One spotlight

49.134d FOV
same position and orientation as camera
distance of 10.44 that lies on the plane
constant falloff
blend of 0

The assumption was that rendered outputs from the camera would produce single lines captured exactly corresponding to the images projected, however the center of the captured lines appears to be consistently offset.

The simple blend zip file also contains three images to be projected, and their rendered captures, each is black with a single pixel vertical line at x=500, x=2000 and x=1500. Here are the captured lines, zoomed in:

The gray column to the left of the center of the captured line is consistently darker than that of the gray column to the right of the captured line, meaning once sub-pixel accuracy is calculated, the column is always computed as being located slightly to the right of the actual column. The expected output is gray columns of equal intensity either side of the captured column, given the same location/orientation of the camera and spotlight, and the same FOV.

If anyone could shed some light (pun intended) on the possible cause and/or resolution of this issue, it would be most appreciated.

EDIT: Here are the captures using a camera resolution of 2048x1080, unfortunately the issue persists in an updated blend file.

I suspect that this is due to rounding - the Image coordinate would naturally vary from 0.0 to 1.0. Your image width (2001) is a tricky number to represent in binary (all values are held in binary in a computer) so there will naturally be a rounding error - however small. In a perfect situation you'd expect anything below 0.5 to round down and 0.5 and above to round up but, due to the error in precision, values aren't held exactly - so values very close to, but below, 0.5 might actually be represented as slightly higher and actually round up when they should be rounded down. This would mormally be balanced by opposite rounding at the other end of the range (ie, values slightly less than 0.0 being rounded up) but since image coordinates are limited to the range 0.00000000 - 1.00000000 this doesn't occur (since they are never less than 0) so the rounding is slightly biassed to one side - ie, 0.0 to, say, 0.49999 are rounded down but 0.49999 to 1.0 are rounded up. The extra 0.00001 causes the discrepancy.

Note that I haven't any evidence for this - just my thought regarding how values are held internally and how rounding occurs. Written as an answer rather than a comment as too long-winded for comments.

A good test would be to use an image width of 2048 (a power of 2) and see that each side is shaded the same (ie, pixel 1024 should match 1025 precisely.


How to make newtonian particles to not go through each other? Right now it just looks more like fluid, and the objects are going trough each other a little bit like this:

If i understood the question you can use the Cast Modifier

Make 2 sphere

Select 1 sphere and add Cast Modifier and Target to other sphere

When you move the 1st sphere it goes inside the other.


How do I view the animation I rendered? I had finished my animation, rendered the whole thing overnight, and when I came to my desktop in the morning, it was finished. (I am an amateur at this, so don't judge) The animation has rendered, now how do I watch it?
I would like an up-to-date answer to my question, and please explain. I am using the latest Blender (At least when I made this question) version 2.8. I've tried to press the folder button, but that just said "Open Image", and then there was "New Image", which I didn't want to have to render it again. Maybe I did it wrong.  I did Render, render animation. Or Ctrl + F12 for short. Please help, I am new to this!

There are two ways to render an animation in blender:

Render as Video
Render as Image Sequence

My suggestion is to use the second method (Render as Image Sequence) for having a list of benefits:

you'll have all the single frames not compresses (best settings are saving single frames as PNG or any lossless image type), so if you need to edit something later on you can do it
you'll decode the video after, so you can always change the compression and format (just use ffmpeg to get quicker and best results) (if you just render the animation as video in Blender and if you select a compression too low, you cannot fix that later)
if your computer crash you'll have the single frames (if it crashes while rendering the video, I fear you'll get a corrupted video in the best scenario, you'll get nothing in the worst scenario)

Your file (or files) are in the folder you specified as OUTPUT (in the output properties).
It can be also in the TMP folder. In this case you need to find out where the TMP folder is on your pc by typing %tmp% in your windows search bar


When integrating live action footage and cg, how to make proper shadows for actors? What is the best way to make believable shadows for moving actors that are standing in front of a green screen?
Do you need to have a perfect modeled double that follows his movements so it can cast shadows? I'm guessing it becomes very tricky when the actor's clothes and hair are also moving. The other thing is that you are probably limited to your modeling, rigging and animation skills.
Is there another way of doing so? Are there some considerations when shooting in front on a green screen regarding the shadows for the integration (with cg)?
P.S: If someone knows how they did it on Tears of Steel... that's probably a good place to look. Unfortunately I'm unable to buy the dvds for now.

The green screen does not remove the shadow as long as your threshold is low enough. Because it's a darker shade of green, the green will be removed, but the gray will stay.

If that method doesn't work, you can mask around the shadow and add it back in later with the compositor.

You don't need to make a full scale model and match the lighting as that's more work than it's worth.


How to find duplicate named vertex groups quickly I am trying to merge to rigged armatures but apparently there are some vertex groups that have the same name. I unfortunately have no idea which ones have the same name. Is there a quick way to find the duplicate named vertex groups so I don't have the waste my time changing all the vertex groups?

When you join two armatures whoose bones share some names, the last selected ("active") armature bones mantain their names while the first selected (which will be merged into the other) will have all duplicated names with an added suffix ".001".

So, you can type ".001" in the outliner filter and you will have a list of all duplicate names.


How to make folding Origami animation I want to make an animation of folding origami, so I want to know how to animate the rotation of a plane around an axis.

I remember making an animation folding a crane in the past.

It involved making a real crane, unfolding it then cutting a plane mesh where the folds are in the real one. You have to double up on each cut as real paper folds have a little thickness.

Then add an armature with a bone for each plane, joined at the doubled hinges, then animate the armature.

I'll see if I can dig up the blend file and provide a clearer explanation. The thing I remember most it's that it is not trivial! Don't expect it to be done in an hour.


Bending a ping-pong racket I want to bend a ping-ping racket.

I tried to use a curve modifier and I faced a problem which I think it's  solvable only in Python scripting. I hope there is an easier solution without any programming involved.

The curve modifier, to make a smooth bending, requires a lot of cross edge loops. It's easy to get them for Mesh objects like a cube or a cylinder using the tool loop cut and slide.
Tutorials about bending, I have found, don't discuss effective ways to doing so for complex objects, created with extruding a bezier curve.

I created a half of the contour of my racked with a bezier curve, mirrored it and extruded. Back and front sides are covered with triangles. I tried to beatify, poke triangulation, etc, but I cannot get faces in form of wide trapezoids automatically.

Subdividing pocked ngon is not good. It enforces to make a lot of triangles I don't need. Such triangulation doesn't give equal distribution. Some places has a lot of faces but others don't.

Here it my desirable ngon trapezoidation (Top view)

    ______
   /______\
  /________\
  |________|
   \______/
      ||
      ||

An idea about limitation of an triangle edge also looks promising, but I wonder why there is no such parameter for the triangulate operation.
I would get a lot of small triangles, but at least vertex density of the surface would be homogeneous.

This case is pretty basic modeling stuff, so I will not go deeper in simple details and just show you an overview not to write full blown tutorial here (it's not place for this). If this is your first day you will need to know some starter pack things like:

Edge Loops and Edge Flow in general (tris, quads, ngons, poles and such),
creating, joining, cutting (Loop Cuts), extruding faces,
adding simple modifiers (Mirror, Subdivision Surface, Curve).

Everything is here, on Blender Stack Exchange as well as on YouTube or any other place with Blender resources (there is topic with them here too).

  I'm trying here some new answer technique, so be gentle. I'll expand
  this answer as much as OP will need it.

Overview:

Start with simple Plane at extrude one edge along green curve 9 times (to get 10 faces).
Add Mirror Modifier with Clipping checked.
Fill in faces in the middle of paddle (I don't know how this rubber surface is called).
Extrude bottom face to have a handle.
Add Subdivision Surface Modifier.
Select all and extrude it to gave depth to paddle.
Add Loop Cuts along green curve (the same from first step) and the short one at the bottom.
Add Bezier Curve.
Add Curve modifier for paddle. Important! It should be above Subdivision Surface.
Move the paddle along Curve to adjust it.
Edit Curve to give it bend.

In the blend file, on layer 2 you have 3 models of paddle to study them.

Blend File:

Temporary link (Blend Exchange giving some error with URL):

paddle.blend


BGE Video Textures not showing up in exported .app I've created a scene in BGE which involves some video textures I made by using a script to swap image textures with videos that I assigned as properties to each object. Everything runs fine and great when I play the game in BGE itself, but when I try and export the game as ann .app, the video textures are blank. I've already tried packing all my external data into the .blend, but I think since the videos are assigned in the properties panel, they are not being included for some reason. What is causing this and how can I make it export properly?

Still no luck. I tried exporting the app to the same place my .blend is saved and still no video in the .app. I am still a novice at this so forgive me if Im not articulating well.

For reference here is the script I am using to play the videos in the .blend

######################################################
#
#    Movie.py        Blender 2.50
#
#    Tutorial for using Video.py can be found at
#
#    www.tutorialsforblender3d.com
#
#    Released under the Creative Commons Attribution 3.0 Unported License.
#
#    If you use this code, please include this information header.
#
######################################################

#import GameLogic
import bge.logic

# get current scene
scene = bge.logic.getCurrentScene()

# get the current controller
controller = bge.logic.getCurrentController()

# get object script is attached to
obj = controller.owner

# check to see video has been added
if "Video" in obj:

    # get video
    video = obj["Video"]

    # update the video
    video.refresh(True)

# if video hasn't been added
else:

    # import VideoTexture module
    import VideoTexture

    # get matID for the movie screen
    matID = VideoTexture.materialID(obj, "MA" + obj['material'])

    # get the texture
    video = VideoTexture.Texture(obj, matID)

    movieName = obj['movie']

    # get movie path
    movie = bge.logic.expandPath('//' + movieName)

    # get movie
    video.source = VideoTexture.VideoFFmpeg(movie)

    # set scaling
    video.source.scale = True

    # save mirror as an object variable
    obj["Video"] = video

    # check for optional loop property
    if "loop" in obj:

        # loop it forever
        if obj['loop'] == True:
            video.source.repeat = -1

        # no looping
        else:
            video.source.repeat = 0

    # start the video
    video.source.play()

The VideoTexture module expects external files. It does not work with internal data blocks unless explicitly provided by Python call.

Therefore "Pack External Files" will not solve your issue. It increases the size of your distribution as you need to distribute the external files (as separate files) anyway.

I suggest following:

Perform "Make Paths Relative" before distributing
Ensure to distribute your VideoTexture source files where they are (relative to the start blend file).


Ho do I write a script to remove loose geometry from all objects? I'm trying this:

import bpy

bpy.ops.object.select_all(action='DESELECT')
for o in bpy.data.objects:
    o.select = True
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='DESELECT')
    bpy.ops.mesh.select_mode(type='VERT')
    bpy.ops.mesh.select_loose()
    bpy.ops.mesh.delete(type='VERT')
    bpy.ops.object.mode_set(mode='OBJECT')
    o.select = False

when I manually assign an object like o = bpy.data.objects[3] and then do every step manually in the python console it works. But with the loop it doesn't work. Is it a bug or am I missing something?

Set the active object:

bpy.context.scene.objects.active = o

and you should check wether the object is a mesh object:

if o.type == 'MESH':
    ...