ページ 11

【解決済】画像のプリロードについて

Posted: 2019年1月06日(日) 11:07
by ジャングル
ImageManagerにLoad Reserve Requestなどがあるみたいですが、
プリロードにはどれを使うのが良いですか?

LoadFaceでフェイス画像を読み込んでいますがたまに遅れることがあります。

それぞれの特徴や使用に適した場面も知りたいです。

Re: 画像のプリロードについて

Posted: 2019年1月10日(木) 23:39
by トリアコンタン
こんばんは!
少し長いですが順番に解説します。コアスクリプトのバージョン(ver1.6.1_community-1.3)

・Load
こちらは通常の画像読み込みです。
使用する前に読み込むことも可能ですが、コアスクリプトのキャッシュ管理機能により
メモリ管理上限に達すると古い画像からキャッシュが自動で破棄されます。
よってLoadで読み込んでも、実際に使いたいときにキャッシュされているかどうかは「不確定」です。

・Reserve
こちらも画像読み込みですが、Loadと異なりキャッシュ管理機能による破棄の対象外となります。
よって確実に画像をプリロードしておきたい場合はこちらを使用します。
ただし多用すると、コアスクリプトのキャッシュ管理機能が効果的に機能しなくなるので、
本当に必要な画像のみ明示的にReserveします。

・Request
こちらは少し特殊で、画像をすぐには読み込まず専用のキュー(配列)に一旦確保します。
そしてキューの先頭からひとつずつ取り出されて実際の画像読み込み処理が走ります。
LoadとReserveは大量の画像を一度に読み込もうとすると、処理が重くなって硬直してしまいますが、
こちらの方法なら、直列で読み込むので処理の負荷が低くなります。
Requestは、イベント開始時に同ページ内で必要になる画像をプリロードする際に使われますが
利用者が明示的に呼び出す機会は少ないかもしれません。

Re: 画像のプリロードについて

Posted: 2019年1月11日(金) 02:09
by ジャングル
初めまして。ジャングルといいます。
数ヶ月前からツクールを触り始め、分からないことが結構あるのでたまに質問しています。

ご丁寧な解説ありがとうございます。
大変勉強になりました。

Loadは確実にキャッシュされているわけではないんですね。
たまに画像の表示が遅れることがあるので、とりあえずReserveを使用してみます。
使っている画像は数枚なのでRequestを使うほどではないみたいですね。

質問して良かったです。助かりました。

メモしておいて活用させて頂きます。
ありがとうございました。また宜しくお願い致します。