🎲

【Unity × Live2D】Androidビルドでモデルが真っ白になる原因と解決法

に公開

UnityでLive2Dモデルを使用したゲームをAndroid向けにビルドしたところ、ゲーム起動時にLive2Dモデルが真っ白になってしまいました。

原因の調査

UnityのDevelopment Buildを有効にしてログを確認すると、次のようなエラーメッセージが表示されていました。

DllNotFoundException: Unable to load DLL 'Live2DCubismCore':
Tried the load the following dynamic libraries:
Unable to load dynamic library 'Live2DCubismCore' because of Failed to open the requested dynamic library (0x0600000)
dlerror() = dlopen failed: library 'Live2DCubismCore' not found

Live2DCubismCore の DLL(ネイティブライブラリ)が読み込めず、Live2Dモデルの描画に失敗していたようです。

解決方法:アーキテクチャの設定を変更する

UnityのPlayer Settingsで、ビルド対象のCPUアーキテクチャを確認してみましょう。

デフォルトでは ARMv7 にチェックが入っているはずです。

Unity設定画面

✅ 対処方法

  1. Unityメニューから「File > Build Settings > Player Settings」を開く
  2. Other Settings > Configuration > Target Architectures」へ移動
  3. ARMv7 のチェックを外し、代わりに ARM64 にチェックを入れる

このように設定を変更してから再度ビルドすれば、Live2Dモデルが正しく表示されるようになります。

補足

  • Live2DCubismCoreARM64 のみ対応である場合があるため、ARMv7 のままだとロードエラーが起きる可能性があります。
  • Play Store への公開も ARM64 対応が必須になっているため、今後のためにも ARM64 対応を前提にしておくとよいでしょう。

Discussion