레퍼런스

Miss Ring

Miss Ring은 gori의 컴패니언입니다. 기본값은 off이고 Preferences → Appearance → Companion에서 켭니다. 무엇을 하는지는 설정 가이드가, 어떻게 설정하는지는 companion가 다룹니다. 이 페이지는 Miss Ring이 어떻게 그려지는지에 대한 것입니다.

캐릭터에서 여덟 칸까지

모티프는 로키의 Miss Minutes와 Claude 마스코트를 섞은 것입니다. 커다란 속눈썹 눈, 부드럽고 둥근 형태, 거의 아무것도 없는 얼굴. 다만 실루엣은 빌려 온 것이 아닙니다. gori 마크 자체, 즉 고리이며, 현재 테마가 브랜드 골드라고 부르는 색으로 칠해집니다.

이 모두를 터미널에 넣으려면 고리와 글리프 다섯 개만 남기고 전부 포기해야 했습니다. 아래가 스프라이트 전체이자, 터미널이 실제로 그리는 것입니다.

 ▄▀▀▀▄
▐´●u●`▌
 ▀▄▄▄▀

격자

가로 여덟 칸, 세로 세 줄이고 한 칸이 글리프 하나입니다.

 ▄▀▀▀▄ ˙
▐´●u●`▌
 ▀▄▄▄▀
  • 0번 줄 — 정수리, 그리고 7열에 홀로 놓인 기분 배지(여기서는 백그라운드 작업이 도는 동안 다는 점).
  • 1번 줄 — 양쪽 벽, 그 사이의 다섯 칸짜리 얼굴.
  • 2번 줄 — 바닥. 7열은 비어 있습니다.

왜 타원이 아니라 원인가. 터미널의 한 줄은 한 칸의 너비보다 대략 두 배 높습니다. 그래서 세 줄이면 높이로 여섯 단위를 벌고, 달걀이 아니라 원으로 읽히려면 적도가 일곱 칸이 아니라 정확히 여섯 이어야 합니다. 하프 블록이 그 자리를 만듭니다. 왼쪽 벽은 칸의 절반부터 시작하고, 오른쪽 벽은 절반 앞에서 끝나며, 정수리는 한 단계마다 반 칸씩 좁아집니다. 지름 6인 원은 그 세 구간에서 6.0 / 5.2 / 3.3칸을 원하고, 실제 윤곽은 6.0 / 5.0 / 3.0에 떨어집니다.

대가는 팔입니다. 하프 블록 벽은 자기 칸의 가운데에서 시작하는데, 그 옆 칸의 짧은 획은 그 칸의 끝에서 끝납니다. 반 칸이 비고, 그 틈을 메울 수 있는 글리프가 없습니다. 메우려면 벽을 꽉 찬 블록으로 바꿔야 하고, 그러면 적도가 다시 일곱 칸이 되어 원을 잃습니다. 그래서 Miss Ring에게는 팔이 없고, 대신 배지 열이 기분을 나릅니다.

글리프 코드포인트 역할
U+2580 UPPER HALF BLOCK 정수리와 바닥
U+2584 LOWER HALF BLOCK 정수리와 바닥
U+2590 RIGHT HALF BLOCK 왼쪽 벽
U+258C LEFT HALF BLOCK 오른쪽 벽
´ U+00B4 ACUTE ACCENT 오른쪽으로 올라가는 속눈썹
` U+0060 GRAVE ACCENT 왼쪽으로 올라가는 속눈썹

입은 u, o, _, ·, n으로만 씁니다. ˘ 같은 컵 모양은 쓰지 않습니다. 결합 문자류의 기호는 cap height에 그려지는데 그 높이가 바로 속눈썹 자리라서, 입이 눈보다 위로 올라갑니다. 높이가 맞는 는 대부분의 고정폭 폰트에 없어서 비례폭 폰트로 떨어지거나 네모로 그려집니다. u는 같은 컵을 같은 높이에서 그리고, 없는 고정폭 폰트가 없습니다.

색은 첫 번째 격자 위에 겹친 두 번째 격자입니다. 칸마다 역할이 하나씩이라, 표정을 하나 더한다고 고리의 음영을 다시 쓸 일이 없습니다.

.CHRRC.X
HlemelS.
.CSSSC..

H 하이라이트 · R 기본 골드 · S 그림자 · C 어둡게 죽인 모서리 · e 눈동자 · l 속눈썹 · m 입 · o 구멍 · X 배지 · . 뒤에 깔린 바탕. 광원은 왼쪽 위로 고정되어 있고, 그래서 정수리가 하이라이트 다음 기본색으로 흐릅니다. 안쪽은 얼굴판이 아니라 구멍이라 바탕색으로 칠해집니다. 실제 고리의 구멍처럼 터미널이 비쳐 보이게 하기 위해서입니다. 밝은 색으로 채워 봤더니 세 줄짜리 스프라이트 한가운데를 가로지르는 밝은 띠가 생겼고, 눈이 고리보다 그 띠를 먼저 읽었습니다.

표정

고리 안쪽 다섯 칸이 표정의 전부입니다. 눈썹 둘, 눈 둘, 입 하나. 눈은 무엇을 하는지를 말하고, 눈썹은 그것을 어떻게 느끼는지를 말합니다. 편안하게 열린 얼굴에서는 두 속눈썹이 안쪽으로 기울고, 찌푸린 얼굴에서는 둘 다 뒤집히며, 갸웃하는 얼굴에서는 한 번에 하나씩 뒤집힙니다. 같은 글리프 둘로 정반대의 성격이 나옵니다.

표정 얼굴 언제 나오나
idle ▐´●u●`▌ 평소
blink ▐´─u─`▌ 3초에 한 번쯤, 그리고 일부 제스처의 마지막 박자로
happy ▐´^o^`▌ 백그라운드 작업이 성공했을 때
alert ▐´O_O`▌ 경고가 도착했거나, 자다가 깨워졌을 때
error ▐`×_×´▌ 무언가 실패했을 때 — 유일하게 움찔하기까지 하는 표정
doze ▐´~·~`▌ 90초간 조용하면 잠듦
oh ▐´●o●`▌ 하품을 시작하는 순간, 또는 그냥 작은 "오"
yawn ▐´─o─`▌ 하품 도중, 눈을 꽉 감은 상태
smile ▐´^u^`▌ idle 제스처이자 happy가 가라앉는 자리
squint ▐´·u·`▌ 뭔가를 실눈으로 들여다보는 중
flat ▐´●_●`▌ 뚱한 표정이자 error가 가라앉는 자리
wonder ▐´●o●´▌ 한쪽 눈썹을 올린 궁금한 "오?"
wry ▐`^u●`▌ 한쪽 눈만 접힌, 알겠다는 얼굴
hmm ▐´·_●´▌ 저울질하는 중이자 경고가 가라앉는 자리
pout ▐`●n●´▌ 삐침 — 컵을 뒤집은 입

반응은 표정 하나가 아니라 호를 그립니다. 정점을 찍고 1.5초쯤 머문 다음, 그것의 조용한 버전으로 가라앉아 반응이 끝날 때까지 유지합니다. 이 중 여섯은 반응이고 나머지는 스스로 꺼내는 idle 제스처이며, 가라앉는 표정 셋은 양쪽 모두에 속합니다.

윙크도 하지만 idle에서만 합니다. 윙크하는 alertdoze는 제스처가 아니라 렌더링 오류로 읽히기 때문입니다.

윙크 얼굴
왼쪽 ▐´─u●`▌
오른쪽 ▐´●u─`▌

7열의 배지는 고리 바깥의 유일한 칸이고, 얼굴에 담지 못한 것을 말합니다.

배지
z 자는 중
· 무언가 성공
! 경고
× 실패
˙ · . 백그라운드 작업이 도는 동안 위아래로 움직이는 점. 상태 줄의 스피너와 같은 박자입니다

터미널에서

gori History 탭. 본문 우하단 구석에 Miss Ring이 앉아 있고 머리 위 말풍선에 "hi! ready when you are"라고 적혀 있다
body 배치의 Miss Ring이 먼저 꺼내는 유일한 말: hi! ready when you are.

배치는 둘입니다. body는 8 × 3 스프라이트 전체를 탭 본문 우하단 구석에 놓고 위쪽에 말풍선 자리를 남깁니다. 클릭하면 알림 링이 열립니다. bar는 상태 줄의 여덟 칸짜리 칩으로 접습니다. 가운데 줄에 바로 위 칸의 배지를 빌려 붙인 형태이고, 그래서 모든 idle 제스처가 반짝임이 아니라 얼굴에 담겨 있습니다. 차례로 평소, 실패, 잠든 상태입니다.

▐´●u●`▌
▐`×_×´▌×
▐´~·~`▌z

언제 눈을 깜빡이는지, 얼마나 자주 움직이는지, 아예 말을 하는지 마는지는 설정 가이드에 있습니다.