립싱크

[마지막 갱신일: 2019/01/18]

 

립싱크 파라미터 식별

립싱크 효과를 사용하면 모델에 립싱크 동작을 적용할 수 있습니다.
립싱크 이펙트를 적용하기 위해서 다음의 처리를 실시합니다.

・.model3.json 파일에 기술 된 립 싱크 효과의 값을 적용하는 파라미터와의 대응

・음성 입력, 모션, 그 외의 방법으로 립싱크 이펙트에 수치를 건네준다

이 중, .model3.json 파일에 기술되는 립싱크 이펙트와 파라미터를 관련짓는 정보는,
ICubismModelSetting 클래스를 상속하는 CubismModelSettingJson 클래스를 활용하여 얻을 수 있습니다.

 

.model3.json 파일에 정의를 넣으려면 「눈 깜빡임 설정」을 확인하십시오.
Editor상에서 깜박임·립싱크 설정을 실시하고 나서 출력하면, .model3.json 파일에는 이하와 같이 기술됩니다.

 

 

립싱크를 수행하는 세 가지 방법

립싱크에 대해서는 이하의 3대로 크게 분류됩니다.

1. 실시간으로 볼륨을 취득하고 개폐도를 직접 지정하는 방식

음성 레벨을 어떠한 방법으로 취득해, 대상의 파라미터에 맞추어 척도를 맞춘 것을 지정하는 것에 의해
실시간 립싱크를 실현합니다.

Native(C++)의 CubismModel::Update 함수 또는 Web(TypeScript)의 CubismModel.update 함수 이전
Native(C++)의 CubismModel::SetParameterValue 함수 또는 Web(TypeScript)의 CubismModel.setParameterValue 함수
Native(C++)의 CubismModel::AddParameterValue 함수, 또는 Web(TypeScript)의 CubismModel.addParameterValue 함수의 제2 인수에 직접 0~1의 값을 설정하는 것으로 입의 열림 상태를 제어할 수 있습니다.

iPhone/Android2.3 이상(※)은 재생 중인 볼륨을 실시간으로 얻을 수 있습니다.
취득한 재생 중의 음량의 값을 0..1의 범위로 가공해, 그 값을 상기의 명령으로 설정하면 립싱크시킬 수 있습니다.
(표준 파라미터 설정대로 입의 개폐는 0 에서 1 의 파라미터로 작성하고 있기 때문에)

설정하는 값은 0 미만, 혹은 1 이상이라도 에러는 되지 않습니다만, 그 경우 립싱크가 올바르게 동작하지 않는 경우가 있습니다.
(※): Android2.2 이전의 경우 런타임에 재생 중인 볼륨을 얻을 수 없습니다.
다른 플랫폼에서 실시간으로 볼륨을 얻을 수 있는지 여부는 오디오 재생 라이브러리에 따라 다릅니다.

iPhone에서 얻는 방법: AVAudioPlayer 클래스
Android에서 얻는 방법: Visualizer 클래스

 

2. 립싱크용 정보를 가진 모션을 사용하는 방식

Editor에서의 작업으로 모션 자체에 음성의 움직임을 도입하는 방법입니다.
모션에 립싱크의 모션을 넣는 방법은 「BGM이나 음성을 사용한 씬의 작성」을 확인해 주십시오.
재생 전에 Native(C++)의 CubismMotion::SetEffectIds 함수, 또는 Web(TypeScript)의 CubismMotion.setEffectIds 함수를 사용해 립싱크, 눈꺼풀의 파라미터군을 세팅하면
CubismMotion 인스턴스의 파라미터 갱신 처리시에 대상의 파라미터에 옮겨놓은 다음에 모션을 재생합니다.

 

 

3. 립싱크용 정보만의 모션을 사용하는 방식(Native)

2로 취급한 모션을 전용으로 취급하는 모션 매니저를 준비해, 입만 컨트롤 하는 방법입니다.
몸이나 머리의 동작 모션과 립싱크를 나누고 싶을 때 유용합니다.

3. 립싱크 용 정보 전용 모션 사용 방법 (Web)

2로 취급한 모션을 전용으로 취급하는 모션 매니저를 준비해, 입만 컨트롤 하는 방법입니다.
몸이나 머리의 동작 모션과 립싱크를 나누고 싶을 때 유용합니다.

© 2010 - 2022 Live2D Inc.