Slide 1

Slide 1 text

2021年版 2Dスマホゲームにおける圧 縮テクスチャについて 倉 秀一/KURA Shuichi

Slide 2

Slide 2 text

本日の内容(20分くらい) 1. 自己紹介 2. 圧縮テクスチャって? 3. 圧縮テクスチャの種類とか 4. 2021年のベタープラクティス 2

Slide 3

Slide 3 text

1. 自己紹介 倉秀一 群馬県みどり市出身。 3人の子どもがいます。 長いこと埼玉の北浦和に住んでいま した。今は三茶に住んでいます。飲み 屋行きたいです。 I LOVE: ビール, 家系ラーメン, 焼肉, 音楽(中 田ヤスタカ/tofubeats/やくしまるえ つこ), CUI, Vim, Solarized, Tesla, SF/ファンタジー/ホラー, Google, 自 転車, Steam, Netflix, 料理, 香り物 (香水/ディフューザ/バスソルト)

Slide 4

Slide 4 text

こんな事やってました 2003〜2010年 コナミ ネットワーク対戦アーケードゲーム開発 (サーバ担当、通信、クイズ周り、ディレクターもちょっと) 2011〜2015年 GREE ソーシャルゲーム開発 (主にサーバ担当) 2015〜現在 ココネ 新規アプリの立ち上げ(主にクライアント担当)  ・某IP初の着せ替えアプリ  ・ポケコロツイン  ・リヴリーアイランド 4

Slide 5

Slide 5 text

2. 圧縮テクスチャって? 5

Slide 6

Slide 6 text

圧縮テクスチャじゃない場合(JPGやPNGなど) 6 元画像 JPG へ変換 非圧縮 に展開

Slide 7

Slide 7 text

圧縮テクスチャの場合(PVRTC,ETC2,ASTCなど) 7 元画像 圧縮テクス チャ へ変換 そのまま 使える。 ステキ!

Slide 8

Slide 8 text

圧縮テクスチャのメリット ● 圧縮率は無圧縮と比べて ¼, ⅛, 1/16 位に ○ PNGやJPGなどに比べると圧縮効率は良くない ● 描画時のパフォーマンス向上 ○ 転送時帯域削減 ○ 変換不要 ● メモリ容量の削減(VRAM) ● アプリ容量の削減(ストレージ、トラフィック) ○ ファイルサイズ的な話 ● 消費電力削減 8

Slide 9

Slide 9 text

圧縮テクスチャのデメリット ● プラットフォームによって使える形式がまちまち ○ 対応していない形式を無理に使おうとするとVRAM上では非圧縮に展 開されます。 ● 不可逆圧縮なのでもちろん画像が劣化します ○ グラデーションや透過を使っている画像では顕著です。 ○ 色が大きく違うものが密集しているものも苦手です。 9

Slide 10

Slide 10 text

3. 圧縮テクスチャの種類とか 10

Slide 11

Slide 11 text

モバイルで使える圧縮テクスチャの種類(iOS) 11 https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf テクスチャ圧縮形式 サポートしているチッ プセット PVRTC すべて ETC2/EAC iPhone 5s (A7以降) ASTC iPhone 6 (A8以降) ● PVRTC はアルファが苦手です

Slide 12

Slide 12 text

モバイルで使える圧縮テクスチャの種類(Android) 12 テクスチャ圧縮形 式 サポートしている Google Play デバイスの 割合1 ETC1 99% ETC2 87% ASTC 77% ATC 35% PVRTC 11% DXT1 0.7% https://developer.android.com/guide/app-bundle/asset-delivery/texture-compression?hl=ja 1 2020 年 9 月にアクティブな Google Play デバイスから収集したデータを使用して算出

Slide 13

Slide 13 text

ASTC をサポートしているチップセット(Android) ● Qualcomm GPUs since Adreno 4xx / Snapdragon 415 (2015) ● ARM GPUs since Mali T624 (2012) ● NVIDIA GPUs since Tegra K1 (2014) ● PowerVR GPUs since GX6250 (2014) 13

Slide 14

Slide 14 text

ちなみに PVRTC, ETC1 時代(5年位前)はこんな事して いました 14

Slide 15

Slide 15 text

輪郭部分にアルファで抜かれる黒がにじむ問題 15

Slide 16

Slide 16 text

輪郭部分にアルファで抜かれる黒がにじむ問題 16 外縁の色を引き伸ばして対処しました。

Slide 17

Slide 17 text

4. 2021年のベタープラクティス 17

Slide 18

Slide 18 text

最近5,6年以内に発売された端末をターゲットにするのでしたら、 iOS/Android 共に ASTC 一択で良いと思う! ブロックサイズを選択できるので画像によって変更できるのがとて も良いです。 ● 標準は ASTC 6x6 ● ブロックノイズや劣化が気になるものに関しては、ASTC 4x4 ● それすらも許容できない場合はTrue Color RGB24/RGBA32 で。 ○ UI のボタンや背景 9Slice 使うものなど 18

Slide 19

Slide 19 text

19 Unity での設定方法(インスペクタ)

Slide 20

Slide 20 text

ただし、ASTC テクスチャが一部の Android 端末で透けるハード ウェア的な問題があるようなのでご注意を。 Unity では下記の組み合わせで発生します。 ● Adreno GPU 端末 ● プロジェクト設定はリニア色空間 ● テクスチャの色空間は sRGB 【参考】 https://qiita.com/khattorij/items/90fab5c3fc67a811e71f 20 注意

Slide 21

Slide 21 text

HAPPY HACKING! ANY QUESTIONS? 21