- EyeBlinkController
- model3.json 의 Groups 에 "EyeBlink 파라미터" 가 안지정 되있으면...
- 직접 해당 Parameter 에 "EyeBlinkParameter 컴포넌트" 를 추가 해도 됨!
- "Blend Mode" 를 'Multiply' (곱하기) 으로해야? 그 파람인스펙터 랑 충돌의 피할수 있다?
- EyeBlinkParameter
- EyeL, EyeR
- AutoEyeBlinkInput
- Max값적용 및 깜빡속도랜덤화
-
# CubismAutoEyeBlinkInput.cs 코드 수정 public float Timescale = 10f; public float MinTimescale = 2.0f; public float MaxTimescale = 20.0f; private CubismEyeBlinkController Controller { get; set; } private float MaxEyeOpening = 1.0f; private void Start() { Controller = GetComponent<CubismEyeBlinkController>(); MaxEyeOpening = Controller.EyeOpening; } private void LateUpdate() { ... if (CurrentPhase == Phase.Idling) // 뜬채로 가만히 있는 상태 { T -= Time.deltaTime; // Mean(+-Deviation) 만큼 대기 if (T < 0f) // 뜬채로 있다가... 이제 감으려고 하는 상황 { T = (Mathf.PI * -0.5f); LastValue = MaxEyeOpening; // 뜬채의 최대값이 MaxEyeOpening 임 CurrentPhase = Phase.ClosingEyes; Timescale = Random.Range(MinTimescale, MaxTimescale); // 깜빡속도 자연스럽게 } else { return; } } // Timescale 은 깜빡속도 그리고 0.0 < value < 1.0 그리고 LastValue 는 방금값 T += (Time.deltaTime * Timescale); var value = Mathf.Abs(Mathf.Sin(T)); // MaxEyeOpening 를 만들어서, 내가정한 EyeOpening계수 최대치를 넘지안도록 하게한다. if (value > MaxEyeOpening) { value = MaxEyeOpening; } // 감는 중이였고, 이제 다 감아서~ 뜨려고 하는 상황 if (CurrentPhase == Phase.ClosingEyes && value > LastValue) { CurrentPhase = Phase.OpeningEyes; } // 트는 중이였고, 이제 다 터서~ 감으려고 하는 상황 else if (CurrentPhase == Phase.OpeningEyes && value < LastValue) { value = MaxEyeOpening; CurrentPhase = Phase.Idling; T = Mean + Random.Range(-MaximumDeviation, MaximumDeviation); } Controller.EyeOpening = value; LastValue = value; }
- MouthController
- model3.json 의 Groups 에 "LipSync 파라미터" 가 안지정 되있으면...
- 직접 해당 Parameter 에 "MouthParameter 컴포넌트" 를 추가 해도 됨!
- "Blend Mode" 를 'Override' 으로해서~ 그냥 무조건 직접 컨트롤 하는게 좋을듯~
- MouthParameter
- MouthOpenY
- AudioMouthInput
- .wav 립씽크 = AudioSource 미리 연결 해두고 -> audioSource.play() 만 제어해도 될듯.
- Gain=3.2 , Smoothing=0.12
- HarmonicMotionController
- 적용하고자 하는 Parameter 에 "HarmonicMotionParameter 컴포넌트" 를 추가 해야 됨!
- "Blend Mode" 를 'Additive' 으로 함... (적당히 +- 하는게 젤 자연스러울듯?)
- HarmonicMotionParameter
- Angle X : center, 0.5, 0.1, 3.1
- Angle Y : center, 0.5, 0.1, 7.2
- Angle Z : center, 0.5, 0.1, 2.3
BrowRY : right, 0.4, 0.2, 5.1BrowLY : left, 0.4, 0.2, 5.2BrowRA : right, 0.3, 0.3, 5.3BrowLA : left, 0.3, 0.3, 5.4- BodyAngle X : center, 0.5, 0.1, 2.4
- BodyAngle Y : center, 0.5, 0.1, 6.5
- BodyAngle Z : center, 0.5, 0.1, 3.6
- Breath : center, 0.5, 0.5, 0.5
- P : center, 0.5, 0.5, 3.0
- PhysicsController
- Rig.Gravity 및 Rig.Wind 값을 조절하면... 자연스러운? 헤어 효과???
- Fps 도 알맞게 셋팅???
- Sub Rigs 에 해당되는 Elements 잡아 줘야 하는듯!!!
- // TODO : ...
-
# CubismPhysicsController.cs 에 아래의 메소드 추가 public CubismPhysicsRig GetRig() { return _rig; } # 메인코드.cs 에서 아래와 같이 적용 private Live2D.Cubism.Framework.Physics.CubismPhysicsController cubismPhysicsController; private Live2D.Cubism.Framework.Physics.CubismPhysicsRig cubismPhysicsRig; void Start() { cubismPhysicsController = GetComponent<Live2D.Cubism.Framework.Physics.CubismPhysicsController>(); cubismPhysicsRig = cubismPhysicsController.GetRig(); } void Update() { cubismPhysicsRig.Wind = new Vector2(Random.Range(-1.0f, 1.0f), Random.Range(-1.0f, 1.0f)); }
- ...
-끝-
'멀티미디어' 카테고리의 다른 글
ffmpeg2 (0) | 2023.06.27 |
---|---|
unity4 (0) | 2023.05.22 |
unity3 (0) | 2023.03.15 |
Live2D Cubism SDK (0) | 2022.10.28 |
Live2D Cubism (0) | 2022.08.28 |