Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AssetBundle と TextureCompression のおはなし
Search
Tetsuya Mori
PRO
October 23, 2013
Programming
0
120
AssetBundle と TextureCompression のおはなし
Tetsuya Mori
PRO
October 23, 2013
Tweet
Share
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1.3k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.5k
はじめての C# 大統一理論
monry
PRO
0
740
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
240
Unity で ARゲームを作った話
monry
PRO
1
800
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
2.9k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
520
Democratized Unity Package Manager
monry
PRO
1
2.8k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.1k
Other Decks in Programming
See All in Programming
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
410
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
430
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
210
A2A プロトコルを試してみる
azukiazusa1
2
1.1k
Team operations that are not burdened by SRE
kazatohiei
1
210
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
110
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
160
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
Select API from Kotlin Coroutine
jmatsu
1
190
GoのGenericsによるslice操作との付き合い方
syumai
3
690
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
340
VS Code Update for GitHub Copilot
74th
1
390
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Faster Mobile Websites
deanohume
307
31k
Being A Developer After 40
akosma
90
590k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Docker and Python
trallard
44
3.4k
How to train your dragon (web standard)
notwaldorf
93
6.1k
Why Our Code Smells
bkeepers
PRO
337
57k
The Cult of Friendly URLs
andyhume
79
6.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Transcript
AssetBundle ͱ TextureCompression ͷ͓ͳ͠ ʙMobile Platform ʹԙ͚ΔϦιʔεཧʙ גࣜձࣾΩοζελʔ ɹ࠸
͜ΜΜʂ • Unityɺͬͯ·͔͢ʂʁ • Unityɺָ͍͠Ͱ͢Ͷʂ • ࠓ AssetBundle ͱ Texture
ѹॖʹͭ ͍ͯޠΓʹདྷ·ͨ͠ʂʂ
ͱɺͦͷલʹ…ɻ
Who am I ? • “ɹ࠸” ͱਃ͠·͢ɻ • a.k.a. ΜΓ͌
/ T: @monry / F: ຊ໊ • 29ࡀ / ˁ / Oܕ / ఱṝ࠲ / طࠗ / झຯ: ߹ এ • झຯʮ͓ञʯͱʮ߹এʯͰ͢ɻ
Who am I ? • “גࣜձࣾΩοζελʔ” ͬͯձࣾͰಇ͍ͯ·͢ɻ • ະबֶࣇʙখֶੜͷ͓ࢠ͞·Λ͓࣋ͪͷϑΝ ϛϦʔΛλʔήοτʹͨ͠ҭ/ڭҭʹؔΘΔ
ΞϓϦɾαʔϏεΛల։͓ͯ͠Γ·͢ɻ ͑͜΄Μ ͷ͑΄Μؗ ͳΓ͖Γ!! ͬ͜͝ϥϯυ ύζϧ&ςΠϧζ
Ϩδϡϝ • AssetBundle ʹ͍ͭͯ • TextureCompression ʹ͍ͭͯ
લఏ • େલఏͱͯ͠ɺ2D ͷ͓͠Ͱ͢ʂ • ͬͱݴ͏ͱ NGUI ʹݶఆͯ͠·͢ • iOS
/ Android ͳϞόΠϧڥ • Unity 4.x (Pro) / NGUI 2.6.x • Pro ൛͡Όͳ͍ͱ AssetBundle Λ Build Ͱ͖ͳ͍ • AssetBundle ͷ͕8ׂͰ͢ :-P • ؒҧͬͨ͜ͱݴ͏͔Ε·ͤΜ͕ɺποίϛେܴͰ͢ʂʂ
AssetBundle ͷ֓ཁ • ͦͦ AssetBundle ͬͯ…ʁ • Asset Λ Bundle
ͨ͠Ϟϊ • ૉࡐΛవΊͯҰͭͷϑΝΠϧͱͯ͠ѻ͏ ͨΊͷٕज़ • Α͋͘Δॳճμϯϩʔυͱ͔ • ιγϟήͷΧʔυͷը૾ͱ͔
AssetBundle ͷ֓ཁ • ͜Μͳͷɻ(એ͡Όͳ͍Ͱ͢Αʁ͆)
AssetBundle ͷॴ • Unity ͕ղऍग़དྷΔϞϊͳΒ٧Ί์ • ͨͩ͠ɺiOS JIT ࣮ߦෆՄ
• WWW ΫϥεΛܦ༝ͯ͠औಘ • Ωϟογϡͱ͔Α͠ͳʹͬͯ͘ΕΔ • όʔδϣχϯάʹରԠ
AssetBundle ͷॴ • جຊతʹαʔόඞཁ • Content-Type: application/vnd.unity Λཁฦ٫ • ϑΝΠϧ໊ϢχʔΫ
• basename Ͱఆ͞ΕΔ • σΟϨΫτϦ۷ͬͯཧͱ͔ᶡ • ϓϥοτϑΥʔϜຖʹผϑΝΠϧ
AssetBundle ͷӡ༻ • ͡Ό͋ɺͦͷล౿·͑ͯɺͲ͏Δ ͷʁͬͯͳ͓͠Λɻ • ͔͜͜ΒઌɺฐࣾͰͷࣄྫΛϕʔε ʹਐΊ·͢ɻ • ҰͭͰࢀߟʹͳΔϞϊ͕͋Ε͍
Ͱ͢ɻ
AssetBundle ͷڥ • ॳճϦιʔεμϯϩʔυ • 2ճҎ߱ Cache ͤ Amazon S3
Amazon CloudFront App (Cache) App (Memory) Amazon S3 Amazon CloudFront App (Cache) App (Memory)
AssetBundle ͷڥ • νʔϜ։ൃ͢ΔͳΒ git Ͱཧ • όΠφϦ͔ͩΒඍົͬͪΌඍົ • Asset
Server (ཁ Team License) ΞϦ͔ • Editor Script ඞਢ • άάΕ͍ͬͺ͍స͕ͬͯ·͢ • ͜ͷษڧձͷաڈͷηογϣϯʹ
AssetBundle ͷڥ • iOS / Android ͷ྆ํʹରԠͤ͞Δ߹ɺ Team License ങͬͱ͚ʂ
• BuildPipeline.BuildAssetBundle() ͷࡍʹ Import Asset ͕ΔͨΊɺϦιʔε ͕ଟ͍ͱΊͬͪΌͭɻ • ͷͰɺCache Server ඞਢɻ
AssetBundle ͷઃܭ • ཻ (ฐࣾͷ߹) • Atlas / Texture /
AudioClip ΛݸผʹϏϧυ • 1ը໘ (≠γʔϯ) ʹ࠷େ10ݸΛ҆ • ॳճDL࣌ͷΩϟογϡʹ݁ߏґଘ • Ͳ͏ʹ͔͍ͨ͠Μ͚ͩͲͶ…ɻ
AssetBundle ͷઃܭ • ߋ৽ස (ฐࣾͷ߹) • ݪଇతʹ iOS ͷਃεέδϡʔϧ͕ج ४
• ͦͦߋ৽ස͕ߴ͍Ϟϊ API ͱ ͔ܦ༝ͨ͠ํ͕ཧָ͕ • BASE64 ͳςΩετΛ৯ΘͤΔͱ͔
AssetBundle ͷઃܭ • ॳճDL͢ΔωλҰཡ (ฐࣾͷ߹) • ͑ͯΞϓϦ (Assets/Resources/) ʹ .txt
(TSV ͳ TextAsset) Λอ࣋ • ϑΝΠϧ໊<TAB>όʔδϣϯ<LF> • ຖճىಈ࣌ʹ͜ͷϦετΛνΣοΫ • WWW.LoadFromCacheOrDownload ʹͤͯ Cache ͕༗͢ΔόʔδϣϯͱҟͳΔͳΒ DL
AssetBundle ͷઃܭ • ϑΝΠϧ໊ (ฐࣾͷ߹) • ϓϥοτϑΥʔϜ໊/छผ@ γʔϯ໊@ը໘໊@ϑΝΠϧ໊.unity3d • ϓϥοτϑΥʔϜ໊
iOS, Android, Editor ͳͲ • छผ Atlas, AudioClip, Texture ͳͲ
AssetBundle ͷߏங • Editor Script Ͱ͕ΜΔɻ Supporting Files/ 種別/ シーン名/
画面名/ ファイル名 ͜ͷߏܾΊଧͪͰσΟϨΫτϦͷ ϑΝΠϧΛࠪ
AssetBundle ͷ৴ • S3 Λ Origin ͱͨ͠ CloudFront • “όʔδϣϯ൪߸/ϓϥοτϑΥʔϜ/”
ͳ σΟϨΫτϦҎԼʹஔ • Editor Script Ͱॻ͖ग़ͨ͠σΟϨΫτϦ Λؙͬͱ PUT ग़དྷΔͱָͪΜ
ҙ • దͳࠩϏϧυΛߦΘͳ͍ͱμϝ • Կ͔ྑ͍Ҋແ͍͔ͬ͢ʁ͆ • WWW λΠϜΞτͷ࣮͕ແ͍ͷͰɺࣗલ ͰΉඞཁ͋Γ •
CloudFront ͏߹ɺ։ൃத Origin ͔Β DL ͨ͠ํ͕ྑ͍ • CF ଆͷ Cache Invalidation ͱ͔େมͩ͠ɻ
Texture Compression • ςΫενϟͷѹॖ • Inspector ͷ Format ʹ৭ʑ ग़ͯ͘Δ͚Ͳɺཁ͢Δʹ
Ͳ͏͍͏ίτ…ʁ
Texture Compression • σόΠεຖʹɺల։ग़དྷΔϑΥʔϚοτͱग़ དྷͳ͍ϑΥʔϚοτ͕͋Δ • GPU ʹґଘ • ల։ग़དྷͳ͔ͬͨ߹ɺແѹॖͷςΫενϟ
ΛҰؾʹϝϞϦʹࡌͤΔͬΆ͍ • શը໘ςΫενϟͱ͔ඳըʹ1secֻ͔Δί τɻ
Texture Compression • Ͱɺ࠷దͳͷʁ • iOS PowerVR (PVR) ʹ͠ͱ͚
OK • RGBA Compressed PVRTC 4 bits ͕Φεεϝ • ͩ͜ΘΔͳΒ Texture ผʹ࣮ػͰݟ ͭͭదʹબΜͰͶ
ͦ͏ɺiPhone ͳΒͶɻ
Texture Compression • ͰɺAndroid ʁ • …ɻ • ………ɻ •
࠷దղ͋Γ·ͤΜʂ orz
Texture Compression • ͱɺݴ͍͍ͨͱ͜ΖͰ͕͢ɺ7ׂҎ্͕ Adreno ʹରԠ͍ͯ͠ΔΑ͏ͳͷͰɺ ATC ͕ྑ͍Μ͡Όͳ͍͔ͱɻ ग़ల: NTT
Ϩκφϯτ͞·ͷ Remote TestKit Ұཡ http://appkitbox.com/testkit/smartphone
Texture Compression • ඇରԠ…ʁ • ͿͬͪΌ͚ΓࣺͯΔํ͕ਫ਼ਆӴੜ ্ΑΖ͍͠ͷͰʁ • গͳ͘ͱʮಡΊͳ͍ʯͱ͍͏ίτ ແ͍
(ͬΆ͍) ͷͰɺαΠζ࣍ୈͰ Կͱ͔ͳΔ͔ɻ
Texture Compression • WebPlayer / Standalone / etc… ʁ •
·ͩ࡞ͬͨ͜ͱແ͍ͷͰ͔Γ·ͤ Μʂ (ŝžŕ • ೡΖใަ͠·͠ΐ͏ʂ
·ͱΊ • AssetBundle • Editor Script ͕؊ཁ • ͪΌΜͱӡ༻ݟਾ͑ͯઃܭ͢͠ •
Texture Compression • Android ͷαϙʔτ࣍ୈ • υϥεςΟοΫͳஅඞཁ͔
Any Questions?
Thank you for your attention!!!