質問は基本的に1スレッドにつき1つの内容でお願いします。

お問い合わせの際は下記の情報を明記をお願いいたします。

▼ソフトウェアに関するご質問の場合

・【問題が発生したソフトウェア名とバージョン】(例:Cubism Editor 3.1.02、Euclid Editor 1.2.0 など)
・【ご利用のPC環境】例:Windows10、macOS HighSierra など
・【機種名】:MacBookPro 2017 など
・【グラフィックボード】例:GeForce GTX 950M など
・【メモリ】例:8GB
・【原画(イラスト)を制作したソフトウェア】例:Photoshop , CLIP STUDIO , SAI など
・【問い合わせ内容がわかるスクリーンショットまたは動画】例:パーツの表示状態など、お問い合わせ内容がわかる画像をご用意ください

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

▼SDKに関するご質問の場合

・現象の再現を行い検証させていただきますので、再現する最小のプロジェクトのご提供か、再現するまでの手順
・使用したSDKのバージョン

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エミューレーターでも、起動実行できています。

  • 起動の確認がとれたことがある方、いらしたらそれだけでもコメントいただければ思います。
    よろしくお願い致します。
  • edited 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/
    ws_nakanishi
  • edited 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を検証しています)

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

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