Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7c91c9

Browse files
committed
feat: 모델 기준에 맞게 스크린 해상도 조정
1 parent dda40f7 commit f7c91c9

18 files changed

+1564
-38
lines changed
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# Live2D 모델 해상도별 크기 조정 시스템 가이드
2+
3+
## 개요
4+
5+
이 시스템은 다양한 해상도와 디바이스에서 Live2D 모델의 크기를 자동으로 조정하여 일관된 사용자 경험을 제공합니다.
6+
7+
## 주요 구성 요소
8+
9+
### 1. ResolutionModelScaleConfig
10+
- 해상도별 스케일 규칙을 정의하는 ScriptableObject
11+
- 자동 스케일 계산 로직 포함
12+
- PC/모바일 구분 지원
13+
14+
### 2. Live2DModelScaler
15+
- 개별 Live2D 모델에 스케일을 적용하는 컴포넌트
16+
- 해상도 변경 시 자동 스케일 조정
17+
- 원본 크기 보존 및 복원 기능
18+
19+
### 3. ResolutionManager
20+
- 전체 시스템을 관리하는 싱글톤 매니저
21+
- 모든 모델 스케일러를 중앙에서 관리
22+
- 해상도 변경 감지 및 자동 적용
23+
24+
## 사용 방법
25+
26+
### 1. 기본 설정
27+
28+
1. **ResolutionModelScaleConfig 생성**
29+
```
30+
Assets > Create > ProjectVG > Character > Resolution Model Scale Config
31+
```
32+
33+
2. **기본 설정 구성**
34+
- Reference Resolution: 기준 해상도 (예: 1920x1080)
35+
- Reference Scale: 기준 스케일 (예: 1.0)
36+
- Scale Mode: 스케일 계산 방식 선택
37+
38+
### 2. 해상도별 규칙 설정
39+
40+
```csharp
41+
// 기본 규칙들 (모바일 기준 최적화)
42+
- 모바일 기본: 0.85x 스케일
43+
- 모바일 세로 (작은 화면): 0.7x 스케일
44+
- 모바일 가로/태블릿 세로: 0.8x 스케일
45+
- 태블릿 가로: 0.9x 스케일
46+
- PC FHD (1920x1080): 1.1x 스케일
47+
- PC QHD 이상: 1.3x 스케일
48+
```
49+
50+
### 3. 자동 적용
51+
52+
1. **CharacterFacade 사용 시**
53+
- 모델 스케일러가 자동으로 추가됨
54+
- 별도 설정 불필요
55+
56+
2. **수동 적용**
57+
```csharp
58+
// Live2DModelScaler 컴포넌트 추가
59+
var scaler = modelObject.AddComponent<Live2DModelScaler>();
60+
scaler.ApplyScale();
61+
```
62+
63+
## 해상도별 상세 설정
64+
65+
### 모바일 환경
66+
- **기준 해상도**: 1080x1920 (세로 모드)
67+
- **모바일 기본**: 0.85x 스케일 (대부분의 모바일 기기)
68+
- **작은 화면**: 0.7x 스케일 (480px 이하 너비)
69+
- **가로 모드**: 0.8x 스케일 (481-768px 너비)
70+
- **고해상도**: 0.9x 스케일 (1440px 이상 너비, 2960px 이상 높이)
71+
72+
### 태블릿 환경
73+
- **태블릿 세로**: 0.8x 스케일 (481-768px 너비)
74+
- **태블릿 가로**: 0.9x 스케일 (769-1024px 너비)
75+
76+
### PC 환경
77+
- **PC FHD**: 1.1x 스케일 (1025-1920px 너비, 1080px 이하 높이)
78+
- **PC QHD+**: 1.3x 스케일 (1921px 이상 너비, 1081px 이상 높이)
79+
80+
## 스케일 계산 방식
81+
82+
### 1. HeightBased
83+
- 화면 높이를 기준으로 스케일 계산
84+
- 세로 모드에 적합
85+
86+
### 2. WidthBased
87+
- 화면 너비를 기준으로 스케일 계산
88+
- 가로 모드에 적합
89+
90+
### 3. AspectRatioBased (권장)
91+
- 종횡비를 고려한 스케일 계산
92+
- 다양한 화면 비율에 대응
93+
- 모바일과 PC 환경 모두에 최적화
94+
95+
## 설정 예시
96+
97+
### 모바일 환경 (기준)
98+
```yaml
99+
Reference Resolution: 1080x1920
100+
Reference Scale: 1.0
101+
Scale Mode: AspectRatioBased
102+
Min Scale: 0.6
103+
Max Scale: 1.5
104+
```
105+
106+
### PC 환경
107+
```yaml
108+
Reference Resolution: 1920x1080
109+
Reference Scale: 1.1
110+
Scale Mode: AspectRatioBased
111+
Min Scale: 0.6
112+
Max Scale: 1.5
113+
```
114+
115+
## 디버깅
116+
117+
### 1. 디버그 정보 활성화
118+
```csharp
119+
// ResolutionManager에서
120+
showDebugInfo = true;
121+
122+
// Live2DModelScaler에서
123+
showDebugInfo = true;
124+
```
125+
126+
### 2. 현재 상태 확인
127+
```csharp
128+
var info = ResolutionManager.Instance.GetCurrentResolutionInfo();
129+
Debug.Log($"해상도: {info.Resolution}, 스케일: {info.Scale}");
130+
```
131+
132+
## 고급 기능
133+
134+
### 1. 수동 스케일 설정
135+
```csharp
136+
var scaler = GetComponent<Live2DModelScaler>();
137+
scaler.SetManualScale(1.5f);
138+
```
139+
140+
### 2. 원본 크기 복원
141+
```csharp
142+
scaler.ResetToOriginalScale();
143+
```
144+
145+
### 3. 동적 규칙 추가
146+
```csharp
147+
// 런타임에 규칙 추가 가능
148+
var config = Resources.Load<ResolutionModelScaleConfig>("ResolutionModelScaleConfig");
149+
// 규칙 수정 후 적용
150+
```
151+
152+
## 주의사항
153+
154+
1. **Resources 폴더**
155+
- ResolutionModelScaleConfig는 반드시 Resources 폴더에 위치해야 함
156+
- 기본 경로: `Assets/Resources/ResolutionModelScaleConfig.asset`
157+
158+
2. **성능 고려**
159+
- 해상도 변경 감지는 Update에서 수행
160+
- 불필요한 경우 `applyOnResolutionChange = false` 설정
161+
162+
3. **스케일 범위**
163+
- Min/Max Scale 범위를 적절히 설정
164+
- 너무 극단적인 값은 피하기
165+
166+
## 실제 사용 예시
167+
168+
### 일반적인 해상도별 결과
169+
```csharp
170+
// iPhone SE (375x667) - 모바일 세로 (작은 화면)
171+
// 스케일: 0.7x
172+
173+
// iPhone 12 (390x844) - 모바일 기본
174+
// 스케일: 0.85x
175+
176+
// 모바일 고해상도 (1440x2960) - 모바일 고해상도
177+
// 스케일: 0.9x
178+
179+
// iPad (768x1024) - 태블릿 세로
180+
// 스케일: 0.8x
181+
182+
// iPad 가로 (1024x768) - 태블릿 가로
183+
// 스케일: 0.9x
184+
185+
// PC FHD (1920x1080) - PC FHD
186+
// 스케일: 1.1x
187+
188+
// PC QHD (2560x1440) - PC QHD+
189+
// 스케일: 1.3x
190+
```
191+
192+
### 디버그 정보 확인
193+
```csharp
194+
// 현재 해상도 정보 출력
195+
var info = ResolutionManager.Instance.GetCurrentResolutionInfo();
196+
Debug.Log($"현재 해상도: {info.Resolution}");
197+
Debug.Log($"적용된 스케일: {info.Scale:F2}");
198+
Debug.Log($"종횡비: {info.AspectRatio:F2}");
199+
Debug.Log($"모바일 여부: {info.IsMobile}");
200+
```
201+
202+
## 문제 해결
203+
204+
### 1. 스케일이 적용되지 않는 경우
205+
- ResolutionModelScaleConfig가 Resources 폴더에 있는지 확인
206+
- Live2DModelScaler 컴포넌트가 추가되었는지 확인
207+
- 디버그 정보를 활성화하여 로그 확인
208+
209+
### 2. 스케일이 예상과 다른 경우
210+
- Reference Resolution과 Reference Scale 설정 확인
211+
- Scale Mode 설정 확인
212+
- 해상도별 규칙 우선순위 확인
213+
214+
### 3. 성능 문제
215+
- `autoDetectScalers = false` 설정
216+
- 필요한 경우에만 수동으로 스케일러 등록
217+
218+
### 4. 특정 해상도에서 문제가 있는 경우
219+
```csharp
220+
// 특정 해상도에 대한 스케일 확인
221+
var config = Resources.Load<ResolutionModelScaleConfig>("ResolutionModelScaleConfig");
222+
var testResolution = new Vector2(1920, 1080);
223+
var scale = config.CalculateScaleForResolution(testResolution);
224+
Debug.Log($"1920x1080에서의 스케일: {scale:F2}");
225+
```

‎Assets/Resources/Character/Model.meta‎ renamed to ‎Assets/Docs/Guides/Live2D_Resolution_Scaling_Guide.md.meta‎

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /