よくある質問
最終更新: 2023年2月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にはベンチマーク用のサンプルシーンが含まれており、各プラットフォーム上でのパフォーマンスを簡単に確認できます。
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がモジュールを初期化する際に確保するメモリが少ないことが原因で発生します。
これはR6以降のCubism Coreでより多くメモリをアロケーションすることで回避できます。
確保するメモリを指定するには、R6以降のCubism SDK for WebでCubismFramework.initialize()の引数にメモリの量を渡します。
引数に渡す値は1024 * 1024 * 16 byte(16MB)以上にしてください。
CubismFramework.initialize(1024 * 1024 * 32);
それ以外の値を渡した場合、すべて1024 * 1024 * 16 byteに丸められます。
// 1024 * 1024 * 16 CubismFramework.initialize(256);