Skip to content

Commit 082446d

Browse files
committed
feat: 모델 수정
1 parent f7c91c9 commit 082446d

15 files changed

+298
-41
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,4 @@ InitTestScene*.unity*
120120
/Assets/Plugins/FiveMinuteChat
121121
/Assets/Plugins/WebGLTemplates
122122
/Assets/Domain/Character/Model/Chikuwa/ziraitikuwa
123+
/Assets/Domain/Character/Model/Chikuwa/model

Assets/App/Scenes/MainSence.unity

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ Camera:
271271
far clip plane: 1000
272272
field of view: 60
273273
orthographic: 1
274-
orthographic size: 5
274+
orthographic size: 1
275275
m_Depth: -1
276276
m_CullingMask:
277277
serializedVersion: 2
@@ -525,7 +525,7 @@ AudioSource:
525525
m_GameObject: {fileID: 622824876}
526526
m_Enabled: 1
527527
serializedVersion: 4
528-
OutputAudioMixerGroup: {fileID: 0}
528+
OutputAudioMixerGroup: {fileID: 24300002, guid: 3bf46f7daa3260847aa1b964ad2b01a7, type: 2}
529529
m_audioClip: {fileID: 0}
530530
m_Resource: {fileID: 0}
531531
m_PlayOnAwake: 1
@@ -757,6 +757,8 @@ MonoBehaviour:
757757
m_Script: {fileID: 11500000, guid: 6ae88dd8c9dcaab448ad7d8834e80f8e, type: 3}
758758
m_Name:
759759
m_EditorClassIdentifier:
760+
_modelTransform: {fileID: 873552999}
761+
_modelRegistry: {fileID: 11400000, guid: cf68d9632ab0d2c42a02de12beecadff, type: 2}
760762
--- !u!4 &873552999
761763
Transform:
762764
m_ObjectHideFlags: 0

Assets/Core/Audio/AudioManager.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class AudioManager : Singleton<AudioManager>
4444
public event Action<float>? OnSfxVolumeChanged;
4545
public event Action<float>? OnUiVolumeChanged;
4646
public event Action<float>? OnVoiceVolumeChanged;
47+
public event Action? OnInitialized;
4748

4849
#region Unity Lifecycle
4950

@@ -76,6 +77,7 @@ public void Initialize()
7677
LoadVolumeSettings();
7778

7879
_isInitialized = true;
80+
OnInitialized?.Invoke();
7981
Debug.Log("[AudioManager] 초기화 완료");
8082
}
8183
catch (Exception ex)
@@ -249,6 +251,11 @@ public int GetActiveUICount()
249251
return 0;
250252
}
251253

254+
public VoiceController? GetVoiceController()
255+
{
256+
return _voiceController;
257+
}
258+
252259
#endregion
253260

254261
#region Private Methods

Assets/Resources/Character/Character-Zero.asset renamed to Assets/Domain/Character/Model/Chikuwa/Character-Zero.asset

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ MonoBehaviour:
1414
m_EditorClassIdentifier:
1515
characterId: zero
1616
characterName: "\uC81C\uB85C"
17-
characterPrefab: {fileID: 403089766806550510, guid: 611b9f4305cdce9458ff7eaead5c0a53, type: 3}
18-
thumbnail: {fileID: 2800000, guid: 17a1333e87a81c34693569503c7ba213, type: 3}
17+
characterPrefab: {fileID: 8051974178353762967, guid: 9be43d9f8e24d634186c522ebce74618, type: 3}
18+
thumbnail: {fileID: 2800000, guid: e029dae0a0b46124ba7b0b6b2ac00a76, type: 3}
1919
characterDescription: "\uCE58\uC640\uC9F1 \uBAA8\uB378 \uAE30\uBC18"
2020
emotionMappings:
2121
- emotionKey:
@@ -29,5 +29,13 @@ MonoBehaviour:
2929
isLockAtActive: 0
3030
lookSensitivity: 1
3131
lockAtDamping: 0
32-
gain: 1
32+
useLipSync: 1
33+
gain: 10
3334
smoothing: 1
35+
useAutoEyeBlink: 1
36+
eyeBlinkMean: 2.5
37+
eyeBlinkMaximumDeviation: 2
38+
eyeBlinkTimescale: 10
39+
eyeBlinkClosingSeconds: 1
40+
eyeBlinkClosedSeconds: 0.5
41+
eyeBlinkOpeningSeconds: 1.5

Assets/Domain/Character/Model/Chikuwa/ziraitikuwa.meta renamed to Assets/Domain/Character/Model/Chikuwa/model.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 403ae2dd693bb1d4b924f6b8d206b053, type: 3}
13+
m_Name: Model.fadeMotionList
14+
m_EditorClassIdentifier:
15+
MotionInstanceIds:
16+
CubismFadeMotionObjects:
17+
- {fileID: 0}

Assets/Resources/Character.meta renamed to Assets/Domain/Character/Model/Model.fadeMotionList.asset.meta

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

Assets/Domain/Character/Script/Config/Live2DModelConfig.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ public class ActionMapping
9090
[Header("[ 립싱크 설정 ]")]
9191
[Space(2)]
9292

93+
[Tooltip("립싱크 사용 여부")]
94+
[SerializeField] private bool useLipSync = true;
95+
9396
[Tooltip("음량 배수 (1 = 기본)")]
9497
[Range(1f, 10f)]
9598
[SerializeField] private float gain = 1f;
@@ -98,6 +101,40 @@ public class ActionMapping
98101
[Range(0f, 1f)]
99102
[SerializeField] private float smoothing = 1f;
100103

104+
[Space(5)]
105+
[Header("────────────────────────────────────────")]
106+
[Header("[ 자동 애니메이션 설정 ]")]
107+
[Space(2)]
108+
109+
[Tooltip("자동 눈 깜빡임 사용 여부")]
110+
[SerializeField] private bool useAutoEyeBlink = true;
111+
112+
[Header("눈 깜빡임 타이밍 설정")]
113+
[Tooltip("눈 깜빡임 간격의 평균 시간 (초)")]
114+
[Range(1f, 10f)]
115+
[SerializeField] private float eyeBlinkMean = 2.5f;
116+
117+
[Tooltip("평균에서의 최대 편차 (초)")]
118+
[Range(0.5f, 5f)]
119+
[SerializeField] private float eyeBlinkMaximumDeviation = 2f;
120+
121+
[Tooltip("눈 깜빡임 시간 스케일")]
122+
[Range(1f, 20f)]
123+
[SerializeField] private float eyeBlinkTimescale = 10f;
124+
125+
[Header("눈 깜빡임 동작 세부 설정")]
126+
[Tooltip("눈을 감는 동작 시간 (초)")]
127+
[Range(0.1f, 3f)]
128+
[SerializeField] private float eyeBlinkClosingSeconds = 1.0f;
129+
130+
[Tooltip("눈이 감긴 상태 지속 시간 (초)")]
131+
[Range(0.1f, 2f)]
132+
[SerializeField] private float eyeBlinkClosedSeconds = 0.5f;
133+
134+
[Tooltip("눈을 여는 동작 시간 (초)")]
135+
[Range(0.1f, 3f)]
136+
[SerializeField] private float eyeBlinkOpeningSeconds = 1.5f;
137+
101138
// 캐릭터 기본정보
102139
public string CharacterId => characterId;
103140
public string CharacterName => characterName;
@@ -120,6 +157,16 @@ public class ActionMapping
120157
public float LockAtDamping => lockAtDamping;
121158
public float Gain => gain;
122159
public float Smoothing => smoothing;
160+
public bool UseLipSync => useLipSync;
161+
public bool UseAutoEyeBlink => useAutoEyeBlink;
162+
163+
// 눈 깜빡임 설정
164+
public float EyeBlinkMean => eyeBlinkMean;
165+
public float EyeBlinkMaximumDeviation => eyeBlinkMaximumDeviation;
166+
public float EyeBlinkTimescale => eyeBlinkTimescale;
167+
public float EyeBlinkClosingSeconds => eyeBlinkClosingSeconds;
168+
public float EyeBlinkClosedSeconds => eyeBlinkClosedSeconds;
169+
public float EyeBlinkOpeningSeconds => eyeBlinkOpeningSeconds;
123170
}
124171
}
125172

Assets/Domain/Character/Script/Facade/CharacterFacade.cs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using UnityEngine;
33
using UnityEngine.TextCore.Text;
44
using ProjectVG.Domain.Character.Component;
5+
using ProjectVG.Core.Audio;
56

67
namespace ProjectVG.Domain.Character.Service
78
{
@@ -13,7 +14,6 @@ public class CharacterFacade : MonoBehaviour, ICharacterFacade
1314
[SerializeField] private Transform _modelTransform;
1415
[SerializeField] private Live2DModelRegistry _modelRegistry;
1516

16-
1717
private ICharacterModelManager _modelManager;
1818
private ICharacterActionService _actionService;
1919
private ICharacterActionResolver _actionResolver;
@@ -39,7 +39,12 @@ public void Initialize()
3939
_modelManager = gameObject.AddComponent<CharacterModelManager>();
4040
Debug.Log($"[CharacterFacade] CharacterModelManager가 자동으로 추가되었습니다: {gameObject.name}");
4141
}
42-
_modelManager.Initialize(_modelTransform, _modelRegistry);
42+
43+
// AudioManager에서 Voice AudioSource 가져오기
44+
var voiceAudioSource = GetVoiceAudioSource();
45+
46+
_modelManager.Initialize(_modelTransform, _modelRegistry, voiceAudioSource);
47+
4348
_modelManager.LoadModel("zero", true); // 임시 활성화
4449

4550
if (_modelTransform != null) {
@@ -161,6 +166,33 @@ public void Shutdown()
161166
_modelManager.UnloadAll();
162167
}
163168
}
169+
170+
171+
172+
/// <summary>
173+
/// AudioManager에서 Voice AudioSource를 가져온다.
174+
/// </summary>
175+
private AudioSource? GetVoiceAudioSource()
176+
{
177+
var audioManager = AudioManager.Instance;
178+
if (audioManager != null && audioManager.IsInitialized)
179+
{
180+
var voiceController = audioManager.GetVoiceController();
181+
if (voiceController != null)
182+
{
183+
var audioSource = voiceController.GetAudioSource();
184+
if (audioSource != null)
185+
{
186+
Debug.Log("[CharacterFacade] Voice AudioSource 가져오기 완료");
187+
return audioSource;
188+
}
189+
}
190+
}
191+
192+
Debug.LogWarning("[CharacterFacade] AudioManager가 초기화되지 않았거나 Voice AudioSource를 찾을 수 없습니다.");
193+
return null;
194+
}
164195
}
165196
}
166197

198+

0 commit comments

Comments
 (0)