外部データ(画像、音楽等)の読み込みについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シエル

外部データ(画像、音楽等)の読み込みについて

#1

投稿記事 by シエル » 15年前

いつもお世話になっております。

今回は画像や音楽データなどの外部データの読み込みについてお聞きしたいことがあります。

ゲームなどを配布する際、画像データなどの外部データも一緒に配布する必要があると
思いますが、そのままフォルダごと配布してしまったら、盗まれたり利用されてしまう可能性が
あると思います。
なので別の形で配布して読み込めるようにしたいと思っています。

DXライブラリは圧縮したデータを読み込める専用の関数があると思いますが、
私はWindowsAPIとDirectXで開発を行っています。

実行ファイルのリソースに直接取り込ませようとも思いましたが、
実行ファイルのサイズが大きくなりすぎてしまいます。
また、リソースのみのDLLを作成することも考えましたが、BMPやWAVEファイルはリソースとして
登録できても、その他のPNG形式の画像などは、私が調べる限り登録できないようでした。

一般的には外部データはどのような状態で配布し、読み込み等を行っているのでしょうか?
まずは簡単な回答でかまいません。
その回答からまた質問を広げさせていただきます。

よろしくお願い致します!

TowaK

Re:外部データ(画像、音楽等)の読み込みについて

#2

投稿記事 by TowaK » 15年前

拡張子の変更とかではダメなのですか?
PNGはgrpにしてみるとか……。

Justy

Re:外部データ(画像、音楽等)の読み込みについて

#3

投稿記事 by Justy » 15年前

>DLL
>その他のPNG形式の画像などは、私が調べる限り登録できないようでした
 そんなことはないはずです。
 普通に PNGだろうが JPGだろうがカスタムリソース扱いで登録できます。

 もし仮に環境とかツールの都合でリソース扱い出来なかったとしたら
DLL側のソースコードにCの配列にして埋め込むことはできるのでなんとでもなるかと。



>一般的には外部データはどのような状態で配布し、読み込み等を行っているのでしょうか?
 素のままで配布するものもありますし、リソースに登録して exeなり dll内に
埋め込んでいるものもありますけど、ゲームだとその会社や製品独自の或いはミドルウェア等が
提供しているツールを使って複数のファイルをパック(アーカイブ)していることが多いですね。

 必要ならその段階で圧縮・暗号化もしています。
 細かいところは違いますけど、やっていることはDXライブラリのアーカイバとほとんど同じです。

 ただどういう単位でパックしているかはそれぞれです。
 カテゴリ毎にまとめたり、全てを1つにまとめていたり。

シエル

Re:外部データ(画像、音楽等)の読み込みについて

#4

投稿記事 by シエル » 15年前

>そんなことはないはずです。
>普通に PNGだろうが JPGだろうがカスタムリソース扱いで登録できます。
>もし仮に環境とかツールの都合でリソース扱い出来なかったとしたら
>DLL側のソースコードにCの配列にして埋め込むことはできるのでなんとでもなるかと。

カスタムリソースの存在を知りませんでした。すいません。勉強します。
が、あまりリソースで埋め込むことは考えていません。

>素のままで配布するものもありますし、リソースに登録して exeなり dll内に
>埋め込んでいるものもありますけど、ゲームだとその会社や製品独自の或いはミドルウェア等が
>提供しているツールを使って複数のファイルをパック(アーカイブ)していることが多いですね。
>必要ならその段階で圧縮・暗号化もしています。
>細かいところは違いますけど、やっていることはDXライブラリのアーカイバとほとんど同じです。
>ただどういう単位でパックしているかはそれぞれです。
>カテゴリ毎にまとめたり、全てを1つにまとめていたり。

できれば、勉強のため、アーカイブで対応してみたいです。
DXライブラリはどのようにアーカイブしているのか、簡単に説明していただけますでしょうか?

ぬるぽ

Re:外部データ(画像、音楽等)の読み込みについて

#5

投稿記事 by ぬるぽ » 15年前

>DXライブラリはどのようにアーカイブしているのか、簡単に説明していただけますでしょうか?

下記のURLより、DXライブラリをダウンロードし、
http://homepage2.nifty.com/natupaji/DxLib/dxdload.html

Tool/DXArchive/Sourceの中にDXアーカイブの
DxaEncode.exe や DxaDecode.exe のプログラムソースが入っています。
参考にしてみてはいかがでしょうか。

シエル

Re:外部データ(画像、音楽等)の読み込みについて

#6

投稿記事 by シエル » 15年前

ぬるぽさん!ありがとうございます。見てみます!

シエル

Re:外部データ(画像、音楽等)の読み込みについて

#7

投稿記事 by シエル » 15年前

すいません。色々調べてたんですが、
アーカイブの作り方って、fopen等で読み込んだデータを
他の一つのファイルにfwriteで書きだすっていうイメージでいいでしょうか?
後から読み出しやすくするために、書き込むときに目印等を付けておく必要がありそうですけど。

Justy

Re:外部データ(画像、音楽等)の読み込みについて

#8

投稿記事 by Justy » 15年前

>アーカイブの作り方って、fopen等で読み込んだデータを
>他の一つのファイルにfwriteで書きだすっていうイメージでいいでしょうか?
 そんな感じです。


>後から読み出しやすくするために、書き込むときに目印等を付けておく必要がありそうですけど
 そうですね。
 DXArchive.hでいうと DARC_FILEHEAD構造体がそれを担当しており、このヘッダを読み取って
実データが存在する場所を探しにいきます。

シエル

Re:外部データ(画像、音楽等)の読み込みについて

#9

投稿記事 by シエル » 15年前

Justyさん!ありがとうございます!

イメージ掴めたので、後は何とか一人でやってみます!

これにて解決いたします!

閉鎖

“C言語何でも質問掲示板” へ戻る