- https://docs.live2d.com/ko/cubism-sdk-manual
- Original Workflow
- C++, Typescript, Java 사용방법
- SDK for Unity
- WebGL 주의점 : 멀티스레딩을 지원X -> 샘플 등의 "AsyncBenchmark" 사용시엔 Async 비활성화 필요함!
- Update() Vs LateUpdate()
- 모델의 파라미터값 제어시 LateUpdate~OnPreRender 사이에 적용된다고 함.
- Unity 빌트인 기능 Animator, Playable API를 이용하는데... Update~LateUpdate 사이에 적용된다고 함.
- 따라서, 파라미터값을 Update 때 하면, AnimationClip 으로 덮어질수있는것이다.
- (※ 각 프레임에서 "파라미터값 -> 모델갱신처리" 는 CubismModel.OnRenderObject() 으로 실시됨)
- (※ CubismModel.OnRenderObject()는 Scene에 배치된 각 Camera가 렌더링을 마친 타이밍에 호출됨)
- (※ 즉, Scene에 여러 Camera가 배치되 있으면... 그 수 만큼 호출됨)
- [「Scriptable Render Pipeline」== 렌더링 '설정' 및 '실행' 을 C# 스크립트로 제어]
- SRP 사용시, OnRenderObject() 가 호출되지 않아서~ PlayerLoop 등으로 대응 해야 한다고함...
- SDK 버그
- Unity 이벤트 함수
- LateUpdate() 같은 "Unity 이벤트 함수" 에서 각 컴포넌트 업데이트를 하는데... 이 비용이 만만치 않음.
- 그래서 여러게의 모델을 처리할 경우, 퍼포먼스가 안나올수 있다고 함.
- 이럴경우 각 컴포넌트의 업데이트를 하나의 Controller에서 호출하는 식으로 하는것이 좋다고 함.
- CubismUpdateController 참고.
- 마스크용 텍스쳐
- Prefab 을 그대로 AssetBundle로 설정한뒤...
- AssetBundle 부터 모델의 생성과 파기를 반복하면, 텍스쳐가 계속 남아 메모리 누수 일어난다고 함;;;
- CubismMaskController 참고.
- Unity 이벤트 함수
- 마스크 사용 상한
- ...
- Framework
- EyeBlink, HarmonicMotion, MouthMovement
- LookAt, Raycasting(충돌감지), UserData(사용자 아트메쉬 데이터)
- OW : "Live2D Cubism Components" 페이지에 작성
- Sample
- LookAt : ...
- Masking(???)
- MultipleModels : "CubismRenderController -> Sorting -> Order In Layer" 순서셋팅
- PerspectiveCamera : 카메라 Zoom In/Out
- CubismRenderController -> sorting -> Mode -> Back To Front Order
- MainCamera -> Camera -> Projection -> Perspective
- Raycasting(충돌감지) : ...
- Unity Samples 확장판 (신기능)
- https://github.com/Live2D-Garage/CubismUnitySamplesExtended
- Following : 오브젝트가 메쉬를 따라갑니다.
- # TODO : ...
- FollowingCollider : 콜라이더가 메쉬를 따라갑니다.
- # TODO : ...
- SetTexture : 텍스쳐 스위칭.
- # TODO : ...
- FAQ
- Q. 스키닝의 물리 연산이 SDK상에서 생각한 것처럼 흔들리지 않습니다.
- Q. Cubism SDK for Web에서 여러 모델을 표시하면 일부 모델이 업데이트되지 않습니다. 어떻게 해야 하나요?
- Q. 반투명 부분이 거무스름 or 발광
- Q. 눈에 띄게 들쭉날쭉하다, 경계가 울퉁불퉁하다
- Q. 희미한 경계선이 생긴다
- Q. 해상도가 낮다(일부)
- https://docs.live2d.com/ko/cubism-sdk-tutorials
- 0) 모델 애니메이트 및 (tts.wav) 립싱크 셋팅
- 해당 모델의 AnimatorController 클릭 -> Animator 화면 <- 원하는 (motion) AnimationClip 추가.
- 특정 AnimationClip 클릭 -> 해당 Animation 화면 -> MouthOpenY 제거.
- 해당 모델의 MouthController 컴포넌트 -> Override 셋팅
- 해당 모델에 AudioMouthInput 및 AudioSource 컴포넌트 추가
- 0) 모델 파라미터 업데이트 정보
- _model = this.FindCubismModel();
- _paramAngleZ = _model.Parameters.FindById("PARAM_ANGLE_Z");
- _paramAngleZ.BlendToValue(CubismParameterBlendMode.Override, 값) ;
- _paramAngleZ.BlendToValue(CubismParameterBlendMode.Additive, 값) ;
- _paramAngleZ.BlendToValue(CubismParameterBlendMode.Multiply, 값) ;
- 1) 충돌 감지 설정
- 2) 시선 추적 설정
- 6) 모델의 Drawable 사이에 다른 스프라이트를 끼웁
- 9) 스크립트에서 모션 재생
- CubismMotionController 및 Animator 컴포넌트를 사용하여 애니메이션을 재생.
- (Animator의 AnimatorController를 사용한 모션 재생과 공존X)
- [절차]
- CubismMotionController 추가 (Layer Count: 애니메이션 레이어의 총수)
- Animator 의 Contorller 은 None 으로 유지
- CubismFadeController 의 FadeMotionList 셋팅.
- [코드]
- CubismMotionController _motionController = GetComponent<CubismMotionController>();
- AnimationClip animation = 원하는 클립 ;
- _motionController.PlayAnimation(animation, isLoop: false);
- 11) .cdi3.json 사용
- Parameters 란 특정 파람의"Cubism Display Info Parameter Name" 값 수정으로 편하게 네이밍 관리 가능!
- Original Workflow
- Mecanim에서 모션 페이드 유효화
- ...
- 표정 기능 사용
- CubismExpressionController
- Expression List
- Current Expression Index
- Legacy Blend Cal... : ???
- CubismExpressionController
- Pose 기능 사용
- ...
- Mecanim에서 모션 페이드 유효화
- 문제 해결
- 1) AssetBundle 에서 모델을 사용할 때 메모리 누수 문제 및 해결
- 2) 모델 그리기 순서 정상화
- Camera Projection 설정이 기본적으로는 "Orthographic" 인데...
- 3D 모델과 같은 카메라로 표시하고 싶은 경우~
- “Perspective” 및 RenderController = "Back To Front Order" 으로 해야 정상적으로 그려짐!
- % 모델 그리기 Mode가 “Back To Front Z”이면 작은 수치(1 또는 2)로 겹치는 문제가 해결됩니다.
- % 모델 그리기 Mode가 “Back To Front Order”이면 어느 정도 큰 수치(100이나 200)가 필요합니다.
- 3) Mecanim 표정·포즈 전환
- 3) Mecanim포즈 전환 시의 주의점
- ...
- 4) 페이드를 유효화하여 모션을 반복 재생 {Animator}
- 4) 페이드를 유효화하여 모션을 반복 재생 {CubismMotionController}
- (모션을 루프 재생하는 경우 종단으로부터 선두로 돌아올 때에 페이드는 발생하지 않는 상황)
- ...
-끝-
'게임' 카테고리의 다른 글
Live2D Cubism Components (0) | 2023.03.15 |
---|---|
unity3 (0) | 2023.03.15 |
Live2D Cubism (0) | 2022.08.28 |
Ready Player ME (0) | 2022.08.27 |
unity2 (0) | 2022.08.08 |