Vector 4D (Blender)
A four-component constant for this pack's blender nodes
- B_VECTOR4
The four-component sibling of B_VECTOR3, and just as simple: four number fields bundled into a single typed socket, part of Avatar Graph, avatech.ai's pack for rigging character illustrations into interactive avatars inside ComfyUI. It's plumbing, not logic - a way to feed a 4D value into any node in the pack that expects one, rather than exposing four raw floats on that node directly.
What it's for
Most 3D values are XYZ, but a handful of things in Blender's data model genuinely need a fourth component - a quaternion's W term, or a value where the fourth slot means something different from the first three. This node's own field layout hints at that distinction: x, y, and z all step in increments of 0.01, matching the fine control you'd expect from spatial coordinates, while the fourth field, u, steps in increments of 0.1 - a noticeably coarser default that suggests it's meant for a different kind of quantity than the first three, likely a rotation or blend-style parameter rather than another spatial axis. The schema doesn't spell out which specific field this feeds in this pack, so treat that as a reasonable inference from the step sizes rather than a documented fact - check what the receiving node actually does with each component before assuming.
Inputs and outputs
Four required fields, all floats, all defaulting to 0:
x,y,z- 0.01 step.u- 0.1 step, the odd one out.
Output is a single B_VECTOR4 socket carrying all four values together. No other behavior - it's a pure constant node.
Installing it
Search avatar-graph-comfyui in ComfyUI Manager, or install manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
This node itself doesn't call into bpy, but it only exists as part of a pack that's entirely built on Blender's Python module, and bpy is locked to Python 3.10.x. That's the constraint that actually determines whether the pack installs at all - a dedicated conda environment on Mac/Linux, or the README's prebuilt Python 3.10 ComfyUI zip on Windows, rather than trying to force it into whatever newer Python your main ComfyUI setup already runs. Restart with --enable-cors-header afterward if you're using the live avatar preview.
Troubleshooting
If a value coming out of this node doesn't seem to be having the effect you expect, the most likely cause is a mismatch between what you think u represents and what the downstream node is actually doing with it - since this pack doesn't document the field-level semantics beyond the names and step sizes, it's worth testing each component in isolation (set the others to 0, change one at a time) to see what actually moves. Beyond that, this is one of the pack's smallest and least-discussed nodes - there's no community thread to lean on here, so treating it as a plain data-packing utility and verifying behavior empirically is the realistic approach.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| x | FLOAT | 0.00 | — |
| y | FLOAT | 0.00 | — |
| z | FLOAT | 0.00 | — |
| u | FLOAT | 0.0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| B_VECTOR4 | B_VECTOR4 | — |