구조 노드와 The Wide Bus¶
슬롯은 자기 드로잉 주위에 네 개의 계층 노드를 세울 수 있다. 이 페이지는 각각이 무엇을 하는지, 어떻게 정렬되는지, 그리고 — Node View가 읽을 만한지를 결정하는 부분 — OSA가 그것들을 어디에 두는지에 대한 것이다.
네 개의 컴포넌트¶
-
트랜스폼. 이름은
<name>-P. Position(Separate/3D Path), Scale(Separate/Locked), Enable 3D, Exclude AutoPivot을 지닌다. -
스코프. 이름은
<name>-G. 그룹이 슬롯을 자족적인 유닛으로 만든다 — 그 안에 있는 모든 것은 그 안에 있다. -
집계 지점. 이름은
<name>-C. composite mode와 그 Order를 지닌다. -
Backdrop —
BD
가지를 둘러싸는 Node View의 사각형, 색과 메모를 지닌다. 순전히 정리용이며 — 레이아웃 엔진이 안쪽에서 바깥으로 크기를 재는 대상이다.
Peg Order: 부모냐 자식이냐¶
Peg와 Group은 자리를 바꿀 수 있고, Peg 블록의 Order 콤보가 어느 쪽인지 정한다:
| Order | 결과 | 이렇게 읽는다 |
|---|---|---|
Outside Group |
Peg → Group → 내용 | peg가 그룹 전체를 움직인다 |
Inside Group |
Group → Peg → 내용 | peg가 그룹 스코프 안에서 내용을 움직인다 |
Details 열은 언제나 당신이 한 선택을 반영한다: (Peg > Group > Read) 또는 (Group > Peg > Read).
Composite Order와 모드¶
Composite 블록도 같은 Order 선택(Inside Group / Outside Group)을 지니고, 더 중요하게는 composite mode를 지닌다:
| 모드 | 하는 일 |
|---|---|
As Bitmap |
입력들을 비트맵으로 평탄화한다 |
As Seamless Bitmap |
같지만, 인접한 아트에 이음매 아티팩트가 생기지 않는다 |
As Vector |
컴포지트를 지나도 벡터 데이터를 유지한다 |
Pass Through |
합성하지 않는다 — 입력을 위로 넘긴다 |
이것들은 인덱스가 아니라 키워드를 쓴다
이 레이블들과 Harmony의 저장 값 사이의 대응은 추측이 아니라 Harmony 24 설치본에서 측정한 것이다 — 모든 도구가 지니고 다니던 그 맵의 네 항목 중 셋이 틀려 있었다(As Vector가 Seamless의 값을 쓰고 있었고, Pass Through가 Vector의 값을 쓰고 있었다). 컴포지트가 자기 레이블과 다른 모드처럼 굴면 그것이 의심할 부류의 버그이고, OSA는 측정된 쪽에 서 있다.
두 개의 계층, 나란히¶
Node View는 두 개의 그래프를 동시에 담고, OSA도 그것을 둘로 배치한다:
| 계층 | 색 | 연결 | 규칙 |
|---|---|---|---|
| Input / Transform | 🟢 초록 | Peg → 자식들 | 들여쓰기가 자식을 뜻한다 |
| Output / Composite | 🔵 파랑 | Comp → 아래 형제들 | 컴프는 자기 아래의 형제들을 집계한다 |
둘이 분리된 이유는 하나의 peg가 여러 개의 서로 다른 합성을 구동할 수 있기 때문이다. 변형과 합성은 같은 트리가 아니고, 그것을 하나로 그리는 것이 손으로 만든 그래프를 읽을 수 없게 만드는 원인이다.
컴포지트가 집계하는 것¶
컴프가 자식들을 모으느냐 형제들을 모으느냐는 오직 한 가지에 달려 있다: 그 슬롯에 스코프를 만드는 그린 컨테이너가 있느냐.
| 슬롯이 가진 것 | 컴프가 집계하는 것 |
|---|---|
C 단독 |
아래 형제들 |
D-C |
아래 형제들 |
BD-C, BD-D-C |
아래 형제들 — 백드롭은 시각적이다 |
P-C, G-C, P-D-C, BD-P-C |
자식들 |
그린 컨테이너는 P와 G뿐이다. 백드롭은 상자를 그릴 뿐 어떤 연결도 소유하지 않으므로, 누가 무엇을 집계하는지를 절대 바꾸지 않는다.
컴프가 같은 레벨에서 다른 컴프를 만나면 현재 블록이 flush된다 — 그것이 블록 경계다.
흐름과 포트 순서를 포함한 전체 규칙: 집계와 sibling aggregator.
The Wide Bus¶
OSA는 Harmony가 내키는 곳에 노드를 떨어뜨리지 않는다. Node View를 논리적 행렬로 다루고 공간을 미리 할당하므로, 그래프가 쌓이는 대신 왼쪽에서 오른쪽으로 흐른다.
| 행 | 차지하는 것 |
|---|---|
| 맨 윗줄 | 마스터 peg / 마스터 group / 마스터 드로잉 — 슈퍼 노드가 가진 것 |
| 가운뎃줄 | 작업 현장: 드로잉, 그룹, 미니 노드가 나란히 |
| 아래 | 컴포지트, 자기가 집계하는 것 아래로 오프셋 |
| FX 띠 | 백드롭이나 슈퍼 노드 자신의 직계 자식인 컴포지트 아래의 다섯 예약 슬롯(OP, CUT, BLD, GLW, BLR) |
FX 띠는 필요할 때 할당되는 것이 아니라 예약되어 있으므로, 나중에 이펙트를 추가해도 나머지 그래프가 옆으로 밀리지 않는다.
늘어나는 백드롭¶
백드롭은 최소 너비 세 노드 열로 태어나고, 마지막 콘텐츠 노드와 최종 컴포지트 사이에 전술적 빈 공간을 의도적으로 남긴다. 그 틈은 부주의가 아니다 — 나중에 레이아웃을 깨지 않고 새 노드를 끌어다 넣는 자리다.
마트료시카: 중첩된 백드롭¶
백드롭은 백드롭을 담을 수 있고, 크기는 아래에서 위로, 안쪽에서 바깥으로 계산된다.
| 상수 | 값 | 무엇인가 |
|---|---|---|
COL_WIDTH |
200 px | 한 열 |
ROW_HEIGHT |
80 px | 한 행 |
PAD_SIDE |
50 px | 백드롭 좌우 여백, 양쪽 각각 |
PAD_TOP |
100 px | 백드롭 헤더 공간 |
PAD_BOTTOM |
150 px | 컴프와 FX 영역 공간 |
GAP |
20 px | 형제들 사이 간격 |
너비
- 잎(드로잉, 또는 백드롭 없는 peg)은
1열; - 중첩된 백드롭은
sum(children) + gaps + 2 × PAD_SIDE를 정수 열로 올림; - 부모 백드롭은 자식들의 계산된 너비에 같은 공식을 쓴다.
높이
- 잎은
2행(peg 행 + 드로잉 행); - 백드롭은
PAD_TOP + max(children heights) + PAD_BOTTOM.
근본 규칙: 중첩된 백드롭은 절대 부모에게서 너비를 물려받지 않는다. 각자가 자기 내용을 재고, 부모가 자식들에 맞춘다. 그것이 깊게 중첩된 장면이 잘리거나 겹치는 대신 전부 보이는 상태로 나오는 이유다.
Root-BD (computed last)
├── Nested-BD-A (4 cols)
│ ├── D1 (1 col)
│ └── D2 (1 col) → inner 2 cols + gap → 4 with padding
├── Nested-BD-B (6 cols)
│ ├── Sub-BD (3 cols)
│ │ └── D3 (1 col)
│ └── D4 (1 col) → inner 5 cols + gap → 6 with padding
└── Sibling-Peg (2 cols)
Root inner = 4 + 6 + 2 + gaps = 14 cols
Root total = max(14, MIN_WIDTH) + padding
백드롭 색과 메모¶
Backdrop 블록은 이름, 색 견본, 메모를 지닌다. 색은 Node View에서 다시 열어도, 남에게 넘겨도 살아남는 유일한 것이다 — 처음 보는 사람이 3초 안에 얻길 바라는 읽음에 쓰라.

