Nodes/Avatar Graph/Object Set Use Instance Vertices Rotation
ComfyUI Node

Object Set Use Instance Vertices Rotation

Giving each instanced copy its own twist

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Set Use Instance Vertices Rotation
  • BPY_OBJ
  • BPY_OBJ
valuefalse

Object Set Use Instance Vertices Rotation is the sibling flag to the face-instancing one, and it's just as niche inside Avatar Graph. The pack - Avatech's tool for rigging 2D character images into animatable avatars through an embedded Blender - generates an ObjectSet_ node for every simple attribute on Blender's object type, and this is the one that controls how vertex instancing orients its copies. If you're not doing vertex instancing, it's a nothingburger. If you are, it's the node that keeps your copies from all facing the same boring direction.

What it actually does

When Blender instances objects on vertices (scattering copies across the vertices of a parent mesh), there's a question nobody asks until the copies all point the same way: what rotation does each copy get? The use_instance_vertices_rotation flag decides whether instances inherit the rotation stored on the vertices they're placed on. With it on, a vertex that carries a rotation spins its instance to match - so you can scatter copies with each one twisted to a different angle, like leaves on a branch or scattered debris. With it off, every instance keeps its base rotation, which is the uniform, ordered look.

For avatar work this is the definition of optional - your characters aren't usually scattering copies of themselves across a surface. But the same honesty applies as with the rest of this family: it's a direct, unfiltered pass-through to a Blender property, so if your downstream scene uses vertex instancing, this is exactly the knob you'd reach for.

The inputs and outputs that matter

  • BPY_OBJ - the object whose instancing-rotation behavior you're setting.
  • value - boolean, default false. true makes instances follow their vertices' rotations.

Output is the same BPY_OBJ, so the node drops into any Blender chain without changing what flows through it.

How to install it

Part of the Avatar Graph pack - ComfyUI Manager, search "Avatar Graph", or:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui
pip install -r requirements.txt

restart ComfyUI. The standard pack-level install gotcha: bpy==3.6.0 only ships wheels for Python 3.10.x, so pip install fails on anything newer. Use a python=3.10 conda env (Linux/macOS) or Avatech's prebuilt Python-3.10 ComfyUI zip (Windows).

Gotchas

The flag only does something if vertex instancing is actually in play - on a plain avatar mesh it's inert. And "rotation" here means the vertex's stored rotation data; if your vertices carry no rotation, flipping the flag changes nothing, because there's nothing to inherit. Debug in that order: is it instancing, and does the data exist?

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
valueoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ