text:
asyncio serial inside blender
I'm trying to read data fro ma serial port, usinc asyncio. General idea:

Create the Protocol and coroutine
Inside a timer(1ms) make the loop run one iteration at a time

But I get the following error whe callign run_forever() inside the loop:
RuntimeError: Event loop is closed

Working file(outside of blender):
import asyncio
import serial_asyncio
import time

continuar = True
class OutputProtocol(asyncio.Protocol):
    def connection_made(self, transport):
        self.transport = transport
        print('port opened', transport)
        transport.serial.rts = False  # You can manipulate Serial object via transport
        transport.write(b'Hello, World!\n')  # Write serial data via transport

    def data_received(self, data):
        global continuar
        #print('data received', repr(data))
        for caracter in data:
            if caracter == ord('+'):
                print("más")
            elif caracter == ord('-'):
                print("menos")
        if b'*' in data:
            self.transport.close()

            continuar = False

    def connection_lost(self, exc):
        print('port closed')
        self.transport.loop.stop()

    def pause_writing(self):
        print('pause writing')
        print(self.transport.get_write_buffer_size())

    def resume_writing(self):
        print(self.transport.get_write_buffer_size())
        print('resume writing')

loop = asyncio.get_event_loop()
coro = serial_asyncio.create_serial_connection(loop, OutputProtocol, '/dev/ttyACM0', baudrate=115200)
transport, protocol = loop.run_until_complete(coro)

while continuar:
    loop.stop()
    loop.run_forever()
    time.sleep(0.001)

loop.close()

Not working file(inside blender):
import asyncio
import serial_asyncio
import bpy

loop = None

class OutputProtocol(asyncio.Protocol):

    def connection_made(self, transport):
        self.transport = transport
        print('port opened', transport)
        transport.serial.rts = False  # You can manipulate Serial object via transport
        transport.write(b'Hello, World!\n')  # Write serial data via transport

    def data_received(self, data):
        #print('data received', repr(data))
        for caracter in data:
            if caracter == ord('+'):
                print("más")
            elif caracter == ord('-'):
                print("menos")
        if b'*' in data:
            self.transport.close()

    def connection_lost(self, exc):
        print('port closed')
        self.transport.loop.stop()

    def pause_writing(self):
        print('pause writing')
        print(self.transport.get_write_buffer_size())

    def resume_writing(self):
        print(self.transport.get_write_buffer_size())
        print('resume writing')

loop = asyncio.get_event_loop()

corutinaSerial = serial_asyncio.create_serial_connection(loop, OutputProtocol, '/dev/ttyACM0', baudrate=115200)
transport, protocol = loop.run_until_complete(corutinaSerial)

def cicloAsyncio():
    global loop
    loop.stop()
    loop.run_forever()
    return 0.001

bpy.app.timers.register(cicloAsyncio)
#loop.run_forever()
loop.close()

Help me blender coders, you are my only hope

Well I solved it. For anyone interested, here is the repo with the sample code:

Here is the code. The problem in the first code is that I was calling close() just after creating the loop, so the timer couldn't made the loop iterate. It's very obvious now...
Here is the working code:
import asyncio
import serial_asyncio
import bpy
import random

loop = None
terminar = False

class OutputProtocol(asyncio.Protocol):

    def connection_made(self, transport):
        self.transport = transport
        print('port opened', transport)
        transport.serial.rts = False  # You can manipulate Serial object via transport
        transport.write(b'Hello, World!\n')  # Write serial data via transport

    def data_received(self, data):
        #print('data received', repr(data))
        for caracter in data:
            if caracter == ord('+'):
                print("más")
                bpy.ops.mesh.primitive_cube_add(
                    size=1,
                    enter_editmode=False,
                    align='WORLD',
                    location=(-5+random.random()*10, -5+random.random()*10, -5+random.random()*10),
                    scale=(1, 1, 1)
                )

            elif caracter == ord('-'):
                bpy.ops.mesh.primitive_monkey_add(
                    size=1,
                    enter_editmode=False,
                    align='WORLD',
                    location=(-5+random.random()*10, -5+random.random()*10, -5+random.random()*10),
                    scale=(1, 1, 1)
                )

                print("menos")
        if b'*' in data:
            self.transport.close()

    def connection_lost(self, exc):
        print('port closed')
        self.transport.loop.stop()

    def pause_writing(self):
        print('pause writing')
        print(self.transport.get_write_buffer_size())

    def resume_writing(self):
        print(self.transport.get_write_buffer_size())
        print('resume writing')

loop = asyncio.get_event_loop()

corutinaSerial = serial_asyncio.create_serial_connection(loop, OutputProtocol, '/dev/ttyACM0', baudrate=115200)
transport, protocol = loop.run_until_complete(corutinaSerial)

def cicloAsyncio():
    global loop
    #loop = asyncio.get_event_loop()
    loop.stop()
    loop.run_forever()
    #asyncio.run()
    return 0.001

bpy.app.timers.register(cicloAsyncio)
#loop.run_forever()
#loop.close()

Well I solved it. For anyone interested, here is the repo with the sample code:
https://github.com/RaulHuertas/BlenderSerialAsync
See you!

can u paste the whole code here instead of using links? and explain why it didnt work initially? that would be aweomse :)


text:
Having trouble with alpha hashed setting
(I'm very new to blender, so sorry if I'm not explaining this with the proper terms)
I'm following this tutorial to create stylized hair in blender, but have found myself stuck. Below is how my shader editor looks currently:

The tutorial I'm following's shader editor looks like this:

However, I cannot for the life of me get the tips of the hair strands to be transparent, as shown in the image below:

Instead, when adjusting the colorramp whose setting is set to "ease", I just get this result (despite having set the material to alpha hashed..):

Any help on how to get the intended result would be greatly appreciated!

The tutorial is doing a couple Janky things, such as feeding a color directly into a shader mixer to use it for emission, and and if you play spot the difference with their shader editor and yours, you’ll see some missing/mixed up connections. If no one else does, I’ll give an answer on how to get the desired results later. This is more of just a diagnosis.

That's really helpful to know thank you! I'll triple check the connections!

If you use EEVEE you have to setup the Blend mode in the material properties panel. https://blender.stackexchange.com/questions/157071/blender-2-8-eevee-cant-find-material-blend-mode-option

@FFeller I set the blend mode as alpha hashed!

I'm still having trouble with this, does anyone have any ideas? @TheLabCat

source: Stack Exchange

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

sort: votes


text:
Armature's Not Fully Connected to Mesh?
Back again, I did some repainting the weights on my simple knight here. Previously he didn't have this problem. I had to subtract some weights off the chest which were pulling strangely but the arms seem partially detached from the mesh? I need a picture to describe it, because again, I cannot articulate it properly to let Google answer this question... which is probably ridiculously easy.

And I attached my blend file for ease.

Thank you.

Are you sure that the weights are painted correctly for the arm?

@DalekMaker I believe so. The forearm covers forearm area, hands to the hands, and bicep to bicep. No issues on the legs. Just seems to be the arms.

Your weighs are the problem. They are not painted right. The influence is hard to see, they are just shades of blue.

The problem is that the 'Spine' is  also affecting the head and the arms. If you remove the arms and head from this vertex group, it works just fine.
In weight paint mode choose the 'Spine' vertex group. Use the subtract brush to remove the weights from the arms and head. Then test with different poses and adjust the weights where needed.
Here is a screenshot of how it should look like (although some more tweaking is needed :) ):

Do I create another vertex group and place the arms and head into that group? When I just remove them from the vertex group window The rig for those bones becomes completely detached from the mesh and does nothing. I also tried unpainting the weights I had given the spine and unparenting the biceps from the spine. Those didn't seem to work either.
Please pardon my complete ignorance.

I updated my answer. I hope it's more clear now.

Thanks so much. I had originally painted the weights as your second picture looks, but I was having other issues and never went back and changed it. Painting weights is something that has proven a huge hurdle to my learning all of these skills.  Thanks again! I would upvote as well as mark answered but I guess my own ranking is still too low. Cheers!

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


text:
How to center a non-symmetrical object on the X axis xith a python script?
Here is my non-symmetrical object :
As you can see the left part (X negative, the black line) is not egal to the right part (X positive, red line).
How can I get equal parts by translating my object with a python script ?
Thank you in advance for your help.

you have to find the extreme values on x axis and calculate where should be the center :
import bpy

obj = bpy.context.object
max = -9999
min = 9999
for i in obj.data.vertices :
    if i.co[0] > max :
        max_ind = i.index
        max  = i.co[0]
    if i.co[0] < min :
        min_ind = i.index
        min  = i.co[0]

shift = (max-min)/2 - max
obj.location[0] +=shift

@reflyon you're welcome,  the object should be centered like in the image ,because  I forget to convert to world coordinates, i'll edit !

First set your object origin to center of bounding box, then move it to the location you want.
import bpy

bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='BOUNDS')
bpy.context.object.location.x = 0

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


text:
Difficulties in creating a box around an object with a python script
I would like to create a box around an object with a python script !
So I write the script which is in this topic :
Create and export bounding boxes for objects
However here's what I get with my object:

I was expecting something more like this:

I don't know how to modify the script to get what I want
Have you guys any ideas on this ?

Welcome reflyon :) Can you elaborate? Why the bounding box script doesn't solves your issue?

Without looking at your script it seems to me you are just creating an AABB which is what you're getting. What you want is OOBB (Object-oriented bounding box).

I want to create a mold ! So I need to create a box that surround my object in a special way to easily get my object out of the mold ! In my process, I first translate my object into the center, put it horizontally and then I create the box, but the box is not horizontally. When I replace the last line of the script by this : bound_box.rotation_euler = (0.0, 1.57, 0.0) I get the box horizontally but not adjusted to my object

or simply rotate the object to the 'correct' orientation before applying your script. With your script the box will always be aligned to the world axis...

Even when I rotate my object before applying the script, the box is still not horizontal...

the box is following the orientation of the object regardless of its shape

I'm voting to close this question as off-topic because it's primarily about minimum bounding box algorithm implementation.


text:
Why do I get different results for my H.264 encoded .mov videos depending on the file format + encoding settings i choose?
TL;DR? --> read the bold parts only ;)
The question could also have been called: What is the difference between the settings "file format" in "output" and "Format" in "Encoding"? It is very close to this question and I think I got the answer from there.
But I am still left with my actual problem, which is this: from the VSE I want to render out an h.264 encoded video in a .mov container. as far as I see there are two options to achieve this:
1) select H.264 or MPEG in "output"--"file format to save the rendered image as" and then in "Encoding" select "Quicktime" as "Format" and "H.264" as "Codec".
(--> this will give you the option to select a target bitrate for the output file (nice!))
2) select "Qicktime" in "output"--"file format to save the rendered image as" and then H.264 in the new option "Video Codec" that pops up right below.
(--> this will give you a setting for the "Quality percentage" (awkward!))
When I compare similarly sized output files generated by 1) and 2), method 1) looks waaaaay better! (example: 2000 kb/s in 1) gives 4MB file vs. 25% in 2) 7MB file and still file 1) looks considerably better!)
The only problem with 1) is that the resulting .mov file is not fully compatible with OS X whereas file 2) is.
(Also, selecting "lossless output" in 1) generates a file that cannot be played with QT player in OS X (VLC will play it))
Why are 1) and 2) different (is it the VBR for only 1)?) and what should I do to get a high-quality, low-size fully QT-compatible file rendered out?

You appear to be confusing encoding systems with containers. AVI, MOV, etc. are containers. H.264, MPEG and many, many others are compression systems.
Blender's manual has some great reference info here: https://www.blender.org/manual/data_system/files/media/video_formats.html
VBR is better for most work since it allows the compresssor to alter the data rate (and therefore file size) according to the amount of detail. Rapidly changing shots require huge amounts of data whereas slowly changing ones require very little.
H.264 and MPEG-4 are very well supported and deliver excellent bang for your buck. (H.265 is better but requires serious processing power to encode.)
Another solution might be to render your video out in a low loss or (ideally) lossless format and then downconvert it in a dedicated system such as Handbrake (Www.handbrake.fr) which will give you presets or let you tinker with all manner of settings until you find something that fits your needs.

thanks for the reply! i am aware of the difference between codec and container (i thought that should also be clear from the question "I want to render out an h.264 encoded video in a .mov container"?). Your suggestion with rendering out lossless and then use handbrake is a good workaround. On the other hand, no workaround should be needed. Everything is already there. There are just these two issues (why two methods and why is one of them not producing quicktime-compatible videos?) Did you open the VSE and follow methods 1) and 2)?

My main Mac ate its PSU recently so I'm going in a little blind in that I can't test my generated files on a similar player. I've also noticed that some containers seem more efficient although that might be my imagination. AVIs always seem huge in comparison to Matroska for similar quality. Time to fire up the laptop I think.

Curious, but which version of Blender are you using? I am unable to reproduce what you describe on Blender 2.78a which is current as of this writing. The MOV file is slightly smaller than an AVI using identical encoding settings.  Although a 10 second test scene is hardly canonical. :) probably should not be trying this in bed! :D

I was using 2.77 at the time. Also mind it: in both methods i was ending up with h264-encoded mov files (i.e. not avis) -- thus the original question. I guess I should try to reproduce this with 2.78 myself.


text:
I'd like to have portions of a texture not glossy
I have a skyscraper building but I only want the glass in the texture to be glossy.  How would I accomplish this?

Ok, I have done a test and here are the results.
Here is the original:

here is an adjusted image

Related Set specular map from alpha channel.

Related Related https://blender.stackexchange.com/questions/208639 https://blender.stackexchange.com/questions/95522 https://blender.stackexchange.com/questions/5069

You could use a specular map. It's a texture where the whiteness determins the amount and location of the shininess.
As a simple example, I created two simple textures - the regular texture and the specular texture. The specular have white where the windows are and black for the rest:

I then make a plane mesh in Blender for this demonstration, and apply a material to it. Also I add a Sun lamp with an angle so it's easy to see the specularity. In the textures properties, I add the diffuse and specular:

Note that I haven't touched the specular (Texture.001) properties yet, so the plane looks like it has completely flat shininess:

But if you go to the specular texture and under "Influence", deselect "Diffuse color" and select some or all of "Specular Color"/"Specular hardness"/"Specular intensity":

Then it looks like this:

Great answer.  I'm trying both of these suggestions.  I'll try this first.  I will post my result when done.

@LesTaylor okay - just rember this is a very basic example, I would add varying degree of greyscale to make in even less flat, add black to the window frames etc. Maybe even a normal map, too.

Cycles
You can use a mix node with a black and white texture as the Factor:

Result:

Blender Internal:
This can be done in blender internal by adjusting the influence map texture in Properties > Textures > Influence:

Note that you must have Mirror enabled in the material for the map texture to influence reflections.
Result:

Creating a mask:
So for a building texture you could make a mask texture for all the windows in an external image editor, or you could try making the image with blender:

Add your texture as a background image:

Add a plane and edit it to match the windows:

Add two Array modifiers to the plane (one for each axis):

Position the camera so it points straight at the window array (see this post), and set the camera to Orthographic in Object data > Lens:

Set the output resolution to the same as the texture and adjust the Orthographic scale of the camera in Object data > Lens until the array object and the texture line up:

Give the object a pure black material and set the world color to pure white.

Render. (If you are using cycles, you may want to set the number of samples to 1, this will give a mask with only black and white.):

Save the image to a file (F3) You now have a mask image file you can use as an Image texture in a material.

Example material: (click for full size)

Notes:

You may want a little bit of diffuse reflection on the windows, so I added a Brightness Contrast node to make the black on the windows a dark gray, which will result in a mix of the glossy and diffuse shaders. You can think of this as each pixel in image containing a value between 0 (black) and 1 (white), which will set the Mix factor for that specific pixel.

You may also want some subtle displacement, as windows are rarely perfectly flat. I added a noise texture and multiplied it with the inverted map, so the noise texture is only on the windows. (the rest is white). This is then plugged into the Displacement socket.

Result:

Also see this tutorial on BlenderGuru.

Great answer.  I'm trying both of these suggestions.  I'll try this second.  I like what you did with the nodes.  I will post my result when done.

You could also assign two materials to the object and assign them based on your vertex selection in edit mode.

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


text:
How can I quickly move/translate an object to the center location/position of another object in a static scene?
This question relates to positioning static objects while modeling.  This is not a question about how to move objects dynamically/programmatically like in a game context.
For example, I need to translate the center of mesh object A to the center of mesh object B.
How can this be done easily?

Assuming that you have two distinct objects (rather than two unlinked meshes in the same object) and each object's origin is at the "true" center of the object (however you prefer to determine that), you would use the following process (in Object mode):

Select object B
Snap the 3D Cursor to object B's origin (Shift+S > Cursor to Selected)
Select object A
Snap object A to the 3D Cursor's location (Shift+S > Selection to Cursor)

You can also use Blender's snapping tools to do some of this interactively, but the 3D Cursor is the most reliable way.

I'm always thinking too complicated. Great solution.

Fweeb has already mentioned the traditional and time honored approach. I'd just like to add that the shortcut can be ShiftS,5 and ShiftS,2 since blender menu entries are accessible by numbers. The underscored letters in the menu work as well.
The context menu approach:
There is another method. Select all the objects you want to move. Then Shift select the object that has the right position. Hover over the Location numbuttons in the Transform panel, and click RMB. In the context menu, you will find Copy to Selected (Shortcut Y when the menu is open)

The vintage addon method:
There is yet another method. The Copy Attributes addon (disabled by default). Shortcut CtrlC (although that might change since the shortcut is now used differently). The addon simulates vintage Blender behavior. It's the same theme of copying attributes from active to selected. First select the objects you want to move, then the object in the right position to make it the active object and hit CtrlC and choose from the menu.

I answered this so long ago that I still had Shift S3 in the answer. I skipped S4. Now it's S5.

Here's a convenience addon that moves all selected objects (=their origins) to the active object's origin (adds a button to the T-panel, "Move to Origin"):
import bpy

bl_info = {
    "name": "Move to Origin",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 65, 0),
    "location": "View3D > Object Mode > Tool Shelf",
    "description": "Move selected objects to active object's origin",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Object"}

def main(context):
    ob_act = context.object
    loc = ob_act.matrix_world.to_translation()

    for ob in context.selected_editable_objects:
        if ob != ob_act:
            ob.location = loc

class OBJECT_OT_move_to_origin(bpy.types.Operator):
    """Move selected objects to active object's origin"""
    bl_idname = "object.move_to_origin"
    bl_label = "Move to Origin"

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

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

draw_func = lambda self, context: \
    self.layout.operator(OBJECT_OT_move_to_origin.bl_idname)

def register():
    bpy.utils.register_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_objectmode.append(draw_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_objectmode.remove(draw_func)

if __name__ == "__main__":
    register()

Updated add-on to blender 2.76, check my answer of this question. I am also curious how the line loc = ob.matrix_world.to_translation() works without an object ob.

Corrected the typo, it was supposed to be loc = ob_act... of course.

Updated convenience add-on for moving an object to another object, using blender 2.76
move_to_first_selected_object.py:
import bpy

bl_info = {
    "name": "Move to First",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 76, 0),
    "location": "View3D > Object Mode > Tool Shelf",
    "description": "Move last selected object(s) to first",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Object"}

def main(context):
    ob_act = context.selected_editable_objects[-1]
    loc = ob_act.matrix_world.to_translation()

    for ob in context.selected_editable_objects:
        if ob != ob_act:
            ob.location = loc

class OBJECT_OT_move_to_origin(bpy.types.Operator):
    """Move last selected object(s) to first"""
    bl_idname = "object.move_to_first_selected_object"
    bl_label = "Move to First"

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

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

draw_func = lambda self, context: \
    self.layout.operator(OBJECT_OT_move_to_origin.bl_idname)

def register():
    bpy.utils.register_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_object.append(draw_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_object.remove(draw_func)

if __name__ == "__main__":
    register()

move_to_last_selected_object.py:
import bpy

bl_info = {
    "name": "Move to Last",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 76, 0),
    "location": "View3D > Object Mode > Tool Shelf",
    "description": "Move first selected object(s) to last",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Object"}

def main(context):
    ob_act = context.object
    loc = ob_act.matrix_world.to_translation()

    for ob in context.selected_editable_objects:
        if ob != ob_act:
            ob.location = loc

class OBJECT_OT_move_to_origin(bpy.types.Operator):
    """Move first selected object(s) to last"""
    bl_idname = "object.move_to_last_selected_object"
    bl_label = "Move to Last"

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

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

draw_func = lambda self, context: \
    self.layout.operator(OBJECT_OT_move_to_origin.bl_idname)

def register():
    bpy.utils.register_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_object.append(draw_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_move_to_origin)
    bpy.types.VIEW3D_PT_tools_object.remove(draw_func)

if __name__ == "__main__":
    register()

context.selected_editable_objects[-1] can fail if there's no selected object (index error). Also, context.selected_editable_objects doesn't seem to reflect the order of selection. Instead, it seems to always list the selected objects in reverse creation order (Blender v2.78c). Finally, context.object will be None (poll fail) if you select an object twice, which unselects it. Hence, the last selected object would be some other object, but we don't know which because we don't know the selection order.

So selection order is not available?

I'm afraid so. Not sure if it's intentional (performance reasons?)

Blender 3.0:
Select objects and choice menu "Object-Transform-Align Objects", then select X, Y, Z axis in dialog.


text:
How can I transform one end of a cylindrical extrusion to create a cone or needle-like structure?
I have a mesh with a cylindrical extrusion and I would like to make this extrusion appear like a cone or needle.  I have tried scaling the end faces/edges/verts of the cylinder, but this scales the entire mesh.  I do not want to scale the entire mesh.
Before:
+================+
|                |
|                +=============================+
|                                              |
|                           cylinder           |
|                                              |
|    (mesh)      +=============================+
|                |
+================+

Desired result:
+================+
|                |
|                +=============+
|                               ========+
|                   needle/cone          ======
|                               ========+
|    (mesh)      +=============+
|                |
+================+

Yes, I'm in Edit Mode and, yes, pivot center is set to Median Point.
Here's a screencast of what is happening.

+1 for the original example images :) You can also take a screenshot or screencast with blender, might be faster..

You are either in Object Mode or have the whole mesh selected.
Make sure that you are in Edit Mode (Tab). In the header of the 3D View:

Then press A repeatedly until nothing is selected. Then use border select (B) for example to select the right most vertices:

Then scale them down. It might be that you have to change your pivot point to Median Point.
Again in the 3D View header:

You also have to make sure that proportional editing is off (O) (header again).

Thanks, I gave your recommendations a shot, but still having issues.  See the screencast in my updated question.

I'm selecting the outermost verts and then pressing S to scale.

I updated my answer. You have proportional editing on.

That was it.  Proportional editing was the problem.

Another alternative is to, when the points at the right are selected, press Alt-M to merge the points together.

Downvoter, please explain?

@WChargin I didn't downvote this, but It doesn't answer the question "How to scale down only part of a mesh".

The question is how to turn it into a cone shaped structure. merging the vertices does that.


text:
What is the best approach to modeling a non-human character with an obscure/disproportionate anatomy?
I have a character/creature I am attempting to model whose anatomy is quite obscure and disproportionate.  Very long tentacle-like structures protruding from a mushroom-like torso just to name a few characteristics.  My initial idea was to start with a base mesh object like a cylinder and just transform/scale/rotate/subdivide that cylinder until voilà: my creature has been modeled.
Now, I'm thinking I will need to tackle each limb/tentacle/section separately and build the entire creature out of many base mesh objects.  Perhaps, a cylinder for the torso, some cones for the tentacles, etc.  However, this approach will leave me with a bunch of disconnected body parts that I will somehow need to "fuse" together.
What approach is most efficient?  If neither of my approaches sound like the right thing to do, I would greatly appreciate a detailed explanation of an alternative approach.  Examples would be nice too.
For now, I'm going with creating and/or duplicating objects and linking/unlinking them as necessary.

I suggest using sculpting with dynamic topology. It is perfect for extruding tentacles, ears and horns.

Also available are extrusion in edit mode. Select a quad and hit e. Drag out a bit, move and rotate and continue extruding to form your limb. Apply subdivision to get a smooth surface (2 or 3 steps maybe).

With subdivision modifier:

So, are you suggesting that I always start with a single base mesh (sphere, cylinder, cube, etc.) and extrude/sculpt from there my entire character/creature?  Is there ever a reason to sculpt individual parts of an anatomy as separate objects?

Stick with one mesh until you get trouble with performance. Try to split at logical seams. If you want reasonable detail level, you will need to split. Where a hand comes out of a jacket or a leg goes Into a boot are examples of good seams.

Thanks again!  One last question: what are some typical causes of trouble with performance?  Too much geometry?

Yes, sooner or later you will get to much geometry (of course depending on your hardware also). You can have blender to draw your mesh at a lower resolution when navigating the view. You find this in the toolbar (toggle with t) under "Options". Check the "Fast navigate" checkbox.


text:
Non intersecting objects
Is there a way to sculpt(while in sculpt mode) a separate object in a scene such that it conforms to the surface of another object without passing through that object? Essentially can another object act as a mask for sculpting a separate object?

Could you add some images illustrating what you mean?

You can work around it with the shrinkwrap modifier. Make a vertex group with the part that you want your other object to touch. Add shrinkwrap. Set your other object as target. Select your vertex group. Apply. Sculpt the seam to make it not deformed.

Thanks for your answer Gunslinger. I tried your workaround and it is viable with a possible disadvantage of the shrinkwrapped surface being susceptible to sculpt strokes while in dynotopo. Nonetheless a pretty easy workaround.

can you mask the vertex group so it does not move when you sculpt?

Couldn't use the sculpt mask tool as it does not appear to be available even after removing vertex group assignment used for shrinkwrap. Is there another masking tool that prevents sculpting input?

I'm not sure I fully anderstand your problem but here is an answer for masking out areas not to be sculpted. http://blender.stackexchange.com/a/3384/395

Thanks for the link. Success! I used the existing shrinkwrap vertex group assigned to the sculpt object, hid them and then sculpted away without affecting the shrinkwrapped surface. Wish the sculpt mask tool would work in this situation but this approach is quite functional. Thanks for your help.

OK, I am a fool as the sculpt mask tool does work fine in this case too. For some reason my GUI didn't display the tool as being available. Hit "M" key and it came back.

Not currently. The only time the surface of two objects effect anything is during physics simulations, whether it is rigid bodies, cloth, particles, fluid or smoke, an object can be configured to collide with other simulated objects.
The closest feature to what you want is surface snapping used for re-topology but that snaps straight to the surface of another object rather than moving gradually until it hits the surface.

Thank you for your answer sambler. I am aware of surface snapping but was hoping to find a way to do what I want while in sculpt mode. Trying to set up a way for inexperienced users to sculpt muscles on bones without having to do too much with program other than sculpting.


text:
Problem with normal map display in glsl texture paint mode
Looking through past posts I see this problem has been addressed often. I have tried many of the offered solutions unsuccessfully. I have a hi poly sculpt that I have normal mapped to a lower poly object. I would like to see the effect of that normal map while painting in a diffuse color slot in texture paint mode. The map looks fine while in the render viewport setting but does not show up in any other viewport setting. Painting while in a render viewport is too slow and not a viable option. To check my basic settings I made a simple scene with a plane object normal mapped with a sculpt and was able to see the mapped result fine in texture paint solid or texture viewport. So it seems the process does work but I cannot get it to work on this particular file. Is there a poly count limitation at work here or am I totally missing something obvious? Please see attached images demonstrating this issue.

Thanks for the answer MarcClintDion. Unfortunately this does not resolve the problem. As stated in my question the texture shading viewport setting does not change the appearance of the model. Although it does fine with a simple file.

The solution was quite simple but hard to discover. It wound up that the draw settings in object properties was set to solid and not texture, therefore while in glsl texture view mode the normal map texture is not visible.

Textured shaded mode may be what you are looking for.  It's shown in the animated image below.  Sorry about the messy .gif.  Apparently LiceCap really does not like Texture Painting.
To use this viewport shading mode with normal maps, you should add some lighting or all you will see is a sold black model.


text:
Dual normal faces
I have created a model which requires some faces to be dual sided.
I intend to import this model into Unity. Reading about this, it seems that the recommendation is to duplicate the polygons and then flip the normals.
What I have done so far is simply to duplicate the all of the relevant faces using Shift+D and then flip the normals. I don't like this method though as it hampers any future alterations to the model itself.
What is the best way of doing this?

You can use a Solidify modifier to do this automatically.
You can control the distance between the actual faces and the flipped faces with the Thickness, and you can control which faces are doubled with a Vertex group.
If you don't want faces connecting the original faces the flipped faces, disable Fill rim.

You can have double sided faces in blender, but I'm not sure if they are faster than rendering extra flipped faces (or that they are even exported). The settings are in Properties > Object Data > Normals.


text:
Texture Paint Diffuse and Normal Map Over Existing Diffuse and Normal Map
I am texture painting a model. This model already has a texture and a normal map assigned, but I would like to paint another texture and normal map over this existing texture and normal map.
Here is a screenshot of what I am trying to do:

Is there a way to paint both the diffuse and normal map of the new texture together over the existing maps, or do I have to do both maps individually, like I am currently doing? A problem with doing each map individually, is that it is difficult to make sure both maps are painted identically.

We need to see pictures of what you are attempting first.If you intend on a particular mapping for the texture and normal maps independent of the stencil, I woudl hate to tell you the wrong way to go about it.

@CraigDJones Thank you for your comment and answer. I have re-written the question to hopefully make it clearer.

You might use the stencil technique described but plug the second set of maps as input into the other shader so that the stencil reveals the second shader with its texture and normal map.

I used two shaders input to a mix shader (cycles) and used two UV mappings - one is set to the default all faces overlapping for the tiled texture with normal map, and the other is for a smart UV unwrap for painting the stencil.
A normal Map node is for getting the bumps from the normal, and I chose blue for the original shader so it would contrast to see the effect.
Most people imagine that software like Substance Painter is projecting both the diffuse/albedo and the normal at the same time through the brush when it is actually similar to this set up using a stencil to reveal the automatic mapping.


text:
Metallic and Smoothness Map
I have a metallic and smoothness map. The metallic is in the red channel, the smoothness is in the alpha channel. (This map is used in a Unity 3D project, by the Standard shader).
The values in the map are as so:
A: 0 - Not smooth; 255 - Smooth
R: 0 - Not metallic; 255 - Metallic

I have the metallic value working now I believe.
I need to invert the alpha (smoothness) channel somehow as the 'Principled BSDF' shader expects roughness. What is the best way to do this?
Here is my node setup:

Cycles has some weird behaviors when textures have unrelated data in the alpha channel, see https://blender.stackexchange.com/questions/32450/how-to-separate-texture-alpha-without-premultiplying-the-color?rq=1 Otherwise, your setup sounds correct from the description given.

@JtheNinja Yes, it seems the metallic setup was correct. The smoothness in the alpha channel needs inverting now somehow.

Inverting a value in the range of 0-1 is as simple as subtracting it from 1.  Use a math node on subtract mode.  (After you check out JtheNinja's link.)

You are right! I was trying to subtract 255. If you write this as an answer, I'll mark it as correct.


text:
Headless rendering on remote Ubuntu server results in blank render
If I try and render this .blend on my Windows machine, using this command, I get the correct output:
.\blender.exe -b testrender.blend -f 0 -F PNG -o frame_0.png

The correct render:

If I try to do the same on my remote Ubuntu 16.04 server, with this command, I just get a blank, grey .png file outputted:
blender -b testrender.blend -f 0 -F PNG -o frame_0.png

The incorrect render:

Hi. Both the 'correct' and 'incorrect' images are the same image.

@RayMairlot Thanks. This has now been corrected.


text:
Deform instances (distributed on points using geometry nodes) rigidly with original armature
I distribute points (I'll call them P) on the faces of a mesh and then instantiate objects (scales) at these points, in order to cover the surface with scales:

However, the original mesh is animated via an armature, and I have trouble assigning working vertex weights for the scales.
The scales instances themselves should not be deformed, but move rigidly with the point P on the surface they are attached to.
What I've tried:

I can copy the vertex weights with a DataTransfer modifier from the original mesh to the scales. However, this does not know about which face the point P was originally placed on, so I loose that information and the result is a mess. Also, it potentially deforms the scale:

I tried storing the index of the nearest vertex (of the original mesh) for each of the distributed surface points P in an attribute. When I create scale instances, those "inherit" this attribute, which allows me to later write a script which copies the vertex weights from the vertex with this index to the entire scale instance. This results in rigid movement, but it (obviously) looks like the scale was attached to the bones that the nearest vertex is attached to, when really it should be attached to a point on the surface (which I think is an interpolation between the face corner vertices' weights)?.
My current idea is to store the position of the generated distributed point P and the index of the face it was placed on. Then I could determine the vertex weights of each of the corner vertices of the face and probably interpolate them depending on the point position.

Is there a function to calculate this interpolation? I think when subdividing/cutting a mesh then weights for the new vertices are calculated automatically - and I think that is the function I would need? Or is there a different, better way to achieve this?
Edit: I should have noted that I want to export the result for use in a game engine, so correct vertex weights is really the only feasible option I have.
Side note:
As far as I can tell, working with a large (and varying) number of vertex groups is currently not easy in geometry nodes, so I would prefer using the geometry nodes only to create the scale instances and store necessary information and then write a python script that calculates the vertex groups/weights.

The best idea here is to step away from the idea of armature deforming a bunch of realized instanced scales, and instead, deform the surface that you are using to instance your scales.  This might be via an armature modifier; it might be via a surface deform modifier targeting your rendering mesh; it might even be something else.
There may be some reasons that this doesn't seem to work for you, but I'd say, maybe we can suggest some ways to make it work in those circumstances.  Deforming the instancing surface is so, so much better of an idea than deforming the instances that it is worth some work to make it happen.  Deforming the instancing mesh is the most non-destructive solution, the most reusable solution.  And it is hugely more performant, both in terms of time and memory.
Let me explain how I'd weight this geo if it was not generated by GN.  I would make a shapekey for the scale mesh that was each mesh island shrunk down to a single point-- select all, scale about individual origins to 0.  Then, with this shapekey pinned, I would data transfer vertex groups on nearest face interpolated mode (not nearest vertex.)  The modifier gets applied, then the shapekey gets deleted.
What makes for "rigid" deformation is simply that the entire rigid bit has identical weights.  Scaling to 0 ensures that every vertex of any particular mesh island is reading weights from a single point on the source mesh.  Reading from the nearest face interpolated lets it follow the actual mesh surface, rather than acting in chunks that follow the vertices.

However, this does not know about which face the point P was
originally placed on, so I loose that information and the result is a
mess.

Data transfer from a non-rendering copy that isn't deformed.

Also, it potentially deforms the scale:

Shrink to a zero point before data transferring, then restore position afterwards.  GN can do this fairly easily-- you're already storing the instancing position, which is your zero point; you can save position to an arbitrary attribute and restore position from it after data transfer.

Is there a function to calculate this interpolation?

You want barycentric weights.  Given point p on a face and the positions of the three points a, b, and c making up the vertices of that face, the following provides barycentric coordinates u, v, and w.
Vector v0 = b - a, v1 = c - a, v2 = p - a;
float d00 = Dot(v0, v0);
float d01 = Dot(v0, v1);
float d11 = Dot(v1, v1);
float d20 = Dot(v2, v0);
float d21 = Dot(v2, v1);
float denom = d00 * d11 - d01 * d01;
v = (d11 * d20 - d01 * d21) / denom;
w = (d00 * d21 - d01 * d20) / denom;
u = 1.0f - v - w;

From https://gamedev.stackexchange.com/questions/23743/whats-the-most-efficient-way-to-find-barycentric-coordinates .
Your desired weights are the weighted average: u * weight(a) + v * weight(b) + w * weight(c) = weight(p).
There is one other potential solution to the rigidity problem here, if it's easier for you in some way: try a high strength, high iteration (1.0 strength, 200 iteration) corrective smooth modifier.  It usually restores the "rigidity" of deformed objects.  At least, well enough.  And, it's very easy to try.

Thanks! I should have mentioned that I want to export the result for use in a game engine, so I really need to use a vertex weight solution. That means that first deforming the surface, then distributing points and instancing won't work (also, I think this can produce a pop-in-effect).
I think what I was missing was the barycentric coordinates. I tried it, but it's not working so far (looks like scales are attached to the wrong point atm.), will keep trying...

Yeah, it works with barycentric coordinates:

Store the scale center point and the face index of the face it was generated on (I use Samples Nearest node set to Face and send that to a Store Named Attribute node) 2. find the barycentric coords for the center point within this face using mathutils.interpolate.poly_3d_calc 3. interpolate the weights for all the groups any of the face corner verts belong to 4. copy weights to all of the scale's vertices.
Thanks again!


text:
Creating geometry using bmesh.ops removes/invalidates previous vertices
I have a bmesh holding some geometry. I store pointers to some of the vertices because I need them later.
Then I add a sphere using bmesh.ops.create_icosphere.
Afterward, when accessing the previously stored vertices, I get:
ReferenceError: BMesh data of type BMVert has been removed

Since I am adding new geometry, I expected the old geometry to remain valid.
Does the method switch to object mode and back internally?
Here's a minimal working example showing the issue. To test, select the default cube, then run the script. It will show that all original verts, stored in orig_verts, are dead.
import bpy
import bmesh

# Get the active mesh
me = bpy.context.object.data

# Get a BMesh representation
bm = bmesh.new()   # create an empty BMesh
bm.from_mesh(me)   # fill it in from a Mesh

# Keep a list of the original verts:
orig_verts = [v for v in bm.verts]

bmesh.ops.create_icosphere(
    bm,
    diameter=3,
    subdivisions=2 )

for v in orig_verts:
    print("orig_vert", v, v.is_valid)

for v in bm.verts:
    print("new bm verts:", v, v.is_valid)

# Finish up, write the bmesh back to the mesh
bm.to_mesh(me)
bm.free()

Output for the standard cube:
orig_vert <BMVert dead at 0x7f27d6bf4db0> False
orig_vert <BMVert dead at 0x7f27d6bf4f60> False
orig_vert <BMVert dead at 0x7f27d6bf4d20> False
orig_vert <BMVert dead at 0x7f27d6bf4d50> False
orig_vert <BMVert dead at 0x7f27d6bf4cc0> False
orig_vert <BMVert dead at 0x7f27d6bf4ea0> False
orig_vert <BMVert dead at 0x7f27d6bf4de0> False
orig_vert <BMVert dead at 0x7f27d6bf4810> False
new bm verts: <BMVert(0x7f27d41f8650), index=0> True
new bm verts: <BMVert(0x7f27d41f8688), index=1> True
new bm verts: <BMVert(0x7f27d41f86c0), index=2> True
...

Using version 2.93.4.
Update: When I set subdivisons to a number lower than 2, it works! However, I'd like to have more subdivisions...
Update2: Note that my goal is to manipulate certain original vertices (let's say vertex 2) after adding a sphere. Note also that my real mesh is far more complex than what I have mentioned here, so storing vertices is really the best way to go AFAIK, however as mentioned above, the pointers point to invalid dead vertices after adding more geometry.
I've also noticed similar behavior with other bmesh.ops (for example bmesh.ops.subdivide_edges).
A possible workaround might be to find the new vertex at the position of the original vertex. Ugly, though...

So your original vertices change their indices as well? Otherwise a better workaround would be to store their indices rather than positions.

To answer your exact question: bmesh doesn't switch between object and edit mode, but its operations tend to copy the original data to a new data structure and then delete the original data.
However, if you really do want the original verts, you can make a copy of the bmesh before the operation.  Here is your original code, modified to show the copy and to contain the screen update:
import bpy
import bmesh

# Get the active mesh
me = bpy.context.object.data

# Get a BMesh representation
bm = bmesh.new()   # create an empty BMesh
bm.from_mesh(me)   # fill it in from a Mesh
bm2 = bm.copy()

# Keep a list of the original verts:
bm.verts.ensure_lookup_table()
orig_verts = [v for v in bm.verts]
copy_verts = [v for v in bm2.verts]

bmesh.ops.create_icosphere(
    bm,
    diameter=3,
    subdivisions=2 )

for v in orig_verts:
    print("orig_vert", v, v.is_valid)

for v in copy_verts:
    print("copy_vert", v, v.is_valid)

for v in bm.verts:
    print("new bm verts:", v, v.is_valid)

# Finish up, write the bmesh back to the mesh
bm.to_mesh(me)
bm.free()

bpy.context.view_layer.update()

Thank you, but I was in object mode, so object.mode == "OBJECT" would return True and the exact same code would be executed as in your example (the parts in the 'if', not the 'else')...? I've also tried enforcing EDIT mode instead, same result. Interestingly, when I reduce the number of subdivisions to less than 2, it works (original vertices remain alive), but I need 2 subdivisions at least...

@Germanunkol I've updated my answer.  Please comment if it's not working for you.

Sorry, @Marty Fouts, that is not my issue. I know about delayed updates, I know that there are differences between EDIT mode editing and OBJECT mode editing. I'm sorry if that wasn't clear, I've made minor changes to the question in order to highlight my actual problem: I need access to certain vertices in a complex mesh that I have created earlier. However, the pointers which I have stored previously are no longer valid after using some bmesh.ops (such as for example bmesh.ops.create_icosphere). So if I want to, for example, move the original vert, that doesn't work any more.

@Germanunkol I covered your specific problem in the first paragraph.  You can't store the vertices because Blender changes the data structures out from under you.  The best you an do is create a copy bmesh and refer to it.

All right, thank you. I guess this does answer my question, though the workaround won't work for me (I want to manipulate the original vertices further after adding my sphere). I think I'll try the workaround of finding the new (valid) vertex with the same coordinates as my old (invalid) vertex and then updating my references in that way.

@Germanunkol Yeah, I'm sorry there's no way to preserve the original data; but the workaround gives you the starting point for doing the search by coordinates.

True, but I think I'll just store the original coordinates instead. Should be enough for my use-case and saves me having to create and pass around a copy of the full mesh.

@Germanunkol sorry for leading you on a wild goose chase.  Thanks for being kind and accepting my answer after three tries.

Let us continue this discussion in chat.


text:
What is the best free software for converting photos to maps?
What is the best free software for converting photos to maps?

Could you explain a bit more or create an image representing what you are trying to accomplish?

Your question should directly relate to using Blender.  Currently it does not.   Therefore your new friends at BSE may close your question.  They do it because they care about you.

Free online Normal map generator: http://cpetry.github.io/NormalMap-Online/
Generate Maps from Textures and 3D models: https://shadermap.com/home/
Create Bump maps easily: https://www.crazybump.com/
Hope this meets your requirement! :)

Note though that ShaderMap watermarks maps in free version.


text:
Smoke Domain renders as a grayish box
I know that this question has been asked, but unfortunally there was no answer- maybe through a second try someone else will read this and can help.
Im pretty new to blender, so sorry for my messed up blender file.

as you can see, the smoke domain of my cycles quick smoke effect is being rendered as a semi-transparent-box.
i turned off the shadows in the cycle settings of the domain and the smoke object, so this is not the problem.
-> .blend

really looking forward for some help,
greets,
luk

dear rich,
i added the .blend and the nodes.

I just checked out your file and it rendered fine for me. So I dont know what the issue is, but I think you should change your sample settings. Under Light Paths your volume was set to 0 bring that up around 4-8, You only had 16 Samples you need much much more for what you're trying to do (500-1000).

Also not sure what blender version you're using but I would download the latest version and use the Principled volume shader.

strange that it rendered out fine for you.
i tried now with 500 samples and light path set to 4- same problem.
i am using 2.79b. thanks for the help, ill give the principled shader a look.

I've tried rendering it on 2.76b and I get the same result as you - ie, the adaptive smoke domain (which is the line part way down the image) shows as a darker box. I don't have GPU so this is on CPU only.

Try deleting your domain, then add another domain and go to your materials and add the Principled Volume shader. I cant think of anything else.

The problem is actually due to your Light Path settings - in particular the number of Transparency Bounces which is causing the transparent surfaces of the domain to become visible.
Here's a render of your scene with your specific settings with the only change to the materials (of which I don't have the image textures so rendered with substitute solid colors) :

The Light Paths on your example .blend are set with very low numbers of bounces - too low for Blender to effectively render the image.

By simply amending the settings by choosing the preset for 'Limited Global Illumination' in the Light Paths render properties I produced the following :

The light path bounces can have significant impact on the final render - especially when set to very low values. The default values provide reasonable render results in most situations and care should be taken when decreasing them below the default values.

Sorry this is not an answer.
I will delete, just so I can post a pic.
I just opened your file, disconnected all the image textures (because they were not packed)
Then I just hit Render with all your settings and it doesnt have that same error that yours does.
This is what I got.

Maybe someone else can try your file and see if they can replicate it. It seems like a hardware glitch. Change to a GPU (if you can) see if that changes anything.

i now tried it with GPU- didnt work. Disconnected all textures- didnt work.
i rendered the file i uploaded here on another computer- same problems!
i dont get it...
would be really interested if other users could render it without the transparent box?

Ok I think I have another idea, erase all of your smoke sim. The domain and the flow object. Then create your smoke plane again and make sure you use Quick Smoke (just hit space bar and type quick). I think This will fix it. I tried setting up a smoke scene manually (not using quick smoke) and I am getting some weird behavior now.

ok! it didnt worked on the file im working on, but creating a new file was working. i dont know what but something is messed up with the first file.
thanks a lot!

Stack Exchange does not allow me to comment yet, so I try it here :-)
I see in your first image there is boundary of some object (orange color) going through the scene from door to window. This object is not part of file you sent (opened in v2.79). So, could it be obstacle in the way with some semitransparent on it?

hi! thanks for your help.
the orange-bound object is the smoke-domain of the quick-smoke-effect.
dont know what you mean with an obstacle in the way?

just that I haven't seen that bounds of the domain (going horizontally through middle of the image) in the blend file from you. but I guess Rich Sedman got the solution ;-)


text:
Creating a grass area with an irregular boundary on top of some uneven terrain
I am a Blender beginner, and I am trying to create some terrain with a grass area on top of it. Both the outer boundary of the terrain and the grass are are irregular shapes.
I have created the underlying terrain by defining some key points on the topology, as well as the two boundaries as below, and then used knife project to cut the outline:

Now, to add the grass area, I first tried to duplicate the terrain, and then cut it to the shape of the grass. The problem with this is that I cannot go back later and edit the terrain's displacement, whilst also having the grass follow it still.
So instead, I am trying to use the Shrinkwrap modifier, because it seems to do the right thing:

It seems like the two meshes used in Shrinkwrap need to be commensurate, otherwise they don't overlap properly. It gets better if I use Subdivide on the planes first:

Is the best approach for something like this in Blender really to subdivide so much? There are a lot of polygons in the model now. (I would like to create the grass with a hair particle system next, so it could end up being intensive to work with). I am wondering if there is a better way - perhaps not using Shrinkwrap?

Can't you just add the particle grass to the terrain that you have? Why do you want to shrinkwrap one mesh on top of another? Weight paint (requires some geometry=subdivisions) or a texture to define where the grass grows should do the trick.

@Blunder Interesting, I didn't think about this... How do you use a texture to choose where the grass should be? Do you mean use an existing image somehow?

Yes, you can paint an image texture and use it in the Texture Properties tab (the last tab on the right side). Use UV mapping here. The texture can have an influence on the particles, e.g. Density. In the Particle Properties tab, you can use the texture for the particles. The image texture also can be used for the shader to colorize the mesh and the particles => https://i.sstatic.net/vxrjb.jpg


text:
Adding bones to outstretch arms further, as well as adding a main squash and stretch
I am trying to learn about rigging (Blender beginner, and have only done a couple of simple examples so far), and have the following model:

The effect I am looking to achieve is for the letter "t" to bend down and appear to pick up the ball. Then finally I would like it to jump away with the ball, with some squash and stretch effect on the whole body of the letter as it jumps.
So far I have created an armature with some bones and used this as an armature deform for the mesh:

Now I have two problems:

Due to the shape of the letter "t", I would like the arms to stretch out beyond their resting size, so that they can reach further to get the ball. Is there a way to add a stretch feature to the arms only?

I don't know how to add a global squash and stretch control to this armature, in order to achieve the effect of the whole body stretching as it jumps away. I guess I should add a large bone vertically somehow through the armature with a "Stretch To" constraint to a small bone at the top? The letter isn't symmetric, so I'm not sure of how to arrange the bottom part.

Is the right approach here to try to add more bones for stretching?

File here:

"normally" you can just change this value to >0 then it would work, but in your case if your arms both have ik controller at the end, and are going to the bottom of the t, it won't work. If you have just one IK controller to one arm, it works. [1]: https://i.sstatic.net/3xAlF.png

@Chris Thanks for your comment. At the moment I haven't added any IK controller - only the bones you can see in my screenshot. Are you saying I should add an IK controller to one arm? Can you add an example? Sorry, I'm struggling to understand...

Yes I would recommend using IK because then you can control the mesh with an empty. Select in pose mode the last bone at one arm, shift I - to new object. Then go to object mode and move the created empty and enjoy

@Chris Okay I see. But you cannot reset the position of the empty like you can if you moved it in Pose Mode?

You could use a workaround bei setting a keyframe of location to the empty at frame 0 or 1

@Chris Okay. I still don't see what's the general approach for adding the main squash and stretch. Should there be a large "squash bone" running through everything, and the little skeleton bones are parented to it?

I would try bendy bones or spline bones (https://youtu.be/Bv4TQIxXoZY). BB only work in Blender. When you want to export them you have to convert them into a rig with normal bones.


text:
Show banding on object
I'd like to emphasisze the '3d-ness' of my object, by applying a rectangular mesh to it, as if it were a white object in a black room illuminated only by a (far away) laser that scans horizontal and vertical lines.
I manage to get as far as this picture:

Now, instead of the 'black' lines, i would like them to be solid green. And instead of the green gradients, it would be nice if these would be black.
Conceptually, what I'm looking for (I think I am): I'd like to tell the node editor something like:
if your input value is smaller then 0.9, output 0. If it is between 0.9 and 1, output 1.
How do I achieve this?
I used the following setup of my nodes:

My question looks a bit like: How to make a mesh look like it was 3D printed

perhaps of interest: making-a-laser-in-cycles-straight-beam-of-light

See http://blender.stackexchange.com/q/14394/599. Though I'd recommend zeffii's suggestion of actually illuminating the object with lights as you describe. After all, you have a light simulation engine. Why not use it? ;)

That does the trick! Never thought of using the brick shader for this.

@gandalf3 Would you mind turning your comment into an answer?

here's a grid OSL shader I wrote a while back.
/*
  Grid Lines
  : Author Dealga McArdle, 2013
  : modified from Sine Stripes by Thomas Dinges

  example shaders:
  http://www.openshading.com/osl/example-shaders/

*/

#include "stdosl.h"

shader GridShaderUV(

    // input and output parameters
    vector Vector = P,
    color GridColor = color(0.8),
    float Intensity = 1.0,
    float Distance_U = 0.02,
    float Distance_V = 0.02,
    int Stripes_U = 10,
    int Stripes_V = 10,
    output float Fac = 1.0,
    output color Color = color(0.8),
    float World_X = 1.0,
    float World_Y = 1.0
    )
{

    // shader code
    point Pos = Vector;
    Pos[0] -= World_X;
    float pattern_col = 0.0;

    for(int i = 0; i < Stripes_U; ++i ) {
        Pos[0] += Distance_U;
        pattern_col += abs(Intensity / Pos[0] / 1000.0);
    }

    Pos = Vector;
    Pos[1] -= World_Y;
    for(int i = 0; i < Stripes_V; ++i ) {
        Pos[1] += Distance_V;
        pattern_col += abs(Intensity / Pos[1] / 1000.0);
    }

    color C = transformc("hsv", GridColor);

    Fac = pattern_col;
    Color = color("hsv", C[0], C[1], (Fac*C[2]));
}

It generates a grid of black vs some user defined colour. There are many ways to use it, but to get a feel for it I suggest sticking it as a material on a Plane, and see what the sliders do.
If you add a Suzanne, you could set the Stripes U and V to 1 so there's only one grid line, then animate the Distance X between the extents of your object., and you'll get the laser scan effect. Or animate the WORLD X,Y as they are the center of the shader's coordinate system.

Looks like this

It's a grid osl, therefore capable (and intended) to make grids.

Alternatively, xyz banding
remove the axis you don't need. You can offset the Geometry position by some vector amount if the missing Axis band (0,0,0) bothers you

That's extremely cool!

Yeah, too many solutions for some problems :)

I like the last answer the most. I used it my own answer, although I marked yours as THE answer. √

This is how it looks after using @gandalf3 suggestion: (bricks)

And here's a screenshot using @zeffii answer, which I marked as "THE" answer, because it elaborated on my own, initial approach. I include it in my answer, because I changed some settings in the nodes that might be of interest to others:

Changes:

turn 'less than' into 'Greater than'.
Add the X, Y and Z into one value and put this into a CombineRGB --> only green lines
There are two 'value' nodes in the original answer. I combined the into one,
where I calculate the value of the second from the first one.


text:
Modelling complex, planar faces (from imported DXF)
How can I make a n-sided ( n > 4 ) irregular polygon in Blender?
Context: I import a SVG or DXF file of a paper template (dielines) into Blender. I'd like to make a 3-D 'folded' rendering of it (paper model). Neither SVG nor DXF gives me faces, so I have to make them myself. I try to manually select the vertices or edges, and then fill them. This works quite nicely, until the shape gets too complex (for example because of wholes in the geometry). In the following screenshot from a current project, you see the problem. I can only create a series of triangular faces,... but that is cumbersome. Cumbersome is a bad thing, isn't it? :) I would like to have one face for each 'aspect'/side of my paper model, not five. Is that possible?

This is question/problem I've been struggling with for quite some time. Fortunately, there are enough work arounds, but I'd like to know what the proper solution would be.
I tried dissolving the edges and 'tri to quads' but that didn't help. Neither did beauty-fill of grid-fill.
// Update:
-After posting, I saw this post, Cutting hole into a face with a line loop? that mentions 'dissolve limited',... that helps quite a bit already. And it seems that flipping normals is also needed, to keep them al facing the way.

You can select more than 4 vertices and still fill a face.. It will be Ngon which generally is known to be avoided however if it's flat and you're not aiming to use Boolean and staff then it should be ok.

Hi Mr Zak (?!) Well, no... that doesn't work. Simply selecting a number of vertices and doing "F" doesn't always work. Sometimes is does, sometimes not. I wonder if the resulting shape must mu concave?

The left part of my example: if I select all the vertices and then press "F", it won't fill it. The right-hand side is filled manually, selecting triplets of vertices and then doing "F".

Do vertices of those tiny quads belong to the edges of the big quad ? Btw I suggest to remove them (might be complex if that's what that geometry consists of). And do you use the latest version of Blender ? Related - http://blender.stackexchange.com/questions/9140/filling-a-3d-mesh and http://blender.stackexchange.com/questions/64121/how-can-i-create-a-face-with-a-rounded-edge

@Mr.Zak I was using version 2.77a, but I changed the theme so it looks like version 2.4 :) I found that easier for editing face-less objects.

After trying @Mr Zak 's responses (thanks), I feel I should summarize my findings in something more visible than a comment.
Blender should be able to create a polygon from vertices. If it doesn't, the geometry of the vertices is too complex, somehow. To overcome this, fill the shape with less complex planes (tri's, quads, maybe a pentagon) and combine them using "dissolve limited".
If 'dissolve limited' doesn't work, then check the normals of the faces. They should all point the same way. Flip them if needed and try again.
It also helped to remove the edges, while keeping the vertices.
See also Cutting hole into a face with a line loop?

I would use loop cuts and rectangles and parallellograms, like this:

authors: Александра Ремболович


text:
Rigging a leg that stick on the floor
I'm learning how to rig and for my little project I want to rig a leg (a robot). I have a rig for hip to knee. Another one from knee to heel. Then one from heel to the start of toes. And the last one for the toes. I can make my leg with my rigs and I've found how to avoid the feet to cross the floor. But I would like this result:

I would like the last rig that can't cross to the floor sticks to the floor when I move the leg.
At the same times, I would like the heel can take off the floor when I move the hip to the top.

I guess there is something to do this simple thing but I guess I didn't found it.

Have you tried using Inverse Kinematics?

Yes, but may be I don't use it like I should... When I use IK, the leg last bone stay stick at the end of the led. And I would like only the before last bone stays stick on the floor.

I believe, that it's better to start with prepared rigging system like Rigify https://www.youtube.com/watch?v=pAhbO7U1ID8&ab_channel=THELUWIZART For small project it should be enough


text:
Why Does Quad Topology Not Always Result in Correct Shading?
Why does quad topology not always result in correct shading? Sure on a cube like this its easy enough to toss on a weighted normal/autosmooth, but why does this happen, and is there any way to rectify it through better topology?

if you've smooth shaded it it will try to smooth even between flat faces, in that case you need to enable Auto Smooth to determine the angle

The only thing comes to mind is the software tries to preserve data.
be it smoothing data. until you change it manually it tries to keep it that way.
So that's means more control to you and what you create.
Edit: here is an Image from https://github.com/fedackb/yavne

You could also say software does not know what you want and just does the default calculations.
depending on what you want I would say every artist would prefer one of them over the other.


text:
Nothing Happens with fluid simulation

I was learning from CG Geek's animation tutorial from this video at 8:45. When I played the animation, nothing happened at all to my creation, no signs of high viscous water trickling down the sphere.
Does anyone know what went missing or wrong? If you want me to add the file for further investigation please tell me how to attach one here in this post.

https://pasteall.org/blend/ and put a link to the file in your question.

you may also want to include a screen-cap of the fluid settings you have in your domain.  There are also gotchas related to collision objects, so include a screenshot of your collision settings on the sphere.  In MS-Windows you can use the "Snipping Tool" for such a screen-cap.

And in Blender you can save an image of the whole screen via the Window > Save screenshot menu or just one editor window via the Screenshot (Editor) entry. - Select that option then click on the window you want to save.

For the Domain, under Cache > Type, you need to click on Replay, then play the animation. If it still doesn't work, as John says, please share your file

Hey John I just added the picture

@moonboots here's the file:
https://pasteall.org/media/0/d/0db69740d7326af81fd70cf72e769621.blend

it works for me, you need to make the fluid object visible and also make sure that you've pressed on the Cache > Type > Replay option of the Domain

I can find no fluid "supplies" in your objects in the domain.   You would need to have a Flow type of Fluid object, either a Geometry (liquid at time 0) or an Inflow (continuous throughout frames).   Also for your collision objects the 0.02 surface thickness may prove to be too thin.  I've found < 0.5 to have the object ignored.

where's the cache @moonboots (I'm so sorry lmao)

Select the domain and go into the Physics panel > Cache

oh ok thanks @moonboots

Wait @james_t, you're saying that the thickness is too thin to the extent it won't show the fluid simulation?

Sorry about not seeing the Cube.fluid object that is an inflow enabled only during frame 40.
If I look in viewport shading mode Wireframe I see the liquid simulation just fine, as mentioned by @moonboots:

So, you have a rendering/materials problem, not a simulation problem.
What I would do is start with a Cube in an new session, and use the Object >> Quick Effects, to add a liquid simulation to compare.
Most important issue: I enabled the Mesh property in your domain.  I'm not sure anything renders without it.
So I added a rather trivial material to your domain to get you started.   Here's a resulting render in Eevee, but I use Cycles for fluid for more realism:

Here is your file with my changes:
If you find this useful, please check the mark at top-left of my answer (so I get credit and others find this easier).

It's still not showing for some reason, should I hide the cube fluid?

@M4GN3TIC_ -- definitely look at what I did in my example blend file I included in my answer.  I "Disable in Render" the "Cube.fluid" object, if not you'd see the original cube and not the fluid emitting from the original cube.  An alternative is to apply a "clear" material (Transparent BSDF to Surface output) to the object that is the Flow Liquid Emitter.  These 3d studios certainly have a long, steep learning curve -- persist and conquer!


text:
Why Is My Rendered Image Distorted?
When I animate everything looks normal here:

But then I render it with F12 it looks like this:

Why is that?
I'm a beginner and not a native-english-speaker. So sorry if I get a bit confused.

Welcome to the forum! It appears to me that in the rendering dialog, you are zoomed in. Try to scroll with the mouse wheel, that shoud show the rest of the image.

From the look of your images, you are looking at your scene through the LookDev (A.K.A "Material Preview") tab. This is a setting that provides artificial lighting (not made by you) to the scene to be able to quickly preview things, but does not represent the way your scene actually is lit. To see how your scene will appear when rendered, you should preview your scene through the Rendered Preview display tab. See below:

I don't think lookdev mode will cause the camera to be zoomed in and slightly rotated. Compare the two images, you can see rendered view has a noticeably smaller fov.

Sometimes when you render, the final result is slightly larger than your screen, scroll the mouse wheel to zoom out a bit. The render should be the result of everything inside the "dark box" in the top image. As for the rotation - It looks slightly rotated in both the images, maybe it's just more pronounced when zoomed in.

Thanks for the answer. But it didn't solve my problem. I still don't know why it is distorted...

Hmmmm. Could you clarify what you mean by "distorted"? Do you mean all the noise (black and white dots)?

I think the problem you are having is this - You are using Cycles rendering engine for your scene, but are looking at it through the Material Preview (LookDev) setting. This preview uses a renderer more similar to EEVEE to render the preview more quickly. However, when you render your image, you are getting a Cycles (path traced) render, which is not the same as what you are seeing in your preview window. If you want the final render to look more like the preview, switch your rendering engine to EEVEE.

Thank you! It worked.


text:
Geometry Nodes: Array around center point
I am quite new to geo nodes. I want to Array my geometry around a center point but what ever I am using as input in a secound Instance on Points Node, I cant get the result I am looking for. Can you help please?
Thank you

Ive added another Instance on Points Node after the first one and used my set geometry as instance input but I need the input for the points.

you can use this node setup here:

result:

Two things are important for the instance on points node:

the points -> these are the positions on which your "instance" is placed on

the pivot point of your instance -> because the pivot points of your instance will be placed on these "points" of 1) so you have to make sure that the pivot point is on the right place, in your case it has to be on one end of your curve. That's what i achieved with the transform geometry nodes before plugging the bezier segment into the instance.

In the gif i show you what happens, if i change the value of the transform geometry node (and by this changing the pivot point of the bezier segment).
I used a mesh line without an offset as points so all points are on the same position. I have to idea why you use a spiral, but by this every point where your instance is placed on is on another position.

Pretty much the same as what Chris does, but using a spiral to create the repeated curve:

Could be slightly condensed with a map range:


text:
Workaround massive bool operation
I have this formation of objects. These are around 23.000 cylinders and a Sphere in the middel. I need to make a hole everywhere a cylinder intercepts with the sphere and then export this sphere to an object so I can print the Sphere with the holes in it. Since substracting 23.000 cylinders from a sphere is to much for my pc I need a work around. It would be very nice if you could help me. The cylinders are generated using multiple C# Scripts and the game Engine Unity it is then exported to an .fbx file and imported into Blender. I tryed blender since I know the program on a moderate base. If you have another suggestion for a programm which would do the job, I would be realy greatfull as well. What is most important for me is the result and I need it done for my studies.
Thank you very much

Would joining all the cylinders by pressing Ctrl + J and then applying a single boolean operation help?

Thank you for the suggestion. I will try that.

It might be an option to get a texture from the sphere which can then be printed and glued to a Sphere so I can make a hole where its supposed to be. I mean physicly with a drill or smth. But for that I need the texture where the cylinders meet the sphere.

So far it only worked for fast bool. I have an object now, but I will experiment a little further for more precice results.


text:
How do you extrude multiple faces inwards by the exact same amount?
I have the mesh on the left, and want to extrude the selected faces inwards by the exact same distance to obtain the result on the right:

I have tried "Extrude Faces Along Normals", which gives a strange tapered extrude:

and have also tried "Extrude Individual Faces", which gives an unequal extrude:

Is there a tool which extrudes them equally without doing them individually?

Apply the scale in Object mode (CtrlA), switch to Edit mode and Use Extrude Faces Along Normals but in the Operator box, enable the Offset Even option:

The "Offset Even" option does indeed straighten out the tapered effect, but on my machine it is not extruding the central one by the same amount as the two sides.

have you applied the scale in Object mode (Ctrl A)?

Ah, silly! Yep that's done it. Apologies.


text:
Retrieving the index number from my custom list in UI
Hello I am still new to Blender and learned Python 2 weeks ago. (I have previous experience in C)
I found a good example for creating a Custom list for objects on here and it works splendidly.
however in my Addon i have a function that removes certain objects that are also in the list. When this happens it will leave an empty row in the custom list.
To remove it i need the index number of the object. Displayed in the code below
scn = context.scene
idx = scn.custom_index

scn.custom_index -= 1
scn.custom.remove(idx)

however i do not know how to get the index of this object when i only have access to it's name to also remove it in the custom list
below is the code for the list:
class CUSTOM_UL_items(UIList):

    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        obj = item.obj
        custom_icon = "OUTLINER_OB_EMPTY"
        row = layout.row()
        #split.label(text="Index: %d" % (index))
        row.prop(obj, "name", text='', emboss=False, translate=False, icon=custom_icon)

    def invoke(self, context, event):
        pass

class CUSTOM_PG_objectCollection(PropertyGroup):
    #name: StringProperty() -> Instantiated by default
    obj: PointerProperty(
        name="Object",
        type=bpy.types.Object)

classes = (
    CUSTOM_UL_items,
    CUSTOM_PG_objectCollection,
)

def register():
    from . import custom_props, custom_ui
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    # Custom scene properties
    bpy.types.Scene.custom = CollectionProperty(type=CUSTOM_PG_objectCollection)
    bpy.types.Scene.custom_index = IntProperty()

def unregister():
    from . import custom_props, custom_ui

    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

    del bpy.types.Scene.custom
    del bpy.types.Scene.custom_index

The way i know how to get the custom_index right now is by selecting it in the custom list and using
bpy.context.scene.custom_index

If anyone knows how to access the index of specific items in the list by using it's name then i will appreciate it. i will provide an image showing the list with a removed item so you can see more clearly what i mean.
thank you

Add index inside the CUSTOM_PG_object
class CUSTOM_UL_items(UIList):

    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        obj = item.obj
        custom_icon = "OUTLINER_OB_EMPTY"
        row = layout.row()
        #split.label(text="Index: %d" % (index))
        row.prop(obj, "name", text='', emboss=False, translate=False, icon=custom_icon)

class CUSTOM_PG_objectCollection(PropertyGroup):
    #name: StringProperty() -> Instantiated by default
    obj: PointerProperty(
        name="Object",
        type=bpy.types.Object)

class CUSTOM_PG_object(PropertyGroup):

    objects : CollectionProperty(type=CUSTOM_PG_objectCollection)
    index : IntProperty()

classes = (
    CUSTOM_UL_items,
    CUSTOM_PG_objectCollection,
    CUSTOM_PG_object,
)

def register():
    from . import custom_props, custom_ui
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    # Custom scene properties
    bpy.types.Scene.custom = PointerProperty(type=CUSTOM_PG_object)

def unregister():
    from . import custom_props, custom_ui

    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

    del bpy.types.Scene.custom

In an Operator
def execute(self, context):
    custom = context.scene.custom

    object = custom.objects.add()
    index = len(custom.objects) - 1
    custom.index = index

Great!  am still learning the rules of what's possible and not when doing these stuff.


text:
Edit/Object mode texture different
I'm having the exact same problem in this thread:
Textures appearing different in Edit and Object mode
But my mesh does not have any modifiers at all. Anyone has any idea of what else could be doing this issue?

try adding more details to your question screenshots , blend file

Here it is. It's the exact same issue. http://imgur.com/MM8RgvL

it doesn't seem too much different you may have flipped or intersecting double faces,     remove doubles and recalculate normals

Didn't work. The face keeps changing. Should I upload the blender file?

Okay, I fixed this in a kinda unorthodox way. Simply deleted the face and extruded a new one. Now it seems to work. I'm still new to this texturing thing, been banging my head on this specific work for a few days.Thanks anyway!


text:
weird ambient occlusion shadow
i've been working on a small oven model and i have a problem with the AO bake,
for whatever reason there is a big round shadow in middle of the front and i have no ida what causing it.
Here is a screenshot of what i mean

and on the rendered ao texture

any idea whats happening?
edit:
i'm using blender render with approximate setting
edit2:
blend file

something burning in your oven? :) Check for hidden geometry

Are you using BI or cycles? To me it looks a bit like the artifacts you see with approximate gather in BI.

Did you change anything in world settings? The attenuation and falloff?

Could you maybe post a .blend file?

you can use this link to upload a .blend file

For me it looks like a somehow artifact of Approximate method of calculating AO. If you slower Error value in Approximate settings, you will likely get rid of this effect (and increase your baking time):

(I added Edge Split modifier here)
If using Raytrace method (like it's already described here), results will be similar, but at the same time you'll have more control over settings (actually, over baking time):

.blend

alright thanks that fix'ed it. i just have a small question about the raytrace mode; is there anyway i can make it less grainy and more smooth like the approximate mode?

@Delcard, only by increasing Samples value (and increasing bake time). In fact, it means that if one has 24 seconds to bake using 10 samples (for this model), then he will have 35 sec using 12 samples (as I've count). It's not critical on relatively simple models and as always - one should plan whether he needs high quality and a bunch of samples (and bake time) or it's not so important.


text:
Fluid in simulation disappears when from moving container
I have an animation of a mug filled with a liquid moving up then turning to spill out the liquid. The problem is, when the mug lifts, the amount of fluid within the mug decreases. The loss continues when the mug rotates. When the mug stops raising, the remaining half of the liquid flies out of the mug at high speed and appears to collide with an invisible plane even though the actual ground is much further below it. The other half stays suspended in the air within the mug.

@Tobmonst3r Are you animating the fluid simulation's location and the mug when it lifts up? You could just make the mug an obstacle, and animate the mug's location. Then the fluid would not be animated, you would avoid problems of it not colliding in the correct spots.

Sounds like an instancing problem to me. Either that or margins are messed up.

I am just animating the mug and baking the fluid.

The main problem is that scale has not been applied. The domain and the obstacles should have an euler scale of 1,1,1. Just select everything and press Ctrl+A and choose scale. Otherwise the fluid will misinterpret where the obstacles are and just act weird.
Another thing is that the domain is ridiculously large, so even with a high resolution you're basically getting crap, which means that the fluid will act strangely.


text:
Material preview/eevee 3d view glitches and no compatible GPU found
Blender recently started crashing when trying to use cycles with my gpu, and then when I'm in EEVEE or material preview the 3d view goes weird colours (mainly grey) and duplicates visuals around.
I updated my gpu and blender and now it lets me use cycles with my gpu but it still says "No compatible gpu found for path tracing" in preferences despite that, and I still have the 3d view glitchyness. Also my gpu still runs games fine.
Here are pictures of what my 3d view looks like, and what happens when I move my mouse around and scroll in and out in eevee with this cube and glowy circle.

What kind of GPU do you have? As always in these cases, make sure your graphics drivers are up to date, and check here to make sure your GPU is supported - https://code.blender.org/2019/04/supported-gpus-in-blender-2-80/.

@Christopher I have the RX 480, and they're up to date now but the problem stayed, and yeah it looks like it's supported, it had been working fine up until recently.

The only thing I can think is to make sure you're using OpenCL and not CUDA, but other than that, I'm not sure. I've seen a lot of the same complaints here recently concerning the RX 580 as well.

I guess it's your graphics card: https://blender.stackexchange.com/questions/203615/how-to-fix-material-and-render-previews#comment342453_203615

@brockmann Ye that looks like a very similar problem to mine, although the problem didn't start after any changes to my gpu drivers, at least not to my knowledge


text:
Is there an easy way to make two flat objects coplanar?
I'm working with multiple objects that are planes, such as an actual plane, an image imported as a plane, or text. At any time, I could be working with 2 or more of these objects and they could all be the same type or any of the ones I've listed.
I'm not talking about putting objects on an actual, existing mesh plane. I want them to be in the same plane, but that doesn't mean on the same face of an object or plane object.
I know how to match the rotation of two objects to make sure they have the same orientation. I want to go one step farther and make the objects coplanar. This plane will usually not line up with an axis or be even parallel to an axis. (For instance, X rotation might be 32.5°, Y rotation could be 12° and Z rotation could be 75.13°.)
I think it might be easiest to move the 3D cursor to a point on the plane and then moving the object center to the 3D cursor.
I'll be defining a plane with 4 coordinates for corners, but I'll be keeping those as variables and not using them to create an object. How can I pick a point in that plane or check when a point is in that plane?
While I'll be doing this in a script, I don't need actual code, I can work that out, but either a formula that can check if a point is in a plane or code to do it is welcome.

Define a plane by a point on the plane and its normal.
For example sake using 4 coordinates of plane as 4 points that make up the plane.
>>> ob = C.object
>>> ob
bpy.data.objects['Plane']

>>> mw = ob.matrix_world
>>> points = [mw @ v.co for v in ob.data.vertices]

Only need 3 points, $(a, b, c)$ to define a plane. All of these distinct points is on the plane. The normal is the cross product of any two non parallel vectors on the plane (b - a).cross(c - a)
The global plane coordinate and normal of example plane.
>>> plane_co = points[0]
>>> v1 = points[1] - plane_co
>>> v2 = points[2] - plane_co
>>> plane_no = (v1.cross(v2)).normalized()

Hence to make any plane aligned with another plane can align their two normals. To get the quaternion rotation required to rotate one vector to align with another.
>>> q = plane_no.rotation_difference(plane_no_2)

Matrix math to translate, rotate, scale with respect to a pivot point in Object mode
Finally there is a helper method mathutils.geometry.distance_point_to_plane
>>> geometry.distance_point_to_plane(
distance_point_to_plane(pt, plane_co, plane_no)
.. function:: distance_point_to_plane(pt, plane_co, plane_no)
Returns the signed distance between a point and a plane    (negative when below the normal).
:arg pt: Point
:type pt: :class:`mathutils.Vector`
:arg plane_co: A point on the plane
:type plane_co: :class:`mathutils.Vector`
:arg plane_no: The direction the plane is facing
:type plane_no: :class:`mathutils.Vector`
:rtype: float

which will give how far along the plane normal a point on another plane is to current plane.
Have used this in determining coplanar faces here https://blender.stackexchange.com/a/53976/15543.

I've had to read this answer multiple times to make sure I get everything in it - and I'm still re-reading it! I mentioned using 4 coordinates for the plane because, in my script, I need a rectangular area to keep everything within. So I can always just pick any 3 of those 4 points to define the plane. Your answer and the info in it is also helping me see an easier and quicker way to do what I want to do. Thank you! (Always love seeing your name at the end of an answer. You're thorough and detailed and always on target!)


text:
How Can I Unlink Two Objects?
I recently got this mouse model and want to make an Ad with it.
My Problem is that those two Parts are connected somehow.
I made them 2 Separate Objects in Edit Mode by using P ( Separate Object ) but if I move one, the other Object moves too.
How can I unlink those 2 Objects?

https://blender.stackexchange.com/questions/1898/how-to-unlink-a-linked-duplicate

In the picture, the two parts are both selected.  If you came straight out of Edit Mode to Object Mode and then tried to move one, you will of course move both while they're both selected.
Press A to toggle selection until nothing is selected, then right click on the one you want to move.

I had the same issue today, literally. There is what I found.
Please see the image. Hope this will help your issue. Select both objects first.


text:
How can I overlay an image texture with transparent alpha on a material I have created?
I just need to simply add freckles onto my characters face.
I have a skin material which makes up my character completely. Then I add a new material for an area on her face which I want to have freckles. It is a png image with a transparent background.
I can kind of figure out how to make the actual alpha transparent with alpha blend and backface culling but I cannot understand how to reveal the underlying material as well.
I have looked up guides or tutorials on the shader nodes and cannot find anything. I tried it myself and it was a fail.
Can someone please help me understand how I can do this?

are you using EEVEE or Cycles?

So with all of my attempts, I have switched between both. I work in Evee but I do swap to cycles to see the results. Nothing different so far. :(

Here is a UV sphere that I am going to use as an example.  The currently selected area represents where you might want the freckles.  I'm going to use a candle flame but the principle is the same.

Imagine that this is your "skin" material:

In the Material properties window, add another material slot and also assign it to the skin material:

Select "Add as new material" to create a copy of the skin material:

rename it if you would like.  Then select assign to assign it to the faces where you want the freckles.

I need an additional couple steps you may not.  I marked the boundaries of the new area with seams in the UV editor, and selected the area to create a new UV Map using 'unwrap' from the UV menu:

Modify the "skin with freckles" shader to add my alpha mixing nodes

and here's the result

You'll want to do the UV editing differently than I did, of course, to match your model.

Thank you so much for answering so quick. Here are a couple videos so you can see my issue. I did try both of your solutions and perhaps they worked but since I am so confused about what settings to change when it comes to creating an alpha channel, that is the only issue. The first video with purple skin is my origonal and the second video has both of your nodes with the results. If you notice, on the second attempt, some subsurface scattering came through interestingly enough.    https://www.youtube.com/watch?v=yW3UBPQEzAw   https://www.youtube.com/watch?v=IzApbhT6PTo

You need to modify the material that makes the purple skin and add the image texture and mix node to that material.

I went ahead and adjusted my (skin) mat which was the purple that was then changed to a skin color. I assigned that base material to the entire person so I could follow these steps with your last comment. Unfortunately I didn't get any different results in terms of the alpha issue. But only a small area on her face should have freckles. The material I have been using called freckles is basically a skin material that has the image texture to combine.  It is okay if it is off a bit color wise to the main skin mat since I can adjust. Thank you for your help! Any other ideas I can try? :o

Let me edit my answer to give you a better step by step example.

I am still having the issue and I super duper apprecieate your detailed answer with step by step and photos. I am currently collecting all the info I can to build a better video as far as my attempts and to show my setup is the same. At this point I am lead to believe it is a minor alpha setting issue but I need to research just a bit more. I have tried evee and cycles but I am wondering if I do not have an alpha channel setup yet

OMG you won't believe what my issue was this whole time! I was at one point thinking that the png I had was fake, or at least was saved as a png but did not retain it's alpha channel, so I downloaded at least 2 or 3 other pngs which specifically said they had transparent backgrounds which had the same issue, regardless I opened the png up in photoshop and it did not open with an alpha channel and transparent background so I had to create my very own. I thank you for all your help! It now works :D


text:
jagged edges in glith animation
I want to get the glitch effect in the animation, everything comes out, but there is one problem. The edges of the animation are jagged, I would like to get a uniform white background.

Blender file:
File

Please attach a .blend

I have only scene which this nodes.

I would like your .blend to speed up the answering process and make sure everything is exactly replicated. If you can't give the file for any reason, maybe consider making a small different example that we can fix

I add blend file. Please help.

If the image gets distorted and is smaller at the end than at the beginning the transparent background appears. To fix this I just added the background where there was none..