Cubism SDK for Unity 2.1からの変更点について

Cubism Editor2.1の新機能「クリッピングマスク」に伴い、SDK側のコードも若干変更になります。

【変更点
・Live2DModelUnity.updateの呼び出しタイミングの変更
・シェーダーファイルを外部に配置
・クリッピングマスク使用モデルは内部的にRenderTextureを使用

【改善点
・RenderTextureによる透明度変更が可能
・AndroidではRenderTextureで表示しなければいけない仕様も解決
・FPS向上とドローコール削減



   変更点 Live2DModelUnity.updateの呼び出しタイミングの変更

2.0ではLive2DModelUnity.update() を呼ぶタイミングは、Live2DModelUnity.draw() 以前であれば特に指定していませんでした。
2.1以降はクリッピングマスク機能の仕様により、MonoBehaviour.Update()、MonoBehaviour.LateUpdate()のどちらかである必要があります。

//---------- SDK2.0の場合 ----------//
void OnRenderObject()
{
    
    live2DModel.update();
    live2DModel.draw();
}

 
//---------- SDK2.1の場合 ----------//
void Update(){
    
    live2DModel.update();
}
 
void OnRenderObject()
{
    
    live2DModel.draw();
}

 
// DrawMeshの場合は、今まで通りUpdate()に両方含めて下さい
void Update(){
    
    live2DModel.update();
    live2DModel.draw();
}

(※ クリッピングマスクを使わないモデルは今まで通り、OnRenderObject()にてlive2DModel.update、live2DModel.drawでも問題ありません)



   変更点  シェーダーファイルを外部に配置

2.0まではシェーダはライブラリ内部に保持していましたが、対応プラットフォームが増えライブラリファイルが肥大化したため、
シェーダをライブラリ外部から参照する方式になりました。
(※ シェーダファイルはライブラリ内から参照しているので、ユーザ側で設定を行う必要はありません。
 また、シェーダファイルはResourcesフォルダ内に入れておく必要があります)

シェーダの記述内容を変更すると表示が崩れることがあります。変更の際にはご注意ください。



   変更点  クリッピングマスク使用モデルは内部的にRenderTextureを使用

クリッピングマスクはUnityのRenderTextureを内部的に使用し描画しているため、Unity4.x系ではUnity Proライセンスが必要になります。
Unity4.x系でFreeライセンスを使用してる場合、以下のエラーが表示されます。
Unity5.x系ではUnity FreeライセンスでもRenderTextureが使用できます。



   改善点  RenderTextureによる透明度変更が可能

2.1.00_beta_9 SDKでは、クリッピング使用モデルは表示が崩れる問題がありました。
2.1.00_beta_10 SDKでは表示崩れ問題は解決し、クリッピング使用モデルの透明度変更も可能になりました。
 
また、RenderTextureを使う事でLive2Dモデルの前にパーティクルなどの表示もできます。
 
詳しくはSDKサンプルのRenderTextureプロジェクトでご確認下さい。



   改善点  AndroidではRenderTextureで表示しなければいけない仕様も解決

2.1.00_beta_9 SDKでは、Android上でRenderTextureを使わず直接描画した場合もクリッピングマスクが正常に動作しません。
2.1.00_beta_10では、RenderTextureを使わずとも表示する事ができます。



   改善点  FPS向上とドローコール削減

新しい描画方式を使うことにより、クリッピングマスク使用モデルは2.1.00_beta_9 SDKよりドローコールが削減されました。
(UnityちゃんモデルはDrawCall[SetPass]39→13に削減)
合わせてFPS向上になり、iPad Air2にてLive2Dモデル7体までFPS60をキープしています。



Comments