gohud

세 층

← 테마

프리셋 하나가 이 셋을 묶는다. 비워 둔 칸은 기본값으로 떨어진다.

무엇을 정하나바꾸는 법
Theme 색·치수·글자 크기, 그리고 엔진이 그려 주는 것의 모양 — 버튼 패널, 입력 칸, 탭, 토글 그림 .tres 를 만들거나 tools/make_theme.py 로 생성
GoSkin 코드가 직접 그리는 것의 모양 — 조이스틱, 퀵슬롯 패널, 코치마크 링, 칩, 스켈레톤, 구분선 상속해서 바꾸고 싶은 메서드만 덮어쓴다
GoIconSet 이름으로 부르는 아이콘 — 기본 84종, 또는 그 위에 각인풍 16종을 얹은 중세 세트. 텍스처 세트든 아이콘 폰트든 같은 이름으로 부른다 세트를 꽂거나 몇 개만 덮어쓴다
왜 Theme 하나로 안 되는가. StyleBoxFlat 의 모서리는 둥근 것뿐이다. 반경을 0 으로 두면 직각이고 그 사이는 없다. 사선으로 잘린 모서리도, 한쪽만 굵은 강조선도, 바깥으로 번지는 발광도 엔진이 그려 주지 않는다. 게다가 조이스틱과 코치마크는 _draw() 로 직접 그리므로 테마가 아예 닿지 못한다.

고르기

GoUi.use_preset(GoThemePresets.SCIFI_DARK)

이 한 줄이 테마·스킨·아이콘을 함께 바꾼다. 에디터에서 고르려면 프로젝트 설정 → Gohud → Theme → Preset, 설정 리소스에서는 GoConfig.preset 이다.

한 칸만 내 것으로

GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons     # 아이콘만 내 세트로, 나머지는 프리셋 그대로

theme·skin·icons 를 직접 채우면 그쪽이 프리셋보다 우선한다.

기본 제공 프리셋 여섯

프리셋패널스킨 · 아이콘
default_dark · default_light둥근 StyleBoxFlat 패널과 단계별 그림자. 강조 버튼은 떠 있다가 누르면 가라앉는다GoSkin · 기본 아이콘 84종
scifi_dark · scifi_light모서리를 자른 GoStyleBoxCut 패널, 네온 강조선과 발광, GoStyleBoxBracket 포커스 표식GoSkinSciFi — 육각 조이스틱 · 기본 아이콘
medieval_dark · medieval_light철·가죽 또는 양피지 질감의 GoStyleBoxMedieval 단조 프레임, 메뉴에만 리벳과 모서리 장식GoSkinMedieval · 기본 위에 각인풍 16종

중세: 철·가죽·양피지

medieval_dark는 어두운 철·가죽·고금색, medieval_light는 양피지·잉크 색상이다. 기존 위젯에 GoSkinMedieval을 적용하며, 16종의 각인풍 아이콘과 기존 탐색 아이콘을 함께 쓴다.

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# 또는: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)

UI를 만들기 전에 선택한다. GoConfig.theme, skin, icons의 직접 설정은 우선한다. res://addons/gohud/examples/medieval/medieval.tscn을 열고 F6을 누르면 캐릭터·인벤토리·퀘스트 예제를 실행한다. 버튼으로 두 프리셋을 전환하거나 아이템 설명을 열 수 있다.

중세 철과 가죽 테마의 캐릭터·인벤토리·퀘스트
철과 가죽
중세 양피지 테마의 캐릭터·인벤토리·퀘스트
양피지와 잉크

메뉴는 모서리 리벳과 작은 장식으로 꾸미고, 상시 HUD는 테두리를 절제한다. HP·마나·스태미나에는 빨강·파랑·올리브색 채움을 쓴다. Cinzel은 제목·부제에만 적용하고 본문은 기존 글꼴을 유지한다. 글꼴 라이선스는 assets/fonts/cinzel/OFL.txt에 포함되어 있다.

각인풍 세트는 bag·book·box·coin·crown·flag· heart·key·map·potion·shield·star· sword·user 14종을 다시 그리고 scroll·seal 을 더한다. 나머지 이름은 기본 세트로 떨어지므로 close·settings 는 어느 프리셋에서나 같은 그림이다. Cinzel 은 라틴 문자만 담으므로, 다른 문자의 제목에는 shape.fonts 로 따로 글꼴을 준다.

두 변형 모두 검사가 확인한다. 중세 스킨이 선택되는지, 메뉴와 HUD 패널이 단조 프레임이고 장식은 메뉴에만 붙는지, 제목은 Cinzel 이고 본문은 물려받은 글꼴 그대로인지, 각인 아이콘이 DPITexture 로 임포트되는지, 실제 퀵슬롯이 스킨을 쓰는지, 복사한 스킨의 다이얼을 바꾸면 프리셋은 그대로 두고 슬롯에 반영되는지, 그리고 다른 프리셋으로 돌아가면 기본·sci-fi 모양이 되돌아오는지.

나만의 왕국 만들기

python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# themes/palettes/kingdom.json 수정 후:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# 위젯을 만들기 전에 GDScript에서:
GoUi.use_preset(&"kingdom")

JSON 테마를 부모로 상속할 수 있다. 생략한 값과 아이콘 세트는 부모를 따르며 순환 상속은 오류로 알려 준다.

설정효과
shape.material0: 철 · 1: 가죽 · 2: 양피지. 표면 자국의 모양을 조절한다.
shape.grain_alpha질감의 투명도. 0이면 깨끗한 표면이다.
shape.ornament_scale · shape.bevel_strength메뉴 모서리 장식의 크기와 베벨 반사의 강도.
shape.fontstitle, subtitle, caption, body, button별로 애드온 내부 res:// 글꼴 경로를 지정한다. 생략한 역할은 부모 글꼴을 따른다.
skin.dials퀵슬롯 반경·리벳·질감·빛 반사. 아래 표에 모든 이름과 기본값이 있다.