자주하는 질문

업데이트: 2023/02/21

Q. Cubism SDK for Unity를 Unity로 가져왔지만 모델을 넣을 때 등에 DllNotFoundException이 나옵니다.
Q. 장면에 여러 모델을 배치하면 드로우 콜이 증가합니다. 어떻게 해야 하나요?
Q. Unity에서의 내보내기는 어떤 플랫폼을 지원합니까?
Q. 벤치마크가 있습니까?
Q. 저는 Cubism 2.x 사용자입니다. 2.x의 프로젝트를 3.x로 업그레이드하는 것이 좋습니까?
Q. Cubism SDK for Unity가 지원하는 Unity 버전은 무엇입니까?
Q. 프로젝트를 Unity5.x에서 Unity2017.x 이상으로 업데이트할 때 우려 사항이 있습니까?
Q. 스키닝의 물리 연산이 SDK상에서 생각한 것처럼 흔들리지 않습니다.
Q. R8 이전의 SDK를 이용한 Unity 프로젝트를 Android의 64bit에 대응시키고 싶습니다.
Q. Unity에서 런타임으로 생성된 AnimationClip을 Cubism SDK for Unity에서 사용할 수 있습니까?
Q. Cubism SDK는 IE11에서 작동합니까?
Q. Unity의 SDK를 덮어쓰기로 가져오면 CubismCore 복사가 실패합니다.
Q. 반복은 Cubism SDK에서 사용할 수 있습니까?
Q. Cubism SDK for Web에서 여러 모델을 표시하면 일부 모델이 업데이트되지 않습니다. 어떻게 해야 하나요?

Q. Cubism SDK for Unity를 Unity로 가져왔지만 모델을 넣을 때 등에 DllNotFoundException이 나옵니다.

A. Unity를 다시 시작합니다.

Cubism SDK for Unity를 처음 가져왔을 때나 업데이트했을 때 등 Unity를 다시 시작하지 않고 모델 업데이트 등을 실행하면 DllNotFoundException:Live2DCubismCore와 같은 오류가 출력됩니다.

이것은 Unity가 Cubism SDK for Unity 부속 네이티브 라이브러리를 로드하지 않았기 때문에 발생하는 오류입니다.
Unity는 네이티브 라이브러리를 시작할 때 읽으므로 이 오류가 발생하면 Unity를 다시 시작하여 동일한 오류가 발생하지 않는지 확인하십시오.
자세한 것은 여기 

Q. 장면에 여러 모델을 배치하면 드로우 콜이 증가합니다. 어떻게 해야 하나요?

A. 소팅 레이어와 소팅 오더를 사용하여 모델 정렬 순서를 정리합니다.

SDK와 함께 제공되는 CubismRenderController 컴포넌트로 정렬 값을 쉽게 설정할 수 있습니다.

Unity의 SetPass 콜은 장면에 그리는 메쉬의 텍스쳐나 셰이더 등이 변화하면 증가합니다.
모델 제작 단계에서도 SetPass가 적게 되도록 궁리하는 것이 가능하지만, 각 모델 간에서도 마찬가지로 SetPass의 증가가 발생합니다.
그 때문에, 모든 모델에서 텍스쳐나 셰이더 등의 전환도 정리할 수 있으면 SetPass 콜의 삭감을 기대할 수 있습니다.
여러 모델 간의 전환을 정리하려면 소팅 레이어와 소팅 오더를 사용합니다.

텍스쳐나 셰이더 등의 전환을 줄이는 상세 및 모델 제작 시의 주의점에 대해서는 Editor 매뉴얼의 「SDK로 모델을 취급할 때의 퍼포먼스에 대하여」를 참조해 주십시오.

Q. Unity에서의 내보내기는 어떤 플랫폼을 지원합니까?

A. 현재 Cubism SDK for Unity가 지원하는 플랫폼은 다음과 같습니다.

  Windows macOS Linux Android iOS 컨슈머
PlayStation®4 Nintendo Switch™
대응 상황

자세한 내용은 「플랫폼 지원 상황」을 참조하십시오.

Q. 벤치마크가 있습니까?

A. Cubism SDK for Unity에는 벤치마크용 샘플 장면이 포함되어 있어 각 플랫폼에서 성능을 쉽게 확인할 수 있습니다.

Native, Web에는 없습니다.

Q. 저는 Cubism 2.x 사용자입니다. 2.x의 프로젝트를 3.x로 업그레이드하는 것이 좋습니까?

A. 프로젝트의 규모와 개발 운영 기간에 따라 다릅니다.
3.0부터는 SDK의 상당한 개선으로 인해 이전 버전과 호환되지 않습니다.
Cubism 2.x의 임베디드용 모델 데이터는 3.0 SDK와 호환되지 않으며 Cubism 2.x SDK의 API는 3.0 SDK와 상위 호환되지 않습니다.
3.0 SDK를 사용하려면 모델 데이터를 3.0 Editor로 다시 내보내거나 Unity 프로젝트의 코드, 자산 등을 업그레이드해야 합니다.
따라서 프로젝트 업그레이드는 에디터와 SDK 모두가 제공하는 이점과 업그레이드 비용을 확인한 후에 결정해야 합니다.

Q. Cubism SDK for Unity가 지원하는 Unity 버전은 무엇입니까?

A. 정식으로 대응하고 있는 Unity 버전은 그 SDK가 릴리스 되었을 때 최신인 것에 대응하는 방침이므로, 정식 대응하고 있는 버전은 3.3 현재 Unity 2018.3입니다.
그 이전 버전에서의 동작은 서포트 대상 외이지만, 프리팹이나 머티리얼 등을 재작성하면 동작하는 경우가 있습니다.

SDK 패키지의 csc.rsp, mcs.rsp는 gmcs.rsp, smcs.rsp라는 파일 이름으로 바꾸면 Unity5.5에서도 사용할 수 있습니다.
자세한 내용은 여기를 참조하십시오.

Q. 프로젝트를 Unity5.x에서 Unity2017.x 이상으로 업데이트할 때 우려 사항이 있습니까?

A. Unity5.x에서 Unity2017.x 이상으로 프로젝트를 업데이트하면 Assets에 기억되지 않은 모델 Prefab의 컴포넌트가 사라집니다.
5.x에서 2017.x 이상으로 프로젝트를 업데이트하는 경우 Hierarchy의 모델을 Apply 버튼으로 업데이트 한 후 프로젝트를 올리십시오.

Q. 스키닝의 물리 연산이 SDK상에서 생각한 것처럼 흔들리지 않습니다.

A. 물리 연산의 계산은 입력되는 차분 시간(FPS)에 영향을 받습니다.

물리 연산은 파라미터나 내부 진자의 상태와 입력에 의해 계산 결과가 바뀝니다.
다단 진자 모델을 사용하는 스키닝의 물리적 연산은 특히 약간의 입력으로 계산 결과가 크게 달라집니다.
같은 동작을 원한다면 물리 연산 베이크를 한 .motion3.json 파일을 사용하십시오.

Cubism Editor의 물리 연산·장면 블렌드 설정에서의 외형과 SDK에서의 외형이 다른 경우 동작의 FPS가 다른 것이 원인으로 추정됩니다.
현재의 Cubism Editor는 실제 동작 FPS로 계산되고, 모델의 규모나 동작하는 PC의 성능에 계산 FPS는 좌우됩니다.
물리 연산의 동작을 세밀하게 채우는 경우 실제 기기상에서 확인하면서 채워 가는 것을 추천합니다.
Cubism Editor의 물리 연산이 SDK상 등과 동작을 맞추기 어려운 문제는 향후 업데이트에서 수정을 예정하고 있습니다.

Q. R8 이전의 SDK를 이용한 Unity 프로젝트를 Android의 64bit에 대응시키고 싶습니다.

A. 최신판의 SDK로부터 64bit 지원 버전의 라이브러리를 취득해 사용해 주세요.

Cubism 3 SDK for Unity R8 이전의 SDK는 Android 64bit를 지원하지 않습니다.
R8 이전의 SDK로 만든 프로젝트를 64bit에 대응시키려면 R9 이상의 Cubism SDK for Unity에서 64bit 지원 버전의 Android용 라이브러리를 가져와 프로젝트에 추가합니다.
Cubism SDK for Unity의 64bit 지원 버전 Android용 라이브러리 파일은 다음 계층에 있습니다.

/Assets/Live2D/Cubism/Plugins/Android/arm64-v8a/libLive2DCubismCore.so

또한 Cubism SDK for Native에 동봉된 Android용 라이브러리 파일은 Cubism SDK for Unity에 동봉된 것과 동등하기 때문에 Native의 64bit 지원 버전 Android용 라이브러리를 사용해도 64bit에 대응 가능합니다.
Cubism SDK for Native의 64bit 지원 버전 Android용 라이브러리 파일은 다음 계층에 있습니다.

/Core/lib/android/arm64-v8a/libLive2DCubismCore.a
/Core/dll/android/arm64-v8a/libLive2DCubismCore.so

프로젝트의 라이브러리를 추가한 경우 해당 라이브러리를 선택 상태로 하여 Inspector에서 Platform과 CPU가 올바르게 설정되어 있는지 확인합니다.

Q. Unity에서 런타임으로 생성된 AnimationClip을 Cubism SDK for Unity에서 사용할 수 있습니까?

A. Cubism SDK for Unity를 그대로 사용하는 것만으로는 작동하지 않습니다.

런타임으로 생성된 AnimationClip은 AnimatorController 또는 Playable API에서 재생할 수 없습니다.
따라서 이러한 기능을 이용하는 Cubism SDK for Unity도 지원하지 않습니다.

만약 런타임으로 생성한 AnimationClip을 사용한다면, Unity의 Animation 컴포넌트를 사용하여 재생시킬 수 있습니다.
단, Cubism SDK for Unity의 기능 「MotionFade」는 Animation 컴포넌트에 의한 모션의 재생에 대응하고 있지 않습니다.
이것은 MotionFade를 사용하지 않거나 사용자 측에서 SDK의 소스를 커스터마이즈하는 것으로 대응 가능합니다.

Cubism SDK for Unity의 MotionFade는 모션 재생에 맞춰 페이드 처리를 수행해야 하며 모션 재생 상태를 모니터링합니다.
Cubism SDK for Unity에서는 CubismFadeStateObserver, CubismMotionLayer로 재생 상태를 감시하고 있습니다.
Animation 컴포넌트의 재생 상태를 감시하는 컴포넌트를 유저 측에서 구현하는 것으로 대응시킬 수 있습니다.
모션의 재생 상태를 모니터링하는 컴포넌트는 ICubismFadeState를 구현합니다.

Q. Cubism SDK는 IE11에서 작동합니까?

A. Cubism SDK for Web은 IE11에서 동작 확인을 하고 있으며 지원 대상입니다.

Cubism SDK for Unity는 지원하는 브라우저가 Unity에 의존하는데, IE11은 동작 비추천 혹은 동작 불가가 되는 경우가 있습니다.
자세한 내용은 Unity 공식 레퍼런스를 참조하십시오. 

Q. Unity의 SDK를 덮어쓰기로 가져오면 CubismCore 복사가 실패합니다.

A. 빈 장면이나 Cubism SDK를 사용하지 않는 장면을 연 상태에서 Unity를 다시 시작합니다.

Cubism SDK for Unity의 Cubism Core는 장면에서 사용하면 Unity에 의해 참조를 가지므로 에디터에서 사용하는 Cubism Core를 대체할 수 없습니다.
Cubism Core 참조를 리셋하려면 Cubism Core를 사용하지 않는 장면(빈 장면 등)을 연 상태에서 Unity를 다시 시작합니다.

Q. 반복은 Cubism SDK에서 사용할 수 있습니까?

A. Cubism SDK에서 사용해도 오류는 발생하지 않지만 많은 기능이 의도한 동작을 하지 않습니다.

반복이 설정된 파라미터를 이용한 모션의 재생이나 물리 연산 등, 많은 기능이 의도대로 동작하지 않습니다.
Cubism SDK상에서 반복을 이용한 표현을 하고 싶은 경우는 사용자측에서 각 기능을 구현해 주실 필요가 있습니다.

반복이 설정된 파라미터가 있는 모델을 SDK에서 사용해도 오류는 발생하지 않습니다.
따라서 반복을 이용하지 않는다면 그대로 모델을 사용할 수 있습니다.

Q. Cubism SDK for Web에서 여러 모델을 표시하면 일부 모델이 업데이트되지 않습니다. 어떻게 해야 하나요?

A. CubismFramework.initialize()를 호출할 때 인수에 확보할 메모리 양을 전달합니다.

이 현상은 Emscripten이 모듈을 초기화할 때 확보하는 메모리가 적기 때문에 발생합니다.
이는 Cubism Core 측에서 더 많은 메모리를 할당함으로써 피할 수 있습니다.
확보할 메모리를 지정하려면 CubismFramework.initialize() 인수에 메모리 양을 전달합니다.

인수에 전달하는 값은 1024 * 1024 * 16 byte(16MB) 이상으로 하십시오.

CubismFramework.initialize(1024 * 1024 * 32);


다른 값을 전달하면 모두 1024 * 1024 * 16 byte로 반올림됩니다.

// 1024 * 1024 * 16
CubismFramework.initialize(256);
이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.