@@ -10,25 +10,111 @@ public class Live2DCharacterConfig : ScriptableObject
1010 [ Serializable ] 
1111 public  class  EmotionMapping 
1212 { 
13+  [ Header ( "감정 설정" ) ] 
14+  [ Tooltip ( "감정 키입니다. 서버에서 전송되는 감정 값과 일치해야 합니다." ) ] 
1315 public  string  emotionKey ; 
16+ 17+  [ Tooltip ( "Live2D Expression 이름입니다. 모델의 표정 파일명과 일치해야 합니다." ) ] 
1418 public  string  expressionName ; 
19+ 20+  [ Header ( "기본값" ) ] 
21+  [ Tooltip ( "감정의 기본 강도입니다. (0.0 ~ 1.0)" ) ] 
22+  [ Range ( 0f ,  1f ) ] 
1523 public  float  defaultIntensity  =  0.5f ; 
24+ 25+  [ Tooltip ( "감정의 기본 지속시간입니다. (밀리초)" ) ] 
26+  [ Range ( 500 ,  10000 ) ] 
1627 public  int  defaultDurationMs  =  2000 ; 
1728 } 
1829
1930 [ Serializable ] 
2031 public  class  ActionMapping 
2132 { 
33+  [ Header ( "행동 설정" ) ] 
34+  [ Tooltip ( "행동 키입니다. 서버에서 전송되는 행동 값과 일치해야 합니다." ) ] 
2235 public  string  actionKey ; 
36+ 37+  [ Tooltip ( "Live2D 모션 그룹 이름입니다." ) ] 
2338 public  string  motionGroup ; 
39+ 40+  [ Tooltip ( "Live2D 모션 파일 이름입니다." ) ] 
2441 public  string  motionName ; 
2542 } 
2643
27-  public  string  characterId ; 
28-  public  GameObject  characterPrefab ; 
29-  public  ModelConfig  modelConfig ; 
30-  public  List < EmotionMapping >  emotionMappings  =  new  List < EmotionMapping > ( ) ; 
31-  public  List < ActionMapping >  actionMappings  =  new  List < ActionMapping > ( ) ; 
44+  [ Header ( "[ 캐릭터 기본정보 ]" ) ] 
45+  [ Space ( 5 ) ] 
46+  [ Tooltip ( "캐릭터 고유 ID" ) ] 
47+  [ SerializeField ]  private  string  characterId ; 
48+ 49+  [ Tooltip ( "캐릭터 이름" ) ] 
50+  [ SerializeField ]  private  string  characterName ; 
51+ 52+  [ Tooltip ( "Live2D 캐릭터 프리팹 (Cubism 모델 포함)" ) ] 
53+  [ SerializeField ]  private  GameObject  characterPrefab ; 
54+ 55+ 56+  [ Tooltip ( "캐릭터 썸네일 이미지" ) ] 
57+  [ SerializeField ]  private  Texture2D  thumbnail ; 
58+ 59+  [ Tooltip ( "캐릭터 설명" ) ] 
60+  [ SerializeField ,  Multiline ]  private  string  characterDescription ; 
61+ 62+  [ Space ( 5 ) ] 
63+  [ Header ( "────────────────────────────────────────" ) ] 
64+  [ Header ( "[ 행동/표정 ]" ) ] 
65+  [ Space ( 2 ) ] 
66+  [ Tooltip ( "감정 → Live2D Expression 매핑" ) ] 
67+  [ SerializeField ]  private  List < EmotionMapping >  emotionMappings  =  new  List < EmotionMapping > ( ) ; 
68+ 69+  [ Tooltip ( "행동 → Live2D Motion 매핑" ) ] 
70+  [ SerializeField ]  private  List < ActionMapping >  actionMappings  =  new  List < ActionMapping > ( ) ; 
71+ 72+  [ Space ( 5 ) ] 
73+  [ Header ( "────────────────────────────────────────" ) ] 
74+  [ Header ( "[ 시선 설정 ]" ) ] 
75+  [ Space ( 2 ) ] 
76+ 77+  [ Tooltip ( "시선 추적 사용 여부" ) ] 
78+  [ SerializeField ]  private  bool  isLockAtActive  =  true ; 
79+ 80+  [ Tooltip ( "시선 민감도 (값이 클수록 회전이 커짐)" ) ] 
81+  [ Range ( 0f ,  30f ) ] 
82+  [ SerializeField ]  private  float  lookSensitivity  =  1.0f ; 
83+ 84+  [ Tooltip ( "시선 반응 속도 (값이 작을수록 빠름)" ) ] 
85+  [ Range ( 0f ,  5f ) ] 
86+  [ SerializeField ]  private  float  lockAtDamping  =  0.0f ; 
87+ 88+  [ Space ( 5 ) ] 
89+  [ Header ( "────────────────────────────────────────" ) ] 
90+  [ Header ( "[ 립싱크 설정 ]" ) ] 
91+  [ Space ( 2 ) ] 
92+ 93+  [ Tooltip ( "음량 배수 (1 = 기본)" ) ] 
94+  [ Range ( 1f ,  10f ) ] 
95+  [ SerializeField ]  private  float  gain  =  1f ; 
96+ 97+  [ Tooltip ( "입 움직임 부드러움 (값이 클수록 부드럽지만 부하 증가)" ) ] 
98+  [ Range ( 0f ,  1f ) ] 
99+  [ SerializeField ]  private  float  smoothing  =  1f ; 
100+ 101+  // 캐릭터 기본정보 
102+  public  string  CharacterId  =>  characterId ; 
103+  public  string  CharacterName  =>  characterName ; 
104+  public  GameObject  CharacterPrefab  =>  characterPrefab ; 
105+  public  Texture2D  Thumbnail  =>  thumbnail ; 
106+  public  string  CharacterDescription  =>  characterDescription ; 
107+ 108+  // 행동/표정 
109+  public  List < EmotionMapping >  EmotionMappings  =>  emotionMappings ; 
110+  public  List < ActionMapping >  ActionMappings  =>  actionMappings ; 
111+ 112+  // 세부 설정 
113+  public  bool  IsLockAtActive  =>  isLockAtActive ; 
114+  public  float  LookSensitivity  =>  lookSensitivity ; 
115+  public  float  LockAtDamping  =>  lockAtDamping ; 
116+  public  float  Gain  =>  gain ; 
117+  public  float  Smoothing  =>  smoothing ; 
32118 } 
33119} 
34120
0 commit comments