Upgrade to Pro — share decks privately, control downloads, hide ads and more …

cocone Teck Talk Vol.4 - 2021年版 2Dスマホゲームにおける圧縮テクスチャについて

7ed7c8dbd917b000d5eb633e3519c123?s=47 cocone
October 13, 2021

cocone Teck Talk Vol.4 - 2021年版 2Dスマホゲームにおける圧縮テクスチャについて

分かっているような分かっていないような、そしてたいていは分かっていなくても何とかなる圧縮テクスチャ。 そんな圧縮テクスチャについての試行錯誤と2021年のココネのベタープラクティス。 デザイナーの要求レベルが高い弊社での試行錯誤をお話できたらなと思います。

7ed7c8dbd917b000d5eb633e3519c123?s=128

cocone

October 13, 2021
Tweet

Transcript

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

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

  3. 1. 自己紹介 倉秀一 群馬県みどり市出身。 3人の子どもがいます。 長いこと埼玉の北浦和に住んでいま した。今は三茶に住んでいます。飲み 屋行きたいです。 I LOVE:

    ビール, 家系ラーメン, 焼肉, 音楽(中 田ヤスタカ/tofubeats/やくしまるえ つこ), CUI, Vim, Solarized, Tesla, SF/ファンタジー/ホラー, Google, 自 転車, Steam, Netflix, 料理, 香り物 (香水/ディフューザ/バスソルト)
  4. こんな事やってました 2003〜2010年 コナミ ネットワーク対戦アーケードゲーム開発 (サーバ担当、通信、クイズ周り、ディレクターもちょっと) 2011〜2015年 GREE ソーシャルゲーム開発 (主にサーバ担当) 2015〜現在

    ココネ 新規アプリの立ち上げ(主にクライアント担当)  ・某IP初の着せ替えアプリ  ・ポケコロツイン  ・リヴリーアイランド 4
  5. 2. 圧縮テクスチャって? 5

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

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

  8. 圧縮テクスチャのメリット • 圧縮率は無圧縮と比べて ¼, ⅛, 1/16 位に ◦ PNGやJPGなどに比べると圧縮効率は良くない •

    描画時のパフォーマンス向上 ◦ 転送時帯域削減 ◦ 変換不要 • メモリ容量の削減(VRAM) • アプリ容量の削減(ストレージ、トラフィック) ◦ ファイルサイズ的な話 • 消費電力削減 8
  9. 圧縮テクスチャのデメリット • プラットフォームによって使える形式がまちまち ◦ 対応していない形式を無理に使おうとするとVRAM上では非圧縮に展 開されます。 • 不可逆圧縮なのでもちろん画像が劣化します ◦ グラデーションや透過を使っている画像では顕著です。

    ◦ 色が大きく違うものが密集しているものも苦手です。 9
  10. 3. 圧縮テクスチャの種類とか 10

  11. モバイルで使える圧縮テクスチャの種類(iOS) 11 https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf テクスチャ圧縮形式 サポートしているチッ プセット PVRTC すべて ETC2/EAC iPhone

    5s (A7以降) ASTC iPhone 6 (A8以降) • PVRTC はアルファが苦手です
  12. モバイルで使える圧縮テクスチャの種類(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 デバイスから収集したデータを使用して算出
  13. 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
  14. ちなみに PVRTC, ETC1 時代(5年位前)はこんな事して いました 14

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

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

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

  18. 最近5,6年以内に発売された端末をターゲットにするのでしたら、 iOS/Android 共に ASTC 一択で良いと思う! ブロックサイズを選択できるので画像によって変更できるのがとて も良いです。 • 標準は ASTC

    6x6 • ブロックノイズや劣化が気になるものに関しては、ASTC 4x4 • それすらも許容できない場合はTrue Color RGB24/RGBA32 で。 ◦ UI のボタンや背景 9Slice 使うものなど 18
  19. 19 Unity での設定方法(インスペクタ)

  20. ただし、ASTC テクスチャが一部の Android 端末で透けるハード ウェア的な問題があるようなのでご注意を。 Unity では下記の組み合わせで発生します。 • Adreno GPU

    端末 • プロジェクト設定はリニア色空間 • テクスチャの色空間は sRGB 【参考】 https://qiita.com/khattorij/items/90fab5c3fc67a811e71f 20 注意
  21. HAPPY HACKING! ANY QUESTIONS? 21