★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。

Live2D Cubism 2.0β SDK のサンプルを出力して実行した際、起きるエラーについて

unity 用SDKに付属されているサンプルを使用してiPhoneに出力していろいろ試そうとしているのですが、エラーが発生して試せません。

これが、通常状態で、iOS,Androidでアプリを実行する場合、別途対応がいるのでしょうか?
また、なにかunityないし、xcodeでの設定、実行環境を見直せば、治る問題でしょうが?

ご回答よろしくお願い致します。

-------------------------------------------------------

◆使用しているSDK
Live2D_SDK_Unity_2.0.00_beta_2_jp

◆使用したサンプル
SampleApp1

◆使用しているunity ver
4.5.2

◆使用しているxcode
5.1.1

◆使用したiPhone
A1332:iPhone 4 (GSM モデル)
iOS:7.1.1

◆表示されるエラー
上略

UnauthorizedAccessException: Access to the path "/var/mobile/Applications/9380E581-77AC-484E-B437-F81EEB7D4E74/ProductName.app/Data/Raw/live2d/wanko/wanko.model.json" is denied.
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in :0
at System.IO.FileStream..ctor (System.String path, FileMode mode) [0x00000] in :0
at FileManager.LoadString (System.String path) [0x00000] in :0
at PlatformManager.loadString (System.String path) [0x00000] in :0
at LAppModel.LoadFromStreamingAssets (System.String dir, System.String filename) [0x00000] in :0
at LAppModelProxy.Awake () [0x00000] in :0

◆原因
StreamingAssets の何かと思っています。
タグ付けされた:

コメント

  • ◆実行後の状態
    背景のロッカーが表示されている状態でハングしている
  • ◆その他の状況
    ・Mac OXS、Windows 用にビルドして実行した場合は、問題なく実行できます。
    ・iPhoneエミューレーターでも、起動実行できています。

  • 起動の確認がとれたことがある方、いらしたらそれだけでもコメントいただければ思います。
    よろしくお願い致します。
  • 編集済: 8月 2014
    tetuさん

    反応が遅れて申し訳ありません。
    こちらで確認したところ、確かに表示できませんでした。
    原因としては、2.0βで試験的に導入したStreamingAssetsのせいだと思われます。

    2.0βでは、従来のファイルの読み込みを、UnityのResourcesクラスを利用した方法から、C#のInputStreamに変更しました。
    UnityはAssets内に特定の名前のフォルダが有る場合、特殊な処理を行います。
    StreamingAssetsはそのひとつで、この中に入れられたファイルは、どのプラットフォーム向けにビルドしてもすべてそのままの形で書き出されるため、ビルド後も外部からのファイルの操作が容易です。
    ※StreamingAssetsの詳細はこちらを→ http://docs-jp.unity3d.com/Documentation/Manual/StreamingAssets.html

    ですが、これがよくなかったようで、試しにこれを元のResources.Load()の方式に戻したら、iPhone4の実機で正しく表示されるようになりました。
    正式版のSDKはResourcesクラスからの方式に戻して統一する予定ですが、現在のベータ版のSDKもResourcesクラスでの方式に戻してやれば正しく表示されるようになります。

    報告ありがとうございました。
  • y_a_s_(dev staff)さん

    確認ありがとうございました。
    また、対応策までありがとうございます。

    Resources.Load()で対応を勧めます。

    > ファイルは、どのプラットフォーム向けにビルドしてもすべてそのままの形で書き出されるため、ビルド後も外部からのファイルの操作が容易

    こちらの利点が、とても良いと思っていますので、StreamingAssetsからの読み込みの対応も引き続き検討してもらえればと思います。

    ※ .byte を各ファイルにつける手間が大きくて困っているのも事実です。

    本当にありがとうございました。


  • アクセス権限のエラーのようなので、この辺りで解決しませんかね…

    http://forum.unity3d.com/threads/accessing-files-in-streamingassets-on-ios-access-denied.261994/
  • 編集済: 8月 2014
    W_Yamada さん

    情報ありがとうございます。
    早速、調べてみます。

    それが、iPhoneエミューレーターで動くのに実機では動かないの差なのかと、思ったりしました。
  • 別件ですが、書く所がなかったので、ここで。
    Cubism Editor 2.0、Cubism SDK 2.0 のリリースおめでとうございます。
    そして、ありがとうございます。
    早速、使わせて貰います。
  • Live2D_SDK_Unity_2.0.08_1_jpのStreamingAssetsサンプルをiOSビルドすると
    UnauthorizedAccessExceptionとなります。

    ReadOnlyな読み込みにすればエラーにならないのではないかと予想しています。
    参考 http://forum.unity3d.com/threads/accessing-files-in-streamingassets-on-ios-access-denied.261994/

    テクスチャ読み込みの部分を
    //FileStream fs = new FileStream(path, FileMode.Open);
    FileStream fs = File.OpenRead(path);
    のようにReadOnlyの読み込みにしました。これでテクスチャ部分はOK。

    しかし、mocファイルの読み込みの方は手が入れられません。
    Live2DModelUnity.loadModel()
    こちらの中を見ていくと、同じくFileStreamを使っているようです。
    こちらも書き換えてみて、動作確認したいところで止まっております。

    ・iOSでStreamingAssetsからのモデルとテクスチャロードの状況はどうなっていますか?
    ・Live2DModelUnity.loadModel()の中をこちらで書き換えることはできますか?

    (TrueColorを使わずに、よりサイズの小さいテクスチャ
    できれいに実機で表示できることを期待して、StreamingAssetsを検証しています)

    ご確認、よろしくお願いします。
  • 編集済: 9月 2015
    >peroonさん
    不具合報告ありがとうございます。
    こちらの確認不足でした、申し訳ございません。
    次回更新時に修正させて頂きます。

    それまでは、loadModel()はbyte[]型で渡すこともできるため、モデルのロード部分を以下のようにして回避しておいてください。
    live2DModel = Live2DModelUnity.loadModel(TextureUtil.LoadBin(dataDir + MODEL_PATH)); // LoadBinはpublicなメソッドにしておく
  • >y_a_s_さん
    お返事ありがとうございます。
    iOS端末にて、エラーにならず表示されることを確認しました。
    ありがとうございました。
コメントするにはサインインまたは登録して下さい。