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

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

cocone
October 13, 2021

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

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

cocone

October 13, 2021
Tweet

More Decks by cocone

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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 デバイスから収集したデータを使用して算出

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. HAPPY HACKING!
    ANY QUESTIONS?
    21

    View Slide