Overview

Obsidian is a Bento Bones attachment, and as such, its movement and shape are controlled by animations.

These animations can be divided into three categories: Control, Core and Creator.

  • Control animations control positioning and adjustments such as vertical and horizontal angles, thickness, ball angles, and throbbing effects. Here’s the list with corresponding API parameter names:
    • v — vertical angle.
    • h — horizontal angle.
    • th — thickness.
    • v_b — vertical angle of the balls.
    • z_b — Z-axis adjustment for the balls.
    • thr — throbbing (one-time actions).
    • positioning (not available in public API).
  • Core animations drive the character and look of Obsidian. They define four stages of hardness, curvature, breathing, and built-in motion animations.
  • Creator animations come from third-party creators using custom HUDs or furniture to animate Obsidian in custom ways.

Creator animations

Creator animations should only target the bones used by the Core animations.

There are two basic rules to follow:

  1. Animate only the designated bones marked Core & Creator in the table below. Verify that your animation does not prevent the user from adjusting their device with the HUD.

  2. Rely on rotations for 99% of cases.

    Location keyframes (marked with 🛑 in the table below) should not be used — except in extremely rare cases where deforming Obsidian’s shape is not possible without keying the locations. This is essential for preserving Obsidian’s intended shape and length.

Creator animations priority

Export your animation with Priority 6.

If not all bones designated for Creator animations are included, the missing bones will be animated by built-in Core animations — individually for Rotation and Location.

Consider AVsitter Plugin if you need to play a Creator overlay animation or to save and restore "angles".

Bones architecture

The table below outlines which bones in the Obsidian architecture correspond to each of these animation categories and their specific functions. Rotation and Location purposes are split into two columns:

BoneRotationLocation
(Shaft Group)
Groin
Tail 1v 0.25-0.75 (+90°-(-90°))Master Positioning(*)
Tail 2h 0.25-0.75 (+90°-(-90°))Throb(♦) (thr)
Tail 3Core & CreatorCore & Creator🛑
Tail 4Core & CreatorCore & Creator🛑
Tail 5Core & CreatorCore & Creator🛑
Tail 6th(§) — P6(♦)
(Balls Group)
HLRoot(zeroed out inside v_b) — P6 🟨 (since v108)Master Positioning(*)
HL1Rv_b 0.3-0.7 (+72°-(-72°)) — P6 🟨 (since v108)z_bP6 🟨
HL2RCore & CreatorCore & Creator🛑
Participates in Throb(♦) (thr)
HL3RCore & CreatorCore & Creator🛑
HL4RCore & CreatorCore & Creator🛑
Participates in Throb(♦) (thr)

(*)Master Positioning — Two bones —Tail 1 and HLRoot— are combined into a single, looped animation for each position.

(♦)Throb — Three bones — Tail 2, HL2R and HL4R — are combined into non-loop throbbing animations. Only location is used.

  • Versions before v109 used to animate Tail 6 location as part of the throb. This has been removed to ensure attachments on Tail Tip don’t move when throb happens.

(§) Tail 6 (th): Before v107: 0,1 (0°,+180°). From v107: 0-1 (0°-(-180°)) (range).

Core animations that define the “look” of Obsidian are split between Shaft and Balls bone groups. When making Creator animations, you as an animator will most likely create one animation for both bone groups.

Priority

Animation/BonesPriority
v_b animates HL1R and zeros out HLRootP6 🟨 (since v108)
thP6
z_bP6 🟨 (since v109)
Rest of Control and Core animationsP5

API to pause Core animations

Core animations can be paused by constraining them with the %m_vibe=0 API command. With this constraint in place, Creator animations can be played with any priority. Whenever m_vibe is set to 0, a special stop Priority 5 non-loop animation is played once to zero out all the bones used in Core animations.

Stats

Number of Control animations in Obsidian:

  • 201 — Vertical angle (v).
  • 201 — Horizontal angle (h).
  • 21 — Thickness (th).
  • 71 — Vertical angle of the balls (v_b).
  • 21 — Vertical adjustment of the balls (z_b).
  • 1257 — Positioning.