妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

サイズとディスク上のサイズの違い

妹「昨日の写真見直してて気になったんだけど、サイズと、ディスク上のサイズと、なんで容量2つもあるの?」

「それはディスクの構造的な問題なんだけど、ディスクの最小単位は1バイトだけど、読み書きの最小単位はもう少し大きい。その最小単位を1セクタっていうんだけど、1セクタの中には複数のファイルを詰め込めない仕組みになってる。だから1セクタより小さいファイルでも、ディスク上では1セクタの大きさ使う。それが本来のサイズと、ディスク上で使用するサイズが違う理由」

妹「1セクタというのは容量なの?」

「容量だけどディスクごとに違うから決まった大きさじゃない。昔は512バイトが普通で、今だと4KBが多くなってきてる。基本的に大きい方が高速だけど、その代わりに無駄な隙間が出来やすい」

妹「うーん? 使ってないの隙間部分があるから? その分ディスク上のサイズが増えるんだよね?」

「そうだよ」

f:id:una_unagi:20151030221028p:plain

妹「じゃあなんでこれディスク上のサイズの方が小さいの?」

「……なんででしょうね? 兄のPCでもそうなってるな。しかも差が結構大きい。ちょっと調べる」

f:id:una_unagi:20151031232219p:plain

「どうもUE4の場合、いくつかのファイルを圧縮状態にしているみたい。エクスプローラから見ると青いファイル名になってうる。普通のファイルと同じように扱えるけど、圧縮されてる分だけ読み書きが遅くなるはず」

妹「そんなこと覚えがないんだけど」

「インストールされる時に自動的にそうなってるんだと思う。このへんのファイルはUE4自体のデバッグで使う情報で、普通にゲーム作ってる時にはアクセスしないファイルだから、読み書きが遅くなっても支障がないんだと思う。実際数GB単位で変わってるわけだから」

妹「ゲームを出す時にもこれ使って小さくしたらいいのでは?」

「それはもうやってる。パッケージ化の設定次第だけど、ゲームデータはちゃんと圧縮されてる。WindowsじゃなくてUE4側で圧縮してるから、青いファイル名にはならないけど。原理的に1度圧縮されたファイルは、もう1回圧縮しても大して縮まないか、逆に容量増えたりする。まあそうでなかったら無限に容量が減らせておかしな事になるんだけど」

妹「無限に減らないんだ……」

「それで、普通ダウンロードサイズとかインストールサイズとかいう時の容量は、ファイル自体のサイズ、エクスプローラでいうサイズの方になる。ディスク上のサイズはディスクで違うし計算難しいから。でもハードディスクの容量を減らしたい時に気にするのはディスク上のサイズの方。前回の移動でも空いたのは12.5GB分で、17.5GBというのは無駄な隙間と青文字ファイルの圧縮を考慮しない場合の数字」

妹「じゃあインストールする時に空き容量足りてるように見えるのに、実際ディスク上に置くと容量足りなかったみたいなことも?」

「あるよ。特に細かいファイルが大量にあると嫌がらせみたいに増える。それにWindowsやセキュリティソフトが自動的に使う容量もあるし、詰め込みすぎるとディスクの効率が落ちて遅くなるから、容量には余裕を持っておいた方がいい。だいたいディスク容量の10%~20%ぐらいあると安心」