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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.4k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.7k
はじめての C# 大統一理論
monry
PRO
0
800
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
290
Unity で ARゲームを作った話
monry
PRO
1
950
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
3.1k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
540
Democratized Unity Package Manager
monry
PRO
1
2.9k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.2k
Other Decks in Programming
See All in Programming
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
990
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
190
Understanding Apache Lucene - More than just full-text search
spinscale
0
120
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
150
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
110
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
140
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
190
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
600
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
240
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.1k
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
560
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
110
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
140
What's in a price? How to price your products and services
michaelherold
247
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
GitHub's CSS Performance
jonrohan
1032
470k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Are puppies a ranking factor?
jonoalderson
1
3.1k
Prompt Engineering for Job Search
mfonobong
0
190
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
180
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!!!