Sossy
(Sossy)
1
自作ツールのバイナリファイルを利用する為、IPlatformFile::OpenRead()を使用しファイルの読み込みを行おうと考えております。
実際、ファイルの読み込みは行えているのですが、読み込むファイルを手動でContentフォルダにコピーしておいてあるだけなので、パッケージ化した際に当然、読み込みたい独自ファイルがパッケージに含まれません。
そこで質問なのですが、独自のバイナリファイルを、パッケージに含めることは可能なのでしょうか?
可能ならば、やり方をご教授いただけますと幸いです。
よろしくおねがいします。
T_Sumisaki
(T_Sumisaki)
2
このあたりが参考になるのではないでしょうか
https://usagi.hatenablog.jp/entry/2018/03/14/082509
Sossy
(Sossy)
3
ご回答ありがとうございます。
教えていただいたURLを拝見しましたが、当方のやりたいことと少し違ったようです。
ライブラリ等のプログラムをリンクしたいのではなく、アセットとして登録していないファイルをパッケージ内に含めたビルドを行いたいのです…
お返事いただきましたが、当方の質問の仕方が悪かったようで、大変失礼いたしました。
T_Sumisaki
(T_Sumisaki)
4
アセットではなく完全に独立したバイナリであれば、UE4のパッケージングの範疇外になりますので、ビルド完了後に別途バッチ等でコピーを行うのが適切と考えます。
あくまでもパッケージングに含まれるのはUE4がアセットとして管理しているもの、つまりコンテンツブラウザに登録されているもののみとなります。
alwei
(alwei)
5
UE4のパッケージング時に含めることが可能なバイナリーファイルはあくまでもUE4上にインポートされたuasset形式のファイルのみです。独自形式のバイナリーであってもUE4でインポートさせる必要があります。(もちろんその際にはC++でインポーターを書く必要があります)
バイナリーをランタイム時に読み込み、それを一時データとして読み込むということは可能ですが、独自形式のままパッケージングということでしたら不可能という結論になります。
Sossy
(Sossy)
6
独自アセットとして実装する方向で行ってみようと思います。
ご回答ありがとうございました。
Sossy
(Sossy)
7
独自アセットとして実装する方向で行ってみようと思います。
ご回答ありがとうございました。
paperbag
(paperbag)
8
回答済になっていますが、使えるかもしれないので一応共有を…
Content以下にデータがあるのであれば
ProjectSettings → Packaging → Additional Asset Directories to Cook
にパスを指定してやればパッケージングした際にデータが含まれており、読み込めるのではないでしょうか。
自分は独自バイナリではないですが、ゲームから参照しない外部データを含ませる際にこちらで対応しています。
paperbag
(paperbag)
9
もしくはファイル数が少ない場合ですが
Build.csにRuntimeDependenciesから追加することでパッケージング時に追加できると思います
その場合はAdditional Asset Directories to Cookで追加した場合と異なり
pakファイルには含まれません。
Sossy
(Sossy)
10
これが正に求めていたものです。ありがとうございます。
真っ先にパッケージ化の設定は確認したのですが、見落としてしまっていたようです。
Additional Asset Directories to Cookではなく、Additional Non-Asset Directories to Packageで
望んだ動作になりそうです。
情報ありがとうございました。