Knobs¶
knob란 pose set이 아니라 axis로 쓰이고 있는 pose layer입니다.
knob는 type이 아니라 role입니다. 어떤 pose layer든 knob가 될 수 있습니다. 다른 layer의 Knob picker가 그것을 가리키게 하거나, Outliner에서 한 layer를 다른 layer 위로 드래그하면 됩니다.
axis가 된다는 것은 그것이 무엇인지를 바꿀 뿐, 자신의 pose로 무엇을 할 수 있는지는 바꾸지 않습니다.
| 유지되는 것 | 포기하는 것 |
|---|---|
| 자신의 grid, 그리고 그것을 편집할 권리 | Pair — knob는 L/R twin이 없습니다 |
| 자신의 target list | Page — knob는 단일 page입니다 |
| 자신이 직접 authoring한 pose |
knob는 항상 solo이고 single-page입니다. 그것이 전부의 비용입니다.
그래서 pair된 layer를 knob로 만들려면 먼저 그것을 collapse해야 하며, ORC는 이것을 몰래 처리하지 않습니다. grid가 둘 이상이고 그중 하나라도 frame이 있는 layer는 거부됩니다.
"Mouth" has authored frames on its extra grids — a knob is a single solo grid. Collapse it to one grid first.
직접 하나의 solo grid로 collapse하면 통과합니다. extra grid가 비어 있는 layer는 조용히 collapse됩니다.
collapse가 실제로 무엇을 희생시키는가
frame이 아닙니다. layer의 모든 page와 모든 side는 snap당 하나의 frame을 공유합니다 — 한 grid에서 authoring하면 ORC가 그것을 모든 grid에 기록합니다 — 그래서 pose는 collapse를 거쳐도 살아남습니다.
solo layer가 표현할 수 없게 되는 것은 side입니다. 즉 어떤 grid가 어떤 target을 구동하는가 하는 라우팅입니다. 포기하는 것은 그 라우팅입니다.
Mirror가 twin frame이 어디에 놓일지를 결정합니다
twin grid로의 복사는 단순 복사가 아니라 — snap이 layer의 mirror axis를 통해 flip됩니다. left에서 Mirror X를 켠 채로 R0C0에 authoring하면 right grid의 R0C6에 기록되지, R0C0이 아닙니다.
그래서 authoring하는 시점에 적용 중이던 mirror axis가 그 frame들이 놓이는 위치에 그대로 구워집니다. 나중에 axis를 바꿔도 이미 만든 key가 다시 매핑되지는 않습니다. mirror된 layer를 collapse하고, Mirror X를 끄고, 다시 pair하면, 새로운 authoring은 예전과 다른 snap에 놓이게 됩니다.
그렇다고 이것이 실수라는 뜻은 아닙니다 — axis를 flip하는 것은 twin이 어느 방향으로 읽히는지를 의도적으로 뒤집는 방법이기도 합니다. 예상치 못했을 때만 놀라운 일이 됩니다.
경험칙은 이렇습니다. 빈 layer에서는 자유롭게 바꾸십시오. authoring된 layer에서는 기존 key가 제자리에 남아 있으리라 예상하고, 다시 key를 넣을지 판단하십시오.
layer를 control의 face로 지정하는 것도 같은 이유로 같은 guard를 거칩니다.
knob가 주는 것¶
mouth layer에 corner shape의 3 × 3 grid가 있다고 합시다. 이제 여기에 13-position phoneme knob를 줍니다.
mouth layer는 13개의 pose를 얻는 것이 아닙니다. phoneme마다 하나의 3 × 3 grid 전체를 얻습니다 — 117개의 pose이며, "이 corner shape을, 이 phoneme에서"로 주소화됩니다.
이것이 "keying across"가 뜻하는 바이며, layer가 자신의 control과 맺는 관계와 정확히 같은 관계입니다 — 다만 한 단계 더 안쪽에서 벌어질 뿐입니다.
두 가지 종류¶
둘 다 authoring하고, 둘 다 target을 가집니다. 이 둘을 가르는 것은 자신의 pose가 어느 key domain에 속하는가이며, 따라서 authoring하는 동안 Navigator가 무엇을 제공하는가입니다.
| control의 knob | extra knob | |
|---|---|---|
| 누가 가리키는가 | control의 face | 평범한 pose layer |
| 무엇을 움직이는가 | control의 전체 pose grid — turnaround 그 자체 | 그것을 가리키는 layer만 |
| 자신의 pose가 key를 넣는 대상 | 자신의 axis만 | 자신의 axis 그리고 control의 grid |
| Navigator가 제공하는 것 | control grid 없음 | control의 grid |
이유는 규칙이 아니라 산술입니다. control의 knob는 그 control의 dimension 그 자체입니다 — control이 이미 이 knob를 통해 key를 넣고 있으므로, 여기에 control의 grid까지 더하면 같은 axis를 두 번 세는 셈이 됩니다. ORC는 하나를 선택하면 이렇게 알려줍니다.
This knob authors its own dimensions. The control's grid adds no axis here — the control already keys through this knob.
extra knob는 control 안에 자식으로 들어가 있으므로 head grid를 그대로 받고, 그 pose는 다른 layer들과 마찬가지로 control pose마다 달라집니다.
control의 Front face와 Back face는 knob 하나를 공유합니다 — 한쪽에서 설정하면 다른 쪽도 함께 설정됩니다.
layer에 knob 부여하기¶
두 가지 방법이 있으며, 결과는 동일합니다.
- layer를 선택하고 헤더의
Knobcombo에서 layer를 고릅니다. - Outliner에서 한 layer를 다른 layer 위로 드래그합니다. tooltip이 드롭 대상 layer의 이름을 언급하며 정확히 무슨 일이 일어날지 알려줍니다 —
Head Knob이라는 layer 위에 드롭하면 "Key across «Head Knob» (it becomes a knob)"라고 표시됩니다.
combo의 tooltip은 이 페이지의 요약판입니다.
The KNOB this layer keys across — its extra control axis (a phoneme/expression grid, the W slider…). Pick a layer to make it this layer's knob (or drag a layer onto another in the outliner). THIS layer's targets stay here; the knob keeps its own grid, targets and poses, but becomes solo and single-page.
소비자(consumer)의 target은 소비자 쪽에 그대로 남습니다
이 조합이 구동하는 대상은 knob를 가리키는 layer 쪽에 나열되지, knob 쪽에 나열되지 않습니다. knob의 자체 target list는 별개이며, 그 knob 자신이 pose를 취하는 대상을 구동합니다.
이미 pose가 있는 layer는 그것을 유지합니다 — position 0에서
knob를 채택하면 layer의 기존 key들이 knob의 첫 번째 position으로 옮겨집니다: position 0은 layer가 이전에 보여주던 것을 정확히 그대로 보여주고, 나머지 모든 position은 비어 있는 채로 시작해 authoring할 준비가 됩니다. (Compose는 이미 그렇게 읽고 있었습니다 — 이 이동은 그저 에디터가 거기에 맞추게 할 뿐입니다.)
knob를 제거하려면 picker를 —로 되돌립니다.
knob가 될 수 있는 것과 될 수 없는 것¶
layer당 knob는 하나입니다. picker는 단일 combo이며, 새 것을 고르면 이전 것을 대체합니다.
말이 안 되는 wiring은 ORC가 거부하며, 매번 feedback bar에 이유를 알려줍니다.
| 거부 | 이유 |
|---|---|
| "Can't — that would cycle the dimensions." | knob는 자신을 통해 key를 넣는 대상을 통해 다시 key를 넣을 수 없습니다. |
| ""Eyebrows" belongs to "Head" — a layer only keys across knobs of its OWN control. Make the knob global to share it." | Control exclusivity. control 간에 axis를 공유하려면 global로 만드십시오. |
| ""Mouth" has authored frames on its extra grids — a knob is a single solo grid. Collapse it to one grid first." | knob는 grid 하나뿐입니다. page와 pair는 pose의 개념입니다. |
성공하면 초록색 확인 메시지가 뜹니다: ""Mouth Corners" now keys across "Head Knob" (it's now an axis)."
knob는 종착점(terminal)입니다. knob 자체는 knob picker를 갖지 않습니다 — 해당 행이 그것을 숨깁니다. knob의 연쇄는 이 모델에 포함되지 않습니다.
knob 편집하기¶
knob를 선택하면 평범한 pose layer 페이지가 그대로 나옵니다. 편집 가능한 grid, target list, 자신의 frame들이 있습니다. 헤더는 그 역할을 명명합니다 — Knob Layer in Head Control — 그리고 위 표에 따라 Navigator는 control의 knob에 대해서는 control grid를 생략합니다.
layer에 할 수 있는 모든 것을 여기서도 할 수 있습니다. 모양과 Pos 개수 변경, target 추가, pose에 key 넣기, visibility group 설정.
knob의 모양을 바꾸면 소비자들의 번호가 다시 매겨집니다
knob의 모양을 바꾸면 그것을 타는 layer들이 가진 모든 key가 재주소화되어, authoring된 각 위치가 원래 놓였던 snap을 그대로 유지합니다. ORC는 무엇을 했는지 보고합니다: "Knob reshaped — 84 key(s) renumbered to the new grid."
1-D와 2-D knob¶
| 모양 | 완성된 rig에서의 widget |
|---|---|
| slider | slider — 애니메이터가 N개의 position을 통해 드래그하는 바 |
| grid | 두 번째 2-D widget |
2-D knob는 하나가 아니라 두 개의 dimension을 소비합니다. 그것이 5D layer와 6D layer의 차이입니다.
knob를 가로질러 채우기¶
layer에 knob가 생기면 헤더에 Fill Dimensions가 나타납니다. 이것은 그 layer가 authoring한 frame들을 knob의 모든 position에 걸쳐 복사하며, position마다 frame offset을 적용합니다 — knob axis를 다듬기 전에 대강 채워 넣는 가장 빠른 방법입니다.
Fill Grid & Fill Dimensions 참고.
비용¶
knob의 모든 position은 authoring할 수 있는 pose 수, Compose가 걸리는 시간, 사용하는 메모리를 곱합니다.
| Rig | Pose 수 |
|---|---|
| 3 × 3 layer, global | 9 |
| …5 × 3 control 안에 있을 때 | 135 |
| …13-position knob와 함께 | 1,755 |
| …대신 3 × 3 knob와 함께 | 1,215 |
전부 key를 넣을 필요는 결코 없습니다 — key가 없는 snap은 그저 이웃들로부터 blend됩니다. 하지만 추가하는 모든 knob는 rig가 요구할 authoring 분량에 대한 결정입니다.
관련 문서¶
- Dimensions & Key Domains — axis들이 어떻게 합산되는가
- Pose Layers — knob가 무엇으로 만들어지는가
- Fill Grid & Fill Dimensions
- Grid Presets — 재사용할 가치가 있는 모양들
