PaperFlipbookにモザイク?がかかってしまう。

現在2Dのアクションを制作しており、どうにか自分で制作したキャラクターをFlipbookを使い歩かせることが出来ました。
しかし、攻撃モーションが当初描いていた512のサイズで収まり切らずサイズを1024に切り替え書き直し、もう一度Flipbookを作り直しました。

すると、テストプレイを行った際、512の画像サイズでは問題なくキャラクターのアニメーションが動いたのですが、1024の画像に変更してから移動や攻撃動作などアニメーションが切り替わるたびに一瞬モザイク?がかかったような画像になってしまうようになってしまいました。
何度も動作を繰り返していくとモザイクのかかる頻度が減っていくのですが、テストプレイのたびに同じ現象が起きてしまいます。

ネットで調べてみたところ、テクスチャ設定のNeverStreamをONにすると回避することが出来るとあったのでその通りにしてみたところモザイクはかからなくなりました。

ここからが質問なのですが、このような現象が発生する原因はどういった物が考えられるでしょうか?

またNeverStreamをONにすることによるデメリットのような物はあるのでしょうか?

基本的な質問で申し訳ありませんが回答のほどよろしくお願いします。

1 Like

UnrealEngineにはTextureStreamingというテクスチャ読み込みの最適化機能があります
この機能はLevelやModelをロードした際に、読み込みが詰まって表示が遅れるのを防ぐために、最初に低解像度のTextureを当て、その後余裕が出た頃に高解像度のTextureを当てる、という最適化を自動で行っています
(おそらくこれと思われる現象をほかのゲームでみたことがあるかと思います)
今回はこの部分が原因と思われます

TextureStreamingですが、低解像度のTexture(MipMap)を自動でつくるという特性上、2Dキャラ(特にドット絵のキャラクター)ではTextureの見た目が崩れる恐れがあります
UIに使われるようなTextureも同様です
その際はNeverStreamをONにし、TextureStreamingの対象外とする、という措置をとることがあります

TextureStreamingを使用しない場合、Textureのロードに時間がかかったときに表示が遅れる、またはロードに時間がかかる、といったことが考えられます
大きなサイズのTextureを多く用いる場合はこの問題が顕著になりますので、注意してください

1 Like

回答ありがとうございます!

なるほどバグなどではなくue4の機能だと聞き安心しました。

様子を見ながらNeverStreamをONにして作業を進めたいと思います。
丁寧な解説ありがとうございました。

1 Like