トップページ > 記事閲覧
asset以外のフォルダのファイルの読み込みにつきまして
名前:おにぎり 日時: 2017/05/28 10:55

いつもDXLIBを利用させていただいております。ありがとうございます。 Android版で 現在データはすべてassetフォルダに置く形になっていると思うのですが GooglePlayではapkが100MB以下という制限があるようです。 そこで他のアプリがやっている様に追加でデータをダウンロードして使用する形にしなくては いけないとは思うのですが、その際にLoadGraph等でasset以外の別のフォルダにアクセスするには そのままダウンロードしてきたフォルダ等のパス指定すれば良いのでしょうか。 もしくは、初期フォルダをasset以外のフォルダにする関数等がありますでしょうか。 また、別件なのですが、android版で以下の関数がリンクエラーになってしまうようです。 SetDXArchiveKeyString SetDXArchiveExtension ご確認いただけますと幸いです。
メンテ

Page: 1 |

Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.1 )
名前:管理人 日時:2017/05/28 20:17

既存のバージョンでは LoadGraph などのファイルからデータを読み込む関数はすべて assetsフォルダの 中に入っていることを前提としているので、今回 GetInternalDataPath と GetExternalDataPath で 取得できるフォルダ以下に保存されたファイルも読み込めるように処理を変更しました よろしければその変更を加えたこちらのバージョンをお使いください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 ↑こちらのバージョンで、例えば GetInternalDataPath で取得できる『アプリのセーブデータや 追加データを保存するためのフォルダ』に保存された test1.bmp を読み込む場合は以下のようになります char InternalDataPath[ 1024 ] ; char ImageFilePath[ 1024 ] ; int GrHandle ; // InternalDataPath を取得 GetInternalDataPath( InternalDataPath, sizeof( InternalDataPath ) ) ; // InternalDataPath の末尾に『/』+『読み込みたいファイル名』を加えた文字列を作成 sprintf( ImageFilePath, "%s/test1.bmp", InternalDataPath ) ; // ファイルの読み込み GrHandle = LoadGraph( ImageFilePath ) ; よろしければお試しください > また、別件なのですが、android版で以下の関数がリンクエラーになってしまうようです。 > SetDXArchiveKeyString > SetDXArchiveExtension > ご確認いただけますと幸いです。 すみません、上記のバージョンでこちらも修正しておきました m(_ _;m ( Windows版でのみ使用できる状態になっていました )
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.2 )
名前:おにぎり 日時:2017/05/29 10:00

素早いご対応ありがとうございます。 いただきましたandroid最新版ですが、3.18aでは大丈夫だったdxaからの読み込みが、正常にできないようです。 現在試しているのはassetフォルダにあるdxaです。 現在細かい部分を検証中ですが、ご確認いただけますと幸いです。
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.3 )
名前:管理人 日時:2017/05/30 01:57

手元で TEST2.BMP というファイルだけが入った Image というフォルダをDXアーカイブ化した Image.dxa という DXアーカイブファイルを作成して、assetsの中に Image.dxa を置いて、 int GrHandle = LoadGraph( "Image\\TEST2.BMP" ) ; を実行したところ、正常に TEST2.BMP が読み込まれました もしかしたらもっと複雑な状況だと正常に動作しないのかもしれません よろしければおにぎりさんが dxaファイルからの読み込みに失敗した際の状況を教えていただけないでしょうか? m(_ _;m
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.4 )
名前:おにぎり 日時:2017/06/06 11:55

ご返信が遅くなりましてすみません。 あれからいろいろと検証いたまして、 asset直下にあるdxaは読み込めるのですが、 assetフォルダ下にあるdxaが読み込めなくなっているようです。 3.18では読み込む事ができました。 asset/data.dxa (読み込めます) asset/system/data.dxa (読み込めません) たぶん、assetフォルダ以外のファイルを読み込む変更が影響していると思われます。 お忙しい所大変だとは思いますが、ご確認いただけますと幸いです。
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.5 )
名前:おにぎり 日時:2017/06/06 15:08

すみません、追加で だいたい150MBを超えるぐらいのdxaの読み込みに失敗するようです。 ファイルサイズ、もしくはファイル数のどちかが問題になっているような気が致します。 これは3.18aでも発生しまして、以前からあった現象の様です。 また、まだ詳細に検証してはいないのですが 3.18aでは読み込めたogg等音系のファイルが読み込めなくなっているようです。 (同じプログラムで3.18aで音が出ていた物が、最新版では音が出なくなっている現象がありました) こちらにつきましては何かわかりましたらまたご報告いたします。
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.6 )
名前:管理人 日時:2017/06/07 01:00

ご情報ありがとうございます oggファイルや assets直下ではないフォルダにある dxaファイルの読み込みに失敗するバグを修正した バージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 > だいたい150MBを超えるぐらいのdxaの読み込みに失敗するようです。 > ファイルサイズ、もしくはファイル数のどちかが問題になっているような気が致します。 GooglePlay には apk が100MB以下という制限があるとのことですが、こちらの話題は Android ではなく Windows で、ということでしょうか?
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.7 )
名前:おにぎり 日時:2017/06/07 04:10

迅速なご対応ありがとうございます! いただいたファイルはこれから試してみます。ありがとうございます。 android版と書くべきでした。申し訳ございません。 150MB以上のdxaは、例えばゲームのデータが100mbで足りない場合、 GetExternalDataPath等で 得られたフォルダに大容量の外部データをダウンロードしてきて、データとして読み出したいなと思いまして試しております。 (別のフォルダにdxaを保存して読み出せるのかどうかはまだ試しておりません) sdカード等にゲームデータを保存すると丸見えになってしまうらしいので、dxaのパックをしたいと思っております。 また、別件なのですがandroid版で電源ボタン等で一度非アクティブになるとフォントデータが消えてしまうようです。(文字が表示されなくなります) ご確認いただけますと幸いです。
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.8 )
名前:管理人 日時:2017/06/07 23:53

ご返答ありがとうございます 試しに 190MB のdxaファイルを作成してファイルを読み込んでみたのですが、問題なく読み込み使用することができました おにぎりさんの環境で 150MB以上のdxaファイルの読み込みに失敗する原因はわかりませんが、メモリが足りなく なっているということは考えられないでしょうか? ( 一つ目のファイルで失敗するということでしたらメモリ不足が原因である可能性は0ですが… ) > また、別件なのですがandroid版で電源ボタン等で一度非アクティブになるとフォントデータが消えてしまうようです。(文字が表示されなくなります) 手元の環境では電源ボタン等で一度非アクティブにした後、再度アクティブにした際も正常に表示されました 再度アクティブになった際にファイルを再読み込みしていますので、今回のファイル読み込み関連のバグの修正で 直ったのかもしれません
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.9 )
名前:おにぎり 日時:2017/06/24 20:50

お返事が遅くなりましてすみません。 GetInternalDataPath内の画像データの読み込みができる事、確認いたしました。 ありがとうございます! GetExternalDataPathの方は、読み込めなかったのですが、こちらは仕様なのでしょうか。 dxaファイルの方の読み込みエラーとメモリの関係については、 確認の方はまだ時間が無くできておりません。 すみません・・。 フォントの方はdftに変更しまして、消えることが無くなったような気が致しますが、引き続き確認してみますね。 また、質問なのですがGetInternalDataPathやGetExternalDataPathに 追加でdxaのデータをダウンロードしてきて読み込む事は可能でしょうか。 お忙しい所大変恐縮ですが、ご確認いただけますと幸いです。
メンテ
Re: asset以外のフォルダのファイルの読み込みにつきまして ( No.10 )
名前:管理人 日時:2017/06/25 14:49

> また、質問なのですがGetInternalDataPathやGetExternalDataPathに > 追加でdxaのデータをダウンロードしてきて読み込む事は可能でしょうか。 確認したところ、バグが原因で読み込めない状態だったので、バグを修正して読み込めるようにしました お手数で申し訳ありませんが、よろしければこちらのバージョンをお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 > GetExternalDataPathの方は、読み込めなかったのですが、こちらは仕様なのでしょうか。 いえ、仕様ではありません 手元の環境では読み込めることが確認できました、今回また少しファイル読み込み関連の処理を 変更していますので、よろしければ上記の最新版でも読み込めないか試しください m(_ _;m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存