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
100
AssetBundle と TextureCompression のおはなし
Tetsuya Mori
PRO
October 23, 2013
Tweet
Share
More Decks by Tetsuya Mori
See All by Tetsuya Mori
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
950
はじめての C# 大統一理論
monry
PRO
0
560
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
130
Unity で ARゲームを作った話
monry
PRO
0
560
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
2.6k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
450
Democratized Unity Package Manager
monry
PRO
1
2.3k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
920
ごっこランドをささえる技術 〜AssetBundle 編〜/AssetBundle Fully Understood
monry
PRO
3
6.2k
Other Decks in Programming
See All in Programming
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
270
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
1
170
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
240
Git Lint
bkuhlmann
4
750
Milestoner
bkuhlmann
1
410
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
920
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
650
2 週間で Twitter Bot を作ってみた
contour_gara
0
390
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
530
見た目から始める生産性向上
ikumatadokoro
7
840
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
190
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
920
Featured
See All Featured
Code Review Best Practice
trishagee
55
15k
Code Reviewing Like a Champion
maltzj
514
39k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Building an army of robots
kneath
300
41k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
Agile that works and the tools we love
rasmusluckow
325
20k
How STYLIGHT went responsive
nonsquared
92
4.8k
Docker and Python
trallard
34
2.7k
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!!!