ゲームに使うテクスチャ拡張子 どれがいいのか?

画像拡張子には、大量の選択肢があります。
拡張子指定のない状況では、地味に迷う選択だったりします。
ここでは、ゲーム開発でよく使う拡張子はどれなのか、自分の経験から紹介します。

結論

アルファを使わないなら png
アルファを使うなら tga

代表的な拡張子

.png

とりあえず使うならこれ。
photshopから手軽に書き出せるためか、最も出会う頻度の多い拡張子です。
エクスプローラー上でサムネイルプレビューを確認できるなど、利便性・使用頻度が最も高い画像拡張子でしょう。

注意点は、photoshopのデフォルト設定では、アルファ情報を確実には持たせられないことです。

透過部分がないとアルファが確実に出力できなかったりします。
ヒューマンエラー回避も兼ねて、ゲームでは代わりに .tga を使うことが多い印象です。

.tga

Targa形式のこと。
アルファを使う時はこれが安全。

デフォルト設定で、アルファを一緒に出力してくれます。
ヒューマンエラーを回避するため、これを標準で使うプロジェクトが多いです。

注意点は、出力時に「32bit設定」にしないとアルファ情報がついてこないことです。
アルファがない場合は、「24bit設定」にしましょう。データも少し軽くなります。

▼Photoshopでは、出力時に選択肢が出てきます。

エクスプローラ上では、基本的にサムネイルプレビューがでません。
Sage Thumbs 等のフリーソフトで、アイコン画像を表示できるようにすると便利でしょう

▼SageThumbs:サムネイルプレビュー フリーソフト
https://forest.watch.impress.co.jp/library/software/sagethumbs/

.jpeg

テクスチャとして使ったことは、私はありません。
非可逆圧縮なためかもしれません。
写真やイラストレータで使われることが多いです。

.tiff

Mayaのデフォルト設定で、中間ファイルとして出会うことがあります。
UVスナップショットの初期設定はこれ。
Photoshopで開く事ができます。

.hdr

High Dynamic Range の略。
主に天球テクスチャに使うための形式です。めちゃ重。
ゲームエンジンの天球画像や、Substance系の環境光など、
レンダリングにこだわり始めると触れることになる拡張子でしょう。


結論

・アルファを使う予定が全くないなら → .png が便利。
・アルファを使う可能性があるなら → .tga で安全性向上。

あとがき

ゲームは使えるリソースが限られているため、
なるべく少ない枚数のテクスチャを使うことが求められます。
アルファを使うのは、テクスチャ枚数を減らす工夫の1つです。

ヒューマンエラーの可能性の話をしましたが、
多人数で作るゲーム制作では、ヒューマンエラーを無くす仕組みづくりは、かなり大きな価値を持ちます。
仕組みづくり専門の職種が 多数存在するくらいです。

このように、拡張子1つ選ぶにしても、それなりの理由があったりします。
プロジェクトによって、最適な拡張子を選べると良いですね。

以上です。