드라이버 (Drivers)¶
driver는 값을 기록하는 widget입니다.
pose layer가 "이 위치에서는 861번 프레임을 노출한다"고 말한다면, driver는 "이 노드의 OPACITY를 43.7로 설정한다", 또는 "이 drawing을 교체한다", 또는 "이 노드를 비활성화한다"고 말합니다.
Outliner에서 + → Driver로 하나를 추가하세요. 생성과 동시에 바로 editor로 이동합니다 — 별도의 대화상자는 없습니다.
editor는 두 섹션으로 나뉩니다. 무엇을 어떻게 구동할지 정하는 Setup, 그리고 실제로 돌리는 knob인 Values입니다.
네 가지 종류¶
| 종류 | Widget | 직접 해보기 |
|---|---|---|
| Checkbox | 두 가지 상태 | |
| Combo Slider | N개의 불연속 옵션 | |
| Continuous Slider | 연속된 범위 | |
| Continuous Grid | 2차원 패드 |
driver 패드는 항상 연속형(continuous)입니다 — 불연속 2차원은 driver가 아니라 pose layer입니다.
종류를 바꾸면 Values knob이 즉시 다시 만들어지며, 새 종류가 구동할 수 없는 속성은 조용히 유지되는 대신 제거됩니다.
Setup¶
Targets¶
이 driver가 값을 쓰는 노드들입니다. +는 다음을 제공합니다.
| 항목 | 추가하는 것 |
|---|---|
Add from Node View |
Harmony에서 선택된 것 |
Look-At ▸ |
look-at 필드 — driver가 그 필드의 값을 대신 가져갑니다 |
Driver ▸ |
또 다른 driver — 이 driver가 그것을 구동합니다 |
Constraint ▸ |
constraint — 이 driver가 그것을 켜고 끕니다 |
목록은 혼합형입니다. Harmony 노드와 internal target이 나란히 존재합니다.
같은 종류끼리만
driver는 자신과 같은 종류의 다른 driver나 look-at 필드만 구동할 수 있습니다. checkbox는 checkbox를, slider는 slider를 구동합니다. 이유는 명확합니다 — checkbox가 slider에 0/1을 쓰면 두 값에 고정돼 버리고, slider가 checkbox에 37.5를 쓰면 "켜짐"으로 읽히기 때문입니다.
적합한 대상이 없으면 서브메뉴가 비활성화되고 이유가 표시됩니다. "No other Slider driver to be driven by — a driver can only drive one of the same kind."
Checkbox driver만 constraint를 게이트할 수 있습니다. constraint는 켜짐/꺼짐 둘 중 하나이기 때문입니다.
Behaviour¶
| 필드 | 하는 일 |
|---|---|
Label |
animator가 widget에서 보게 될 이름. |
Widget |
Checkbox / Combo Slider / Continuous Slider / Continuous Grid. |
Operation |
값이 실제로 하는 일 — 아래 참고. |
Attribute |
기록할 Harmony 속성. 목록은 이 widget 종류가 실제로 구동할 수 있는 속성으로 필터링됩니다. |
Visibility Group |
widget이 속한 곳. |
Blend |
target이 다른 author와 겹칠 때만 나타납니다. |
종류별 Operation은 다음과 같습니다.
| 종류 | Operation |
|---|---|
| Checkbox | Toggle Attribute, Enable / Disable Node, Show / Hide Node Controls, Show / Hide Deformers |
| Slider | Set Value, Multi-Attribute |
| Combo | Set Value, Multi-Attribute, Drawing Substitution |
| 2-D pad | Set Value, Multi-Attribute |
Multi-Attribute에서는 Attribute 필드가 비활성화되고 "mapped per row in Options ▸ Attribute Mappings"라고 표시됩니다 — 각 행이 자신만의 attribute를 가집니다.
회색 처리될 뿐, 숨겨지지 않습니다
widget 종류를 쓸 수 없을 때 ORC는 그것을 회색으로 처리하고 벗어날 방법을 tooltip에 적어 둡니다 — 예를 들어 "This driver drives «Blink», which is a Checkbox — remove that target from the Targets list to change type." 왜 옵션이 먹히지 않는지 추측할 필요가 없습니다.
Options¶
여기 나타나는 항목은 종류와 operation에 따라 달라집니다.
Handle Min / Handle Max — handle이 대응하는 수치 범위, 기본값은 0–100. Default — 시작 위치.
Multi-Attribute에서는 min/max가 사라집니다 — handle 자체가 백분율이 되고, 각 매핑 행이 자신만의 범위를 가집니다.
X Min / X Max / Y Min / Y Max, 그리고 Default X / Default Y. 기본 범위는 두 축 모두 0–1입니다.
+ Option으로 항목을 추가합니다. 옵션에 담기는 내용은 operation에 따라 달라집니다.
| Operation | 옵션의 내용 |
|---|---|
Set Value |
라벨 하나와 숫자 하나 |
Multi-Attribute |
여러 attribute 행 그리고/또는 drawing swap을 담은 카드 |
Drawing Substitution |
READ target당 drawing 하나, 자동으로 미러링됨 |
Default로 rig가 시작할 옵션을 고릅니다.
옵션이 하나도 없으면 Values knob이 비활성화되고 다음과 같이 표시됩니다. "This knob has no options yet. Add them in Setup ▸ Options to make it usable."
Multi-Attribute 아래에 있는 slider나 pad용입니다. 각 행은 노드, attribute, min, max, 그리고 — pad의 경우 — 그것을 구동하는 axis로 구성됩니다. driver의 0–100 %는 각 행 자신의 범위로 다시 매핑됩니다.
Influence¶
모든 driver는 influence를 가질 수 있습니다 — 0에서 1 사이의 값을 갖는 두 번째 widget으로, 이 driver가 얼마나 작동할 수 있는지를 결정합니다.
| 필드 | 의미 |
|---|---|
Influence Widget |
Slider(그 사이 어디든) 또는 Checkbox(전부 아니면 전무) |
Influence Visibility Group |
widget이 위치한 곳 — Hidden은 그것을 숨깁니다 |
Influence Default |
rig가 태어날 때의 세기 — 100%가 완전 구동, 즉 중립값입니다 |
기본값은 ORC 전반에서 쓰이는 것과 같은 widget으로 설정합니다 — anchor와 화살표가 있는 nav slider를 백분율 스케일로 쓰거나, influence 자체가 checkbox라면 checkbox를 씁니다.
Widget Editor에서 influence는 여느 widget과 다르지 않습니다: 항상 목록에 표시되고(Hidden인 동안에는 숨겨진 다른 것들처럼 회색으로), 자체 Visibility Group을 바로 그 자리에서 편집할 수 있으며, 자체 Label 필드(기본값 <driver> - Influence, composed된 rig와 공유)와 slider / checkbox 타입을 따르는 글리프를 가집니다.
Hidden은 widget을 숨길 뿐, 기본값은 여전히 적용됩니다. influence가 Hidden에 100% 중립값으로 놓인 driver는 그저 구동할 뿐입니다 — rig에 추가로 존재하는 것이 없습니다. 하지만 기본값을 예컨대 50%로 두고 숨기면, animator에게 slider를 주지 않고도 "이 master는 항상 절반 세기로 구동한다"를 하드와이어링한 것이 됩니다 — 그 값은 composed된 MC의 Layer Properties 안에 attribute로 남아, 오직 그곳에서만 접근할 수 있습니다. Interpolation 토글과 같은 대우입니다.
influence가 무엇을 의미하는지는 무엇이 구동되는지에 따라 달라집니다.
| 구동 대상 | influence 0일 때 |
|---|---|
| 수치 attribute | 이 driver가 있기 전 값으로 돌아갑니다 — 단순한 blend |
| toggle | driver는 아무것도 하지 않습니다 (0.5 아래에서는 그냥 건너뜁니다 — 반쯤 켜진 노드는 정직한 의미가 없기 때문입니다) |
| 다른 widget, 또는 look-at 필드 | driver가 그것을 놓아줍니다 — target은 다시 자기 자신의 control에 응답합니다 |
마지막 항목이 꼭 기억해야 할 부분입니다. driver 대 driver 링크에서 influence는 blend가 아니라 release/hold입니다.
Scope¶
| 필드 | 고르는 것 |
|---|---|
Control |
이 driver를 소유하는 control — 또는 Globals |
Keyed across |
Global, Control, Pose Layer, 또는 Control + Pose Layer |
Pose Layer |
layer scope일 때 어느 layer인지, 그리고 Use pose layer knob |
Side |
layer가 두 개 이상의 page를 가질 때 어느 page side인지 |
이것이 driver의 key domain입니다 — driver가 어디서나 하나의 값을 유지할지, snap마다 하나의 값을 가질지를 결정합니다.
checkbox driver는 Global뿐입니다
나머지는 모두 회색 처리되고 이유가 표시됩니다. snap별 on/off가 필요하다면 옵션이 두 개인 Combo Slider를 쓰세요.
Values¶
knob 자체와, 섹션 헤더에 있는 작은 ● auto-key 점 — 켜져 있으면 녹색입니다.
Slider와 combo에는 nav chrome이 딸려 있습니다. ◀ / ▶는 한 눈금씩 이동하고, 양쪽 끝의 anchor — start와 end — 는 양쪽 극단으로 바로 이동합니다.
재열람 후 바뀐 값은 노란색이 됩니다
composed된 MC에서 다시 열린 rig에서, snap 하나의 driver 값이 바뀌면 driver의 navigator들 — layer grid, slider tick head, knob card — 그리고 그 위의 control snap에도 그 snap이 노란색으로 표시됩니다. 같은 값을 다시 key해도 아무것도 표시되지 않습니다 — 노란색은 커서가 어디 있었는지가 아니라 무엇이 다른지를 알려줍니다. Visual Indicators를 참고하세요.
driver에 key 넣기¶
knob 위에서 F6을 누르거나 우클릭하세요.
| 항목 | 참고 |
|---|---|
Set Key F6 |
Global scope에서는 이유와 함께 비활성화됩니다 |
Remove Key F7 |
여기에 key가 없으면 비활성화됩니다 |
Set as Default |
|
Reset to Default |
|
Driven by ▸ |
이 driver를 구동하는 driver가 무엇인지 |
Global scope에서는 keying 항목들이 스스로 설명합니다.
This driver's Scope is Global, so it holds one value everywhere. Set Scope to a control grid in Setup to key per snap.
색상¶
| 색상 | 의미 |
|---|---|
| 녹색 | 이 snap에 key가 있는 |
| 빨강 | 보간된(interpolated) — 이웃한 key들로부터 blend됨 |
| 분홍 | 다른 driver에 구동됨(driven) |
녹색 key는 분홍색 driven보다 우선하며, key를 제거하면 아래에 있던 분홍색이 다시 나타납니다. driven knob은 계속 조작 가능합니다 — 미리보기를 위해 밀어볼 수 있고, compose는 그 source로부터 값을 덮어씁니다.
Additive driver¶
blend가 Additive인 driver는 다른 author가 이미 만들어낸 값 위에 값을 씁니다. 그 key들은 절대값이 아니라 델타(delta)이며, 0은 변화 없음을 뜻합니다. Outliner는 이것을 Σ로 표시합니다.
blend 기본값은 scope를 따릅니다 — global driver는 더하고, snap별 driver는 덮어씁니다 — 그리고 이 행은 target이 실제로 다른 author와 겹칠 때만 나타납니다.
Additive는 실제로 겹치는 target에만 적용됩니다. 단독으로 author된 노드에는 더할 base가 없고, 자기 자신의 이전 기록 위에 더하는 것은 값이 폭주하는 원인이 됩니다.
Muting¶
Outliner에서 driver를 우클릭하고 Mute를 선택하세요. "Skip this driver at compose without deleting it (dimmed in the outliner)."
행이 흐려지고, driver는 rig에 남아 있지만 Compose는 그것을 무시합니다. driver 하나를 빼고 rig를 테스트하는 방법입니다.
driver가 되는 것¶
Compose 시점에 각 driver는 캔버스 위의 widget과, 움직일 때마다 그리고 rig 업데이트마다 한 번씩 실행되는 함수가 됩니다. MC 노드 위에 자신만의 attribute를 가지므로, animator는 다른 Harmony attribute와 마찬가지로 타임라인에서 key를 넣을 수 있습니다.
관련 문서¶
- Dimensions & Key Domains — Scope가 의미하는 것
- Constraints — checkbox driver가 게이트할 수 있는 것
- Look-At — driver가 대신 가져갈 수 있는 필드
- Visibility Groups — widget이 위치하는 곳
- Widget Editor — widget을 배치하는 곳

