【UE5】アセットの非同期ロード

この記事は約3分で読めます。

今日になって、

【UE5】シッピングとパッケージ化
開発版とシッピング版は何がどう違うのか?これによるとコンソールコマンドが使えるか、使えないかの違いだけらしい。ソリューション構成は開発版は、Development ClientDevelopment EditorDevelopment Se...
【UE5】クックとかベイクとか
復習。 Engine は、テクスチャ データ用 PNG またはオーディオ用 WAV など内部で使用する特定のフォーマットで コンテンツ アセットを格納します。ただし、このコンテンツは、プラットフォームでは独自のフォーマットを使用しておりアセ...

 

なんてのを書いたのはこれのため。

マテリアルでもテクスチャでも、ランタイムに弄るとなると問題が出てくることがあるらしい。エラーにはならないようだから放っておいてもいいのかもしれないが、どうせならちゃんと作っておきたい。

実は今日、クックしてシッピングしてパッケージ化して動かしてみたら、最初だけ懸念していた現象が出た。2回目以降はキャッシュされたせいか現象がでなくなった。面倒だからパソコンの再起動をしてまで確認していない。再起動したとしても開発用のパソコンはSysMainを動かしているので、やっぱりどこかでキャッシュされている可能性がある。しかし、この現象が出る場合と出ない場合があるのは情報通りだった。次に書いてある。

Loading textures at runtime
Not sure what the best approach for this would be. I currently load a bunch of textures in a constructor: ConstructorHel...

この記事を辿っていくと、「アセットの非同期ロード」に辿り着く。

Just a moment...

”ランタイムに色を変える”という話はググるといくつか出てくるが、それらは予め用意しておいたマテリアルを入れ替えるものだったりする。マテリアルそのものを弄っているわけじゃないんだ。だから問題がでない。または出にくい。パフォーマンスも落ちないはず。

クックは依存関係に関わるそうだし、ベイクは(スタティックメッシュだけ?)事前に計算しておくことだった。パッケージ化の仕方によっては更にややこしくなって、スムーズにアセットが読み込めるとは限らなくなる。だとしても、この時はこうする、と決めておいたものなら高速で処理できるようになっているようだ。エンジンが事前に処理できるからだろう。しかしランタイムに初めて何をどう使うのか決めるとなると、エンジンが事前にどうこうできなくなる。だからそこは自分で組んでやらないと上手く動かない場合が出てきてしまうわけだ。
プロジェクトの設定にテクスチャストリーミングがどうこうの設定があったりするが、その辺を弄るだけじゃ不十分らしい。

キャラクター作成に随分時間が掛かってしまうが、これを放っておくわけにもいかないから、もう少し頑張る。

追記。
もしかしたら間違っていたかもしれない。ハード参照とソフト参照の違い?でも場合によっては予めアセットを読み込んでおく必要はあるんだとは思う。

コメント

  1. […] 前回の【UE5】アセットの非同期ロードにいろいろ書いたが、俺の場合は複雑で大量のアセットを読んでおく必要はないから、こっちのやり方で問題ないのかもしれない。 […]

  2. […] 【UE5】アセットの非同期ロード […]

タイトルとURLをコピーしました