見出し画像

ゲーム制作における画像フォーマットについて

※当記事は元々はTeamUp企画の参考用として執筆していますが、無論、それ以外のケースでも汎用的に通用する内容を意識しています。(過去の記事からのコピペ)

■概要

お陰様でunity1week Team-Up!! は100人を大幅に超える大所帯となり、第一回のチームも25ほど結成されております。そして、いわゆる"素振り"を行うチームもちらほら出ているわけです。が、ここで意外と画像ファイルに対する認識の違いなんかが生じたりなんなりしていたので、ゲーム制作にあたりエンジニア側で扱いやすい(=エンジニア側からしたらありがたい)画像形式は何かなど、そのあたりの話を簡単にまとめてみました。

割と雑書き記事なので知見増えたら追記します。
いつものDo is(略)メソッドなんだ。

■本論

結論から述べると、pngファイル大正義です。pngが正解です。pngで受け渡しすれば99%間違いないです。なのでpngで受け渡ししましょう。

……で記事を終えると乱暴すぎるので、他のTIPSもちらほら書いていきます。

◆psd(psb)ファイルについて

絵描きさんからすると日常的に扱うことが多いフォーマットに、psd(psb)ファイルがあります。が、Unityで詳細に扱うにはひと手間かかってしまいます。一応、標準でpsdファイルのインポートそのものは対応していますが、単純な1つの画像として扱ってしまい、レイヤーごとの分解までは対応しきれていません。

2D PSD Importerというパッケージを導入すれば、より仔細に扱えるようになるようです。なんか実際はpsbファイルじゃないと受け付けないとかいう話を聞いたような聞いていないような気もしますが。(人聞きなので実際に確かめてはいない)

ただ、どちらにしても、エンジニアがpsdを直接扱えるソフトを入れているとは限らなかったりするので……そこはエンジニア側がgimpでも導入して歩み寄れよって言えばそれまでではありますが。逆に、エンジニア側がpsdファイルに手慣れてる人ならpsdでも何ら問題ないです。

◆アニメーションについて

一般的にアニメーション画像を扱うフォーマットとしてはGIFが有名ですが、UnityはGIFの扱いは苦手です。なのでこれも先述の通り、pngファイルで受け渡したほうが良いです。連番の複数のpng画像か、あるいはスプライトシート(ひとつの画像に並べる)かはご自由に……。

◆画像のサイズについて

一言でまとめれば、大きい分には問題ありません。大きいものを縮小することはunity側(のインポート設定)で可能ですので。

では具体的にどれくらいの大きさにすればいいか……というのは一概にはいえませんが、「一般的な解像度のディスプレイで拡大にならない」サイズなら、まず問題なしと言えるでしょう。つまり、例えば画面全体に丸々表示される一枚絵なら、一般的なディスプレイ……2kディスプレイの全体サイズ、1920x1080なら大丈夫と言えます。

ただ、ひとつだけ重要な事として、画像サイズは縦横ともに4の倍数であることが望ましいです。4の倍数でない場合、画像の圧縮アルゴリズムを適用できなくなってしまいアプリ全体のサイズが不必要に大きくなってしまいます。ちなみに巷で言われる2の累乗(256,512,etc….)である必要はないです。テクスチャの場合はミップマップの都合上2の累乗が最適なのですが、スプライトの場合はそのような制約は無関係ですので。

◆(蛇足)unityにおける画像ファイルとは何なのか

蛇足といいつつ、ある意味本質に迫る話なのですが、unityは画像ファイルを"インポート"し、最終的にビルドするアプリに組み込まれます。つまり、インポートさえされてしまえば、その後の扱いはどの画像形式であっても変わりません。そういう意味ではjpgだろうとbmpだろうと、画像の内容を適切に表現できるなら全く問題はないということになります。でもまあ可逆圧縮で、透明にも対応しているpngが一番やりやすいよね、ていう話です。

■まとめ

という、とても短い記事でした。TeamUpコミュニティ(のプレゼン会)上で出た話題をまとめたものなので、今後もこういった話がでたら随時当記事に追加していこうと思います。かしこ。

■定型句

当記事がいい!とおもったら
スキ!やシェアとかフォローなど、お願いいたします!!
内輪コミュニティ向け記事でもいっていく。


この記事が気に入ったらサポートをしてみませんか?