Geometry Dashboard
Geometry Dashboard는 osu! 편집기 위에 기하학적으로 의미 있는 가상 오브젝트를 겹쳐 보여주는 강력한 도구입니다. 이 가상 점, 선, 원에 오브젝트를 스냅하면 다른 방법으로는 만들기 어렵거나 불가능한 기하학적으로 완벽한 패턴을 만들 수 있습니다.
Geometry Dashboard의 실시간 편집기 오버레이는 Windows 전용 연동 기능에 의존하므로 현재 Windows에서만 사용할 수 있습니다.
이 도구를 사용하려면 Mapping Tools의 Preferences에 사용자 설정 파일 경로를 지정해야 합니다.
핵심 개념
Geometry Dashboard는 다음 순서로 작동합니다.
- osu! 편집기의 현재 상태를 읽습니다. 현재 보이는 히트오브젝트, 편집기 시간, 편집기 창의 위치를 읽습니다.
- 히트오브젝트를 바탕으로 가상 오브젝트를 생성합니다. 설정 가능한 생성기가 히트오브젝트로부터 가상 점, 선, 원을 만듭니다.
- osu! 편집기 위에 오버레이로 가상 오브젝트를 표시합니다. 생성된 도형을 확인하고 커서를 그 도형에 스냅할 수 있습니다.
사용자 인터페이스
Geometry Dashboard 창은 여러 영역으로 나뉩니다.
- Search: 검색창에서 생성기 목록을 필터링해 원하는 항목을 쉽게 찾습니다.
- Toggle Buttons: 여러 기능을 한꺼번에 켜고 끕니다.
- Select All
- Lock All
- Usability All
- Savestates Button: Savestates 창을 엽니다.
- Preferences Button: Preferences 창을 엽니다.
- Generators List: 사용할 수 있는 생성기와 활성화·비활성화 및 생성기 매개변수 설정 옵션을 표시합니다.
가상 기하 도형
가상 기하 도형은 이 도구의 핵심입니다. 편집기에 실제 히트오브젝트로 존재하지는 않지만, 매핑 중 커서를 그 위에 올려 정확한 위치를 잡을 수 있는 점으로 표시됩니다.
가상 기하 도형의 상태
가상 기하 도형에는 켜거나 끌 수 있는 몇 가지 고유한 상태가 있습니다.
- Selected: 오브젝트를 활성화해 새 오브젝트를 만드는 데 사용할 수 있게 합니다. 선택 단축키를 사용하면 커서 아래에 있는 가상 오브젝트를 선택하거나 선택 해제할 수 있습니다. 선택된 오브젝트는 다른 색의 오버레이와 가장자리의 빛 효과로 강조됩니다.
- Locked: 잠그면 생성기나 바탕 오브젝트가 사라져도 해당 오브젝트가 함께 사라지지 않습니다. 실수로 지워서는 안 되는 도형을 보존할 때 유용합니다. 잠긴 가상 기하 도형은 회색으로 표시됩니다.
- Usable: 켜져 있는 가상 기하 도형은 생성기가 추가 도형을 만드는 데 사용할 수 있습니다. 꺼져 있으면 생성기가 이 오브젝트를 무시하며 해당 도형을 바탕으로 추가 오브젝트를 만들지 않습니다. 사용할 수 없는 가상 오브젝트는 어둡게 표시됩니다.
- Relevancy: 이 도형의 관련성을 나타내는 0~1 사이의 값입니다. 관련성이 높을수록 더 불투명하게 표시됩니다.
생성기
생성기는 Geometry Dashboard의 핵심 기능입니다. 히트오브젝트와 다른 가상 오브젝트를 바탕으로 가상 오브젝트를 만듭니다.
생성기의 기본 작동 방식
생성기는 다음과 같이 작동합니다.
-
입력 선택: 각 생성기는 필요한 입력 유형인 dependencies와 input predicates를 사용합니다. 입력 조건은 이 생성기에 사용될 가상 오브젝트가 만족해야 하는 추가 규칙입니다. Geometry Dashboard는 이전 레이어에서 필요한 입력 유형과 조건을 만족하는 오브젝트를 찾습니다. 이 규칙에는 오브젝트를 선택해야 하는지, 일정 수준 이상의 관련성이 필요한지 등이 포함됩니다.
-
기하 도형 생성: 선택된 입력 오브젝트의 가능한 조합마다 생성기의 메서드로 새 가상 오브젝트를 만듭니다. 생성 메서드는 선택된 입력 오브젝트를 매개변수로 받아 하나 이상의 새 가상 오브젝트를 반환합니다.
-
레이어 구성: 새로 만든 가상 오브젝트는 각각 새 레이어에 배치됩니다. Preferences의 Inception Level에서 레이어 수를 설정할 수 있습니다. 아래쪽 레이어의 가상 오브젝트는 다음 레이어에서 더 복잡한 가상 오브젝트가 생성되는 방식에 영향을 줍니다.
-
갱신: Geometry Dashboard를 다시 계산해야 하는 변경이 생기 면 먼저 Update Mode 설정에 따라 첫 번째 레이어의 오브젝트를 다시 생성합니다. 그 다음 두 번째 레이어부터 더 복잡한 레이어를 차례로 갱신합니다.
불필요한 오브젝트가 너무 많이 생기는 것을 막기 위해, 같은 레이어의 두 오브젝트가 충분히 가까우면 하나로 합치고 관련성 값을 더합니다. 두 오브젝트가 합쳐지는 데 필요한 거리는 Preferences에서 변경할 수 있습니다.
생성기 목록
Geometry Dashboard에서 사용할 수 있는 생성기는 다음과 같습니다.
-
Basic Generators: 히트오브젝트에서 바로 가상 오브젝트를 만듭니다. 모두 바탕 오브젝트의 평균 시간을 기준으로 시간을 설정합니다.
- Points on Circles and Slider Heads: 서클과 슬라이더의 시작 위치에 가상 점을 만듭니다.
- Points on Slider Ends: 슬라이더의 가장 끝에 가상 점을 만듭니다.
- Points on Slider Anchors: 슬라이더의 앵커(빨간색 및 흰색)를 따라 가상 점을 만듭니다.
- Points on Last Anchors: 슬라이더 곡선의 마지막 지점에 가상 점을 만듭니다.
- Lines on Linear Sliders: 슬라이더 유형이 Linear이면 Pos에서 Curve Point까지 가상 선을 만듭니다. 시간과 관련성은 바탕 슬라이더와 같습니다.
- Points on Blanket Centers: 원형 유형 슬라이더의 중심에 가상 점을 만듭니다. 시간과 관련성은 바탕 슬라이더와 같습니다.
- Circles on 3-Point Sliders: 블랭킷 곡선이나 완벽한 곡선을 위해 슬라이더 앵커를 기준으로 원을 만듭니다. 시간과 관련성은 바탕 슬라이더와 같습니다.
- Points on Slider Paths: 슬라이더 경로를 따라 여러 가상 점을 만듭니다. Point Density 설정으로 점의 개수를 조절하세요. 이 생성기는 결과를 계산하기 위해 추가 연산을 수행합니다.
-
Intermediate Generators: 작동하려면 Basic Generators가 필요합니다. 도형을 만들거나 가이드라인을 그리는 데 유용합니다.
- Tangent Circles on Circle: 첫 번째 입력 원과 한 점에서만 만나는 가상 원을 만듭니다.
- Circles by Two Points: 가상 점 두 개를 받아 각 점을 중심으로 하는 가상 원 두 개를 만듭니다. 원의 반지름은 두 점 사이의 거리와 같습니다.
- Equilateral Triangle from Two Points: 가상 점 두 개를 받아 각 점을 한 꼭짓점으로 하는 정삼각형 두 개를 만들도록 양쪽에 가상 점을 생성합니다.
- Equilateral Triangle from Two Points (Type II): 기본 Triangle Generator와 같지만 삼각형의 배치 방식이 다릅니다.
- Square from Two Points: 가상 점 두 개를 받아 한 개의 정사각형을 만들도록 양쪽에 가상 점을 생성합니다.
- Square from Two Points (Type II): 가상 점 두 개를 받아 정사각형 두 개를 만들도록 양쪽에 가상 점을 두 개씩 생성합니다.
- Line by Two Points: 가상 점 두 개를 연결하는 가상 선을 만듭니다.
- Average of Two Points: 가상 점 두 개의 평균 위치에 가상 점을 만듭니다.
- Average of Three Points: 가상 점 세 개의 평균 위치에 가상 점을 만듭니다.
- Scale & Rotate around a Fixed Point: 고정된 가상 점을 중심으로 임의의 가상 오브젝트를 회전하고 확대·축소합니다. 각도와 배율, 중심점으로 선택할 오브젝트의 추가 조건을 설정할 수 있습니다.
- Parallel Lines: 선과 점을 받아 그 점을 지나며 해당 선과 평행한 가상 선을 만듭니다.
- Perpendicular Lines: 선과 점을 받아 그 점을 지나며 해당 선과 수직인 가상 선을 만듭니다.
- Bisector of Angles: 교차하는 두 가상 선이 이루는 각의 이등분선을 교점에 만듭니다.
- Bisector of Two Points: 가상 점 두 개의 수직이등분선을 만듭니다.
- Tangent Lines on Circle: 가상 원과 점을 받아 점에서 원의 양쪽에 닿는 가상 선을 만듭니다.
-
Advanced Generators: 추가 설정이 필요하며 고급 재귀 패턴을 만들 수 있는 특수 생성기입니다.
- Intersection Points: 가상 선이나 원 두 개를 받아 서로 교차하는 지점마다 가상 점을 만듭니다. 다른 기하 도형 생성 방식과 결합하면 매우 유용합니다. 참고: 교점을 찾는 연산은 비용이 많이 듭니다. 편집기에서 복잡한 도형을 여러 개 활성화하면 성능에 큰 영향을 줄 수 있으니 주의하세요.
- Successor of 2 Points: 가상 점 두 개를 받아 같은 속도로 움직일 때의 다음 가상 점을 계산합니다. Points on Slider Paths와 함께 사용하면 곡선을 더 정확하게 예측할 수 있습니다.
- Successor of 3 Points: 가상 점 세 개를 받아 각도와 속도 변화가 같을 때의 다음 가상 점을 계산합니다.
- Successor of 3 Points Reversed: 가상 점 세 개를 받아 속도 변화는 같고 각도는 반대일 때의 다음 가상 점을 계산합니다.
- Successor of 4 Points: 가상 점 네 개를 받아 각도, 각도 변화, 속도 변화 및 속도 변화량의 변화가 같을 때의 다음 가상 점을 계산합니다.
- Scale & Rotate around a Fixed Point: 고정된 가상 점을 중심으로 임의의 가상 오브젝트를 회전하고 확대·축소합니다. 각도와 배율, 중심점으로 선택할 오브젝트의 추가 조건을 설정할 수 있습니다.
- Reflection across a Line: 가상 선을 대칭축으로 삼아 임의의 가상 오브젝트를 반사합니다.
생성기 옵션
각 생성기에는 작동 방식을 설정하는 옵션이 있습니다.
- Active: 생성기를 활성화하거나 비활성화합니다. 비활성화된 생성기는 가상 오브젝트를 만들지 않습니다.
- Sequential: 생성기가 시간 순서가 이어지는 오브젝트만 입력으로 사용하게 합니다. 켜면 시간 순서상 연속된 가상 오브젝트 쌍만 생성합니다. 생성되는 도형의 양이 크게 줄어 화면이 복잡해지는 것을 막을 수 있습니다.
- Deep: 생성기가 바로 위 레이어뿐 아니라 조건에 맞는 모든 이전 레이어를 확인하게 합니다.
- Relevancy Ratio: 이 생성기가 만든 가상 오브젝트의 기본 관련성(0~1)입니다. 다른 입력 오브젝트의 관련성 비율에 따라 실제 관련성은 달라질 수 있습니다.
- Generates Inheritable: 켜면 생성된 오브젝트를 사용할 수 있습니다. 끄면 다른 생성기가 해당 오브젝트를 사용할 수 없습니다.
- Input Selection Collection: 생성기가 입력으로 사용할 가상 오브젝트의 조건 모음입니다. 자세한 내용은 입력 선택 상세 안내를 참고하세요.
생성기별 추가 설정
일부 고급 생성기에는 전용 옵션이 있습니다.
- Circle from Single Point:
- Radius: 원의 크기입니다.
- Points on Slider Paths:
- Points Density: 슬라이더 경로의 osu! 픽셀당 생성할 점의 개수를 지정합니다.
- Scale & Rotate around a Fixed Point:
- Angle: 회전할 각도입니다.
- Scalar: 균일한 배율 조정 값입니다.
- Origin Input Selection: 회전 중심점으로 사용할 가상 오브젝트가 만족해야 하는 추가 조건입니다.
- Other Input Selection: 중심점을 기준으로 변환할 오브젝트가 만족해야 하는 추가 조건입니다.
- Reflection across a Line
- Axis Input Selection: 대칭축으로 사용할 가상 오브젝트가 만족해야 하는 추가 조건입니다.
- Other Input Selection: 대칭축을 기준으로 반사할 오브젝트가 만족해야 하는 추가 조건입니다.
입력 선택 상세 안내
입력 선택은 생성기가 어떤 가상 오브젝트를 계산에 사용할지 제어하는 주요 기능입니다. 각 생성기는 필요한 입력 유형(예: 점, 선)을 지정하며, 입력 조건으로 오브젝트의 속성에 따라 선택을 세부 조정할 수 있습니다. 입력 선택을 제대로 설정하지 않으면 생성기가 관련 없는 가상 오브젝트를 지나치게 많이 만들거나 필요한 오브젝트를 만들지 못합니다.
선택 조건 모음에는 여러 선택 조건이 포함됩니다. 선택 조건 중 하나만 충족해도 해당 가상 오브젝트를 입력으로 사용할 수 있습니다.
Input Selection 위에 커서를 올리고 더하기 버튼을 눌러 선택 조건을 추가하세요. 조건을 추가하면 가상 도형 생성을 더 세밀하게 제한하는 설정이 표시됩니다.
- Need Selected: 켜면 선택된 가상 오브젝트만 입력으로 사용합니다. 선택된 오브젝트는 커서로 우선 가리킬 수 있어, 생성할 도형을 세밀하게 조절할 수 있습니다.
- Need Locked: 켜면 잠긴 오브젝트만 도형 생성에 사용합니다. 잠기지 않은 오브젝트는 인식하지 않습니다. 특정 생성기를 사용할 때 다른 오브젝트를 고정해 두면 유용합니다.
- Need Generated By This: 이 생성기 자체가 만든 가상 오브젝트만 입력으로 사용합니다. 조건을 잘 설정하면 원하는 도형만 생성하도록 범위를 좁힐 수 있습니다.
- Need Generated Not By This: 반대로, 이 생성기가 만들지 않은 가상 오브젝트만 입력으로 사용합니다.
- Min Relevancy: 입력으로 사용할 오브젝트에 필요한 최소 관련성입니다. 관련성 값은 0~1이며, 0으로 설정하면 제한하지 않습니다.
Preferences
Geometry Dashboard의 Preferences 창에서 동작과 모양을 다양하게 사용자 지정할 수 있습니다.
- Hotkeys:
- Snap Key: 누르고 있는 동안 커서를 가상 오브젝트에 스냅하는 키입니다.
- Select Key: 누르고 있는 동안 가상 오브젝트를 선택하는 키입니다.
- Lock Key: 누르고 있는 동안 가상 오브젝트를 잠그는 키입니다.
- Usability Key: 누르고 있는 동안 가상 오브젝트의 사용 가능 여부를 전환하는 키입니다.
- Refresh Key: 루트 레이어의 히트오브젝트 목록을 즉시 새로고침하는 키입니다.
- Offset: 편집기 화면을 기준으로 모든 가상 오브젝트의 위치를 조정합니다. 크기나 위치 문제를 보정할 때 사용할 수 있습니다.
- Left: 편집기 왼쪽 가장자리의 오프셋입니다.
- Top: 편집기 위쪽 가장자리의 오프셋입니다.
- Right: 편집기 오른쪽 가장자리의 오프셋입니다.
- Bottom: 편집기 아래쪽 가장자리의 오프셋입니다.
- Complexity: 성능 문제를 완화하기 위해 재귀 레이어 수를 제한합니다.
- Inception Level: 바탕 히트오브젝트에서 생성할 레이어 수입니다.
- Downkey: 표시할 가상 오브젝트를 전환합니다.
- Everything: 히트오브젝트에서 만들어진 오브젝트와 그 자손 및 조상을 모두 표시합니다.
- Parents and parents of parents: 스냅 대상 오브젝트의 조상 오브젝트를 표시합니다.
- Direct parents: 스냅 대상 오브젝트의 직접 부모만 표시합니다.
- Children and children of children: 스냅 대상 오브젝트의 모든 자손을 표시합니다.
- Direct children: 스냅 대상 오브젝트의 직계 자손만 표시합니다.
- Upkey: Snap Key를 누르지 않았을 때 표시할 가상 오브젝트를 전환합니다.
- All visible: Selection 옵션 설정에 따라 모든 히트오브젝트를 표시합니다.
- Nothing: Snap Key를 누르지 않았을 때 모든 오브젝트를 숨깁니다.
- Selection: 가상 오브젝트 생성에 사용할 히트오브젝트를 전환합니다.
- All visible: 사용 가능한 모든 히트오브젝트를 포함합니다.
- Visible or selected: 선택된 히트오브젝트가 있으면 선택된 오브젝트를 모두 사용하고, 없으면 보이는 히트오브젝트를 사용합니다.
- Selected only: 편집기에서 선택한 히트오브젝트만 사용합니다.
- Updating: 가상 오브젝트를 갱신할 시점을 설정합니다.
- Any change: 변경이 생길 때마다 갱신합니다.
- Time change: 편집기 시간이 바뀔 때 갱신합니다. 반응성은 낮아지지만 성능이 좋아집니다.
- osu! activated: 현재 osu! 창에 포커스가 올 때 갱신합니다.
- Hotkey down: 새로고침 단축키를 눌렀을 때 갱신합니다.
- Behavior: Geometry Dashboard의 추가 동작을 설정합니다.
- Minimal diff: 가상 오브젝트를 합칠 만큼 가까운 거리입니다.
- Keep running: 다른 도구를 열어도 Geometry Dashboard를 계속 실행합니다.
- See playfield: 편집기 위에 플레이필드 경계를 표시합니다.
- Debug: 편집기 위에 편집기 경계를 표시합니다. 이 옵션을 켜도 편집기가 보이지 않는다면 편집기가 감지 범위 밖에 있다는 뜻입니다.
가상 기하 도형 옵션
편집기에 표시되는 각 가상 오브젝트 유형은 색, 불투명도, 두께, 선의 점선 여부를 설정할 수 있습니다. 이렇게 하면 오브젝트를 더 쉽게 구분할 수 있습니다.
- Color: 테두리 색입니다. 색 선택기에서 복사할 수도 있습니다(HEX 값을 클릭하면 복사됩니다).
- Opacity: 오브젝트의 투명도입니다.
- Thickness: 가상 오브젝트 윤곽선을 이루 는 선의 두께입니다.
- Dash: 윤곽선을 점선 또는 실선으로 표시할지 설정합니다.
Savestates
Savestates는 단축키 프로필과 비슷합니다. 생성기마다 설정을 수동으로 바꿀 필요 없이 프로필을 빠르게 전환할 수 있습니다. Savestate에 단축키를 지정해 더 빠르게 바꿀 수도 있습니다.
새 savestate를 만들려면 + 아이콘을 누르세요. 이름과 단축키를 지정할 수 있습니다. 저장 또는 불러오기 버튼으로 현재 설정을 저장하거나 변경할 수 있습니다.