Unity

Q. 다운로드 한 SDK의 zip파일의 압축을 해제하면 도중에 오류가 발생합니다 (플랫폼에 의존하지 않으므로 「일반」으로 이동했습니다)




    Q. Unity 무료 버전에서도 사용할 수 있습니까?
    A. 네. 무료 버전이어도 괜찮습니다.

Live2D 기능에 대해서는 특별한 제한 없이 사용할 수 있습니다.

[2015/11/02 추가]
단, 2.1부터 지원한 클리핑 마스크 기능을 사용한 모델 렌더링은, 렌더링 일부에 RenderTexture를 사용하고 있기 때문에
Unity4일 경우는 Professional버전 라이센스가 필요합니다.




    Q. 대응 플랫폼은 어떻게 되어 있습니까?
    A. Unity에서 지원하는 것이라면 어느 플랫폼에서도 사용할 수 있습니다.

[2015/11/02 추가]
2.1 이상에서 클리핑 마스크 기능의 지원 여부에 대한
자세한 내용은 Cubism2.1 각 플랫폼별 대응 을 참고해주세요.



    Q. Update 함수로 표시하려고 해도 그려지지 않습니다.
    A. OnPostRender함수, 또는 OnRenderObject함수에서 렌더링을 실행해주세요.

또한 Live2D 렌더링 모드를 전환해서 Update 함수로부터도 렌더링 할 수 있습니다.
자세한 내용은 렌더링 모드 설정에 대해 를 
참고해주세요.




    Q. iPhone등 실제 기기로 내보낼 때 텍스쳐 이미지가 압축되어 더러워져 버리는 일이 있습니다
    A. 방지하려면 텍스쳐 이미지를 선택하고 인스펙터 뷰에서 Format을 「Compressed」에서 「Truecolor」로 변경합니다.

이렇게하면 압축되지 않고 그대로의 이미지를 사용할 수 있게됩니다.




    Q. Unity에서의 Draw call은 어느 정도가 됩니까?
    A. 모델의 텍스처의 갯수에 따라 다릅니다.

텍스쳐가 1장일 경우는 Draw call은 1번입니다.
2장 이상일 때는 텍스쳐를 전환할 때 늘어나기 때문에 2회 이상이 됩니다.
자세한 내용은 Draw call에 대해 를 참고해주세요.




    Q. 렌더링 되는 Live2D 모델에 레이어를 설정할 수 있습니까?
    A. 가능합니다.

자세한 내용은 렌더링 모드 설정에 대해 를 참고해주세요.




    Q. 반투명한 재질을 설정한 게임 오브젝트가 Live2D 모델 앞에 표시할 수 없습니다.
    A. Live2D 기본값의 렌더링 설정에서는, 렌더링의 구조 상 그렇게 됩니다.

아래의 해결 방법을 시도해보세요.

【 해결 방법1 
 Unity에서는 여러 개의 카메라로 찍은 것이 합성됩니다.
 다른 카메라를 준비해 그 카메라의 Clear Flags를 Depth only로 합니다.
Depth 값을 메인 카메라보다 큰 값으로 해서, 모델 위에 표시되는 것을 그 카메라로 찍어주세요.

【 해결 방법2 】
 Unity Pro버전에서 제공되는 Render Texture를 이용해도 대응할 수 있습니다.
 Render Texture에서 Live2D 모델을 게임 오브젝트에 표시합니다.
 그 게임 오브젝트를 처리하여 문제를 해결할 수 있습니다.
【 해결 방법3 】
 렌더링 모드를 변경해주세요.
자세한 내용은 렌더링 모드 설정에 대해 를 참고해주세요.


Unity에서는 Live2D 모델을 렌더링할 때 Graphics클래스의 DrawMeshNow()라는 메소드를 이용하고 있습니다.
DrawMeshNow ()는 Monobehavior 클래스의 OnRenderObject () 또는  OnPostRender ()에서 호출 할 필요가 있지만,
이 두 가지는 Camera가 씬 안의 GameObject를 모두 렌더링하고 끝날 때 호출되는 메소드로 되어 있습니다.
완전히 불투명한 게임 오브젝트의 겹침은 안 쪽의 불투명한 오브젝트의 뒤를 비쳐 보이기위한 계산이 끝났기 때문에
그 이후에 그려지는 Live2D모델은 반투명 계산이 되지않고, 그 앞에 그려져버립니다.




    Q. Live2D 모델을 반투명하게 표시할 수 있습니까?
    A. Unity Pro 버전에서 제공되는 Render Texture를 이용하면 가능합니다.

Render Texture에서 Live2D 모델을 게임 오브젝트에 표시하고
그 게임 오브젝트 자체의 투명도를 변화시킴으로써 반투명 표현을 할 수 있습니다.




    Q. Live2D 모델의 뒷면은 표시됩니까?
    A. 기본 설정에서는 표시됩니다.

뒷면을 표시하고 싶지 않으면 텍스쳐 설정 전에 아래의 설정을 해 주세요.
  1. Live2DModelUnity model;
  2. model.setCulling( true )// 컬링을 활성화 (뒷면을 표시하지 않음)




    Q. WebPlayer에 내보내기 할 때 데이터를 읽어올 수 없습니다
    A. Resources 폴더에서 데이터를 읽어들였는지 확인해주세요.

StreamingAssets를 사용하면 TextAsset가 아닌 바이너리 데이터로써 파일을 읽어올 수 있습니다.
그러나 StreamingAssets는 Web 내보내기에는 대응하지 않습니다.




    Q. 씬을 저장하면 메모리 리크라고 하는 아래의 메세지가 나옵니다.

  Cleaning up leaked objects in scene since no game object, component or manager is referencing them
  Material Custom/NewShader has been leaked 4 times.
  Mesh  has been leaked 142 times.
  Shader Custom/NewShader has been leaked 4 times.
  Texture2D  has been leaked 4 times.

    A. 문제 없습니다.

에디터 편집 시 스크립트를 실행하고 있으면 Live2D 리소스가 해제되지 않는다는 내용의 오류가 나오는 일이 있습니다.
당사에서 확인해본 바로는, 실제로 메모리 리크는 없었습니다.
만일 문제가 발생한 경우는 Live2D 커뮤니티 에 정보 제공을 부탁드립니다.

또한 스크립트 내의 에디터 편집 시 실행 속성(클래스 정의의 위쪽 방향의 [ExecuteInEditMode]라는 행)을
제거하면 편집할 때 Live2D모델은 보이지 않게되지만 이 오류는 사라집니다.
아무래도 신경쓰이는 분은 시도해보세요.



    Q. 모델을 표시했을 때, 찌꺼기 제거를 한 텍스쳐의 경계선이 표시됩니다.
    A. Unity 에디터에서 설정을 변경해주세요.

Project뷰에서 텍스쳐를 선택하고 Inspector의 Texture Type을 Advanced로 합니다.
그 후, Alpha Is Transparency에 체크하고 Apply를 클릭하면 설정이 완료됩니다.






    Q. Android로 빌드하면 동작이 느려져 버립니다.
    A. Android 단말기의 사양에 의한 것입니다.

현재 확인하고 있는 단말은 아래와 같습니다.
Android:F-02E

하나의 모델을 표시하는 샘플에서는 특별한 문제가 없습니다만
SDK에 포함된 샘플 SampleApp1처럼, 여러 개의 모델 전환을 if등으로 전환하면 느려져버립니다.
또한 모델의 행렬 계산도 너무 많은 게산을 매 프레임 실행하면 느려집니다.

대책으로 모델의 전환은, 모델을 표시하는 GameObject 체크에서 ON/OFF를 전환하도록 합니다.
setMatrix에 전하는 행렬도 최소 필요한 것만 합니다.
(SDK에 포함된 샘플 프로젝트 Simple에서는 모델 표시 크기와, 모델을 표시하는 GameObject의 Transform 2가지로 계산하고 있습니다)




サブページ (2): Cs版 プラグイン版
Comments