JavardryHTML5版 Ver.0.174、マニュアル Ver.1.043 更新

[JavardryHTML5版, マニュアル] 実行用HTMLファイルの記述にて、高画質画像(ファイル名の末尾に_HRをつけた画像)の読み込みをオフにする設定を追加。

 高画質画像とかって、HTML5版にしか触れてない人だと「なんだと?」「どういうことだ?」「何が言いてえ」となりますよね。Java版だと、(私の作り方が悪いこともあって)大きいサイズの画像を表示させると動作がクッソ重たくなってしまうので、サイズの小さめな通常画像と、サイズの大きめな高画質画像の表示を切り替えられるようにしてあります。その機能を有効活用しようと思うと、シナリオ作者が両方のサイズの画像を用意するなどという原始的な作業が必要になるという、あまり頭のよろしくないことになります。(どちらか片方が用意されていれば動作には支障はありません)

 HTML5版では、サイズの大きめな画像を表示させてもそこまで動作に影響がなさそうだったので、表示画像の切り替えは無くしましたが、しかし、Java版の移植なので、ファイル名の末尾に_HRをつけた画像の読み込み自体には対応させており、高画質画像という扱いのため、優先的に読み込みをさせています。ただ、実際のところ、Java版用に用意した高画質画像をファイル名そのまま(末尾に_HRがついたまま)でHTML5版に利用しているかというと、まあそのへんは人によるんでしょうけども、大抵は_HRのつかないファイル名にしていると思われます。

 するとどうなるかと言いますと、まず最初に_HRのついた画像ファイルを読み込もうとして処理を行い、ファイルが読み込めなければ、そこからようやく_HRのつかない通常画像の読み込みをする、ということになります。わずかな差ではあるのでしょうが、どうしても無駄な処理が挟まってしまうんですね。

 そこで、最初から_HRのついた画像がないとわかっている場合には、設定で最初から読み込みにいかないようにすればよくね? などと思いまして、設定を追加してみました。高画質画像の読み込みをオフにしても、ローカルだと起動時の読み込み完了までの時間にほとんど差は出ないんですが、オンライン動作(ただしローカルサーバでのテスト結果)の際には、多少の差は出るようです。下で解説しているファイル読み込み処理の若干の効率化の影響もあるのかもしれませんが、高画質画像読み込みオン時には起動時の読み込み完了まで3000ms~4000ms程度かかっていたのが、オフ時には800ms~1000ms程度でした。まあ、試行回数が何千回何万回とかやってるわけじゃあないので、たまたまかもしれませんが、一応、無駄な処理を省くことが出来ますよ、ということで。

[JavardryHTML5版] ファイル読み込み処理の若干の効率化を実施。

 これは……説明するのが難しいと言うか面倒と言うか、そもそも説明してもそんなん意味があるのかとも思いますが、まあ、自分用のメモ的な意味で、簡単に書いておきます。

 Javardryでは、Java版からの仕様で、表示させる画像の指定時に画像形式(拡張子)は指定していません。PNGでもJPEGでも、拡張子を除いたファイル名の一致する画像ファイルがあれば、それを読み込みます。HTML5版も同様の仕様なんですが、PNG画像はないか、JPEG画像はないか、GIFは、BMPは……などと、画像形式ごとにいちいちファイルを探すというのは、ローカル動作時ならともかく、オンライン動作時にはそれなりに負担になるんじゃないかと、まあ詳細に検証したわけではないんですが、個人の感想として、そんな風に思ったんですね。Java版との整合性もあり、画像形式の固定なんてのはやりたくないし、どうしたものかと考えたところ、一度読み込みに成功した画像形式を次回から優先的に読み込んでみたらどうだろうと、まあ、そんなことを思いつきまして。いや、まあよくある手法なのかもしれませんが、同形式の画像を連続して読み込むような場合には、無駄な処理を省けるんじゃないかなあ、と。

 実際どの程度効果が出るかは検証に手間がかかりすぎるので試してませんが、画像形式をある程度まとめれば、無駄な処理を省けるのには間違いないので、若干、気持ち程度は処理が速く……なるといいなあ、と思います。理想は全画像を一つの画像形式にすることですが、そこまでいかずとも、例えばダンジョン画像はすべてPNG、地上施設の画像やモンスター画像はJPEGなど、ある程度まとめるだけでもよいかと思います。

 とは言え、実感出来る程度に効果があるかどうかも不明ですし、そんなあやふやな状態で既存のシナリオの画像形式を統一しろ、とは言えません。これから画像を用意する際に、少しばかり画像形式を揃えることを意識してもらうと、いいかもしれないな~、ぐらいの感じでよろしく。

 なお、URL指定での顔画像表示時は、拡張子を含めたURLで指定しているため、上記の話とは無関係です。(無駄な読み込みが発生することはありません)

コメント

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