Ok.I fixed it by removing rigid body world and then adding every rigid body again.But i don't know what caused this in first place.


Will Cycles eventually replace Blender Internal?

Update (5 years later)

Yes, for the upcoming Blender 2.8 release, Blender Internal has finally been superseded by Cycles.

As far as I know, It is not yet officially confirmed. I asked a developer on IRC and he said No. However, one of the other developers has this on his blog.

  The goal of Cycles is to probably replace the Internal Render Engine
  in 1-2 years and have a fast and modern Render/Shading system which
  can be used for production rendering and for animation as well.

from code.blender.. the main developer also hints with..

  There may of course be developers that want to continue developing
  Blender Internal, and the intention is not to drop it immediately.

From BlenderGuru

  Cycles will eventually replace the internal rendering engine, becoming
  the standard that every Blender user will soon use. The sooner you can
  jump aboard, the better.

It seems such a decision was made a long time ago too.

  @andrewpprice There has been no further development for the BI (for
  about 2 years now) apart from critical crash fixes. That won't change.

It also seems that there is an ongoing project that is extending the Internal Renderer

It is all inconsistent information here and there but all very credible sources, so a definitive answer for this would be, It has not yet been confirmed.


You can use:

1) Hair Particle system

Just set random size to 1 as in the picture below

2) 2D Arrays & Randomize transform

Duplicate the object 10x10 times

Than apply modifers, enter edit mode, spilt by loose parts.

Now you'll have 100 different objects. Run the command Randomize Transform and set the XYZ Pos, Rot, Scale variance factors and the seed.

Obiuvsly the first method gives you the opportunity to change the base object at anytime, so it usually preferred.

3) Random Object Array add-on

It's an add you can find on Blender Market (so it's not free). As stated by the author:

  A particle system is great for hair, particles, fur, even grass. But it can become an obstacle for other purposes. Compared to a particle system, the Random Object Array add-on offers much more control over random values like rotation, position, scale.

Here's a video about it:

https://youtu.be/ugaEllRttAk?t=8m13s


I can't save my animation as a .mov and thats the only thing that plays on my mac

The MP4 (.mp4) container format is derived from the the Quicktime MOV, and also widely supported on Apple products. A MP4 file containing H.264 video and, optionally AAC audio, will play on all Intel and Apple Silicon Macs, and many older PowerPC Macs as well. Simply configure your output settings as shown:

It is important to understand that MP4, MOV, Matroska, AVI and others are CONTAINER formats, not video formats. A video file as we commonly deal with it today is a wrapper around 1 or more video streams(in formats such as H.264, VC-1, DNxHD, and ProRes, and so on), and may include audio and subtitle data as well. Whether you can play a file or not requires your software to both be able to understand the container format, and the video compression format of the video stream within. So referring to things such as a ".mov video" or a "h264 video" is not enough information to troubleshoot playback and encoding issues.
Additionally, it's important to distinguish video compression formats (like h.264) from software libraries that create them (such as x264, a popular open source h.264 encoder)


Material displacement looks slanted to one side in Blender 2.8

In Blender 2.80 the Material's Displacement input socket accepts vectors (blue socket) instead of scalars (grey socket), which gives it more possibilities (look up "vector displacement").

To properly convert a scalar Displacement map, usually a greyscale image, and make it pluggable into the material's Displacement, you need to use a Displacement node:

The Displacement node has a "Scale" value so that you don't need to use a Math > Multiply node.


All denoise options in Blender are based on different research efforts to speed up path tracing.

Denoising Filter for Cycles

is an implementation exclusively for Cycles by Lucas Stockner during Summer of Code 2016 combining different papers about denoising around 2015:

  ...this proposal is about having a denoiser right in Cycles - where all the additional information (like feature passes and variance info) is available and can be used to produce results that are far better than general image denoising, often allowing to cut render times by 75% or more.

NVIDIA® OptiX™ AI-Accelerated Denoiser

is a research effort on top of OptiX a GPU library which requires a graphics card supporting CUDA. The Paper was published at SIGGRAPH 2017 and can be found here:

  It uses GPU-accelerated artificial intelligence to dramatically reduce the time to render a high fidelity image that is visually noiseless.

Intel® Open Image Denoise

is a library build on top of DNNL (a CPU libary for deep learning applications) published in 2018:

  Intel Open Image Denoise internally builds on top of Intel® Deep Neural Network Library (DNNL), and automatically exploits modern instruction sets like Intel SSE4, AVX2, and AVX-512 to achieve high denoising performance. A CPU with support for at least SSE4.1 is required to run Intel Open Image Denoise.

Related: Which denoiser is better?


How to achieve an evenly distributed 90° turn?

Easy way to do that is with spin selection around cursor. Put the cursor where the radius of the bend should be, select the edges which you want to extrude and hit Spin button in Tools panel. You can adjust the spin angle and number of segments in spin properties panel or by hitting F6 button right after spin operation.

Note that the spin operation is relative to the view angle.


How to transform from selected vertices to circle?

This is probably Ctrl+V -> Connect Vertices with a custom shortcut.


Blender installation causes error regarding the creation of an AppData folder

I have solved this rather annoying issue. What I did was edit the Security settings for "SYSTEM." By default all options are set to "Deny," which is preventing the installer from editing the AppData folder. By allowing SYSTEM the "Modify" property, the installer can successfully complete the installation of Blender.
NB: It also happens to the Desktop folder too, same fix.


Light-emitting object on transparent background, rendered as .PNG has "low bitrate" artifact in video. What can I do? [EEVEE]

Thanks, Susu, it worked! I rendered out a couple of frames in OpenEXR, imported it into Premiere, and after messing around a little bit with the blend modes, I found that the one called "Lighten" seems to be working perfectly, the bending is gone. Thank you!


Output multiple images with variable materials

Have you looked into using Blender's compositor features? You could set up a matte (check out the new Cryptomatte feature in 2.8) for each material and then render the "beauty pass" once with several passes (for diffuse color, specular reflections, etc). In the compositor, you could do color balance and hue-shift and work on each channel one by one.

You can even render a UV pass and swap out the texture in composite, but be aware that this won't affect the color of light bounces.

However, your best option is probably to automate the material changes by using Python. It's a little tough to learn it with a deadline looming, but if you've got experience with coding then Python is your best bet.


What is preventing you from applying scale is that more than one object in your scene shares the same mesh.  This object was instanced instead of duplicated.

The solution should be to right click on one of the offending meshes in the Outliner and select Make Single User, but this is evidently not yet implemented.
Instead, what may be easiest is to duplicate each object in place with Shift+D, cancel movement with RMB and delete the originals.
When each object has unique mesh data, you'll be able to apply scale to all of them.


Tangent emission

1) Without Particles System

Depending on your project's need, an alternative approach would be to use an alpha mask to mask the tip of the polygons and not showing the borders. It's a common strategy to avoid particles.

2) With Particles System

If you want to use particles, you could instead take advantage of the Tangent Velocity emission properties. By default hairs are pointing toward the emission face's normal. Giving everything the punk & spikey look. To see the Velocity tab you'll have to enable Advanced options in the Particles system tab.

Once unwrapped your objec and controlled the flowing of the UV island like in the image below:

you just have to set the Normal velocity to 0 and transfer it previous value to the Tangent parameter (see the cursor), so hair particles will follow the direction given by the UV map.

Obiuvsly, this is just a starting point. If you would like to gentle set up the hair in a natural position, you'll have to comb them with the proper tools or run a physic simulation of the scene (you'll have to enable Hair Dynamics in the particle system and Collision for the "head" the object) like shown in the floowing image sequence:


Looks like your GPU ran out of memory.
Try to reduce the number of individual Meshes and Texture sizes.


Looking at your Console log, it seems pretty obvious that you are using Blender 2.66. The addon (as stated on the SE Block Tools homepage) needs Blender 2.75 or later.


How to make a crystal ball with particles inside in cycles

I figured some of it

Here what i got so far


Recursively traversing a tree in a collection in Python

If the maximum depth of the tree cannot be accurately predicted, then you cannot use recursive way or you might encounter stack overflow unless you are able and willing to deal with system call stack.
You can, however, use a custom stack (list in python) record the data you need to process. And pop them out to examine, while append new task you found in that loop.
condition = lambda collect: "foobar" in collect.name
dosomething = lambda collect: None

dealing_stack = []

# Blender store all collection in `list` not a tree (or a tree-liked list?)
for collect in bpy.data.collections:
    if condition(collect) and collect not in dealing_stack:
        dealing_stack.append(collect)

# record processed object, not sure if id won't change in dealthis
processed_list = []

while dealing_stack:
    dealthis = dealing_stack.pop()
    try:
        dosomething(dealthis)
    except:
        raise
    finally:
        processed_list.append(dealthis)
        dealing_stack.extend(
            [
                obj
                for obj in dealthis.children
                if obj not in processed_list
            ]
        )

While the recursive method indeed been more flexible in dealing with tree like structure:
condition = lambda collect: "foobar" in collect.name
dosomething = lambda collect: None

def deal_these_collection(collections, condition, callback=[]):
    if not collections:
        return

    for subcollect in collections:
        is_specified = condition(subcollect)
        if isinstance(subcollect, list):
            deal_these_collection(
                collections = subcollect,
                condition = lambda:True if is_specified else condition,
                callback
            )
        elif is_specified:
            for call in callback:
                if callable(call):
                    call(subcollect)
        else:
            # not target
            pass

deal_these_collection(bpy.data.collections, condition, [dosomething])

Please be aware of stack overflow problem when using recursion in large and deep tree, you must know  your algorithm very well and prepare some stack memorization technique to prevent the problem and make your program more efficient.

Personal opinion
If a program can be written in iterative method, then use iterative unless using recursive will "Strongly" enhance the readability of code. When code is in Python, the readability should be consider first. Most of the recursive method will let other confuse what's going on in code, and also making it hard to debug.
So unless the problem you deal is commonly dealt in recursive way, and you can list up bunch of merit to use it. Just use iterative way. Writing iterative method in Python should be easy due to the python duck-type list and a lot of handy expression.


Why does my volumetric jet material appear so low res?

For Cycles it was enough to change Mesh to Volume modifier Resolution > Voxel Size to 0.1

For Eevee it is the same, but ...

... you have to change also Render Properties > Volumetrics > End to 1000 m or

... increase Distribution to 0.98 and Tile Size to 4 px

Material is fine.


The lower example takes two steps.
First Extrude E, then scale S inwards.
Then extrude E, and pull (transform) G upwards on Z axis.

You may find it simpler to use inset I instead of extrude for the first step to shorten steps.


Why does rigify generate my rig so small?

You can just scale it as you would with other objects. While in object mode, select the armature and then press S to scale it.


Is there a way to separate geometry that shares verts/edges?

Once gone into the Non-Manifold mesh path, it's hard to get back.
I suggest an hack: after the selection, Inset faces a little bit.

Make sure that Individual checkbox isn't active:

Now, you have disconnected geometry you can easily extrude and bevel.


How do I convert .xmf file to an .obj file

The "short answer" to your question seems to be, "you can't, yet".

A more complete answer is that in the 3D software world, the ~.xmf file extension seems to be associated with a software package named CAL3D, which is styled as a "character animation library". If an importer is being developed that would allow one to import this file format into Blender, it (or information about it) doesn't seem to have been released yet. It might be that the design philosophy of the developers of CAL3D is such that it might not be easily accomplished. If it is possible, when the add-on is released, one would download and install it, and use Blender to open the ~.xmf file and write the imported file to a file in ~.obj format.


This seems to work (not verified against any official documentation):

myCol = bpy.data.collections.new("Test123")
bpy.context.scene.collection.children.link(myCol)


how to mix procedural textures for a natural waves of sand displacement effect?

You can distort a texture using another texture, like this:

(click on the images to enlarge)

Or you could mix bumps and displacement with other textures:

If what you are after fake relief (or bumps maps), but not real geometry displacement, this would work fine. Otherwise I would recommend using a displace modifier.


The problem was the abs function.

I opened up the script that creates the mesh ("..\Blender 2.82\2.82\scripts\addons\add_mesh_extra_objects\add_mesh_3d_function_surface.py"). It has a list of 'accepted' functions at the top and abs isn't included. However fabs is. When I changed the formula for X to fabs(cos(u))**0.8*a it worked as expected.


Changing texture slot mapping size has no effect

why you expect changing size or offset values to be affecting rotation or flipping? Btw, if you use "UV" as mapping coordinates, you should use a  UV map, which would give better texturing control on your object... (later on this)

If you try, eg, "global" coordinates (projection "flat" in my example using a plane mesh):

you can invert X/Y slots and get the texture rotated...

is this what you want?

If you used UV mapping (you have to "UV unwrap" before your mesh in edit mode) instead:

you could assign your texture to that UV map, in the UV/image editor (on the left below), then set the UV mapping type using your unwrapped UV:

then, rotating the UV map in the UV/image editor, you can use the UV map and rotate, scale, modify it, to adjust your texture precisely, to your mesh:

Most people use UV mapping because it gives total freedom, but the other (old) way still works, it is just different.


How to fill particular areas in texture paint?

You can use the UV Image Editor Fill tool and play with the threshhold settings to see how well the fill works without spilling into the area around the colored area.


Brightness varies between texture image and UV or edit mode

It looks like you completely baked your textures before you set up any (or enough) lighting. Therefore the texture (in its normal form, as seen in your red "texture image" box) was evaluated in the dimly lit scene you use. Then you used that as the material texture, which is also why the same darker texture is visible in the "textured view". To solve this you could bake again but after setting up some lighting or just bake with different settings for example only bake "textures" (without shading) Make sure you only bake "textures" https://docs.blender.org/manual/en/latest/render/blender_render/bake.html

If this doesn't solve your problem maybe look for a wrong node in your material setup or provide your .blend file, since there might be other problems with the same symptoms.

Happy Blending! :)


Click on Rigid body cache in Scene panel, there you can set the start and end of simulation.


You don´t need to copy only the folder "addons" and the folder "molecular", if you try to copy both files that are in the folder "molecular" you can't install the addon.


How do I extract a texture .png from an FBX?

I FIGURED IT OUT!!!
Go to UV Editor in Blender, and click on the image icon at the top to select the texture to view. Then click the Image button panel thing and you can save it from there.


This answer was inspired by this answer here

here is a solution that actually allows use to use the array modifier to duplicate grouped objects. It does, however, require one extra mesh.

We begin with our grouped object:

Then add a plane. Go into the object properties for that plane, and enter the instancing tab (called duplication in 2.7). Select faces.

Finally, select your group object then your plane, and hit Ctrl-P to parent them, selecting Object.

Now, finally, if you add an array modifier to your plane, the group object will be duplicated:

Demo file to see final result:


No CUDA option in system preferences - is it my driver?

IT IS the driver! The Nvidia driver installed from repositories on Debian is old. I've installed the newest driver by using sgfxi (see manual here). Just shut down the X-server, ran the script without any options (for this graphics card you don't need to enable the compositing option, it is enabled by default), it installed without a glitch. And halleluja! - GPU option appeared in Blender.


How to make stick person like Japanese samurai

Create the sphere, then create a different object (i.e. a plane), use the face snap option (project individual elements) and model the hair snapping every vertex to the underlying sphere.
Then add a mirror modifier for the back of the head, a solidify modifier to get thikness, and a subsurf.


Is it possible to set names of objects based on their texture name?

this is for texture name assuming the texture is on the first material :

import bpy

C = bpy.context
D = bpy.data

objects = [obj for obj in D.objects if obj.type == 'MESH']

for obj in objects :
   nodes = obj.material_slots[0].material.node_tree.nodes
   tex_node = next((node for node in nodes if node.type == 'TEX_IMAGE'), None)
   if tex_node :
       img_name = tex_node.image.name
       img_name = img_name.replace('.jpg','')
       obj.name = img_name.replace('.png','')

incase its the material name :

import bpy

C = bpy.context
D = bpy.data

objects = [obj for obj in D.objects if obj.type == 'MESH']

for obj in objects :
   obj.name = obj.material_slots[0].material.name
   #obj.material_slots[0].material.name = obj.name   #if it's the other way


You don't say enough about your project, if it gives you the result you want in Rendered mode then all your solutions are ok, you don't even need all these additional edges, and with right click > Shade Smooth and Normals > Auto-Smooth option on, you can even get a smooth shape:

But for example if you give your object a Subdivision Surface modifier it may cause some artifacts, even with your edge loops, because it will try to smooth angles that are too orthogonal:

In that case you need to smooth the shape with more edge loops, bevels are helpful:

or:


Windows generated blend file compatibility with Mac OSX

So far, all .blend files have worked for me no matter on which OS they are created, or on which they are used. Just copy the file over and open it. I've often created it on one, edited it on another, then rendered on yet another.


Create an arbitrary triangle:

Enable vertex Snap mode

Set the pivot point to 3D Cursor

Snap the 3D Cursor to one of the vertices ( I have choosen vertex (a) in the image below):

Select Vertex (c) and snap it to vertex (b)

R 60

Now the angle at vertex (a) has exactly 60°


Toggle button to occlude geometry missing

Do you mean this button?

It only shows up when you are in Solid View or higher. If you are in wireframe mode, it will not show up because it cannot compute the occlusion.


How do I manually set the value of a custom EnumProperty in python?

Check if a bpy.prop property has been initialized by looking at its custom property "data store".

Have a look at the Getter / Setter examples for bpy.props.  The ENUM_FLAG option enum property is saved internally as a custom property of the same name,  an integer, calculated from each item having an "internal id" of a power of 2 (aka bitwise). 1, 2, 4, 8...  The empty set set() 0, first only 1, first and second 1 | 2, and third 1 | 2 | 4 ...

As an example I've used the items method to show how to alter the data store (the custom property) only if it hasn't been already set.  I've used a scene bool to emulate the addon prefs boolean.

import bpy
from bpy.props import BoolProperty, EnumProperty

def channel_items(self, context):
    prefs = context.scene

    red_id, green_id, blue_id, alpha_id = (c for c in "rgba")
    items = [(red_id, "R", ""),
            (green_id, "G", ""),
            (blue_id, "B", "")]
    if prefs.alpha_support:
        items.append((alpha_id, "A", ""))

    if not self.get("active_channels"):
        self["active_channels"] = 1 | 2 | 4 #rgb
        if prefs.alpha_support:
            self["active_channels"] |= 8

    return items

def update_rgba(self, context):
    print("enum set", self.active_channels, "int", self["active_channels"])
    return None

active_channels = EnumProperty(
    name="Active Channels",
    options={'ENUM_FLAG'},
    items=channel_items,
    update=update_rgba,
)
bpy.types.Scene.active_channels = active_channels
bpy.types.Scene.alpha_support = BoolProperty(default=False)

Note the above will give all for empty selection, as well as the custom property not being set.  To check if bpy.prop is initialized would use

is_init = self.get("active_channels") is not None


How to "Chamfer" or Bevel Outer Edges of a Plane like in 3DS Max?

On an edge selection,CtrlShiftR, Offset Edge Slide, will get you most of the way there. It will slide a copy of selected edges along existing ones, and can be set to give an even offset. However, it doesn't create rail edges (in your case, at the corners) where they did not previously exist .. you would have to go round and J connect the vertices at the corners.

If you had to do so many of those it would be tedious, you could:

Extrude your selected edges any old where, so they are no longer on a boundary
Select the top faces I and inset the whole region with 'Boundary' unchecked
Alt-select the extruded face ring, and delete it.

Or, you could go round with K cutting across existing edges, making a  rough inset, and create the corner-rails, with no concern for accuracy, and then use GG to slide it, hitting E to make the edges parallel to the boundary. (F flips which side of the slide to be parallel to.)


The Tissue Tools are from the Tissue add-on. You can activate it in your preferences by ticking the checkbox (Edit > Preferences > Add-ons).

The sidebar can be toggled by pressing N, through View > Sidebar or by clicking on the little arrow icon.


I assume you used 'Automatic weights'. A reason could be that the piece of the hand that you want to control with this bone, this same piece is also controlled by another bone. This results in a mix of both bones. You have to find out which other unwanted bone is also controlling that piece of hand and edit its weights. But I'm not sure whether this is what you mean, I could be wrong :)


How to make just 1 object render backface culling and the others not?

As mentioned in this Question, if you use the Cycles renderer, you should be able to use the backface output from a geometry node to mix between a diffuse and a translucent shader.

This simulates backface culling.


Unable to install Sverchok on 2.80 - Could anyone help

There is a guide explicitly for installing Sverchok for 2.8 here:
https://github.com/nortikin/sverchok/issues/2326

:)


How do I write a code that starts playing animation, and stops playing it in 30 sec?

Modal timer template

Blender comes with a modal timer in its templates.  Text Editor > Templates > Python > Operator Modal Timer Here is the timer for 2.8 converted to start playing when operator pressed, and stop after 30 seconds.

This part

self._timer = wm.event_timer_add(1, window=context.window)

creates a 'TIMER' event every second (the 1 designates 1 second, the original has 0.1 or a tenth of a second)

When 30 of these are counted (30 seconds) the animation is stopped.

import bpy

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs its self from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None
    count = 0

    def modal(self, context, event):
        if event.type in {'ESC'} or self.count > 30:
            self.cancel(context)
            return {'CANCELLED'}

        if event.type == 'TIMER':
            self.count += 1

        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        # start animating
        bpy.ops.screen.animation_play()
        self._timer = wm.event_timer_add(1, window=context.window)
        self.count = 0
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        bpy.ops.screen.animation_cancel(restore_frame=False)

        wm = context.window_manager
        wm.event_timer_remove(self._timer)

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.wm.modal_timer_operator()


How to make objects near the camera look bigger

Focal Length is indeed the parameter you want to edit. You have of course to compensate for the distortion with distance to the object.

Has Focal Length decreases the object will look further and further away, the perspective distortion will get larger and larger, and so the objects closer to the camera will appear bigger, and the ones far away will appear smaller,


It is hard to do it accurately in Blender, but you could approximate the result using the help of Proportional Edit

Just bevel regularly like you already did, but make sure you leave the 3D Cursor at the exact position of the original unbeveled corner vertex on 1.

If you already beveled you can place a loose vertex there and use the Shift+S menu then Cursor to Selected to snap it there.

Afterwards hide all geometry of your object by selecting it and pressing H (so it doesn't get unintentionally deformed), except for the beveled edges only.

Turn on Proportional Edit (O key by default), set Falloff Type to Linear then selecting only the tip vertex at 1 scale down as desired. Press Shift+X (Y or Z depending on the orientation of your model) to exclude the desired axis from scaling and prevent distortions, then adjust the influence radius with Mousewheel as desired.

In the end Alt+H to unhide hidden geometry


AFAIK not directly.  Often use type(...) to register multiple classes. Code below will register a panel with "material", "object" and "data" bl_context, based on your myPanel class definition.

import bpy
from bpy.utils import register_class

class myPanel(bpy.types.Panel):
    bl_label = "My Multi-Panel"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'

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

        scene = context.scene

        row = layout.row()

        row = layout.row(align=True)
        row.operator("wm.splash", text="Button")

contexts = ["material", "object", "data"]

for c in contexts:
    propdic = {"bl_idname": "mypanel.%s" % c,
               "bl_context": c,
               }
    MyPanel = type("My%sPanel" % c, (myPanel,), propdic)
    register_class(MyPanel)

Another method would be to make a list of the panels you want to append / prepend the button to.

import bpy

panels = ["SCENE_PT_scene",
          "OBJECT_PT_context_object",
          "DATA_PT_context_mesh",
          "MATERIAL_PT_context_material",
          "TEXTURE_PT_context_texture",
          "OBJECT_PT_constraints",
          "DATA_PT_modifiers",
          "DATA_PT_context_metaball",
          "WORLD_PT_context_world",
          "DATA_PT_context_lattice",
          "DATA_PT_context_lamp",
          "NODE_PT_active_node_generic",
          "Cycles_PT_context_material"]

def draw_func(self, context):
    layout = self.layout
    layout.operator("object.select_random", text="BUTTON")

for p in panels:
    panel = getattr(bpy.types, p)
    if panel is None:
        continue
    panel.append(draw_func)


Problem with script being invoked twice in BGE

This happens because there are two events for key down and key up. To choose one of them replace the print statement with your code to invoke and delete the other unneeded lines.

Script to test the behavior:

import bge

cont = bge.logic.getCurrentController()

sensor = cont.sensors['Space'] # Assumes that keyboard sensor is named as 'Space'
if sensor.getKeyStatus(bge.events.SPACEKEY) == bge.logic.KX_INPUT_JUST_ACTIVATED:
    print("sensor down")
if bge.logic.keyboard.events[bge.events.SPACEKEY] ==bge.logic.KX_INPUT_JUST_ACTIVATED:
    print("Down")
if sensor.getKeyStatus(bge.events.SPACEKEY) == bge.logic.KX_INPUT_JUST_RELEASED:
    print("Up")

One event picked

import bge
import subprocess

if bge.logic.keyboard.events[bge.events.SPACEKEY] ==bge.logic.KX_INPUT_JUST_ACTIVATED:
    subprocess.call(['C:\\path\\app.exe'])


Why is my UV mapped texture dissapearing when I start blender game engine

I have downloaded and test the file which you have attached.
Pressing P does reveal the image in the game engine on my screen.

I suspect you user preferences setting were different from mine.

Now that I see your graphics card, I am suspecting it could be a hardware/software limitation. I went on the internet and search for OpenGL driver for the card. And it seems that you have to download a package to enable OpenGL support. Maybe you could read up here and download the appropriate OpenGL package for your card?

Link here https://downloadcenter.intel.com/download/20046/OpenGL-Support-Web-Link

Link to the G41 Express Chipset here https://downloadcenter.intel.com/product/81517/Graphics-Drivers-for-Intel-G41-Express-Chipset

Hope this will resolve your issue, good luck.


How to create mesh after applying physics

I think arrays of 100x100x100 is a bit ambitious - 1,000,000 objects interacting in a rigid body simulation will take a long time to simulate.

However, the basic steps are as follows :

Setup your Array modifiers to create the objects you desire.
Apply the Array modifiers to create a 'combined' mesh.
In Edit mode, choose Separate (P) and choose 'By Parts' - this will split the mesh into the individual elements created by your Array modifier. Note : The more "objects" you have in your arrays, the longer it will take for the Separate process to split.
Go back to Object mode (Tab) - after the 'separate' you should still have all your newly separated objects selected. Use Set Origin (in the left-hand panel) and select By Geometry - this should set the origin of each separate mesh to the centre of its own geometry (required for the Rigid Body simulation).
In the Physics tab, add Active Rigid Body physics to all the selected objects.

You can now run your simulation. Once it's complete and you have a state you are happy with, simply use Join (Ctrl+J) to join them into a single mesh.

Larger numbers of meshes will significantly slow down the various stages of the process (such as the Separate By Parts and the Rigid Body Simulation) so I'd suggest starting with a smaller number of objects before scaling up to more.


Pressing "CTRL-J" in object mode should join the two objects, and make them the same color. It works in my case.


"extra shading pie menu items" option not showing in custom keymap

"extra shading pie menu items" is available if you manually change the keymap name from VIEW3D_MT_shading_pie to VIEW3D_MT_shading_ex_pi


Start with a single edge from the center to the side.

Add a screw modifier with a positive screw value.

Fill F the created n-gon (1) and add a triangle (2), connecting the first point and the last segment.

Select the border edge loop ⎇ Alt RMB and extrude it downwards E > Z  LMB. Scale the extruded edgeloop to 0 along the Z-axis. SZ0
I added an edge split modifier to sharp the sharp edges.


Array modifier with object offset, rotate and scale at the same time

If it fits your needs, an easier way to achieve that shape is probably using the screw modifier.

You would use a single 2 dimensional "U" shape, and use the screw modifier to basically "rotate" the object around the origin. You adjust the screw amount to make it also move up on the Z (or other chosen) axis.


You have several solutions, like the Spin tool or the Simple Deform modifier (with Bend option), or the Curve modifier, but I guess the Screw Modifier is the easiest way:

Create your profile shape, without any inner face. Keep in mind that the origin of the object will be the pivot of the rotation.
Assign your object a Screw modifier, choose the good axis, choose a 360° angle, and as many Steps as you want.
Keep a copy of your object before applying the modifier. Recalculate the Normals if necessary (ctrl N in Edit mode). You can also choose not to apply the Screw modifier, it will just make the edges sharpening a little bit longer at the end.
Assign your object a Subdivision Surface modifier. On the left panel (T) click on Tools > Shading > Smooth.
In Edit mode, add some edge loops to make your edges sharper (or, if you didn't apply the modifier, create some new vertices close to the existing ones: Select an edge, then create a vertice with ctrl R or W > Subdivide, then move the vertice along the edges with G G until it comes close to one of the existing vertices).


Object invisible during render (Blender v2.81)

Select your icing then go to Particle Settings and in the Render foldout, check "Show Emitter"


Is it possible to float an object on a fluid simulation?

In short, no. But...

This part of the wiki talks a little about setting an object as an inlet, outlet, obstacle, or fluid control. There are also settings in the fluid sim that tries to imitate foam floating on the surface of the fluid, but there's not a way to make an object float, per se. Nor will the fluid sim interact with a rigid body.

That being said, it's possible to export a fluid sim to a mesh, in which case it will have the same attributes as any other mesh. Not quite interaction, but close.


How to remove the box and work with the vertices?

You can't edit the modified mesh until you apply the modifier, unfortunately.
Modifiers create virtual vertices/edges/faces, but they are not editable, transformations are based on the original mesh. The transformations can become permanent by applying the modifier.
So either apply the subsdivision surface modifier and work from there on, or work with the cube in edit mode.


Shadows not Showing up? Also help with color variation in shaders

Right here you are telling a Transparent BSDF to amplify the light passing through the gumdrops in a non-realistic way.  Stick to Value and Saturation in the 0 - 1 range to produce realistic results.
Geometry -> Random Per Island is the key to separating out an array.

You could replace the Viewer here with your Color Ramp.


Change color of an object depending on camera view (cycles render)

It is possible to do that in Cycles using a Camera Data Node

You must use the output of the View Vector socket, separate it into its components with a Separate XYZ node, then pass its Z component through a Color Ramp node to control what colors you get.

The effect might be hard to see at start because the red color would always be off-camera, but tweaking the color ramp node may emphasize the effect.

Should be automatically kept in sync with the camera position


You have to toggle out of edit mode after deselecting all vertices to solve your issue.

bpy.ops.object.mode_set(mode='OBJECT')          #SWITCH TO OBJECT MODE
a.select = True                                 #SELECT VERTEX
bpy.ops.object.mode_set(mode='EDIT')            #SWITCH TO EDIT MODE
bpy.ops.object.hook_add_newob()
bpy.ops.mesh.select_all(action='DESELECT')      #DESELECT VERTICES
bpy.ops.object.editmode_toggle()

For better understanding why you have to leave the edit mode this answer maybe helps.

Edit: In terms of better error handling I suggest you to write a bit more functional and split the code in useful pieces. The positive side effect would be that you have much more control, because you also can cache your states. I assume from the code above you want to have following functions:

create empties from all verticies of the selected object
add and assign hook modifiers for all empties to the selected object
create a group or add empties to a group

For e.g. this function creates the empties and returns a list of the new ones:

# -----------------------------------------------------------------------
# create empties from vertices
# -----------------------------------------------------------------------
# parameter: mesh object
# returns: list of new empty objects

def createEmptiesFromVerts (obj):

    # get object data
    objMesh = obj.data
    vertList = [vert for vert in objMesh.vertices]

    # create a list for the new empties
    emptyList = []

    for i in range(len(vertList)):

        # get local coordinate
        vertCoordinate = obj.data.vertices[i].co
        vertCoordinate = obj.matrix_world * vertCoordinate

        # add the empty
        bpy.ops.object.add(type='EMPTY', location=vertCoordinate)
        newEmpty = bpy.context.active_object
        newEmpty.location = vertCoordinate
        newEmpty.empty_draw_size = newEmpty.empty_draw_size # / 4
        bpy.ops.object.select_all(action='TOGGLE')
        bpy.ops.object.select_all(action='DESELECT')

        # append the new empty to the list
        emptyList.append(newEmpty)

    # set object to original state
    bpy.context.scene.objects.active = obj
    obj.select = True

    # return the new empties
    return emptyList

With this incoming list you can go on with the next function and assign the hook modifiers.

# -----------------------------------------------------------------------
# create hook modifiers
# -----------------------------------------------------------------------
# parameter: mesh object, hook object list
# returns: assigned hooks list, assigned modifier list

def hooksFromVerts (obj, hookObjs):

    # get object data
    objMesh = obj.data
    vertList = [vert for vert in objMesh.vertices]

    # create list to save all assigned hooks
    assignedHooks = []
    assignedModifiers = []

    for i in range(len(vertList)):

        bpy.ops.object.mode_set(mode="EDIT")
        bpy.ops.mesh.select_all(action="DESELECT")
        bpy.context.tool_settings.mesh_select_mode = (True , False , False)
        bpy.ops.object.mode_set(mode="OBJECT")

        # get local coordinate of vertex
        vertCoordinate = obj.data.vertices[i].co
        vertCoordinate = obj.matrix_world * vertCoordinate

        bpy.context.object.data.vertices[i].select = True
        bpy.ops.object.mode_set(mode="EDIT")

        # assign hook if coords of vert and hook object are equal
        for n in hookObjs:
            if vertCoordinate == n.location:
                #modifierName = "Hook" + str(i+1)
                modifierName = "Hook_" + n.name
                obj.modifiers.new(modifierName, type='HOOK')
                obj.modifiers[modifierName].object = n
                bpy.ops.object.hook_assign(modifier=modifierName)

                # append the hook objects to the list
                assignedHooks.append(n)

                # append modifiers
                assignedModifiers.append(modifierName)

    # set object to original state
    bpy.ops.mesh.select_all(action = 'DESELECT')
    bpy.ops.object.mode_set(mode ="OBJECT")

    # set object to original state
    bpy.context.scene.objects.active = obj
    obj.select = True

    # return assogned hooks objects and modifiers
    return assignedHooks, assignedModifiers

As last step you can create a function that creates a group if it not exists and throw your empties in it. To call this is much more easier and for us more readable at all:

# get the object
selectedObj = bpy.context.active_object

if selectedObj.type == 'MESH':

    # create empties
    generatedEmpties = createEmptiesFromVerts(selectedObj)

    # create hooks
    generatedHooks = hooksFromVerts(selectedObj, generatedEmpties)

    # remove modifiers
    #removeModifiersByNameList(selectedObj, generatedHooks[1])

    # create or add to group
    generatedGroup = addObjectsToGroup("testgroup", generatedHooks[0])

else:
    print ("please select a mesh object.")

Hope this helps!


Getting rid of the little (+) buttons for a clean window

2.79

Duplicate the area into a new window.
View ‣ Duplicate Area into new Window
OR
Duplicate a window with ⎈ Ctrl⎇ AltW
Info area ‣ Window ‣ Duplicate Window
Then, Toggle Area Fullscreen ⎇ AltF10. View ‣ Toggle Fullscreen Area
Eliminiate additional 3D View icons in the User Preferences ⎈ Ctrl⎇ AltU under Interface ‣ Display (on the left)

2.8

Although the manual says the same as in 2.79. The Toggle Fullscreen Area is somewhere else in 2.8 (2018-10-12).

3D View Menu: View ‣ Area ‣ Toggle Fullscreen Area. ⎈ Ctrl⎇ AltSpace


If you set the project frame rate at a given value like 24fps, then add the audio, the sound will be one fixed duration. Then if you alter the frame rate the sound will stretch to fit, however your animation will remain locked at specific frames.

So if you add a keyframe at frame 100 it will always rain at frame 100 even if you change the frame rate.

For example you might have an animation created at 24 fps, then you might want to change frame rate when you add some video that is 30 fps. Now the audio will stretch to match the new frame rate but the animation that you created will not.


Why is this object completely black while in edit mode?

In this case mesh is built with too many vertices and faces serving no purpose for this not complex mesh. Initially it has slightly more than ~2000 polygons which is too much for that.

Select all with A, press W > Remove doubles. It will tell you that around 2000 double vertices was removed.
Select all if not selected and press Ctrl+N to recalculate normals. The model will look as usual from now on.

Read about normals: Why are some of faces in my mesh darker


First, you need to be in Edit mode, then check the 3d view header (the bar at the bottom) of the 3d view and you will see the Mesh menu item.

Additionally, you can press Space and search for the operation you want to perform if you know the name.

You can use Select Faces by Sides[citation] to select all the n-gons like maya


How could I import a game character from another .blend file in the bge during runtime?

I suggest to link groups from different files.

You have one blend file with your character. It should contain all the object that initially belong to it (physics object, armature, skin meshes, etc.). Place them all in a group that you can create an instance from it.

In your game file you can link the group from the character file.

Then you can instantiate the linked group.

You can have as many instances as you like. You can link the group into any number of blend files you like.
When you update the character file the linking files will be updated when you open them (e.g. save+load = update).
This is a good option not just for a single character but for assets too (stones, trees, houses, rocks, NPCs, GUI, HUD, Menu, vehicles ...).
Be aware this method is static. It loads on file/scene load. It does not load dynamically (in this case you need LibLoad - which should work with linking blends too).

Hint:

You can create groups from instances too. This makes linkable groups that contain instances of other groups.
When you place instances in a separate scene, you can link all groups in one step by linking the scene (rather than linking each single group). This is very useful when you have a lot of assets in one file.
Be careful with naming. Groups with the same name are supported, but you have to guess which one is the one you want.


In 2.7, press U (Make Single User) > Object & Data.

In 2.8, bottom bar menu > Object > Relations > Make Single User > Object & Data.


Is it possible to create a particle tracer inside Animation Nodes?

As you noticed yourself the list that will contain the elements depends on the frames before -> thus is it Simulation, and this is not supported by Animation Nodes.

Each frame has to be deterministic. (think about what should happen when you go backwards in time or skip some frames during playback, or render the frames in different order, ...).

There is a Trail Count property in Blenders particle system settings, maybe you can use this (in the Render panel)?


Creating a 3D object from a side and top view outline?

One way of doing this is to first start with a clean blender file, then in the 3d view press N to open up the side editing panel. Then scroll to the bottom of the panel, and check the box next to the "Background Images". After opening it, add your reference images (top and side view). Then change the "Axis" to be the correct view for each of your reference images. After that, you will want to add in a plane. After rotating the plane 90 degrees along the "y" axis and setting your view to the top orthographic view, you should now see your reference image with the plane near it. In edit mode, and in wireframe view select you whole plane and move, scale, and rotate it so that it matches up with one side of your knife handle.  Then with the whole plane selected use E to extrude G to translate R to rotate and S to scale until you have a rough outline of your knife handle which should look a little like this: It is important that when extruding, and applying your transformations that you have the entire face selected, and not just a row of vertices. After you have done this, you can leave top orthographic view, and apply a subsurf modifier. Don't change any values yet, otherwise it will be difficult when scaling your knife to see the side view. Now go into side orthographic view, and using the values in the side panel translate, rotate, and scale your reference image until it is the correct size of your model. At this point, your height will most likely not match your reference image. It should look somewhat like this: Then scale the knife handle along the "z" axis until the size matches your reference image. Now you will want to adjust the view value on the subsurf modifier to be higher (I used around a 5) to get a smooth knife so your normal map will not look jagged (smooth shading will not do anything in this case). It should look like this:  You are now done with modeling, and it is time to make your normal map. First set the origin of the knife to the geometry by pressing Shift+Ctrl+Alt+C. Now press Alt+G to center your model. Now add a plane and scale it up to just be slightly bigger than your knife handle (press Alt+G to center your plane as well). This plane will be what you bake your texture to (it simulates the top of your cutting board). Now go into edit mode with your plane selected and press U to UV unwrap the plane, then press Unwrap. Now open up a UV/Image Editor, and a Node Editor panel. In the UV/Image panel select Image, then select New Image, then set the resolution to something 4k or higher (4096x4096) then click Ok. You should now have a black image. In your Node Editior panel (with the plane selected) add a new material, then add a Image Texture node, and load your new black image into it. Now in the Render section of your Properties panel scroll all the way down and under Bake change the Bake Type to Normal. Then check Selected to Active and change your Ray Distance to 1.000 (you may need to increase this value if your texture dosen't bake properly). Now in order to bake your texture make sure you have your Image Texture node selected in the Node Editor. Then select your knife handle, then Shift click your plane, so that both are selected in that order, then click on bake. Your black image should now be transformed into a normal map of your knife. To save it, in the Image Editor click on Image, and select Save As Image. You are now done and it should look something like this:

  Edit: I just realized that you said Bump Map and not Normal Map. You should just be able to convert the Normal Map to a black an white image to get your Bump Map.

I hope this helped, if you are interested in learning more about modeling, or just Blender in general, I would recommend watching Blender tutorials on YouTube. That is how I learned everything that I know today (and it's free). A great person who makes Blender tutorials is Andrew Price, I would recommend checking him out on YouTube if you wish to learn more. Good luck on your cutting board project

-Tom


Objects aren't visible when I render the image

LAYERS

Do the following for every object from largest object to the smallest.  In the object panel / Relations click on layer (1) so it is dark as in the image above, the upper left layer rectangle of 20 possible.  Then click render.
These layers are coordinated with these Render Layer Settings

When a new simple file is created objects are on layer 1 and the render layer settings are showing at least layer 1.  Blender gives the user the flexibility to hide or show these layers at different times and phases.  It can be used as a feature or to create confusion.

If you want to know more you can now search at this website and blender.org and video site for information about [layers].  Quick Summary.  Every file can have multiple render layers.  Every render layer can select some of the twenty layers.  Every object can be on some render layers.  All 3 concepts must be coordinated with other hidden delights for an object to appear in the render.


How to insert the coefficients of a f-curve in Python?

I fail to get your example to run, which might be in part because I don't have that Keying Set Rent available, partly because it seems as if bpy.context.object in your code refers to the object and not the FCurve, so I don't know how it should access an attribute to the FCurve like use_restricted_range

Anyway, the attributes for the FModifierGenerator are
mode which is either POLYNOMIAL or POLYNOMIAL_FACTORIZED,
poly_order and
coefficients which is a list of length poly_order+1 for a polynomial or poly_order * 2 for a factorized polynomial.

The following code adds a keyframe to the X location of the active object and adds a function modifier generator with polynomial order and coefficients set.

import bpy

obj = bpy.context.active_object
obj.keyframe_insert(data_path='location', index=0)  # X Location

fcurve = obj.animation_data.action.fcurves.find(data_path='location', index=0)
mod = fcurve.modifiers.new(type='GENERATOR')
mod.mode='POLYNOMIAL'
mod.poly_order = 1
mod.coefficients = [2, 3]
mod.use_restricted_range = True
mod.frame_start = 0
mod.frame_end = 100

If your code runs in your blender, then adding something like bpy.context.object.poly_order = 1, etc., should do the trick. Otherwise you have to find the FCurve of your keyframe channel with the correct data path according to your keying set and and modify its attributes like above.


Where is the panel to change parameters for gears created using the Extra add-on?

Thanks for R-800. It was minimised on the bottom left. It is not on the right as i thought it would be.


How can I make 2 viewports in Blender python have the same orientation?

Changing the values works for me. The below script changes all 3D views to the first one (by internal order). This does not work in all cases but in most.

C = bpy.context
viewports_3D = []
for area in C.screen.areas:
    if area.type == 'VIEW_3D':
        viewports_3D.append(area)

attributes=['view_matrix', 'view_distance', 'view_perspective',
            'use_box_clip', 'use_clip_planes', 'is_perspective',
            'show_sync_view', 'clip_planes']
ref_viewport = viewports_3D[0].spaces.active.region_3d

for viewport_3D in viewports_3D:
    for attribute in attributes:
        setattr(viewport_3D.spaces.active.region_3d, attribute, getattr(ref_viewport, attribute))


Both side of the Weight Painting went to the right side

To answer to my question if someone is stuck in the same situation:

The source of the problem:
I thought it was a bug but it's not. While editing my mesh I made a mistake: In Edit Mode, I used the Mesh/Symmetrize tool. I didn't think that it would not only mirror the position of the vertices, but their weights too! I believe using the Mirror Modifier instead would avoid this.

What's done is done, let's fix it!
In the Object Data Properties panel you can see all your Vertex Groups. They are assigned to bones by having the same name as them.

First, I made a copy of all the Vertex Groups that are inside of the right limbs. (Arm.R_copy)
Then, I erased the Vertex Groups in the left limbs. (Arm.L)
Finally, I renamed the copies, so they would assign to the left limb bones. (Arm.R_copy -> Arm.L). So far, every Vertex Group has its weights, but also the opposite side. Let's get rid of that!
Select the LEFT half of your model. The easiest way to do it is to use lasso selection with X-Ray turned on (Alt+Z). Now, go through all the RIGHT Vertex Groups and click Remove, so the unecessary weights will be removed.
Select the RIGHT half, and do the same with the LEFT Vertex Groups.

-Peter


animating a transforming elephant's trunk

The trunk is a curve (path), shaped as a comical elephant's trunk and held skyward so it's upper end is also pointed forward.

The curve is "bevelled" with a curve-circle to make a cylinder curved upwards and pointing forward.

The resulting cylinder is converted to mesh.  It's side edges only are subdivided 63 times so we have plenty of vertices for it's curvature to be animated smoothly.

The "Cast" modifier is used on this in order to expand and 'trumpet' the end.  This is achieved by placing the "cast object" near the upper end and keyframing it's location so it oscillates. (approaches and leaves the cylinder's end rapidly)

The cast modifier's effect is to expand and retract the end much like a flexible trumpet.

The Empty's oscillitions are just 2 frames apart.  i.e. approach for two 2 frames, recede for 2 and so on for as long as required.

-==================-

Edit - 11/Dec 2018

For 2D trunk shaping -

Instead of using a circle for the bevel object, use instead, a plane (converted to a curve with ALT-C)

This will give us a square trunk.

Once squared, the bevel plane can have it's two lower control points deleted so the trunk ends up as a flat 2D curved object.

We keep the trunk as a curve object so it's control points when moved about with either shapekeys or "hooks", won't lose the biological curvature as it's reshaped.  Bones and rigging can also do this.


OPENGL Blender Transparent PNG on top of video

@andrepazleal, I've had no problem placing one movie (with transparent bkd) over another and find OpenGL handles this well.

The edge effect you're describing I've also experienced and have solved that as described below...

Flame Video with transparency, stacked in front of another, all done in the 3D window by texturing planes and rendered in OpenGL -

As to the edge artifact problem, I take it that you are rendering with OpenGL and that the stars are a png file with it's own alpha layer (transparent background), being used to texture a plane.

The effect you're describing around it's edges can be the result of the plane's "Transparency" box (see below) being either ticked or unticked when in fact it needs the inverse.  i.e. tick it if it's unticked and vice versa.

The edges will show when not selected and disappear when selected, just as you described.  Changing it's Transparency tick should fix your problem.

If there's a plane or object behind that again, the background object's own transparency box may also affect the outcome.  When the first box doesn't help you can try different combinations in both.  I've experienced this problem frequently and those tick boxes have solved the issue every time.

The box is found by clicking on the plane's properties at the right, (little cube icon) going down to it's "Dipslay" tab and opening that to reveal the "Transparency" box.

You may also find that reducing a textured plane's "Specular" settings to zero, can also assist in removing artifacts.

Both Specular sliders can be found under the plane's Material properties.  The main one is in the Specular tab, the other in the Transparency tab. (immediately under the Opacity slider)  If both the Opacity and Specular sliders are not at dead zero, unwanted effects may occur.

The previous paragraph refers to planes being textured with an image containing an alpha (transparent) layer.


Ok I figured it out. I will leave the answer here if anyone else has the same problem in the future.

1.Select the model you want the UVs copied to, then the model you will copy them from.

2.Press Control+Shift+T to transfer mesh data.

3.Select Vertex Group and click the Auto transform checkbox.

4.Press Control+Shift+T and choose UVs


Do not open the file double-clicking it, instead open blender and go into File > Open.

Then deselect the checkbox "Load UI".

Open the project and you are done!


Camera constrained to path, not follow it exactly around curves

Perhaps you have the curve resolution set to low? The curve will render at the preview resolution when it is set to zero. This will make any objects tracking its length cut corners as they evaluate the curve in a parametric manner.

vs


How to calculate world position of offset point based on rotation of an object in python

Some matrix math.

Rotating the vector (0, 0, 1) by the euler rotation described in question (assuming default order 'XYZ')

>>> R = Euler(radians(a) for a in (12.4162, 39.7934, -16.6971))
>>> R
Euler((0.21670356392860413, 0.6945258378982544, -0.2914193570613861), 'XYZ')

>>> v = Vector((0, 0, 1))
>>> R.to_matrix() @ v
Vector((0.5369226336479187, -0.38553091883659363, 0.7503865361213684))

Ooops didn't see the point 0.1, notice though that each element is 10x the result in question, as is the length of the vector

A child object at (0, 0, 1) can be considered at the local coord (0, 0, 1) of the parent.  To get global coordinate of a local coordinate we multiply by the objects matrix world.

Consider the following from the python console.  In this case the "Circle" has no parent, so its origin, local coordinate (0, 0, 0) will be at its location.

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

>>> C.object.location
Vector((1.0, 3.0, 2.0))

>>> C.object.rotation_euler
Euler((0.5235987901687622, 0.7853981852531433, 1.0471975803375244), 'XYZ')

>>> C.object.scale
Vector((2.0, 3.0, 3.0))

Ok lets look at the world matrix

>>> C.object.matrix_world
Matrix(((0.7071067094802856, -1.7196698188781738, 2.2175967693328857, 1.0),
        (1.2247449159622192, 2.2175967693328857, 0.8409903645515442, 3.0),
        (-1.4142135381698608, 1.0606601238250732, 1.8371171951293945, 2.0),
        (0.0, 0.0, 0.0, 1.0)))

>>> C.object.matrix_world.translation
Vector((1.0, 3.0, 2.0))

>>> C.object.matrix_world.to_euler()
Euler((0.5235987901687622, 0.7853981852531433, 1.0471975803375244), 'XYZ')

>>> C.object.matrix_world.to_scale()
Vector((2.0, 3.0, 3.0))

The global location of local coordinate (0, 0, 1) of circle is

>>> C.object.matrix_world @ v
Vector((3.2175967693328857, 3.8409903049468994, 3.8371171951293945))

>>>


How to select the cylinder object and not the outer reference surface?

You need to click the "On cage" icon inside the Subdivision modifier


What is the quickest way to add pairs of edge loops?

Select all the loops that you want to add loops around with Shift+Alt+Right-Click
Ctrl+B to start beveling
Scroll up on the mouse wheel to increase the segments to 2


Could someone find any logic in the rigid body world and rigid body constraints behavior?

Probably that are a bugs of Blender 2.83.6. It seems like all works as expected with Blender 2.91.


Why is the aspect ratio for this UV-unwrap wrong?

Like i said i'm still a novice.

The devil was in the details, as a result of the beveling on the top there were still some minor issues (overlapping face, 2 vertices to be joined) at the outer right side of the object. After I took care of those issues the unwrap already looked much better.
Because the front face still showed some stretching, I divided (1 time horizontal and vertical) the front face. Then the unwrap worked like a charm with almost no stretching / deformation.

Took me many days, but i learned a lot !!


Animate triangles – rotate "roll" along all their sides

You can use animation nodes. Here you have a simple setpup on how to animate polys changing its pivot point.


Textures go missing when I set new scene

Viewport Shading

I think your starting scene is set to "Solid". Ensure it is set "Texture" or "Material".

Render tab shading

One scene might use Shading mode "Multitexture", while the other uses "GLSL". Ensure to use the same mode for all of you scenes.


How to animate a character walking around?

Rigify and MHX use a bone called master. In order to apply poses independently of position and orientation the master bone which must not be added to the poses.
Parenting the rig to an empty might also work.

When the feet start to slide around the walkcycle is too slow for use with the movement. In this case you can select the walkcycles keyframes and scale them until it looks right.


Store and keep the value of a number through loops in an animation node loop

There is.

The Reassign Loop Parameter node allows you to pass a value to the next iteration of the loop. You can create it in the advanced settings of the Loop Input node.

In this example I also made it so that the Sum socket is an output of the loop instead of an input.


The Freestyle check box in the Render tab reads "Freestyle SVG Export" instead of "Freestyle"

I can confirm that the correct tab is "Freestyle SVG Exporter" as introduced officially into Blender in this commit in 2014 which had more unwieldy title of "Export Freestyle edges to an .svg format" with it shortly thereafter being changed to "Freestyle SVG Exporter", which is where it currently resides.
Poking around tutorials for Freestyle, a lot of them date from about 2013, which makes me think that the initial plugin source (which I'm having a difficult time locating at the moment) may have simply gone with "Freestyle".


How can I join multiple objects automatically in groups determined by how far away they are from each other?

Make a Grid of view3d region and join via Border Select

Made an operator that splits the 3d view into an i x j grid. Joins all the meshes in each grid sector using border select.  Note this is a 2D approach, and assumes that looking at your level in top view and assigning a grid will suffice.  If your objects are spread more randomly in all three dimensions each joined selection would look more like a column.

After running script below, find in view3d > object > Grid Join menu.

Did have the View All operator in the operator, but decided it may be better to let user choose view, and zoom into all objects wishes to join.

Divide visible screen area into a grid with 16 x segments, and 9 y segments and join those selected by border select in each.

import bpy
from bpy.props import IntProperty

class SimpleOperator(bpy.types.Operator):
    """Join objects based on View3d Grid"""
    bl_idname = "view3d.grid_join"
    bl_label = "Grid Join"
    bl_options = {'REGISTER', 'UNDO'}
    x_segments = IntProperty(default=16, min=1)
    y_segments = IntProperty(default=9, min=1)
    @classmethod
    def poll(cls, context):
        scene = context.scene
        return len([o for o in scene.objects if o.type == 'MESH'])

    def execute(self, context):
        scene = context.scene
        joined_obs = []
        bpy.ops.object.select_by_type(type='MESH')
        #bpy.ops.view3d.view_all()
        region = context.region
        print(region.width, region.height)
        w = region.width / self.x_segments
        h = region.height / self.y_segments
        for i in range(self.x_segments):
            xmin, xmax  = i * w, (i + 1) * w
            for j in range(self.y_segments):
                ymin, ymax  = j * h, (j + 1) * h
                #print(xmin, xmax, ymin, ymax)
                bpy.ops.view3d.select_border(
                       xmin=xmin,
                       xmax=xmax,
                       ymin=ymin,
                       ymax=ymax,
                       deselect=False,
                       extend=False)
                for o in context.selected_objects:
                    o.select = o.type == 'MESH'
                if len(context.selected_objects):
                    scene.objects.active = context.selected_objects[0]
                    bpy.ops.object.join()
                    context.object.hide = True
                    joined_obs.append(context.object)

        for o in joined_obs:
            o.hide = False
        return {'FINISHED'}

def menu_draw(self, context):
    self.layout.operator("view3d.grid_join")

def register():
    bpy.utils.register_class(SimpleOperator)
    bpy.types.VIEW3D_MT_object.prepend(menu_draw)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)
    bpy.types.VIEW3D_MT_object.remove(menu_draw)

if __name__ == "__main__":
    register()

    # test call


Your final video will have a constant frame rate, but you can cut and mix pieces of video into your final output that play at altered speeds from their original source.

You most likely want to use the Effect Strip->Speed Control. There is also a strobe property for a video strip. Don't be afraid to keyframe properties to get varying effects during the length of your video.


The brush settings are loaded even if the Load UI option is disabled. The brush type can be adjusted in the brush menu, so if you have deleted the brush you can create a new brush and set it to smear.

You can import brushes from another file so to restore the default brushes without changing any of your other settings, choose File->Load Factory Settings, then save the blend file somewhere, then create a new file to get your normal settings back and import the brushes from the factory file you just saved and re-save your startup file.


Blender freezes / hangs when importing FBX exported from Rokoko Studio

This is caused by the way Blender imports FBX animations. It's extremely unoptimized which can cause long and complex animations (like motion capture ones) to take hours to import. You should use the BVH format with the HumanIK skeleton in the exporter options of Rokoko Studio to export your animation. This format can be imported into Blender quickly without any issues.


my brush setup got destroyed when open in node graph

The Texture Nodes Editor is pretty useful if you are working with making brushes except that it isn't safe when setting up a brush before enabling nodes. Pretty much all the time I use it, I set up the brush in the node editor before adding anything in the texture stack. The default when starting is the red and white checkered node, and from there you can add what you want and build a pretty complicated setup - but if you try to nodify your existing brush, it will negate all the previous effort, so start in the node editor if that is what you want.

You don't normally need to though unless you are combining procedurals together as a single brush/brush mask.

Edit: For 2.80 beta, we have seen this node system removed for now. There are possibilities after Everything Nodes is worked on that we will see and even more robust system for manipulating texture brushes with nodes and using them in the texture paint system.


How to map an extra mouse button to ctrl z?

What you need is your mouse's software installed. For example, Logitech has its own software for its peripherals like keyboard, mouse.
Once installed, open up the program, and set your extra key as CTRL+Z


You don't need to do that manually, blender already comes with a stereoscopic feature, I don't know much about it, so here's the page on the blender manual.

https://docs.blender.org/manual/en/dev/render/output/multiview/usage.html#introduction


This should work.. strangely, the behaviour of Snap with these settings is view-dependent. In the orthogonal view parallel to the surface there's an ambiguity in 'Closest' that the system can't handle.  The snap is fine if you view from an angle, and just to make sure, constrain the move, too.. say... GZ


How do I make BGE recognize multiple XBOX Controllers?

You can use the Index field on the Joystick sensor, to distinguish between different controllers.


How to achieve this rigging-animation effect?

On a quick glance there might be a small chance that this is what you need:

Is there a way to Time Delay a Constraint (Like Slow Parent)


Blender will animate it for you :).

Create the track using an Array modifier
Add a Bezier circle and Curve modifier to create the shape
Move the Bezier circle - the track will automatically rotate

Note:
The track and Bezier curve position needs to be exactly like in this gif. Both from profile. Otherwise it won't work.


Render looks way different from viewport render mode. How can I fix this?

It looks different in the preview because in Material Preview Shading there is an HDRI already set up for convenience, but that HDRI is not used for Render Shading.

How to use an HDR image as environment.
In the world section, set the surface to Background, assign an Environment Texture to the color slot and then select any HDRI image you want to use:

Enable Scene Lights and Scene World to override the viewport settings:

Gif from: How can I render an object with an hdr background?

Related

How to use 2.8's default HDRI's in renders?
Which mode should i trust for lighting?


When creating the image, check the 32 bit Float option:

Bake whatever you want into the texture, in your case you want the Combined bake type. I suppose your sphere is correctly unwrapped into a square layout.

Your texture will have the full dynamic range you need.

Save the texture in your favorite format (Image Editor, F3), .hdr is an option.


How can I make a bubbly foam for coffee?

i assume you are using Blender-Guru's doughnut tutorial.
While there are more than one way to do this, easiest would be for you to re-trace the steps that you took to create particles for the sprinkles.
if not it could be found here.

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

Create a single sphere bubble, assign a transparent but a little whitish material.
Select the Coffee mesh & Add a particle system to it: type "Hair".
Select the Bubble sphere as the object instead of the sprinkle as shown in the video.
Weight-Paint mostly around the edge where coffee meets glass on the surface.
Play around with random scale particle setting to get the desired effect.


Texture won't appear except for when I press shift + z

Well, this is embarrassing... But I am relieved at what a simple fix this was.

I found a different tutorial on textures and I repeated my process, except that this time I changed the Viewport Shading to Texture instead of Solid.


my boolean modifier isn't cutting into my shape correctly

I downloaded your file and the operations worked as follows:

Apply the mirror modifier on object B, Cube in the Outliner
Make sure only object B is selected, which should be because you just applied the mirror modifier
Add a Boolean modifier and select for the Operation the Difference, see image below with the mark 1
Click on the eye dropper, mark 2
Select object A, mark 3. The object name Cube.001 in the Outliner.

Hide object A, Cube.001, from the Viewport and from the Render, see image below. The results should be visible without applying the operation but you can apply it at this point if you wish.


How to make elements of mini cooper (door, hood, fender, bumpers, side panel) and their transitions smooth?

I examined the screen shots, and then examined the blend file, and found immediately what the problem is. The geometry does not match across the joints in the body. I opened your blend file, combined the front fender, door, and rear fender into the same object using CTRL - J, and with the side view selected, switched into edit mode. Here is a screen shot:

Note that in the front fender, you have five segments, and in the rear fender you have seven, but in the door you only have four. To have the meshes line up on either side of the joints, you need to have exactly the same geometry on either side of the joint, so you'll need to add two more segments on the front fender, and three more on the door, and the x and z values of each pair of vertices on either side of a joint along the front and rear door edges will have to be identical, with the only difference being a small variance in the x value of the vertices in each pair. The same will be true of the joints between the fenders and the hood, and between the rear fenders and the rear door.

If I were doing this model, I'd likely make the door, and two side fenders a single object, and when I had the whole side to my liking, go back, and add a couple of loop cuts to define the front and rear edges of the door.


Node setup for realistic transparent plastic

The problem with this kind of model is that the light needs to bounce around inside the glass many times to reach the edges and create the shiny edges.

A glass shader is what you need, but you also need to crank the number of Glossy bounces way up. See this comparison with the default number of Glossy Bounces (top) vs. the maximum number of Glossy Bounces (bottom):

Note that I also increased the total maximum number of bounces.

In the bottom image there is much more edge glow, however the rendering time has also increased by almost 70%. For larger models this effect will probably be even stronger since the light will bounce inside the glass for a longer time.Be aware that if your model is so large or complicated that the light will need more than 1024 bounces to reach an edge you will not get shiny edges there.

The model I used in my example is just a scaled cube with a simple glass shader and an emission shader on one of the faces.

EDIT 1:
Make sure the color of your glass shader is set to (almost) white. Otherwise every bounce will darken the reflected light and there won't be much left for shiny edges. Unfortunatly the default color of the glass shader is grey and the light will not bounce for long.

EDIT 2:
Here is another small test scene:

I gave the edges a slight roughness and used a texture for the displacement of the surface. You can download the .blend file as reference.


Composite two scenes for only a short period?

You can enable and disable rendering Render Layers by clicking on the checkbox for a layer in the Render Layers tab in the Properties area.

You're also able to create keyframes for this setting by either clicking on the checkbox with the right mouse button or pressing I while the mouse cursor is over the box.


You want Shapekeys in this case.

First add a basis key as shown below.

Next, add a second key, and then go to edit mode, add edit the object to the second shape with the second key selected.

Here is the result:


First of all, it was looking like Z-fighting but it is not. I've checked twice normals, doubles, holes and everything else what comes to my mind, nothing was an issue but...

Vertices are not on the same Z location (I don't know which one) but after selecting all floor vertices - A then S > Z > 0 (it will place all of them on Z=0) everything is ok.

Little tips: this machine is hovering over the floor and use Filmic Blender for this ;)


Activate objects that are hit - Blender Fracture Modifier Build

You could try to set the object flying into the door to be a trigger and the door should be animated and triggered. Both settings are in rigidbody physics Panel in the FM build. This way only the shards the incoming object will touch should be activated.


Change the Pivot Point to 3D Cursor (shortcut .):


Why is the camera going inside my mesh, when the camera is not inside?

The answer to this problem is simple.  Blender has a feature where you can select an object, hit ctrl-0, and that object becomes the "camera."  Thus, the camera view was inside my object.  This is pretty neat!  I'm not sure how to use it in a beneficial way, but it must be good for something.
If you want to set the camera view back to your original camera, select your camera and hit ctrl-0.


Is Blender a sensible environment for making a first-person orrery?

How are you looking to present said orrery, are you planing on taking a few simple screenshots or full realistic renderings?

Will you be presenting some static images, or are you thinking of animations or video? Or perhaps even an interactive/real time game-like demo?

Either way all you want to achieve seems pretty reasonable and relatively withing reach.
Blender has good animation and modeling capabilities that suffice for what you want to do.

Since you say you lack the vocabulary and terminology here are some quick keywords and that may be useful for your research and to get you on the right track.

You may need to look into animation and mostly constraints stuff, also Curve path Animations and Follow track. Look for tutorials youtube, there should be plenty to get you started

If you are looking to make some sort of interactive or game-like real time first person demo Blender Game engine may be useful, even though it's considered outdated and stalled in development.

A more flexible and modern approach may be WebGL based solutions like blend4web


No animation with some sensors in the BGE

maybe you need to change the true level triggering (pulse mode)

if that not works, maybe at the physics tab click on the actor checkbox there


Creating cycles background light (world lighting) from Python

This does work on my machine though, I've tested it. Note here i've used aliasing to make the lines less long.

my_script.py

import bpy
import time
import os

bpy.data.scenes['Scene'].render.engine = 'CYCLES'
world = bpy.data.worlds['World']
world.use_nodes = True

# changing these values does affect the render.
bg = world.node_tree.nodes['Background']
bg.inputs[0].default_value[:3] = (0.5, .1, 0.6)
bg.inputs[1].default_value = 1.0

bpy.ops.render.render()

faux_name = "tensor_" + str(time.time()) + ".png"
fp = os.path.join("/home/zeffii/Desktop", faux_name)
bpy.data.images['Render Result'].save_render(filepath=fp)


Unable to see anything after importing .obj file

Imported objects from other file formats, are some times really small, off centered, or very far away from scene origin, compared to the default scene scale.
First step is to make sure anything was actually imported. Look in the Outliner for new objects under current collection (geometry should be of mesh type). If there are any, use the outliner to select them.

Then with the mouse over the 3D View press the Numpad . (Period) key, or go to View > Frame Selected for 2.8+, to view selected objects.
This will zoom in tightly on the selected object.


You can use the id_data property for one of the selected bones (you only need one because it's not currently possible to select multiple bones from different armatures at the same time). It should be as simple as the following:

context.selected_pose_bones[0].id_data

If you want just the armature's name:

context.selected_pose_bones[0].id_data.name


Simulate a split washer getting tightened down

The method I'm using is very easy to animate; however you have to model the washer using the screw modifier.
This is the mesh for my washer. It is just those selected edges on the right in the image below. Notice the placement of the mesh relative to the object origin (it's the orange dot in the red box).

It is the screw modifier that actually generates the whole washer (it is displayed in wireframe in the image above.)
The most important setting is the Screw, think of that as the offset. The bigger that number the farther apart the beginning will be from the end. Set it to whatever makes your washer look correct, mine is ¼ of an inch.

Now to animate this thing
It is the "Screw" value that gets animated to squash the washer.
To set a keyframe, hover over the Screw value in the modifier and press I. Or you could RMB  on the Screw value then choose Insert Keyframe.
Now move ahead in the timeline, set the Screw value to 0 (the washer will be flat) and insert another keyframe, same as the first one.


Why are my seams becoming separate pieces in my UV editor?

Please use the terminology correctly. There are no separate seams in your UV editor. These are called UV islands. Also you do not apply a texture to faces, you can assign a material to faces and that material may use various textures for various properties of it. You can hover your mouse over some face, edge or vertex and press l to select linked elements limited by seams(ctrl+l to select linked with something already selected), you will need to make sure that Seam is selected under Delimt in the F6 panel or at the bottom of the t panel just after you press l same way as you can set properties for any other operation in Blender just after it is performed.

You did not describe what steps you take before the problem appears so it is hard to tell where you are making the mistake, but the process of UV mapping in Blender is quite simple, so if you follow it right, you should avoid any issues like this.

In edit mode select edges that you want as seams for the UV islands make sure they will be possible to unwrap to 2D islands and mark them as seams(ctrl+e -> a), there is also a clear seam option in the ctrl+e menu.
Select all the geometry you wish to unwrap in edit mode(could be only some faces but in your case it is all the geometry so hit a to deselect whatever you have selected and then a again to select all) and unwrap the UVs(u -> u in 3d viewport). I think here is where you made the mistake - I am guessing you only selected some faces when unwrapping instead of all you wanted.

That's it. Now if you are happy with the UVs you would assign a material to your mesh and then paint the textures for it. You can also pin UVs(p to pin alt+p to unpin) in the UV editor and then re-unwrap so Blender will keep the pinned UVs in place and will recalculate other UVs so they spread uniformly keeping the pinned UV in the same place. You will have to play around with it to see where this is useful.


Baking of texture incorrect at the edge of the face

When you unwrap with type Lightmap Pack you have to set enough Margin or lower Bake Margin value, because like now Bake Margin overlaps.

Unwrap Margin value is described in UV division, that I'm not sure what does that mean exactly, Bake Margin is in pixels. So just check if baked borders are between faces.


How do I give the complete faces a different Material?

Create additional edge loops and it will stick to the edge


Strugging to render my fire animation with Alpha/Transparency correctly

Blender’s viewer is and always has been broken with regard to alpha encoding displaying correctly.

Apply your rendered fire plane to an alpha over, and you’ll see the emissive yet unoccluding fire return.

Again, Blender’s viewer is and has been totally broken for a decade.


A better way to mix colours ( image ) + mix node going into shader colour input

The alpha channel is always separate than the image, that is why it is available as a separate socket and can be used independently than the RGB information. In other words the Color output socket for the image node ignores the alpha channel, you must use the alpha output socket to use it as control on other nodes.

Also, you don't need to invert the alpha channel if you connect the Image node to the bottom socket. Just feed the color output to the bottom socket and set the other color on the top one.

It's easier if you think of the alpha channel as a mask.

Read the following links:

Overlay more than one transparent images in one shader

and

Change Color Associated with Transparency?

and:

Transparent image like a decal on mesh with principled BSDF shader

and

Add a transparent image on top of a material


Which is the best workflow to follow when texturing and importing textures from Substance Painter?

You should use metallic-roughness, as the Principled BSDF is itself a metallic-roughness shader.

When in metallic-roughness mode, Substance's viewport shader is itself another implementation of the Disney Principled Shader, same as the Principled BSDF node in Cycles. By using metallic-roughness setups, you ensure the result in Cycles should match exactly. Remember that metallic, roughness, and normal maps should be set to "non color data" in Cycles, Base Color can be left as "color". See this image for the correct node layout:

If you want to match Substance, do not alter any other settings in the Principled BSDF node from their defaults, as those defaults are set to match other implementations. Of course, differences from changing those settings might look BETTER, but strictly speaking they won't match Substance.

Note that there are often some subtle differences from the OpenGL viewport in Substance and raytracing-based engine such as Cycles. The iRay viewport in Substance is also raytracing-based and can be a good way to check for surprises like this. If you find your shader looks different in the regular (OpenGL) vs iRay views in Substance, you should assume the result in Cycles will look more like the iRay version.

If you are using the node wrangler addon (bundled with Blender) it has a button in the node editor sidebar under Node Wrangler > Add Principled Setup that will automatically import the textures for you. Simply select the Principled BSDF node, click the "Add Principled Setup" button, select all your maps in the file browser, and click ok. It will import, connect, and label everything for you.


Have a look into the Templates: Templates > Python > Operator File Export. For convenience the script adds some predefined properties as well as a custom entry to the File > Export menu:

import bpy

def write_some_data(context, filepath, use_some_setting):
    print("running write_some_data...")
    f = open(filepath, 'w', encoding='utf-8')
    f.write("Hello World %s" % use_some_setting)
    f.close()

    return {'FINISHED'}

# ExportHelper is a helper class, defines filename and
# invoke() function which calls the file selector.
from bpy_extras.io_utils import ExportHelper
from bpy.props import StringProperty, BoolProperty, EnumProperty
from bpy.types import Operator

class ExportSomeData(Operator, ExportHelper):
    """This appears in the tooltip of the operator and in the generated docs"""
    bl_idname = "export_test.some_data"  # important since its how bpy.ops.import_test.some_data is constructed
    bl_label = "Export Some Data"

    # ExportHelper mixin class uses this
    filename_ext = ".txt"

    filter_glob: StringProperty(
        default="*.txt",
        options={'HIDDEN'},
        maxlen=255,  # Max internal buffer length, longer would be clamped.
    )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator settings before calling.
    use_setting: BoolProperty(
        name="Example Boolean",
        description="Example Tooltip",
        default=True,
    )

    type: EnumProperty(
        name="Example Enum",
        description="Choose between two items",
        items=(
            ('OPT_A', "First Option", "Description one"),
            ('OPT_B', "Second Option", "Description two"),
        ),
        default='OPT_A',
    )

    def execute(self, context):
        return write_some_data(context, self.filepath, self.use_setting)

# Only needed if you want to add into a dynamic menu
def menu_func_export(self, context):
    self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator")

def register():
    bpy.utils.register_class(ExportSomeData)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_export)

def unregister():
    bpy.utils.unregister_class(ExportSomeData)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_export)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.export_test.some_data('INVOKE_DEFAULT')


Cannot index UVs by [0]/[1] or .x/.y (broken coordinates in python!)

That's not specifically a blender issue, it is showing the inaccuracy of representing a decimal number in binary storage. The python docs have a page explaining the issue and show some ways around it, the best is probably using format() which replaces the older '%.3g' % val style.

>>> val = 0.1 + 0.2
>>> print(val)
0.30000000000000004
>>> print('{:.3g}'.format(val)) # '.3g' will give 3 significant digits
0.3

While python has the decimal module to better support decimal numbers, it doesn't help when working with blender's data.


I believe what you are looking to do is duplicate your armature, invert it (to create the "other" hand) and have it available with the same bone structure. If so, select the parent bone in object mode:

Press Shift D to duplicate it. I pressed Shift D + x to move the second hand along the X axis only:

You now have the second hand, although although the 'thumb' may be pointing outward. If your armature was like mine, you now have two armatures: Armature and Armature.001; all of the bone names will be unchanged.

Now, still in Object mode, scale the armature by pressing S (to scale), X to scale only along the X axis (in this instance, that is what is needed for my armature), and then -1. This will invert the armature along the X axis:

Now you have the same two hands, but with the thumbs both facing inward.  Scaling with a negative 1 scaling factor is a good way to create inverse versions of meshes and armatures.

Hope this is what you needed.


Blenders node editor draws boxes when I try to connect nodes

Another way to join nodes is to Shift click the two you want to connect and press F.


When removing doubles you need to have everything selected. If that still doesn't work try selecting a section of one 'skin' and pressing Ctrl+L to select everything connected to it and then delete it.


You can start multiple jobs at the same time, but they don't render any faster.
In my experience, one will grab most of the resources and the second job will go along at a snails pace until the first finishes.  You also have to worry more about going over the total amount of resources in your machine.  The one advantage is you can start them both and go to bed without having to worry about it.
If you want unattended batch rendering there are services for it, or blender can be set to start a render through the command line; you could create a batch file for multiple jobs.


How do I add a Clothing model to an unclothed model?

I figured it out now

STEP 1
Unlink clothing from model
STEP 2
If its bigger and above the model, set x y z scales to .2525
Step 3
Append the object and parent it to main mesh with "Armature Deform" option, none of the ones below. ( Thats because i already weight painted the windbreaker )


How do I make a landscape like this? (Sea, waves, shore, beach...)

You could create 2 objects, one for the ground:

Select some random vertices and move them up:

Extrude the whole plane down:

Create the sea:

Give it a Subdivision Surface modifier. Give it a Displace modifier with a texture Cloud in order to have a bit of noise, with Coordinates > Object and an empty as Object that you will move and keyframe. At last, give it a Wave modifier with this kind of settings:

Now give a texture to the ground that is basically a gradient on the Z axis:

Give a texture to the water that is a mix between Glass, Transparent and Glossy:

Give your whole scene an HDRI:

If you're supposed to make a part of your water flater (or decrease the modifiers effect), switch your sea object to Weight Paint mode, paint this part:

Then in the modifiers, select the group you've just selected, switch with the <-> button:


Reload pressing F8 will not restore property to default?

Make an operator to add functionality before calling another

The text editor > templates > python > Operator Simple template edited (minimally) to reset a user defined  "xxxx" property of the scene to its default value. Can either use scene.property_unset("xxx") or simply remove its storage del(scene["xxx"]).

After which the reload script is called. (default op of F8)  Edit the shortcut in user preferences to point to new operator.

the screen F8 shortcut after changing "script.reload" to "object.simple_operator"

import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "My Reload Scripts"

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        scene = context.scene
        scene.property_unset("xxx")
        #del(scene["xxx"]) # same
        # what F8 calls
        bpy.ops.script.reload()
        return {'FINISHED'}

def register():
    bpy.types.Scene.xxx = bpy.props.IntProperty()
    bpy.utils.register_class(SimpleOperator)

def unregister():
    del(bpy.types.Scene.xxx)
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()
    # test code
    scene = bpy.context.scene
    scene.xxx = 10
    print("before", scene.xxx)
    bpy.ops.object.simple_operator()
    print("after", scene.xxx)


Boolean modifier "conflicts" with Bevel modifier

It looks like if you decrease the boolean object's Subdivision Surface subdivisions down to 2, it works, I can't tell you why though:


My first Cycles to Eevee render looks wrong. Tried many things to improve.. failed!

Try baking a denser and smaller area for your light volume. This should resolve some of the shadows better. I'd also set up lights specifically for Eevee, since the lights from Eevee are not 1:1 with Cycles. If you're not already, turn on soft shadows as well in your shadows option. If you've got subsurface scattering in your scene, make sure it's properly set up within Eevee as well by turning it on.

Edit

Here are the settings for the Irradience Volume, note the XYZ resolution.


What is the substitute for gpu.export_shader in Blender 2.80?

I, too, am dismayed that this function is no longer available. There doesn't seem to be any direct substitute, but, if you really want to look at the shaders, you could ...

Launch Blender from a command line with --debug-gpu-shaders
Blender will emit a few hundred lines of "Shader file written to disk: (path)"
Render your model, preferably alone in its own layer. Your cmd/shell window will show some more files written.
Filter the hundreds of generated files in (path) by searching in file contents for EEVEE_ENGINE. The others are probably UI related, just guessing. If you have many objects in your scene, this may also become overwhelming, but it will at least filter out the shaders used by blender itself rather than your models. The largest of these files is probably what you're looking for.

What you will find, however, is an absolute beast that you'll have no idea what to feed it. Search in the fragment shader for uniform - all those have to be supplied by you, do you know what they all mean? Now, if you want to go on an adventure, you could spend some time in the Python console doing

dir(gpu)
dir(gpu.shader)
dir(gpu.types)
dir(gpu.types.GPUShader)
dir(gpu.types.GPUBatch)

... and so forth. GPUShader seems to be completely opaque once its constructor is called with the shader source. GPUBatch encapsulates all the draw calls and data needed to render an object, but I haven't figured out how to get the data back out of it or determine what uniforms to bind where, etc.

Another option would be to export to something like glTF, which does have a material spec, but does not include shaders directly. Then use one of the available parsing/rendering libraries ( https://www.khronos.org/gltf/ ) with its own built in shaders that can emulate a lot of what the principled BSDF does to within an acceptable limit. Some of those are only parsers, not renderers, so check for that. Dynamically generated textures may be a problem though. For example, BabylonJS has many included shaders for various materials, and you can view their source at https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.js

The bottom line though, it seems, and I hate to say it, Blender's materials are for Blender's engine. If you're working in another game engine, it's best to create the geometry and rigging in Blender, and use the material system in your target engine to skin it.

The only way I can think to approach the problem if you're just writing your own simple engine in C++, for example, and you need the GL calls and data to draw what you see in Blender, would be to somehow hook the calls to GPUShader and GPUBatch constructors and dump the data as it's being created in Blender. You would also have to hook/dump those uniform values at draw time. Haven't tried that personally. Otherwise, just accept the limitations of your export format.


Is it possible to use local and nonlocal forces simultaneously using bge?

You can do multiple applyForce() calls per frame, some local, some global and blender works everything out - summing them together to apply a correct total amount of force in the correct direction.

Example:

obj = cont.owner
obj.applyForce([0, 0, -9.8], False)  # Global gravity
obj.applyForce([0, 10, 0], True) # Accelearte locally

Or you can do the coordinate conversions manually using the worldOrientation matrix.