text:
How do I flip normals on a shrinkwrap modified shape? (Blender in 2.79.)
I've created a "Smart Watch" model (with screen) in Blender 2.79. I used the "shrinkwrap" modifier over a square to create a rounded square, then added a flattened cube for the screen.
When I import my model into my game, the outside of the case is transparent to where I see the insides of my watch.
Everything I've found online about flipping Normals does not appear to work with a "modified" object. Solutions refer to menu options I simply don't have (or can't find.)
Likewise, applying a "Solidify" modifier (as another link suggests) absorbs my screen and watch stem/button into one big rounded cube (even though the only selected mesh is the case.)
How do I flip the Normals of just my shrinkwrapped cube so the textures on my imported watch face out instead of in? TIA.

I used the following YT video to create the rounded case: Blender Tutorial: Create A Cube With Round Edges. The Easy Way.

I used the following YT video to create the rounded case. https://www.youtube.com/watch?v=_aC6M6zYgAg

Ok. If you plan to make no more changes with the results of the modifier, I might just apply it, and work with that. However, it is odd that the normals would be inverted., Will try to review the video, but in the meantime you might do better off just to bevel a cube than use shrink wrap.

can you explain why you use shrinkwrap to create a rounded square? I agree with Zargul - "normally" you would try bevel or subdivide...but maybe you have a good reason for this...?

hello, could you please show images in your question? It would really help to understand

Thx for the replies. I used "shrinkwrap" b/c I'm a novice and that was the solution I found to create a box with rounded corners. Please note there is an image link at the end of my question showing the result. TIA

Your image was shown as a link but not as an embedded image because the markup was slightly messed up (missing '!'). It's nows fixed.

No one was able to provide a solution to flipping the Normals of a shrinkwrapped box, so I resorted to using the suggested "subdivide" method: Using the "Subdivision Surface" modifier and "Loop Cut and Slide". This produces the same basic shape where the object itself is deformed instead of a wrapped "cover", so the Normals are never changed. https://www.youtube.com/watch?v=YBmxfNysftA


text:
I can't figure out how to setup nodes based on YT comment for bloom with a transparent background
I have some object which uses bloom in Eevee and as you know I can't save render result with transparent background, so I found this YT video in which the author figure out how to set it up for export with two image sequences but he had shown how to combine them in Blender. He showed how to combine them in a painting program. Here is the link to the YT video https://youtu.be/tmb5HRU1cUo?t=698. And here is pinned YT comment from which I'm trying to reconstruct the node setup.

To do this without rendering twice, just set up a separate File Output
node in the compositor and feed the Alpha channel into it. Uncheck
'Use alpha' in the main composite node. Then you'll get both separate
files in one render process. Then just invert the alpha pass in your
compositing app to make it black-on-transparent and use this method.
This resulted in some white fringe so then just set the inverted alpha
layer to Multiply.

Here is the original node setup:

Here is my try:

but I'm missing some parts from that comment. I can't figure out this part:

This resulted in some white fringe so then just set the inverted alpha
layer to Multiply.

Can someone help me?

What do you mean you can’t save the render results with a transparent background? I do it all the time, and bloom isn’t lost.

@TheLabCat yes but did you tried to save it if you use bloom in your scene ?

I stand corrected. Bloom is lost. It shows up in the render result, however, so I think this is a bug.

Ah, no it isn't, it's a problem with the PNG format. https://developer.blender.org/T81199 See the last comment here. Let me just double-check with OpenEXR...

Hmm, OpenEXR doesn't store it either...

@TheLabCat no it's not a bug take a look at YT video which I mentioned in my question

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Using grease pencil stroke on a object to perform a Boolean function using geonodes
Is there a way to split an object into n parts using a grease pencil stroke such that the cut surfaces have a male-female connection point. the basic function should be:

fast

the cut surfaces when joined are seamless

they have a male-female connection point at the cut surfaces'
respective mid points

this can be replicated for any and all objects no matter the shape or
size

I am assuming geonodes the best way forward.
P.S. This is basically for 3D printing, I don't know if this helps in your thinking process, but thought I should mention it.
Below are images of what i want the geo node cluster to do:

Sorry to say this, but I don't think this will be possible with Geometry Nodes. To be precise from my point of view: No chance.

@quellenform I've seen people use geo nodes to create trees... How do they manage that?

This is relatively easy, because there you work with curves along which you create a mesh or instantiate objects. In your case, however, it's about editing/manipulating an existing mesh. This is not a very satisfying topic for Geometry Nodes and the possibilities here are extremely limited.

The blue lines in the screenshots are actually Annotations. It is the predecessor of the Grease Pencil used in 2.79. -- I think the task mentioned in this question can be done with GN if you use a simple plane as a "knife" and not a Grease Pencil object. Inside the GN you can use the Boolean Mesh node to cut the mesh and merge it with the male/female connection objects. But this would be limited to cut the object into 2 parts, not n parts at once.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Nothing happens when scaling faces along x-axes
I'm trying to scale my faces along the x-axes, so the faces become smaller like shown in the first picture. However, when I do it, nothing happens as can be seen in the second picture.
Scaling along the Z and Y-axes is fine.
Applying Scale doesn't make a difference.
How can I scale the faces along the x-axes so they become smaller and I get that more tapered shape?

EDIT
I have my pivot point set on individual origins.
The first image is basically what it should be, so that is what it will look like if I am able to scale along the x-axes in the second picture. It does feel like I have created extra faces, but when I dissolve them and try to scale it doesn't make any difference.

The file:

What is your Transform Pivot Point?

@HarryMcKenzie I was about to ask that! Please show an image of the whole screen including the top toolbar.

I'm not sure what you are showing in the second screenshot - there the faces are definitely smaller in X direction as in the image above. Although, in the first it looks like the faces have the width of the gap so it is one segment in the center, in the second there is another row of faces to the left and right. Could it be each gap is made out of three segments and you only scale the inner ones? Of course this doesn't change the taper since the outer faces stay in place.

It's possible you've accidentally created extra rings of faces, there, with a bevel or an extrusion, and you're scaling those, leaving the edges connected to the wider segments behind.

I think you should share your blend file or at least this part of the model. https://blend-exchange.com/

Looking at your file, @RobinBetts explanation seems to be the good one. And it seems you have that several times. Use merge by distance to solve it.

@lemon that's indeed what it look like, but dissolve faces should then be the solution right? And that doesn't make a difference

No, dissolve faces doesn't do that.  You can merge by distance or you can do a degenerate dissolve.

@DPlayground I downloaded your file, selected all and hit M > Merge > By Distance. This removed 304 vertices, you have basically every edge in the smaller rings doubled, and not only the ones you try to scale down, the ones on both ends as well. Selecting all objects and merging by distance removes 368 vertices all in all.


text:
Why does rendering add geometry?
Why does rendering add like some sort of geometry?
You can see how it is modelled and the material preview on the first picture and then the render is shown on the second picture.

EDIT
Ah, clear! I indeed had a cube hidden.
However, I still have this black part on my white drawer as you can see in the picture below. I don't have anything else hidden anymore.
What might that be?

Check your outliner. There's a cube you hid in the viewport, but not from rendering.

Rendering doesn't add geometry. It can only show geometry which is hidden in the viewport. Or in case of e.g. displacement in Cycles it might show geometry different than in solid or material preview mode. But it doesn't geometry that's not already present in some way or another in the scene.

Blender gives you a number of options to alter how renders look compared to viewport, e.g. Subdivision Surface modifier allows you to specify different subdivision levels for viewport and render, also adaptive subdivision together with displacement can make a difference in geometry between Eevee preview and Cycles render. There is also "is viewport" input in geometry nodes, and a Python script could affect the scene differently depending on context.
In your case, it seems you've hidden some objects by pressing H key - this is however a feature to only temporarily hide an object. Press ⎇ AltH combo in viewport to reveal all hidden objects. If your viewport still displays the scene differently, Enable "Disable in Viewports" icon in your Outliner and make sure to set each object's "Disable in Render" setting to be the same:

The black artifacts are called z-fighting and are caused by two overlapping objects - select one and hide it (but not using the H key, either delete it permanently or disable it in render).

I don't have any more hidden objects. I tried enabling "Disable in Viewports" and deleting one of the overlapping objects, but that doesn't make a difference. It is still there.

@DPlayground maybe it's not another object but e.g. duplicated geometry inside a single Mesh?


text:
Why is my bevel modifier not working?
I want to bevel my main cube like shape, but when I add a Bevel modifier nothing happens. I did already use a Boolean tool. Is that the reason my bevel modifier is not doing anything?
EDIT: I do get a small bevel when I set the Limit Method to none, but it doesn't make a difference if the amount, for example, is 0.1m or if it's 0.8m
I tried deleting all the booleans and corresponding cubes, but it doesn't make any difference.
The scale is also 1.0 everywhere.
These are the modifier settings:

Here is the file:

Maybe it would help if you would show us at least the modifier panel with the settings of the modifiers...?

You can use virtually as many modifiers as you want. The issue is most likely your new bevel modifier is set in a way that produces no visible result. Hence, we need to see your modifier's settings.

Or share your file so that we can give a look

I added the file

I also added the modifier settings

https://blender.stackexchange.com/a/234635/110840

How would I know if the vertices are too close together? I wouldn't think that's the case, but I can check. How would I change that?


text:
Can I get a straight edge after separating a face from a beveled shape?
I added some edges and beveled them to create a more rounded rectangle shape, as you can see in the picture below. Now I also want to put two doors in front of the main shape. So what I did, is duplicate the front face of the rectangle, added a loop cut and then separate both doors. However, now I also have that rounded shape in the middle of my two doors door. But I want the doors to perfectly match together. So I want it to be straight line basically.
Can I get rid of the rounded corners in the middle?
I also tried extruding first, separate and fill the face, but that also give me a weird front face of the door itself, as you can see in the second picture.
EDIT I also tried adding an edge loop, which you can see in the third picture. But that still doesn't give me a really sharp edge. I still have a rounded corner, as you can see in the third picture.

you need to add support edge loops to keep the edges sharp

I have tried that as well, I have added a third picture to show that. But I still have those little rounded edges in the middle. I want to get them completely straight.

See this topology, it worjs: https://zupimages.net/up/23/06/8ep7.gif

Is this something like what you want? There may be no need for subdivision at all..

The title of the question is a bit misleading, it looks like you have rounded edges not from beveling, but from a Subdivision Surface modifier.
To make those edges sharp you can select them in Edit Mode, go to Item > Edges Data and set the Mean Crease to 1 (or a lower value if you want a slight roundness).

Ah that's true. I have added a subdivision modifier before adding loop cuts and bevelling those. So I probably should have added those later one, first make the shape.


text:
How to un-extrude an object?

I was making a cup handle so I extruded a face of the cup, then however I right clicked and thought that would undo it. I didn't notice the dent it left though, after that I did a bunch of smoothing on the cup and then when I went back to extrude it, it didn't create the smoothing I wanted. That's when I noticed the dent, I decided to make the handle on a different face, but is there any way I can remove the ugly dent?
P.S I am a beginner so please don't be angry with me for thinking right click was undo.
P.P.S Cup is on layer 2.

As the subsurface modifier is set to 3, probably there are few vertices to rework?

Depending on the case there might be several ways to undo. If you didn't move extruded vertices then W > Remove Doubles will suffice (Edit mode > all selected). Otherwise dissolving (X > Dissolve faces, face selected) should be fine

Sorry for my bad knowledge of blender, but if when I attempt to remove doubles, the face is simply split in half. While if I attempt to dissolve faces, nothing seems to happen

Related https://blender.stackexchange.com/questions/191734/how-to-return-extrude-back-to-original

It seems you have extruded several times but did not moved the extruded vertices.
In this particular case, to remove that:

Select the top extruded face (CtrlTab then choose 'face' and right click to select the face)
Use CtrlNumpad+ to extend the selection. Do that several times. You know you are ok when the selection come to the surrounding parts, when it is deselect twice using CtrlNumpad-
X to delete the selected vertices
CtrlTab then choose 'edge' this time
AltRMB to select the edges surrounding the hole
F to remake the face

As it may seem that  RMB cancels an operation (as seen with translate, rotate or scale GRS) this behaviour appears unpredictable.
After the extrude operation, Blender immedeately goes into the translate operation (usually G).  RMBcanceling the operation simply cancels the translate part, snapping the extrude face to where it started from. In vertice mode the result can't be distinguished, since the vertices overlap. In face mode, the additional faces can be seen.

Select the face and delete X the vertices. Select the remaining vertices and create a new face (F).

OR

Select the vertices in question or all for that matter (A) and Remove Doubles. Press W to open up the specials menu and choose Remove Doubles.

For the first one I seem to end up with the same dent as before, for the 2nd one, removing the doubles puts a diagonal line through the dented square.

@Miroslav Upload a screenshot of that diagonal line to imgur.com and link it here. Or upload your file.

Uploaded the file.

In edit-mode: goto Mesh (at the top of the 3D viewport) > Cleanup > Merge by distance. (I know it's an old question but it might help others coming here via google-search).

you might want to mention that this is just for 2.8, it had a different path in older versions.

I found that selecting some of the affected area (or all of the mesh) and going Mesh>Cleanup>Merge by distance fixed my unnecessary edges from extrusions or otherwise.
The nice thing is that you can do the cleanup to just the affected area in case there are some parts of the mesh that you dont want to merge edges for... for whatever reason...

For un extruding use CTRL+Z incase you do it mistakenly. If that doesn't work select extruded face and delete all of vertices. This will remove the extra part of the mesh.
PS- Right click doesn't work for un extruding so avoid it in the future.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Fluid Simulation looks white
I'm using Cycles Render (Blender 2.79)
I created a domain, a circle that works as an inflow. I baked the simulation, the fluid looks like milk. I selected the domain, created a material (used glass for surface and volume absorption as volume). I render and I still see milk as my fluid, what's going on?
I have a sun, and I'm trying to simulate gasoline.
Here's My File:

You added a material to the domain, but it is currently not in use since it is not assigned to any part of the mesh.
This is however an easy fix; just remove the other material from the domain by selecting it (the one named "Material") and clicking the minus button on the right hand side. Your fluid should now be using the material "vino.004" instead.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Python to create just vertices not faces and edges
This: create mesh then add vertices to it in python (see snippet below) used mesh.from_pydata(verts, edges, faces).
I would like to just create a mesh of vertices, no edges, no faces.
I would think I would delete:
edges = []
faces = [[0, 1, 2, 3]]

But what would I replace mesh.from_pydata(verts, edges, faces) with?
import bpy

mesh = bpy.data.meshes.new("myBeautifulMesh")  # add the new mesh
obj = bpy.data.objects.new(mesh.name, mesh)
col = bpy.data.collections.get("Collection")
col.objects.link(obj)
bpy.context.view_layer.objects.active = obj

verts = [( 1.0,  1.0,  0.0),
         ( 1.0, -1.0,  0.0),
         (-1.0, -1.0,  0.0),
         (-1.0,  1.0,  0.0),
         ]  # 4 verts made with XYZ coords
edges = []
faces = [[0, 1, 2, 3]]

mesh.from_pydata(verts, edges, faces)

mesh.from_pydata(verts, [ ] , [ ] )

This should work (edited to add - I just tried it, it works):
vertices = [( 1.0,  1.0,  0.0),
            ( 1.0, -1.0,  0.0),
            (-1.0, -1.0,  0.0),
            (-1.0,  1.0,  0.0),
           ]
edges = []
faces = []
new_mesh = bpy.data.meshes.new('new_mesh')
new_mesh.from_pydata(vertices, edges, faces)

See How to create mesh through the Blender Python API, which describes how to create a mesh of just a vertex, no edges or faces.


text:
Smart UV Unwrap on Joined Object Breaks Textures
I have a simple build into a Joined object. When I try to smart uv unwrap the object, the textures break.
Here's what I did:

OBJ> A to select all of the individual objects
OBJ> Shift-D, Enter, Cntl-J
EDIT> A to select all
OBJECT DATA PANEL> + new uv map named JoinedSmartUnwrapMap
UV EDITOR PANE> + create new image, 1024x1024, no alpha
EDIT> U , smart uv unwrap

But, when I smart unwrap, the textures blow up.
Am I missing a vector input node of some sort on the individual wood material and the poster material? for the objects prior to joining?
Joined object before smart uv unwrap:

Joined object after smart uv unwrap

Files saved in the state just before the Smart UV Unwrap

Hi and welcome to Blender Stackexchange. Please use blend-exchange to upload .blend files. Files on other services tend to "vanish", thus rendering your question and possible answers practically useless in the future. Please use the edit link at the bottom of your question and add the link given by blend-exchange to your question.

Here what's should help. As I understand you want to bake textures.

Join objects into one.
Duplicate object and move to different layer. Name it "bake".
Remove all materials from "bake" object. Create new material for it.
(image tex > Diffuse > output).
Create new map for baking (in UV editor) and save it as "Bake_diff"
UV unwrap "bake" obj with smart UV unwrap.
Select "Bake_diff" in image texture node as active one.
Set background on full white.
Go to Bake setup. Tick 'Selected to Active' and setup 'Ray Distance' to 0.100
Now select both layers, select first obj with textures and as second, the bake one. (make sure image texture nod with "Bake_diff" is selected)
Bake and wait.
Save map F3

There's a blend. Prepared, just do 9 & 10.


text:
How can I have an entire island move when selecting a portion of it?
In the UV editor, moving an island when selecting the entire island works fine. I am trying to select a part of my island and move it to cursor (offset). Ofcourse, doing this would only move whats selected. I need the entire island to move, except have a certain part of the island be used similar to an origin, having the entire island move, but using a certain part as an origin. How can I have an entire island move when selecting a part of it? In other words, I am looking to create an origin in the UV editor (for a certain island).

Enable Proportional Editing in the UV editor, setting it to Connected and Constant. Then after selecting just move the island as close to the relevant pixel you can, ensuring the Proportional Edit is mousewheeled out (down on windows) enough to move the entire island.
If you need to be perfect, I guess move a randon, probably still-to-be-unwrapped vertex to the cursor with Snap>Selected to Cursor. The select your island, and with Proportional editing above, Change "Type of Element to Snap to" to Vertex (icon next to the Magnet). Assuming Snap during Transform is off, G to move your island, and if you hold Control, your island should snap to the vertex at the cursor when you get near.
Just remember to to move the "spare" / "cursor" vertex out again by a combination of inverting selection or some such.


text:
How to have character movements properly work diagonally?
Intro
I have a character with a movement system that runs on a python script, and I use the motion actuator's force to create movements. Using my forward key it works fine. The same with my backwards key, leftwards key, and rightwards key.
Problem
However, when I use certain combinations (forward + left, forward + right, backward + left, backward + right), my character has an imbalance of movement speed.
Changes
On first sight I thought all I needed to do was change my script into the following:
import bge
from bge import logic

cont = logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
keyboard = bge.logic.keyboard
input_just_activated = bge.logic.KX_INPUT_JUST_ACTIVATED
input_active = bge.logic.KX_SENSOR_ACTIVE

own["movement_allowed"] = True

forward_input_key = "WKEY"
forward_input = keyboard.events[getattr(bge.events, forward_input_key)]
backward_input_key = "SKEY"
backward_input = keyboard.events[getattr(bge.events, backward_input_key)]
leftward_input_key = "AKEY"
leftward_input = keyboard.events[getattr(bge.events, leftward_input_key)]
rightward_input_key = "DKEY"
rightward_input = keyboard.events[getattr(bge.events, rightward_input_key)]

weapon_decider = scene.objects["weapon_decider"]
forward_force = weapon_decider["forward_force"]
backward_force = weapon_decider["backward_force"]
leftward_force = weapon_decider["leftward_force"]
rightward_force = weapon_decider["rightward_force"]

if (
        forward_input == input_active and
        leftward_input != input_active and
        rightward_input != input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0, forward_force, 0], True)

if (
        backward_input == input_active and
        leftward_input != input_active and
        rightward_input != input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0, backward_force, 0], True)

if (
        leftward_input == input_active and
        forward_input != input_active and
        backward_input != input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([leftward_force, 0, 0], True)

if (
        rightward_input == input_active and
        forward_input != input_active and
        backward_input != input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([rightward_force, 0, 0], True)

if (
        forward_input == input_active and
        leftward_input == input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0.5 * leftward_force, 0.5 * forward_force, 0], True)

if (
        forward_input == input_active and
        rightward_input == input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0.5 * rightward_force, 0.5 * forward_force, 0], True)

if (
        backward_input == input_active and
        leftward_input == input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0.5 * leftward_force, 0.5 * backward_force, 0], True)

if (
        backward_input == input_active and
        rightward_input == input_active and
        own["movement_allowed"] == True
    ):
    own.applyForce([0.75 * rightward_force, 0.75 * backward_force, 0], True)

Sorry if it's confusing, but the point is, I added more conditionals to basic forward, backward, leftward, and rightward movements so the key itself and not another key that creates the combo is active, not only the key. Moreover, I added the combos separately. Now the movements are still imbalanced as I expected, so I changed the movement values for the special combos so that diagonal movements use the two directional movement values, and each of the two directional movement values is multiplied by 0.5 so it uses 50% of each value. I thought this would work, but there is still an imbalance of speed.
Conclusion
How can I have diagonal movements, using force, not create an imbalance of speed ? (Changing the script by using 50% of the two directional values doesn't work.) I would like the answer to be in python, thanks!
Notes
And for anyone looking for a script to tell the objects speed/looking for my speed script:
import bge
from bge import logic

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

point = [0, 0, 0]
vec = own.getVelocity(point)

x_value = vec[0]
y_value = vec[1]
z_value = vec[2]

own["speed"] = abs(x_value) + abs(y_value) + abs(z_value)

Also, for more clarification, my old script was different in the following ways:

Only had forward, backward, leftward, and rightward conditionals.
There were no other conditionals and added conditions to each condition. For example, I had forward_input == input_active instead of forward_input == input_active and leftward_input != input_active.

speed = object.getLinearVelocity().length

You combine forces in your script. This means you add each force on top of the already applied velocity. Each single force influences the motion. In your case you can (theoretically) have 8 different forces applied at a single logical frame.
As all of your forces include the counter forces too, if you apply all possible forces there will be no motion changes as the combined force is zero.
Your code can apply non-orthogonal forces within one frame (left, diagonal-left + forward), the combined force will be stronger than a single force.
   E    +    NE       =    NEE      | direction
(1,0,0) + (0.5,0.5,0) = (1.5,0.5,0) | force
   1         1.6           2.2      | strength

this all makes no sense.
You work with forces and vectors. I strongly suggest to change your calculation model.
What you can do is:
A) calculate the direction of the force
B) calculate the strength of the force
Direction
There are not that many directions. You already defined 8 (N, NE, E, SE, S, SW, W, NW). You can either single pick one of 8, or combine 2 of 4 options. This is up to you. The result is a vector.
Strength
I assume you want a constant strength. You can explicitly set it at the direction vector.
Result
Is a vector that can be applied as force (or velocity)
Example
import bge
controller = bge.logic.getCurrentController()

from mathutils import Vector

directions = [
 Vector([ 0,  1 ,0]), # N
 Vector([ 1,  0, 0]), # E
 Vector([ 0, -1, 0]), # S
 Vector([-1,  0, 0])  # W
]

sensors = controller.sensors
direction = Vector([0,0,0])
# assuming the sensors are in this order: N, E, S, W
for i in range(len(sensors)):
    if sensors[i].positive:
        direction += directions[i]

force = direction
force.length = 1

print("this is my force", force)

I hope it helps


text:
Game engine's tic delay in python - how to do?
The GE has a simple feature that allows you to execute logic bricks at a given time (tics). For example, I can have my object move every 5 tics: Always (5 frequency) > and > Motion. How can I have tic delays of the GE in python? Thanks.

This is a bit more of a general programming question, than a Blender question, so you might have more luck over at StackOverflow, though they might also have trouble answering because you're in the Blender environment.
That being said, the general idea is that you want a check that will determine how much time has passed since the last "tic." You'll decide that a "tic" is 100 milliseconds, 10ms, 5ms; whatever length of time makes sense for your application (ticking too frequently is called "thrashing" the CPU, a term which might help you with future research). If enough time has passed, it executes a "tic." If not, it yields to some higher level process like an outer loop, the main program, or even the OS. You can yeild by having an if that just skips over some code if it's not time to tic yet, or you can use a function like sleep() that actually tells the CPU "I won't need any time on the processor for at least x seconds" and then the OS handles the wait time.
It's a common problem to which you should be able to find lots of solutions, some of which you'll be able to tailor to Blender.
More on sleep(): http://pythoncentral.io/pythons-time-sleep-pause-wait-sleep-stop-your-code/
Hope that helps!
EDIT: With @blackhole 's contribution above, you know that a python script will run every tic. Knowing that, you can just skip tics:
tics_skipped = 0
if tics_skipped > 5
    #reset the counter
    tics_skipped = 0
    #then do the other things that need to happen here
else
    #otherwise, skip this tic and increment the counter
    tics_skipped = tics_skipped + 1

That being said, there's no guarantee that BGE tics are consistent. In fact, I'll bet you they aren't. A "tic" is probably a single pass of the GE doing everything that it needs to do for one frame. That might take 0.001 seconds, or it might take 10 seconds, but that's one tic. Depending on what you're trying to move and how, there's probably a good, standard way to do it. I just don't know what that is ;-)
You might use this same idea to check the amount of time that's passed, but you're going to have to look into how to get sub-second resolution. It's possible, but it's not trivial.

OK, thanks. As of know, I know little about python. If I use yield, would I do yield(x), x being the time? Also, I always thought a GE tick was equivalent to 1 ms anyways, is that right?

I really don't know about GE tics, I'm sure it's in the documentation somewhere. I'm sorry, it's not yield, it's sleep() and it's seconds, not ms. Sorry for the mistake ;-) You might could use sleep() and x would be the approximate number of seconds to wait until letting this process swap back on the CPU. The only thing about sleep() is I don't know how it will interact with the rest of the game engine. You'll have to do some experimentation to make sure it's not having any unintended consequences. Here's a bit more: http://pythoncentral.io/pythons-time-sleep-pause-wait-sleep-stop-your-code/

Using sleep() makes my frametime @0.2 when its at sleep(1). The GE is faster when sleep() is lower (x-value). It seems that this isn't a timer.

No, that makes sense because it's not a timer at all. If "sleep(1)" says "I won't need to do any work for at least 1 second" then (apparently) it won't even draw a frame any more often than once a second (1.0 fps, probably less because it's doing more than just drawing a frame). Sleep(0.1) would let you draw a frame at most ten times a second. I was hoping sleep() wouldn't make the whole Engine sleep, but apparently that's what it's doing. The principle is still the same, though. I'll add a little pointer to the answer.

OK, thanks for update! I will check it out when I can. :)

The always sensor not only triggers logic bricks but can run python scripts as well. Simply connect the sensor to a python controller and the chosen script will run every x ticks.

You can also alter the delay till the next script run by adjusting the skippedTicks property.
import bge

cont = bge.logic.getCurrentController()
sens = cont.sensors['Always']
own = cont.owner

own.worldPosition.x += 5

if own.worldPosition.x % 10:
    sens.skippedTicks = 50
else:
    sens.skippedTicks = 10

Thanks for the help. I think I wasn't clear, my bad on that. I was looking for a timer that runs on the same timer as GE tics. I'm not sure but 1 second = 60 tics. With this, I can use sleep() (as Matt stated below) but I'm not sure if 1 second = 60 tics, so I've asked for a timer that works with tics, not seconds/ms/etc.

The GE has a simple feature that allows you to execute logic bricks at a given time (tics). For example, I can have my object move every 5 tics: Always (5 frequency) > and > Motion. How can I have tic delays of the GE in python? Thanks.

You connect a Python controller with that sensor.
Every 5 frames the controller gets triggered and executed (regardless what controller it is).
You need to be careful when connecting other sensors. The controllers get executed when any sensor triggers them.
Alternative
You can get a much better control over the timing with a delay sensor. It will change from not positive to positive after a configured delay. This way you do not rely on trigger but an status. This is much robuster regarding side effects from other connected sensors.


text:
How to have an object exert a force all around it?
Problem:
I have an object which, when triggers, is supposed to exert a force all around the object itself. I am looking to have the force affect other objects. How can I create a force coming out of an object and going in all directions?
Include/Note:

Force decreases over distance. This way, an object close to the force will be affected more than an object farther (than origin of the force) in distance.
Force does not decrease/increase strength over time; force is constant.  This will be useful in many ways. For example, if the object exerting the force exerts the force for only 1 ms, the objects affected by it will be affected by this (1 ms lasting) force which has just been activated (1 ms lifetime) by the same strength as a force that affects them for 1 ms but has been going on for 60 ms.
A property that defines how much force to use
A property that defines how long the force will last.
Please try to answer in python

I'm sorry if this is too much to ask for. I still have a lot to add to this, but I will try to put those in separate questions if I don't figure them out. Any help is appreciated. Thanks!

There is no build-in method to do that.
You need to write your own Python controller. But it is not that hard.
I suggest you use a near sensor to identify objects around your force source.
It does not only detect the objects to be affected it also sets up the range of your "force field".
To adjust the strength of the force you can use the optional property "strength". It tells how much the force would be at the location of the source object. It will be linear reduced by the distance of the affected object and the source object. At the outer range the force strength will be 0.0.
Usage:
Place this snippet in a python file force.py
import bge

PROPERTY_STRENGTH = "strength"
DEFAULT_STRENGTH = 1.0

def applyForceFromHere():
    if not allSensorsPositive():
        return
    sensor = getDetectionSensor()
    affectedObjects = sensor.hitObjectList

    maxRange = sensor.distance
    source = getOwner()
    strength = getOwner().get(PROPERTY_STRENGTH, DEFAULT_STRENGTH)

    for affectedObject in affectedObjects:
        sourceToObject = affectedObject.worldPosition - source.worldPosition
        direction = sourceToObject.normalized()
        ratio = max(0, maxRange - sourceToObject.length) # linear interpolation
        force = direction * strength * ratio
        affectedObject.applyForce(force)

def getDetectionSensor():
    return bge.logic.getCurrentController().sensors[0]

def getOwner():
    return bge.logic.getCurrentController().owner

def allSensorsPositive():
    for sensor in bge.logic.getCurrentController().sensors:
        if not sensor.positive:
            return False
    return True

Apply following logic to the source object:

Setup a near sensor (must be the first one)  with a distance that covers the area you want to have, ensure to enable [True Level Triggering] at the sensor that activates the force field
Setup a Python controller in module mode with Module: force.applyFromHere
Ensure affected objects are physics objects (dynamic, rigid body, softbody)

How does it work?
When all sensors are positive and any of the sensors triggers the controller the function applyFromHere() will be executed. Each run will apply exactly one force or no force at all. There will be no "duration". Either you trigger the controller or you do no trigger it. Forces will only applied when triggered. That is the reason for [True Level Triggering]. This is not necessary when you do not want to have your force field active.
The near sensor provides the affected objects (only physics objects) within the distance. The Python controller calculates the

distance to the source object
direction to away from the source object
ratio (linear interpolation) with

1.0 at the location of the source object
0.0 at the distance and further away

the strength of the force

With that the Python controller applies the individual forces to each single affected object.
Remark: The duration of the force is the atomic minimum (one frame). The Python controller is no actuator. Therefore you need to run it again and again and again to get a continuous force.
Hint: You can enter a negative strength
I hope it helps

Great answer, I couldn't have asked for anything in more detail. Also, I'm having a small issue and I can't get the force to work. Can you add a sample .blend? Thanks.

Have you set the Physics type in the Physics tab to all objects that should be affected (not the one that runs the Python code)?

After recreating the answer in a separate .blend, I noticed the following: the module is "force.applyFromHere," when what works is "force.applyForce." Also, it seems that when I hold it (spacebar, my test scene's 2nd sensor is keyboard), it puts a continuous force even though I have true level triggering enabled. The answer states there is no "duration." I'm not so sure, but I got a duration by holding spacebar. Alternatively, we should use "tap" to remove duration. Thanks though, I really didn't expect such a quick and informative answer! Also: http://www.pasteall.org/blend/39343 for anyone.

Yes, you are right, the function name is different. I corrected the snippet in the answer.

The duration is still one frame. Each time you trigger the controller (with positive sensors) you will add the force. With True Level Triggering enabled you get the continuous application. If you use tap or no True Level Triggering you need to release the button before you can add another force.


text:
How can I have a property represent how far away an object is from another?
I have an object in a scene which, for this example, is called "centerobject." Lets say we have 20 object scattered all over our scene. To get the objects, I could use a near sensor, which will trigger when the object is near a property/material. I am looking for something similar to this. Here's what I'm looking for: all objects with a property ("detectable") that are in x range (near sensor) have a property ("distance") which reads the distance between the object itself and the centerobject. How can I do this? I am looking to have an answer in python. Thanks!

I know how to write the code for this, but I have never used the Game-Engine so I can't tell you how to implement it.
What you want to do is make a list of all the objects you need to test. Then iterate through the list and look at the distance for each. Here is a link to a code sample

Measure to faces
The near sensor detects when any face of an object's (physics) hull is within a certain distance. This is especially good when you work with in-homogeneous formed shapes such as planes, poles, streets, fences. But this can be a pretty slow detection even in native code.
While a near sensor provides you with all the information you need a Python controller to evaluate that results. Be aware the distance will be the distance to the center - not to the nearest face.
detector.py:
PROPERTY_DISTANCE = "distance"

def distanceToProperty(controller):
    nearSensor = controller.sensors[0]
    if not nearSensor.positive:
        return

    center = controller.owner
    for hitObject in nearSensor.hitObjectList:
        hitObject[PROPERTY_DISTANCE] = center.getDistanceTo(hitObject)

You can control the filter via the GUI:

Near/Radar/Collision sensor [True Level Triggering] --> Python controller Module: detector.distanceToProperty

Measure to distance
In difference to the near sensor this method measures to the center of the object only. This is good on homogeneous formed shapes such as spheres, cubes, house.
The evaluating code is the same as before. The difference is that you need to perform the sensing via Python. That means your Python controller acts as a sensor (but is no sensor). To do that you have to constantly trigger the Python controller.
detector.py:
PROPERTY_DISTANCE = "distance"
PROPERTY_DETECTABLE = "detectable"

def distanceToProperty(controller):
    center = controller.owner
    for object in center.scene.objects:
        if PROPERTY_DETECTABLE in object:
            object[PROPERTY_DISTANCE] = center.getDistanceTo(object)

Always sensor [True Level Triggering] --> Python controller Module: detector.distanceToProperty

Great! It's always you who answer my questions, and I thank you a lot for that. I would be stuck far behind without you. I appreciate all the answers. I don't have time to try this out know, but I am sure it works as the code suggests. Thanks! :)


text:
Bullet holes in game engine?
I've seen questions and videos around the place on how to do these, but all the final products are exactly what I do not need: a plane with the picture of a bullet hole. If I've done that, what would happen if I shoot the very edge of an object? The picture would be sticking out in the middle of the air! Also, if I hit a round object or an object with curves, the same outcome would occur. I need a type of system where the bullet hole that is added can actually "wrap" the object it hits. For example, if I hit a corner of a cube, the bullet hole image should be on both sides of the cube. Also, If I hit an object on an area that has curves, the bullet hole should be curved too. How can I achieve this? Thanks!

You need some way to adopt the face normal, and a ray that continues afterward, adding holes where needed. there is almost no way for it to "wrap" a corner.

You need the bullet hole to modify the texture applied to the material. That way it will never stick out!
An interesting approach may be to have multiple U,V vectors per object, and in the fragment shader, detect how close a fragment is to each of the U,V vectors, and if close enough, draw a bullet hole (maybe darken pixels as a function of distance between current U,V, and bullet hole U,V)
I am not sure how this is normally implemented in games however ;)


text:
Simplify Texture Keyframes
I am making a product presentation and need to show the different states of the Backlight(Png File - Emitter).
Rightnow i use a "Mix Shader Pyramid" to guide the right Texture to the Material Output (See picture below) and instert Keyframes as needed.

Is there a more elegant way?

At the bottom of the image node you will see, "Single Image", change this to "Image Sequence" and fill in the number of frames. While the render preview in the viewport doesn't usually update as you change frames it does update when you do a proper render.

The catch with this is that the each image is expected to be named with its numerical sequence, eg. "display001.png" "display002.png" "display003.png". If a number is missing then you get no texture. You can make one image last for several frames by creating symbolic links for the missing files, that is if you make a link to "display002.png" and name it "display003.png" then the same image will be shown for two frames.
Here is a python script that can create symlinks for the missing images in a sequence. So you can name your images "display0001.png" and "display0005.png" and the script will make links so that the first image is also used for frames two to four.

Ok, I'll check it out later that day. Seems way more simple than my genius way ;) thanks


text:
Combining all materials into one/few. over 200 Materials and textures. Complex meshes
I'm porting a model (A city) right now to Source Engine, which can only handle 32 Materials if compiled to .mdl.
The problem:
The Model has about 230 objects, now joined toegther with CTRL+J. Each object had its own Material and its own texture.
That means this combined "thing" has now 230 Materials and Textures.
Unwrapping this monster results in completely distorted textures everywhere, and the UV Image looks like a Black MIDI or something. Also if i'm in the Image Editor, there is a image already set (from the chosen material), and if i press X, the whole object/mesh turns white.
It can't be baked without proper UV Unwrapping as far as i know.. soo..
How can i combine all the materials & textures (230) into one? Any help is realy appreciated!
Best regards,
Eric


text:
How to Get light to bounce of floor

Hello,
I want to make head lights for the car, I've put them in Layer 1, only the ground is on Layer 2, Layer 2 catches shadows from Layer 1, But doesn't catch light.
How do I make it so that Layer 2 Catches Light, whilst not making the whole Layer 2 brighter, so only the part where light is being pointed at it.

Your "Background" render layer has the lights on it, so all you need to do is some "Luminance" keying like so:


text:
Blender in Windows 10
I'm having some trouble with fresh installs of Blender on Windows 10. I've tried 2.79b and 2.78c and both do the same thing: they show the main window, then do nothing more.
I updated my graphics drivers, which helped an iota: before the upgrade, blender would eventually show (Not Responding), and now it doesn't.
In short, I am experiencing the exact same issue as Blender app window BLANK after Windows 10 update
Here is the startup output from 2.78c/2.79b:
2.78c:
Switching to fully guarded memory allocator.
read file
  Version 272 sub 2 date unknown hash unknown

ordered
 OBCube
 OBLamp
 OBCamera
AL lib: (EE) UpdateDeviceParams: Failed to set 44100hz, got 48000hz instead
ED_screen_refresh: set screen
found bundled python: C:\Program Files\Blender Foundation\Blender\2.78\python
SRNA Subclassed: 'Context'
SRNA Subclassed: 'Operator'
SRNA Subclassed: 'PropertyGroup'
SRNA Subclassed: 'Menu'
time bl_operators 0.0596
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Bone'
SRNA Subclassed: 'EditBone'
SRNA Subclassed: 'PoseBone'
SRNA Subclassed: 'UIList'
SRNA Subclassed: 'Mesh'
SRNA Subclassed: 'Object'
SRNA Subclassed: 'Texture'
SRNA Subclassed: 'Header'
time bl_ui 0.1471
SRNA Subclassed: 'KeyingSetInfo'
time keyingsets_builtins 0.0045
SRNA Subclassed: 'Node'
SRNA Subclassed: 'NodeInternal'
SRNA Subclassed: 'ShaderNode'
SRNA Subclassed: 'CompositorNode'
SRNA Subclassed: 'TextureNode'
time nodeitems_builtins 0.0160
SRNA Subclassed: 'WindowManager'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_3ds
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_fbx
SRNA Subclassed: 'Operator'
        addon_utils.enable io_anim_bvh
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_ply
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_obj
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_x3d
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_stl
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_uv_layout
SRNA Subclassed: 'Operator'
        addon_utils.enable io_curve_svg
SRNA Subclassed: 'RenderEngine'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Operator'
SRNA Subclassed: 'PropertyGroup'
SRNA Subclassed: 'AddonPreferences'
I0706 09:11:30.109755 14656 blender_python.cpp:182] Debug flags initialized to:
CPU flags:
  AVX2   : True
  AVX    : True
  SSE4.1 : True
  SSE3   : True
  SSE2   : True
CUDA flags:
 Adaptive Compile: False
OpenCL flags:
  Device type : ALL
  Kernel type : DEFAULT
  Debug       : False
        addon_utils.enable cycles
Python Script Load Time 0.3103
I0706 09:11:30.170783 14656 device_cuda.cpp:1346] CUEW initialization succeeded
I0706 09:11:30.170783 14656 device_cuda.cpp:1348] Found precompiled kernels
I0706 09:11:30.394778 14656 device_opencl.cpp:58] CLEW initialization succeeded.

2.79b:
Switching to fully guarded memory allocator.
read file
  Version 272 sub 2 date unknown hash unknown

ordered
 OBCube
 OBLamp
 OBCamera
AL lib: (EE) UpdateDeviceParams: Failed to set 44100hz, got 48000hz instead
ED_screen_refresh: set screen
found bundled python: C:\Program Files\Blender Foundation\Blender\2.79\python
SRNA Subclassed: 'Context'
SRNA Subclassed: 'Operator'
SRNA Subclassed: 'PropertyGroup'
SRNA Subclassed: 'Menu'
time bl_operators 0.0781
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Bone'
SRNA Subclassed: 'EditBone'
SRNA Subclassed: 'PoseBone'
SRNA Subclassed: 'UIList'
SRNA Subclassed: 'Mesh'
SRNA Subclassed: 'Object'
SRNA Subclassed: 'Texture'
SRNA Subclassed: 'Header'
time bl_ui 0.1822
SRNA Subclassed: 'KeyingSetInfo'
time keyingsets_builtins 0.0055
SRNA Subclassed: 'Node'
SRNA Subclassed: 'NodeInternal'
SRNA Subclassed: 'ShaderNode'
SRNA Subclassed: 'CompositorNode'
SRNA Subclassed: 'TextureNode'
time nodeitems_builtins 0.0155
SRNA Subclassed: 'WindowManager'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_3ds
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_fbx
SRNA Subclassed: 'Operator'
        addon_utils.enable io_anim_bvh
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_ply
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_obj
SRNA Subclassed: 'Operator'
        addon_utils.enable io_scene_x3d
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_stl
SRNA Subclassed: 'Operator'
        addon_utils.enable io_mesh_uv_layout
SRNA Subclassed: 'Operator'
        addon_utils.enable io_curve_svg
SRNA Subclassed: 'RenderEngine'
SRNA Subclassed: 'Panel'
SRNA Subclassed: 'Menu'
SRNA Subclassed: 'Operator'
SRNA Subclassed: 'PropertyGroup'
SRNA Subclassed: 'AddonPreferences'
I0706 09:16:59.436280 15536 blender_python.cpp:186] Debug flags initialized to:
CPU flags:
  AVX2   : True
  AVX    : True
  SSE4.1 : True
  SSE3   : True
  SSE2   : True
  QBVH   : True
  Split  : False
CUDA flags:
 Adaptive Compile: False
OpenCL flags:
  Device type    : ALL
  Kernel type    : DEFAULT
  Debug          : False
  Single program : True
  Memory limit   : zu
        addon_utils.enable cycles
Python Script Load Time 0.3843
I0706 09:16:59.480810 15536 device_opencl.cpp:59] CLEW initialization succeeded.

I would suggest uninstall and delete the startup.blend (if it is still around) and reinstall. This will remove any customisation you may have made.

@rob, sorry, I should have mentioned that this is a fresh install of Blender with no customisation

If it was me, I would try the steps here to use an alternate OpenGL DLL even though you do not get the specific error message https://www.youtube.com/watch?v=bEB_mZk64Dg .It is a software version of OpenGL and will run slower than expected but then that shows it is your GFX drivers at fault. You could also try the beta builds of Blender 2.8. What GFX card/drivers are you using?

What graphics card are you using? Blender works fine on my W10 machine + GTX750ti based graphics card

I've got an NVidia Quadro K2100M

I downloaded the blender source and ran it with visual studio attached. This was surprisingly easy. Normally, whenever I have to poke around in an open source project and try to get it running in Windows I feel as if the universe is against me.
The code is hanging inside static cl_int device_opencl_get_num_platforms_safe(cl_uint *num_platforms) (blender-git\blender\intern\cycles\device\device_opencl.cpp)
Commenting out or otherwise jumping over clGetPlatformIDs(0, NULL, num_platforms); gets me running in blender.
As far as I can tell (and I really have no idea), it's a driver issue made worse by this query to openCL.
Reading about openCL here, it seems that it isn't mission critical (for me - absolute beginner wanting to try sculpting), and that I could get by without having a GPU renderer.
Unfortunately, the OpenCL query code is called in a few places, such as when opening user preferences.
My less than ideal solution is to comment out the OpenCL query code and run a custom blender binary.


text:
Tranparent object is hidden behind tranparent object
i have a problem about transparent object.

As the pictures show, the part of the bottle behind glass can not be seen.
I made the models in Blender. It would be used in AFrame.
Maybe someone can tell me, what is the reason and how can I solve that?
Thank you for any help you can provide

perhaps go into Properties > Render > Light Paths > Transparency and try to increase the factors

Global collapse of hidden faces is enabled. Just disable it and solve the problem.

Thank you for you help. But disable Backface Culling dosen't solve the problem. DoubleSided is also on. I still have no ideal about the reason.
Demo: http://webvr.virtualskillslab.de/
with ctrl + alt + i can enter the edit mode

Maybe A-Frame or gltf2.0 don't support double sided or backface culling disable?


text:
Texture displays only on one side
When in rendered mode Blender displays material only on upper side of the object. How can I fix that?

yes, not normal, can you share your file?

https://we.tl/XD7s9bKL3m

Your texture is on both sides, it's just your World background that makes a very intense light and burns your texture, if you add a lamp and delete your World you can see it normally (don't know what is this World setting though)

Are you sure because I've added a sun lamp now and I still get the same result? (without the World setting)

I can see now that if I rotate the sun underneath I get the opposite effect (upper side gets white)

the problem is your World but I don't know why, I don't use World often

I understand, actually you also have a lot of transparency on your leaves, so, as the sky is intense, you see through them

Yes but I deleted the World scene and it is still the same. I've also tried in a new .blend file.

because of your material: too many transparent/translucent, it makes your leaves look white if you look through the opposite of light, play with the nodes, or rotate your leaves 180° and you'll see

Your texture is on both sides of your leaves, actually you have two other problems:

Your leaves have a lot of transparency/translucency, so what you see when you look form underneath is the sky through your leaves
The sky of your Background is a little bit too strong so it enlightens a bit too much your leaves


text:
How to add item to object parent popup menu in Blender >= 3.0
I am able to add an operator to the Object > Parent menu in the 3D Viewport, however; I would like to add the operator to the popup/context menu which comes up by pressing Ctrl-P in the 3D Viewport.  My operator was added to Object > Parent using the following:
import bpy

...

def menu_draw(self, context):
    layout = self.layout
    layout.separator()
    layout.operator('scene.item_fit', text='Object and fit to character')

...

def register():
    ...
    bpy.types.VIEW3D_MT_object_parent.append(menu_draw)

def unregister():
    bpy.types.VIEW3D_MT_object_parent.remove(menu_draw)
    ...

if __name__ == '__main__':
    register()

While I cannot seem to locate the class which defines the popup menu, it seems that it is called using object.parent_set per Edit > Preferences > Keymap > 3D View > Make Parent.  In ./scripts/startup/bl_ui/space_view3d.py under the draw method of the VIEW3D_MT_object_parent class, I see object.parent_set listed using layout.operator_enum('object.parent_set', 'type').  That would be the bl_idname for the class, but in order to append my operator to the appropriate menu, I would need to know the actual class name.  I did try exploring bpy.types.OBJECT_ and bpy.types.VIEW3D_ for what might be the class, but this turned up empty.
I am hoping someone can point me in the right direction.

I think you want VIEW3D_MT_object_parent so I'm not sure if there's a way to add it to the popup as well as the object menu.

@MartyFouts, VIEW3D_MT_object_parent is exactly how I was able to get it work in the object context menu.  While that is viable for now, it would be nice to add it to the popup as well.  If it comes down to it, I suppose I could write my own popup, calling the same operators plus my own and map that to Ctrl-P as a work-around.


text:
I need help to make my bones only move certain mesh!
I tried applying an armature for a jacket that I would like to add to an avatar I'm creating but the bones are moving too much mesh.
(image)

I just wonder if anyone knows how to fix this easily or hardly however just wanna fix it. Thanks in advance :)

It's hard to help, was your mesh in T pose when you've parented? have you tried to fix it in Weight Paint mode?

no i moved the arms of the armature down to fit the jack and then i merged it. Did try to fix it in weight painting but did not help

if you move down the arms, do it in Edit mode, not Pose mode. I'm not sure it's a good idea though because a T pose will calculate the vertex groups better

So like move the jacket into a tpose and then merge it with the armature?

both the object and the armature need to be in T pose before parenting, it will help to have a better calculation of the vertex groups

so i tried with a different clothing that was actually t posed but its still moving mesh the wrong way. (look at pictures)

https://gyazo.com/cec63263bda5300077f3070801c280b6 https://gyazo.com/3c0e24774d5e0900d799237bcc7d90c8

what do you mean by it moves it the wrong way? maybe share your file?


text:
Track / gpu animation on a map

Can someone help me to understand how such a route animation is realized or can direct me to an existing tutorial for this - THX in advance.
Video: My first animation of one of my bike rides - using "Blender"

Hello and welcome. Please add at least a screenshot from the video to your question and a brief description. If the video goes offline tomorrow then nobody knows what you're talking about except "route animation". The question should contain all relevant information for future readers. Cheers!

This is only a brief description of how to track a path on a simple map/image. If you want to use GPX tracks/GPS/GIS data you need to dig deeper: blender-osm can import GPX-tracks and project them on the terrain.
Manual Tracking a Path On a Map

create a plane with a map image. A convenient way to do this is the use of the "Import-Export: Import Images as Planes" add-on that is shipped with Blender. Activate it in the preference settings.
position the camera vertically above the image
to animate the camera keyframe the Location
to zoom in and out keyframe the Scale of the image
create a Nurbs Path (add Object: Curve > Path)

in Edit mode, use menu Curve > Set Spline Type to Poly
create waypoints by extruding (E) the control points along streets, etc

create a marker (red dot, it's actually a sphere)

add a Follow Path object constraint
use the "Animate the Path" for quick animation, use the graph editor for more control, e.g. add stops, control speed, etc.

create a waypoint object. This will create the red line

add an Array modifier and a Curve modifier to make it follow along the path
move x position to a negative value, so the marker starts at the beginning of the curve/path. I've bent it down along the z-axis to hide the beginning. Not sure if this is the best way to do so
animate the x position with a driver to make it "mark" (move along) the path/curve.
formula for the driver of the x position looks like min(-2.50753 + (2.50753 * (frame-1) / 180), 0). This makes the marker follow the curve for 180 frames and then stop. The -2.5073 is the start value to set the marker at the beginning of the curve. It depends on the length of the curve/path. Just pull it along the x-axis by eye.

Zooming Effects

you can zoom in and out if you scale up/down the image in front of the camera
if you want to do a zoom effect that exceeds the details of the map image you can use multiple images with different levels of detail.
stack the images, increase the Scale of the image to match the level of details of the next image. Adjust the transparency (Alpha value) of the image for an overview and to match the scale.
keyframe the Scale of the image. At the frame where the level of details match, turn off the render visibility

Result


text:
My baked images bleed into eachother

Hi. I am learning Blender for few months at this point. I know the reason of bleeding problem is in the UV editor. The islands of faces didn't match of baked colours. My baking settings are Cycles, Bake Type: Diffuse and Contributors: only Color.
What can I do dodge this problem? In low-poly models I can increase island distance or paint myself the wrong areas. Can someone tell me what can I do? I try increase resolution of UV image from 1024 to 2048 px. It helped but didn't solve the problem.
Have a good day and thanks to everyone who has read this.


text:
What context should be passed to screen.area_move() to make it work?
It seems it's possible to use screen.area_move because it is accomplished in the Pie Menu Editor addon and there's a thread on blenderartists.org where the author demonstrates using an operator from his addon to run screen.area_move. I'm wondering, how did he accomplish this?
#Just quickly converting the example code from the thread
C = bpy.context
a = C.area
x = a.x + (a.width >> 1)
y = a.y + a.height
C.window.cursor_warp(x, y)

#Replace Pie Menu Editor timeout operator (which I don't have access to) with timer app handler.
#bpy.ops.pme.timeout(delay=0.0001, cmd="bpy.ops.screen.area_move(x=%d, y=%d, delta=-100)" % (x, y))

def move_area():
    bpy.ops.screen.area_move(x=x, y=y, delta=-100)

bpy.app.timers.register(move_area, first_interval=1)

I've tried emulating the code posted on the thread and substituted his timeout operator with a timer apphandler. The apphandler works, but the context is still not correct. Also no combination (that I've tried) of override context passed seems to work.
Examining Blender source screen_ops.c the only poll for the operator SCREEN_OT_area_move seems to be for the position of the cursor:
ot->poll = ED_operator_screen_mainwinactive; /* when mouse is over area-edge */

Which I've managed to provide but still doesn't seem to be enough. Anyone ever get this particular operator working, or in any way figure out how to programmatically change the x, y, width or height of an editor?

https://blender.stackexchange.com/questions/135970/context-is-incorrect-when-calling-from-a-timer

Timer threads have little sense of context.
As outlined here
Context is incorrect when calling from a timer
need to pass some context to the timer.  In this case I've passed a copy of the text editor context when hitting the button.  Pretty sure just the screen is required context, or at most the window and screen.

Note found that calling the resize operator with no delta and moving the mouse worked from within a timer, however it is STICKY and a mouse click (or other events) are needed to unstick the mouse from moving the area.  Not sure how to release.  It is actually quite a handy way to resize the panels.. but still not quite right
import time, bpy, functools
from bpy import context

def snooper(c, w, a, x, y, delta, poll_retries=500):
    #bpy.ops.wm.redraw_timer(c, time_limit=0, iterations=10)

    while not bpy.ops.screen.area_move.poll(c, 'INVOKE_REGION_WIN'):
        poll_retries -= 1
        if not poll_retries:
            return None # out of retries

    # should poll now
    bpy.ops.screen.area_move(c,'INVOKE_REGION_WIN', x=x, y=y)

    y += delta
    w.cursor_warp(x, y)
    return None

if __name__ == '__main__':

    context = bpy.context
    a = context.area
    w = context.window
    x = a.x + (a.width >> 1)
    y = a.y + a.height

    w.cursor_warp(x, y)
    bpy.app.timers.register(functools.partial(snooper, context.copy(), w, a, x, y, delta=100), first_interval=0.2)

Scissor sets

Looked into the screen areas a while back re overriding context.  Recommend matching areas by the midpoints of edges and if both edge lengths also match they can be "pseudo joined"  into a new area until we have one full window area with instructions on how to split back.  Not unlike a binary tree.
Doing something similar here would be the go, giving the option of 1 to 4 possible resizes..  by looking for any "pseudo joined" areas in tree that have context.area and another area from the screen areas collection.

Voting more? Not sure what you mean. I'll definitely mark this as the answer as soon as I get a chance to test the code in a few days. A bit busy at the moment. I haven't up-voted your comment either because I haven't yet had the time to investigate everything properly. Very excited about what you've posted here though. I greatly appreciate the help you offer everyone. Thank you.

What do you mean below, when you say "pseudo joined"? Assuming you mean not with bpy.ops.screen.area_join() (which I can't get to work in Blender 2.8 even with these context tricks). Are you able to use that operator to join areas? Is the "Scissor Sets" thing you posted from another post I can look at somewhere?

@SicutUnum Did you ever get this to work for joining?


text:
Set matrix rotation value (not add to it)
The below code will rotate a selection of objects around an arbitrary location (using the active object's location here) by the chosen angle (45 in this example). I cobbled this code together from a few places but I don't fully understand how to manipulate matrices very well yet.
If you create a few objects and press run script you'll see 45 degrees is added to the objects while transforming them around the active object. This is almost exactly what I need minus one issue. I need this code to set the rotation value to 45 (or whatever arbitrary value) when the script is run not add 45 degrees to the selection of object's matrices.
import bpy
from math import radians
from mathutils import Matrix

ob = bpy.context.object
rot_point = ob.location
rot_angle = 45
rot_axis = 'Y'

mat = (Matrix.Translation(rot_point) *
       Matrix.Rotation(radians(rot_angle), 4, rot_axis) *
       Matrix.Translation(-rot_point))

for obj in bpy.context.selected_objects:
    obj.matrix_world = mat * obj.matrix_world

EDIT: If you create a few random objects, select them and then run the script, each time you run the script 45 degrees (45 degrees is an arbitrary value, it means nothing, just a random input value for this example) will be added to the object rotation values (as displayed in the clip below). This is good, and I need the objects to move like they're moving. Ultimately the value controlled by rot_angle will be fed into from mouse coordinates in a modal though, so I don't need the code to add the rot_angle value to these object's values, I need to be able to set them. Ultimately, the code should rotate the objects around whatever chosen rot_point in the manner displayed below, however once rotated, pressing run script shouldn't do anything. As the code stands, when fed into a modal it breaks everything because the code continually adds to the values with the mouse movement instead of setting them.

UPDATE: The below code sort of does what I want. The problem is it starts breaking down once the object gets rotated in to many ways. If I could subtract the rotation matrix values to get the same results for the rotation angle difference (ra_dif) instead of comparing against the Euler rotation value of the object, I'm guessing it would work better. How could I do that? Or does someone see a better (less dense) way of accomplishing what I'm trying to do here?
import bpy
from math import radians,degrees
from mathutils import Matrix

ob = bpy.context.object
rot_point = bpy.context.scene.cursor_location
rot_angle = 45
rot_axis = 'Y'

ra_dif = rot_angle - round(degrees(ob.rotation_euler.y))

mat = (Matrix.Translation(rot_point) *
       Matrix.Rotation(radians(ra_dif), 4, rot_axis) *
       Matrix.Translation(-rot_point))

for obj in bpy.context.selected_objects:
    obj.matrix_world = mat * obj.matrix_world

UPDATE 2: The code posted by batFINGER works great with one issue. Seems to be some strange sliding going on when objects have been rotated by a few odd degrees. If you open up the following file, press Run Script, then press space and access "Custom Rotate" then immediately press Z to enter global rotation, you'll notice the selected objects will slide if you pull the mouse in towards the pivot point of the rotation. What could be causing this? How could it be corrected?

If you want to set the value use something like   obj.matrix_world = mat (this assumes there is no scale component).  Can you elaborate for instance via default scene, on what the expectation for location and rotation of cube will be when using the camera is active object?

No, afraid not. Close though. It does set the rotation value, but it also moves all the other selected objects into the location of the active object. If you test the code with a few random objects selected, I think you'll see what I'm after here. Definitely want to keep the translation part...

You can move the object to the new location via .  obj.matrix_world.translation = (mat * obj.matrix_world).translation  Asked for clarification above as it's a bit confusing re rotating obj 45 degrees around point and also  expecting local rotation of result to  be 45.

@batFINGER I see what you mean. I don't want to rotate the object 45 degrees, I want its rotation axis value to be set to 45 degrees (45 is just a stand in for what will be mouse driven modal angle data later). It's fine to use the active object as the main reference. I just want all its selected buddies to follow along when I move it (like the GIF). My last code example successfully accomplishes this, however it starts to break down after rotating the object a bunch. I think because of my object Euler comparison. Do you know how I could accomplish something similar using the matrix data?

Similarly to the answer to Convert mouse movement into rotation value (not in bge), customized to make the all selected objects rotate about the active object.
Need to subtract the pivot point of the rotation, which gives the "pivot arm" vector for the rotation.  In the previous answer, where just the active object was being rotated it had been hard coded to (0, 0, 0), since that is the result of subtracting an objects global location from itself.
import bpy, math
from bpy_extras.view3d_utils import (
        location_3d_to_region_2d,
        region_2d_to_vector_3d)

from mathutils import Matrix, Vector

class CustomRotate(bpy.types.Operator):
    bl_idname = "transform.custom_rotate"
    bl_label = "Custom Rotate"
    pivot_point = Vector((0, 0))
    v2d = Vector((0, 0))
    axis = Vector((1, 0, 0))
    mw = Matrix()

    def modal(self, context, event):
        ob = context.object
        if event.type in ['LEFTMOUSE','ENTER']:
            print('finished')
            return{'FINISHED'}

        if event.type in ['ESC','RIGHTMOUSE']:
            ob.matrix_world = self.mw
            return {'CANCELLED'}

        if event.value == 'PRESS' and event.type == self.axis:
            # two times make it local
            axis = Vector([int(c == event.type) for c in 'XYZ'])
            self.axis = ob.matrix_world * axis  - ob.matrix_world * Vector()
            return {'RUNNING_MODAL'}
        elif event.value == 'PRESS' and event.type in "XYZ":
            # to rotate about global axes
            self.axis = event.type
            # local
            return {'RUNNING_MODAL'}

        v2d = Vector((event.mouse_region_x, event.mouse_region_y)) - self.pivot_point
        if not v2d.length:
            return {'PASS_THROUGH'}
        #Get rotation angle and update object rotation
        a = self.v2d.angle_signed(v2d)
        rot_mat = Matrix.Rotation(a, 4, self.axis)
        t = ob.matrix_world.translation.copy()
        #Print angle in degrees to help with testing...
        #print('alpha angle:',math.degrees(a))
        for o in context.selected_objects:
            mw = o.matrix_world
            mw.translation -=  t
            mw = rot_mat * mw
            mw.translation  += t
            o.matrix_world = mw

        self.v2d = v2d

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        region = context.region
        rv3d = context.region_data

        ob = context.object
        self.pivot_point = location_3d_to_region_2d(region, rv3d, ob.matrix_world.translation)
        self.v2d = Vector((event.mouse_region_x, event.mouse_region_y)) - self.pivot_point
        z_axis = Vector((0, 0, -1))

        self.axis = rv3d.view_matrix.transposed().to_3x3() * z_axis
        self.mw = ob.matrix_world.copy()
        context.window_manager.modal_handler_add(self)

        return {'RUNNING_MODAL'}

def register():
    bpy.utils.register_class(CustomRotate)
def unregister():
    bpy.utils.unregister_class(CustomRotate)

if __name__ == "__main__":
    register()

Thanks for your help! A few follow up questions: the rotation works, but the active object (and thus the rest of the objects) jump to grid 0,0,0 is that supposed to happen, if not could I offset this value so the selected objects don't jump to grid 0,0,0 when running the operator? Would it be possible to offset the rotation point from say the active object to an arbitrary location like the cursor, still while rotating the other objects?

Yes sorry realized my mistake, amended. Will also need to keep all selected objects mw's to make cancel work correctly.

Thanks that works for the most part. I've noticed some strange sliding that occurs if rotating objects along a global axis with the code you posted. It's rare but seems to happen when objects have been previously rotated in some ways. I've posted a blend file above and a brief explanation (at the end of the question) of how to repeat the results. How could I fix this sliding or what do you think might be causing it?

taking the first script I did some modifications explaining effects
and finally lightened the script to keep what is essential
I show the complementary situation where we keep the original rotation and location
import bpy
from math import radians
from mathutils import Matrix

obj = bpy.context.object
#new rotation not added/same location
for obj in bpy.context.selected_objects:
    mat = Matrix.Translation(obj.location) @ Matrix.Rotation(radians(45), 4, 'Y')
    obj.matrix_world = mat

#rotation added to previous one
for obj in bpy.context.selected_objects:
    T = Matrix.Translation(obj.location)
    R = Matrix.Rotation(radians(45), 4, 'Y')
    Ti = Matrix.Translation(-obj.location) #to cancel '@ obj.matrix_world' in last line
    mat = T @ R @ Ti
    obj.matrix_world = mat @ obj.matrix_world

#do we need to recalculate location? No
for obj in bpy.context.selected_objects:
    R = Matrix.Rotation(radians(45), 4, 'Y')
    obj.matrix_world = obj.matrix_world @ R #order matters
    #so we do modif from original matrix (location already in)


text:
Why is my Curve rectangle not visible as an object in Curve settings?
After creating a Bezier Curve I also created a Curve Rectangle that I want to use as the object in the Curve options on the BezierCurve.
However, when I want to choose my rectangle within these options I cannot see the rectangle, I can only choose the BezierCurve.
How can I choose the rectangle as an object in Curve settings for my BezierCurve?

You can't use a bevel object on itself

That is what I am saying. I want to use the Rectangle on the BezierCurve, but I cannot choose the rectangle

What @DuarteFarrajotaRamos wants to tell you is, you are currently in the settings for the rectangle as you can see by the name above the settings. Also in the Outliner above the Bézier curve is dark orange, which means it's not the active selected object (on which you could change the settings), but the highlighted curve symbol on Rectangle.002 shows it is the active object. The reason it is not shown in bright orange is, you selected the Bézier curve while you were in Edit Mode on the rectangle, which shows as if it is deselected, but you are still actively in Edit Mode there.

Ah, that's clear! I understand it now

Yeah the outliner highlighting can be a bit finicky like that, there's the active & selected row color (bright blue background, yellow font), the selected row color (deep blue background, orange font) and the active object highlight (light gray rounded square around the mesh icon). An object can be active without being selected. :)


text:
Why is my bevel modifier not making changes when I change the values?
It does not matter what values I put into my bevel modifier, it doesn't change anything. Why is that? (picture 1)
EDIT: = picture 2
So I wanted to have a cleaner base object. However, I am having the same issue with the main shape now. I am looking at the Bevel amount and dimensions. I don't see an issue there?
It is also not bevelling the edges on the backside.
Can I also have a different bevel amount on the inner circle compared to the outer edges of the shape?
I added the new file:

Your bevel Amount is much too high. The d-pad has a thickness in Y direction of 0.038 m, which means you cannot bevel more than 0.019 m before it overlaps. Your Amount is set to 0.4 m, that's more than 20× higher.
Since the Clamp Overlap option is enabled by default in the Bevel modifier, no changes above an amount of 0.019 m will be visible because it is clamped. Change the value to something lower and the bevel will show changes. Or disable Clamp Overlap which will of course look awful.

Ah that makes a lot of sense. Thank you!

This is due to clamping, once you decrease the value below the clamping threshold, you can see the changes:

The clamping is there to ensure the created faces don't overlap, creating ugly artifacts.
Imagine that you have a thermostat and input a desired temperature using a keypad. It's reasonable for the thermostat to clamp the input to some maximum e.g. 30°C. So changing the temperature from 35°C to 40°C won't affect the temperature in the room, because after clamping, both settings get converted to the same 30°C.

Ah thank you! That makes so much more sense!


text:
Why is my snake hook in sculpting mode so sharp instead of smooth legs?
I am trying to create a couple of smooth little legs with Snake Hook in Sculpting mode. But for some reason when I do this I get really sharp shapes, as you can see in the first picture. Whereas I am looking to do something that is like the second picture.
I used a lot of the subdivision, so there is enough geometry to work with.
What's going on?
Here is the file:

First thing apply the scale in Object mode otherwise the effect will be stretched. Also, increase your mesh density: Select all and AltJ to convert tris to quads, give it a Subdivision Surface modifier with a Levels of 2, apply the modifier. Maybe enable the Dyntopo option to create additional topology when you'll create the protrusions (lower down the Detail Size to have a dense topology). Back to Object mode don't forget to smooth the shading.

That does not make a difference.

please share your file: https://blend-exchange.com/

File is uploaded

I've selected the Snake Hook tool, activated Dyntopo and it works

It is definitely a bit better, but it is by no means as smooth as that second picture.

It should be possible without the Dyntopo option. I try to follow along this tutorial: https://www.youtube.com/watch?v=gj499sk5Szg&t=371s     - he doesn't change anything, just works with 'regular' settings

Of course, it's just that Dyntopo won't stretch your topology, it will add topology. The difference between your object and his is that his object has a denser mesh, to add topology to your current mesh, first thing select all and Alt J to convert tris to quads, then give a Subdivision Surface modifier with a Level of 2, apply the modifier, sculpt. Also, again, don't forget to apply the scale


text:
How can I create 'regular' typology from a skin modifier after applying it?
I am trying to make a hand. Started off with a skin modifier and worked from there.
For some reason, the typology is all messed up after applying the modifier.
The geometry looks like the second picture. You can mostly see it at the base of each finger, but also on top of the hand. I cannot really work with this.
Something like the geometry shown in the third picture already be something I can work with I feel like.
I tried moving the vertices around and scaling them, but nothing seems to matter. How can I get regular planes to work with after applying the skin modifier?
Thank!

Hello, what do you mean when you say that you can't get the regular planes? Maybe show the topology. Also the topology is not very good in picture 3

I have added a new second picture. That is what the typology looks like for me.

Ok so you need to add some edge loops with the knife, dissolve other edge loops, etc

The resulting geometry here will highly depend on vertices radii.

@moonboots so the only solution would be manually trying to creating typology that you might like?

@lemon so how would I be able to change those? Do I need to change those radii?

@DPlayground, skin modifier is not really designed for modelling... i've no clue about that.

I'm not sure that using the Skin modifier is a good method for this object because the topology will always be messed up, were you inspired by a tutorial?

I was indeed inspired by a tutorial. But you would use a skin modifier to make arm and legs right? So what would you do to create a hand, just extrude different faces and move them to your liking? I would like to use a rig to move the arm, hand and fingers at some point.

It's ok to model arms and legs but it gets complicated for the hand as you see, it will need a lot of topology corrections, so at one point maybe it's easier to work with classic 3D modeling (extrusions)


text:
Animation on one object's duplicate?
I have a simple issue that I'm trying to get around fixing. On trigger, an object is added and a message gets sent to that object. When the message is sent, the object plays an animation. The problem is that the animation gets played to all the objects and not the new one. How can I fix this? Thanks!

If you use direct hooking instead of messaging, when you duplicate the objects out, everything should still work on an individual basis. I know it's sloppy, but it works.

What is the issue? All objects play the animation except the added one? or all object play the animation? or do you want a specific object to play the animation only?

Simple- the message is sent and then the object is added. your new object never gets the message

Even though you have the object getting added and the message getting sent in the same logic tick, essentially, your new object never gets the message.

Newly added objects get the messages from the last frame (when the edit object actuator was activated). It would not work if you use the message to add the new object and to trigger the animation. Then it is better to use two messages.

I've solved it by simply putting an always > and > action, this will play separately on all objects.


text:
How to take pictures from the GE?
I've seen similar questions on how to take pictures, but those questions are for the render engine, cycles, and others. I have a set of weapons, and want to take a picture from the side view. When you swap to your weapon, your newly selected weapon will show its picture on the right side of your screen, like other FPS games. In other words, I am looking for a way to take a screenshot in the GE; if you can, then can I also change the resolution? Any help is appreciated, thanks!

why not prepare them before and just pick the one related to the weapon ?

@Chebhou presents a good point. You could "take" the pictures before hand and just display the afterward in the game.

I'm not saying IN play mode. Just in the ge.

Pose your weapon according to the view , than run the script to take a picture using openGl render , got o the UV editor and the image will have the name of the active object :
import bpy

# path to the folder
file_path = bpy.data.filepath
file_name = bpy.path.display_name_from_filepath(file_path)
file_ext = '.blend'
file_dir = file_path.replace(file_name+file_ext, '')

mainScreen = bpy.context.screen

#current scene
scene = mainScreen.scene
#set render settings
scene.render.resolution_x = 128
scene.render.resolution_y = 128
scene.render.resolution_percentage = 100

#render from view (set view_context = False for the camera render)
bpy.ops.render.opengl(view_context = True)

#save and load the render (you can't keep the render result)
img_name = bpy.context.object.name+".png"
bpy.data.images['Render Result'].save_render(file_dir+img_name)
bpy.ops.image.open(filepath = file_dir+img_name)
bpy.data.images[img_name].pack()

you can change the render size in the script

For screenshots while playing the BGE has a function for that :
bge.render.makeScreenshot(filename) see the DOC

@BlenderDev you can use it even when playing

Didn't check it yet, but it looks good.

bge offers methods to render to texture, in the renderTexture part of bge, that can
export a png, or you can snapshot a view of a item on frame 0, the advantage here,
is you can load from external blends, and then snap the image, so if you change anything,
you just save the external file and the main file updates automagically.
there is also ctrl+print screen to copy a image to paste that is a screenshot.


text:
"Floor" Property in game engine?
I have many instances in which I need to use a property to control if the player is on the ground or not. How can I create this? The simple approach that comes to mind is to create a plane over all the floors and give it a property, "floor". Whenever the player is colliding with it, "collide" will be set to true. Else, it will be false. This seems messy and confusing, especially with a large, complex map with rough terrain, ramps, etc. I am looking to create this in a more ideal fashion, how can I create this? Thanks.

Collision with an object that has a Property "floor" is in a lot of situations a good solution. You can have any number of such "floor" objects.
Unfortunately, this might not be sufficient in other situations. E.g. such an object might collide with the top of your character rather than the bottom.
There are other options:

have a separate object below the character to detect the floor via collision
use a ray along -Z to detect a floor

Edit:
As this checks for any object and you can have as much objects with the property "floor" there is no need for a single floor object.
A different thing is to check if the player remains within expected parameters (area). E.g. if you can't be sure he finds a way to jump outside the level. To avoid that you can surround your level with a "consistency cage". You assume the player never touches it, but if he do you can perform some "corrective" actions. For example: game over, level restart or move him back somewhere within the level.

So would I create a plane that goes over all the floors in my scene?

Typically you ensure there is always an object (regardless if floor or not). Otherwise when the character slips into a gap it will fall outside of your level (into infinity). If you are not sure if there is a possible gap, you can surround the level with a "security" box. When the character collides with that box it is outside of the expected parameters. So you can act accordingly (e.g. reset the level, game over ...). But this should not be part of the regular game flow.

Can I just give all my game-related objects a prop for this? The ones that the player should be able to collide with already has a property "collide," can I just use this or would walls be a problem? Also, if I use a ray, won't it send a ray only out of the center of the character? What if the side of the hitbox collides, but not the center?

Sure you can. But ... the purpose of such "collision filter" is that you want to distinguish between collisions of different types. Typically you use the "floor" collision to allow jumps, while jumping is disabled otherwise.

Also, if I use a ray, won't it send a ray only out of the center of the character? What if the side of the hitbox collides, but not the center?

This depends on how precise you need floor detection. As more detection you have as more complex and more inefficient it becomes. You could perform a ray-detection from the center of each foot.

Well I have a collision box and I need every part of it to work, not just the center or creating 5 points. Is there anything else I can do?

As written above you can place another object below your collision box to detect a floor. I recommend to set physics type to "sensor". This way it can sense collisions and still pass through other objects.

I am not sure if I understood the question correctly, but the collision mesh can be simpler then the actual floor and still have the information needed to make the object interact properly.
Of course this comes at the price of not having the best precision and giving some areas where the interaction may result in it going through or colliding prematurely but the amount of detail is for you to decide.

wouldn't it be better to give the floor itself a property floor? (maybe a boolean). then you can see if the hitObject you get from your player has this property and if it is true. Also, i've noticed you can set the skin of your armature to be a sensor, and use that as your collision mesh.

Well I don't have every floor as its own object. This is why I wrote this question. I was looking to see how I can do this in a more efficient way than making an object wrap the whole scene's floors.

i think it's really efficient to give each object you want to interact with a game property, it's not much work when you're making those objects. this way you can also let your player enter different states on different types of objects. for example, you can give an object a property floor, to let it walk on it, or you could give it the property water to bring it in a 'swimming' state


text:
Delete Keyframes in Rig
I have a rig, and I want to change all the key frames for my right arm. When I delete one, all of them delete across the entire rig. How do I delete for one part of the rig, i.e. my right arm.

Explain smoother, cause I did not understand the exact problem...

Is it for game or render? If it is made for game, it is easy to solve.

You can delete a concrete animation data keyframes in a Dope Sheet Editor.
In this example I have two bones which have separate rotation animation.

Arm rotates 60 degrees and forearm rotates 30 degrees.

If you want to delete a forearm rotation for example you go to the Dope Sheet Editor, select the dots (which represent the keyframes) that belong to forearm bone and delete them (hover the curor over timeline in Dope Sheet editor window and press X).

Now when you play the animation only the rotation of an arm bone remains.

Your question is not 100% clear to me though. Hope I understood it right and this answer will help you. If not I'll delete it.

How do you bring up the delete keyframes thing? Alt-I removes all in that frame.

@BlenderDev Press X in the dopesheet, when the right keyframes are selected.


text:
Or controller problem in GE
This is a very small question, and there is not much to explain; let me jump into it: I have my character with WSAD controls. When triggering any part of WSAD (using or controller), my animation plays. When I press A  and D, W and S, all the keys together, or any odd combo where you should not be moving (e.g. you move left and right using A and D, so you don't move), the walk animation plays. When you are not moving, you should not look like you are. How can I pass this? Should I just use an and controller for all the combos? I, for those of you who need my question in a sentence rather than context, just basically want my character to play his walk animation only when moving. Thanks!

This can be best solved with a Xor controller. You need two of them. one for W and S, and one for A and D.
Here is an example of a Xor gate.

Here is a .blend example.

well-written, well-earned. Say, have you ever gave a shot at an FPS; you answer many of my questions. I just would love to see your work.

Most of what I do has a lot of great ideas that don't make it very far. I end up with a lot of games that just have cubes that I use for beta testing; as in this 2-person-sumo-wrestling game.

Yeah I have made many projects that I worked on until I disliked it; however, I made a project that I have enjoyed for 3 years in development, but I am a single 13 year old and made many problems so I haven't even passed finishing the controller. Your shaders are nice though

ahha. I didn't even make that one. got it off of BA.