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
アセット運用ベストプラクティス
Search
unitydojo
August 23, 2016
Technology
6
11k
アセット運用ベストプラクティス
Unity道場第十回目「アセット運用ベストプラクティス」のスライドです。
http://eventdots.jp/event/596059
unitydojo
August 23, 2016
Tweet
Share
More Decks by unitydojo
See All by unitydojo
【Unity道場】Unity 5.6最新情報
unitydojo
2
1.9k
【Unity道場】ゲームアプリマネタイズの最前線 〜GDCのマネタイズ関連講演まとめ〜
unitydojo
4
1.5k
はじめてのUnity入門
unitydojo
0
2.1k
【Unity道場】エフェクト実践編
unitydojo
10
9.4k
【Unity道場】パフォーマンス最適化の ポイント
unitydojo
12
52k
【Unity道場】アセットストアマニアクス 2016 冬の陣
unitydojo
1
570
【Unity道場京都スペシャル】エディタの基本操作が_めっちゃ早くなるテクニック
unitydojo
6
3k
【Unity道場京都スペシャル】ゼロから始めるUnity UI
unitydojo
1
1.4k
【Unity道場京都スペシャル】プロが教える脱初心者スクリプト術!
unitydojo
3
2.8k
Other Decks in Technology
See All in Technology
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
120
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
530
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
230
Autify Company Deck
autifyhq
1
39k
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1k
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
170
大規模データ基盤チームのオンプレTiDB運用への挑戦 / dpu-tidb
cyberagentdevelopers
PRO
1
100
Sidekiq vs Solid Queue
willnet
12
7.5k
新R25、乃木坂46 Mobileなどのファンビジネスを支えるマルチテナンシーなプラットフォームの全体像 / cam-multi-cloud
cyberagentdevelopers
PRO
1
120
顧客が本当に必要だったもの - パフォーマンス改善編 / Make what is needed
soudai
23
6.5k
小規模に始めるデータメッシュとデータガバナンスの実践
kimujun
3
500
Featured
See All Featured
Writing Fast Ruby
sferik
626
60k
What's new in Ruby 2.0
geeforr
342
31k
Faster Mobile Websites
deanohume
304
30k
Happy Clients
brianwarren
97
6.7k
KATA
mclloyd
29
13k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Practical Orchestrator
shlominoach
186
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Typedesign – Prime Four
hannesfritz
39
2.4k
Transcript
6OJUZ麣㜥 "TTFU麊欽كأز٥فؙٓذ؍أ
ࣗݾհ 㿊募麦䕕 ِصذ؍٥ذؙظٗآ٦ؤ٥آٍػٝ ؿ؍٦ٕسؒٝآص،Ⱟ ؒٞ؋ٝآؑٔأز
#Unityಓ
6OJUZד،إحزⵃ欽ׅ 㛇燉
Ξηοτ(Asset) = ࢿ࢈ ΦʔσΟΦɺςΫενϟɺϞσϧɺΞχϝʔγϣϯ ࣭ײɺεΫϦϓτɺͦͷଞॾʑ
ͱΓ͋͑ͣֆΛग़͢ɺUnityॳ৺ऀ͚આ໌ɻ • 6OJUZؒر؍ةך1SPKFDUؽُ٦ח ،إحزسٓحؚسٗحف • ӴӴ؝ٝه٦طٝزךӛӛח سٓحؚسٗحف • 邌爙ׁ٧ ӟs
None
Unityͷಈ࡞ͷʮॳ৺ऀ͚ͷઆ໌ʯ • 6OJUZؒر؍ةך1SPKFDUؽُ٦ח ،إحزسٓحؚسٗحف • ӴӴ؝ٝه٦طٝزךӛӛח سٓحؚسٗحف • 邌爙ׁ٧ ӟs
• ،إحز؎ٝه٦ز׃ג ⢪ִ䕎ח㢌䳔 • ء٦ٝח،إحزⵃ欽ׅ ؝ٝه٦طٝز堣腉欽䠐 • ؒر؍ةד؝ٝه٦طٝزח ،إحز鏣㹀 • 邌爙ׁ٧ ӟs
Unityͷಈ࡞ͷʮॳ৺ऀ͚ͷઆ໌ʯ • 6OJUZؒر؍ةך1SPKFDUؽُ٦ח ،إحزسٓحؚسٗحف • ӴӴ؝ٝه٦طٝزךӛӛח سٓحؚسٗحف • 邌爙ׁ٧ ӟs
• ،إحز؎ٝه٦ز׃ג ⢪ִ䕎ח㢌䳔 • ء٦ٝח،إحزⵃ欽ׅ ؝ٝه٦طٝز堣腉欽䠐 • ؒر؍ةד؝ٝه٦طٝزח ،إحز鏣㹀 • 邌爙ׁ٧ ӟs
ಈతʹࠩ͠ସ͑ΒΕΔResources • 3FTPVSDFTؿٕؓت⟃♴חꂁ縧׃ ،إحزծأؙٔفزַ《䖤ׅ • ؿ؋؎ٕせ䭁䓸㶨כ搀׃ד《䖤 • ٔٔ٦أ䖓ח㢌刿⳿勻זְ
ϦϦʔεޙʹมߋग़དྷΔAssetBundle • ٔٔ٦أ幥ך،فٔח،إحز鷄⸇ • BTTFU纇䎗אַ勲י CVOEMF ך • 3FTPVSDFTהずׄ״ֲח،إحز铣
ͦͷଞɻ • +1&(װ1/(ծ#.1瘝ך歗⫷ծ 8"7װ.1瘝ך،إحزה׃ג涫ꐮ׃ג ְזְٔا٦أ⹛涸חٗ٦سׅկ • ذؗأز湫䱸ٗ٦س׃גծ 㢌䳔׃ג✺ղׅկ
ֲ㼰׃鑫׃ֻկ
ΞηοτͷΠϯϙʔτ • "TTFUTؿٕؓت⟃♴חؿ؋؎ٕꂁ縧׃ ،إحز؎ٝه٦زׅկ • ؎ٝه٦ز׃،إحزכծ ぐفٓحزؿؓ٦يד铣ر٦ةח 㢌䳔ծ٦يד⢪ִ״ֲחזկ • ؎ٝه٦ز׃،إحزכ4DFOFװ
1SFGBCח涫ꐮ⳿勻״ֲחזկ
γʔϯϏϡʔʹΞηοτΛઃఆ͢Δɺͱ • 4DFOFؿ؋؎ٕח؝ٝه٦طٝز 鏣㹀׃ծ،إحزפך撑涫ꐮׅկ • 䞔㜠כ4DFOFח⥂㶷ׁծ4DFOF ٗ٦س׃ꥷח،إحز荈⹛涸ח ٗ٦سׁկ • 1SPKFDUؽُ٦ַ%%דؔـآؙؑز⡲䧭
ׁ،إحز֮4QSJUF瘝 • ؒر؍ةחג✲חء٦ٝח涫ꐮׅկ
ResourcesͰϩʔυ͢Δɺͱ • 㹋遤儗ח3FTPVSDFTؿٕؓتפせ欽ְג،ؙإأ׃ծ،إحز《䖤ׅկ • 《䖤׃ⰻ㺁أؙٔفزחג ؝ٝه٦طٝزח鏣㹀ׅկ • 《䖤⳿勻ךכ3FTPVSDFTؿٕؓت⟃♴ח ろ،إحزךկ •
ٔٔ٦أ䖓ח䊴׃剏ִ✲ָדֹזְ
None
None
None
None
AssetBundle͔Βऔಘ͢Δɺͱ • 6OJUZָ⢪欽〳腉ז،إحز ♧א⟃♳呓秛ׅ،٦ؕ؎ـ • ٔٔ٦أ䖓ח،إحزך鷄⸇٥䊴剏ָ〳腉דծ㹋遤儗ח،إحزٗ٦س׃ג⢪ֲկ • "TTFU#VOEMFず㡦ך⣛㶷ꟼ⤘邌爙ׅ.BOJGFTU "TTFU#VOEMFח،إحز呓秛ׅ"TTFU"TTFUCVOEMF "TTFU#VOEMFחء٦ٝ呓秛ׅ4USFBNFE4DFOF"TTFU#VOEMFָ֮կ
None
None
None
None
None
StreamedSceneAssetBundle • 4USFBNFE4DFOF"TTFU#VOEMF "TTFU#VOEMFחء٦ٝ呓秛׃ծ 4DFOF.BOBHFSַㄎן⳿ׇկ • "TTFU#VOEMFחכء٦ٝ䞔㜠הծ ء٦ָٝ撑ׅ،إحز纇ָろתկ
None
None
None
Assetͷґଘؔ "TTFU#VOEMFַ،إحز《䖤ׅꥷծ 撑⯓ך"TTFU#VOEMFָٗ٦سׁגְל ➭ך"TTFU#VOEMFָ䭯א،إحزٗ٦س׃גֻկ JDPO"# QSFGBC"#
AssetBundle Manager • AssetBundleͷ্ҐϨΠϠʔʢ༧ఆ • AssetBundle͔Β μϯϩʔυग़དྷΔ
AssetBundle Manager • AssetBundleΛϏϧυͤͣAssetBundle͔Β ΞηοτΛऔಘ͢ΔγϛϡϨʔλʔػೳ • ϩʔΧϧαʔόʔΛߏங͢ΔLocal Serverػೳ • ίʔυΛॻ͔ͣAssetBundleΛϏϧυ͢ΔBuildػೳ
،إحز麊欽كأز٥فؙٓذ؍أ
ךח˘
كأز٥فؙٓذ؍أ 剑黝鍑
剑黝鍑כ朐屣ח״ג殯ז
Ⰻגכزٖ٦سؔؿ
剑黝鍑濼捀חכծ ٕ٦ٕה鼅䫛肇䪾䳢ׅկ
姻׃ְ鼅䫛肇䖤捀ח
הה鑫׃ֻկ
،إحزהؔـآؙؑزך ءٔ،ٓ؎ؤחאְג
γϦΞϥΠζɺͱ • ؔـآؙؑزך朐䡾⥂㶷ծ 鷞חؔـآؙؑزח䗁⯋〳腉חׅկ • 6OJUZכ،إحزך麊欽ך㣐鿇ⴓ ֿךءٔ،ٓ؎ؤ䪮遭ח⣛㶷׃גְկ
ྫ͑PrefabͱSceneͷؔ 圓鸡⥂㶷
،إحز QSFGBCװTDFOF ྫ͑ΦϒδΣΫτͱΞηοτͷؔ 撑䞔㜠⥂㶷
PrefabΛγϦΞϥΠζ ،إحزפך撑 ،إٝـٔפך撑 㶨QSFGBC ⽃♧ך ءٔ،ٓ؎ؤ׃ر٦ة
PrefabΛσγϦΞϥΠζ ،إحزפך撑 ،إٝـٔפך撑 㶨QSFGBC 醱꧟זؔـآؙؑز圓鸡
ΞηοτΠϯϙʔτॲཧɻ • TextureAudioɺModelωΠςΟϒσʔλΛࢀর͢Δ UnityEngine.ObjectΛγϦΞϥΠζʢʹΠϯϙʔτʣ
ωΠςΟϒσʔλʁ ع٦سؐؑ،ח״גؿؓ٦وحزָ 寸㹀׃גְ暟կ 䭷㹀ךؿؓ٦وحزדזְהծ ⵃ欽ׅ✲ָדֹזְ ⢽ִלQWSUDծFUD瘝ךذؙأثٍر٦ة PHHծNQ瘝ךؔ٦ر؍ؔر٦ةկ ؿؓ٦وحزכفٓحزؿؓ٦يח⣛㶷ׅךדծ ؙٙٝحءّٝ縧ְկ
ΞηοτΠϯϙʔτॲཧɻ • TextureAudioɺModelωΠςΟϒσʔλΛࢀর͢Δ UnityEngine.ObjectΛγϦΞϥΠζʢʹΠϯϙʔτʣ • UnityEngine.ObjectΛܦ༝ͯ͠ɺScenePrefab͔Β ωΠςΟϒσʔλؒతʹΞΫηεՄೳʹ͢Δɻ
6OJUZ&OHJOF0CKFDU UFYUVSF ،إحز ،إحزהر٦ةכ Πϯϙʔτ
6OJUZ&OHJOF0CKFDU ،إحز UFYUVSF QSFGBCװTDFOF ط؎ذ؍ـ ر٦ة ءٔ،ٓ؎ؤ 朐䡾⥂㶷ⱄ植〳腉ח
6OJUZ&OHJOF0CKFDU UFYUVSF QSFGBCװTDFOF (6*%-PDBM*% 穗歋ד،ؙإأ NFUB ࢀরͷྲྀΕʢΤσΟλʣ
GUID? 6OJUZכ،إحز陎ⴽׅꥷծ ꅾ醱׃זְ*%(6*%ד،إحز 陎ⴽ׃גְկ (6*%כ؎ٝه٦ز儗ח鏣㹀ׁծ NFUBر٦ةָ㣟זְꣲծ笝䭯ׁ ػأװؿ؋؎ٕせָ㢌⻉׃ג 撑ָ㢩זְ捀ך倵瘻
.meta? ،إحز؎ٝه٦ز儗ח⡲䧭ׁ ،إحزせ NFUBךؿ؋؎ٕկ ،إحزהずػأח⡲䧭ׁկ NFUB婍׃תתؿ؋؎ٕ ♳剅ֹׅ✲דծ撑װ鏣㹀笝䭯׃תת ،إحز刿倜⳿勻կ ⴱ劍鏣㹀כꦀ׃ؿ؋؎ٕחזגְկ
Local ID? 4QSJUFװ.PEFM瘝ծ،إحزכⰻ鿇ח 醱侧ך،إحز䭯א✲ָ֮կ ְֲ،إحز纇כծ(6*%הכⴽח -PDBM*%חג陎ⴽׅկ NFUBח鎸鶢ׁגְ ך䖓ך侧㶵ָ-PDBM*%
ͦͷଞɺGUIDΛׂΓͯΒΕΔΞηοτ • ScriptableObject ʢಠࣗͷσʔλܕΛఆٛ͢ΔͨΊͷϑΥʔϚοτɻ ɹUnityΤϯδϯ͕γϦΞϥΠζ/σγϦΞϥΠζ͢Δʣ • Monobehaviour ʢಛఆͷΞηϯϒϦͷ໊લۭؒ.ΫϥεͷࢀরΛอ࣋͢Δ)
אתծ
אתծ6OJUZ&OHJOF0CKFDUדٓحؾؚٝ׃ծ 撑ꟼ⤘⚵׀ה⥂㶷׃גְկ
،إحزխխխխխכ⡦儗ٗ٦سׁך ط؎ذ؍ـر٦ة فٖعـ
ΞηοτͷϥΠϑαΠΫϧ • ωΠςΟϒσʔλUnityEngine.ObjectΛ ܦ༝ͯ͠ϩʔυ͞ΕΔɻ • ࣮ߦ࣌ɺGUIDͱLocal IDΛมͨ͠Instance IDͰ ΞηοτΛࢀর͢ΔʢߴԽͷҝʣ •
ෆཁʹͳͬͨΒΞϯϩʔυ͢ΔɻInstance IDΔ
6OJUZ&OHJOF0CKFDU QSFGBCװTDFOF *OTUBODF*%ؒٝآٝח涫ꐮ ΞηοτͷϥΠϑαΠΫϧ
6OJUZ&OHJOF0CKFDU QSFGBCװTDFOF *OTUBODF*%穗歋ד ،ؙإأ ΞηοτͷϥΠϑαΠΫϧ
6OJUZ&OHJOF0CKFDU UFYUVSF QSFGBCװTDFOF ذؙأثٍٗ٦س ΞηοτͷϥΠϑαΠΫϧ
6OJUZ&OHJOF0CKFDU UFYUVSF QSFGBCװTDFOF 撑⯋搀ֻׅ ΞηοτͷϥΠϑαΠΫϧ
6OJUZ&OHJOF0CKFDU UFYUVSF ذؙأثٍ،ٝٗ٦س *OTUBODF*%כ婍 ΞηοτͷϥΠϑαΠΫϧ
ΞηοτΛϩʔυ͢ΔγφϦΦ • Instance ID͕ࢀর͞ΕΔʢSceneɾPrefab͔Βʣ • AssetBundle.LoadResources.Load͔ΒͷΞΫηε
ΞηοτΛΞϯϩʔυ͢ΔγφϦΦ • Resources.UnloadAssets • Resources.UnloadUnusedAssets • AssetBundle.Unload(true) • SceneManager.LoadScene(LoadSceneMode.Single)
Ξϯϩʔυग़དྷͳ͍έʔε 稢ְַ眔㔲ד،إحزꤐ⳿勻6OMPBE"TTFUTװ "TTFU#VOEMF6OMPBE USVF כ*OTUBODF 醱醡ׁ ،إحزװؔـآؙؑز嶊ׇזְկ %FTUSPZד嶊ַׅծ-PBE4DFOFד⚵׀ה ء٦ٝװ湫ׅկ
3FTPVSDFTחאְג
Resourcesͷಛ • ςΩετϕʔεͰInstance IDʹΞΫηε • ҙͷΞηοτΛҾ͖ग़ͤΔ • ResourcesϑΥϧμҎԼʹஔͨ͠ΞηοτΛొ
Resourcesͷ෦ಈ࡞ • ،فٔ饯⹛儗חⴱ劍⻉Ⳣ椚ָ饥ծ *OTUBODF*%הؿ؋؎ٕせהؿٕؓتػأ ٍؗحءُׅկ • ،فٔ饯⹛儗ծ俑㶵،ؙإأך捀ך ٕحؙ،حفذ٦ـٕ⡲կ • ⽃♧ךؿ؋؎ٕחءٔ،ٓ؎ؤׁկ
3FTPVSDFT 3FTPVSDFTQSFGBC "TTFU NBUFSJBM "TTFU UFYUVSF "TTFU BOJNBUJPO 3FTPVSDFTQSFGBC "TTFU
NBUFSJBM "TTFU UFYUVSF
ResourcesͷσϝϦοτ • ResourcesϑΥϧμΛෆదʹ͏ͱɺ ΞϓϦͷىಈ࣌ؒϏϧυ͕࣌ؒ৳ͼΔ • ΞηοτΛՃग़དྷͳ͍ҝɺΧελϜίϯςϯπΛ৴ग़དྷͳ͍ • ࠩߋ৽͕ग़དྷͳ͍ • Ξηοτѹॖ͞Εͳ͍
• AndroidΞΫηεʹՃίετ͕ൃੜ͢Δ
ResourcesϑΥϧμΛෆదʹ͏ 3FTPVSDFTؿٕؓت⟃♴חⰋגך،إحز 縧ֻהծ花㣐זⴱ劍⻉Ⳣ椚ָ涪欰ׅկ ،إحزך侧ח䘔ׄג ٕحؙ،حفذ٦ـٕ䎢ָ /MPH/ ד
"TTFU#VOEMFחאְג
AssetBundleͷಈ࡞ • "TTFU#VOEMFٗ٦سׅהծ "TTFU#VOEMFⰻחろת،إحزך *OTUBODF*%ָ铣鴥תկ • "TTFU#VOEMF騖ְ⣛㶷ꟼ⤘ 鏣㹀ׅ✲ָ⳿勻կ • "TTFU#VOEMFך䭯אط؎ذ؍ـر٦ةפ
*OTUBODF*%穗歋׃ג،ؙإأ "QQ "TTFU#VOEMF JOTUBODF*%T 姻然חכ*OTUBODF*%⡲暟 /BUJWF%BUB 0CKFDUT
AssetBundleͷಈ࡞ • "TTFU#VOEMFٗ٦سׅהծ "TTFU#VOEMFⰻחろת،إحزך *OTUBODF*%ָ铣鴥תկ • "TTFU#VOEMF騖ְ⣛㶷ꟼ⤘ 鏣㹀ׅ✲ָ⳿勻կ • "TTFU#VOEMF6OMPBEׅהծ
*OTUBODF*%ָ㣟կ • 3FTPVSDFTהず圫ծ湫䱸撑׃גְ، إحزך侧ח״ծ俑㶵،ؙإأ欽ך ٕحؙ،حفذ٦ـָٕ䎢ָկ • "TTFU#VOEMF㔐חאֹ։LCך ًٌٔ嶊顤ה⫦ַזָ㾜ך ؔ٦غ٦قحسָ֮
AssetBundleͷಈ࡞ • "TTFU#VOEMFٗ٦سׅהծ "TTFU#VOEMFⰻחろת،إحزך *OTUBODF*%ָ铣鴥תկ • "TTFU#VOEMF騖ְ⣛㶷ꟼ⤘ 鏣㹀ׅ✲ָ⳿勻կ • "TTFU#VOEMF6OMPBEׅהծ
*OTUBODF*%ָ㣟կ • 3FTPVSDFTהず圫ծ湫䱸撑׃גְ، إحزך侧ח״ծ俑㶵،ؙإأ欽ך ٕحؙ،حفذ٦ـָٕ䎢ָկ • "TTFU#VOEMF㔐חאֹ։LCך ًٌٔ嶊顤ה⫦ַזָ㾜ך ؔ٦غ٦قحسָ֮
AssetBundleͷґଘؔ ➭ך"TTFU#VOEMFח⣛㶷׃גְ㜥さծ *OTUBODF*%⯋ח撑鍑寸ׅկ ⣛㶷⯓ך*OTUBODF*%ָ鋅אַזְ㜥さծ .JTTJOHח鏣㹀ׁկ NJTTJOH䖓ד*OTUBODF*%ָ鍑寸ׁל ⣛㶷ꟼ⤘כ䗁崞ׅկ
None
None
None
AssetBundleͷґଘؔ "TTFU#VOEMF6OMPBEׅהծ*OTUBODF*% 1FSTJTUFOU.BOBHFSַ《♴־կ ♧䏝《♴־*OTUBODF*%כ䗁崞⳿勻׆ծ ⱄٗ٦س儗ח倜׃ְ*OTUBODF*%ָⶴ䮶 կ 撑⯓6OMPBE׃㜥さծ撑⯋6OMPBE ׃ⱄ䏝-PBEׅ䗳銲ָ֮կ
None
None
None
None
AssetBundle.Unload "TTFU#VOEMF6OMPBE USVF "TTFU#VOEMFַ䲿⣘׃Ⰻגך *OTUBODF*%䭯א،إحز䓼ⵖ涸ח 佝׃ծ*OTUBODF*%ꤐׅկ "TTFU#VOEMF6OMPBE GBMTF
"TTFU#VOEMFַ䲿⣘׃*OTUBODF*% ꤐׅկ
AssetBundleͷಈ࡞ • "TTFU#VOEMFٗ٦سׅהծ "TTFU#VOEMFⰻחろת،إحزך *OTUBODF*%ָ铣鴥תկ • "TTFU#VOEMF騖ְ⣛㶷ꟼ⤘ 鏣㹀ׅ✲ָ⳿勻կ • "TTFU#VOEMF6OMPBEׅהծ
*OTUBODF*%ָ㣟կ • 3FTPVSDFTהず圫ծ湫䱸撑׃גְ، إحزך侧ח״ծ俑㶵،ؙإأ欽ך ٕحؙ،حفذ٦ـָٕ䎢ָկ • "TTFU#VOEMF㔐חאֹ։LCך ًٌٔ嶊顤ה⫦ַזָ㾜ך ؔ٦غ٦قحسָ֮
AssetBundleͷׂ -;."ך㜥さծ؟؎ؤָ㣐ְֹהꬊ䌢ח ꞿְٗ٦ر؍ؚٝ儗ָ涪欰ׅկ $BDIF0S%PXOMPBEךٍؗحءُⵃ欽ׅ✲ ד넝鸞דٗ٦سָ〳腉חזָծ 侧ָ㢳ֺׅה饯⹛儗ח頾蚚חזկ -PBE"MM"TTFUTכך،إحز♧䭍ד铣ז לծ鷵如ٗ٦س״傍ְַ׃זְկ
AssetBundleͷׂ "TTFU#VOEMFך侧ָ㼰זְ • ًٌٔ⢪欽ꆀָ㟓ִ NFNPSZ瘝ד铣ה • 铣鴥儗ָ⠼ן M[NBד铣ה
• "TTFU#VOEMFךؽٕس儗ծ ⱄ圓眠ך堣⠓ָ㟓ִ "TTFU#VOEMFך侧ָ㢳ְ • ؽٕسח儗ַַָ • ٔا٦أوطآًٝزָꬊ䌢ח醱꧟ • تؐٝٗ٦س儗ָ⠼ן 醱侧ךؿ؋؎ٕ糺גְזְ㜥さ
҉ͷࢀরͱॏෳΞηοτ • AssetBundleassetbundle nameΛࢦఆ͠ͳ͍ ΞηοτAssetBundleʹؚΊΔɻ • طʹInstance IDׂ͕ΓৼΒΕ͍ͯͨ߹ɺ ৽͘͠Instance IDΛׂΓৼΒΕΔɻ
None
"TTFU#VOEMF "TTFU#VOEMF ⴽך*OTUBODF*%ָ ⶴ䮶
SFTPVSDF"TTFU#VOEMF "TTFU#VOEMF "TTFU#VOEMF
AssetBundleͷѹॖ ꬊ㖇簭 -; -;."
AssetBundleͷѹॖ • ඇѹॖɿѹॖ͠ͳ͍ҝɺϑΝΠϧαΠζେ͖͍ɻ ɹɹɹɹμϯϩʔυग़དྷΕΞΫηε࠷ɻ • LZ4ɹɿLZMAฒͷߴ͍ѹॖͱɺඇѹॖฒͷղౚɻ ɹɹɹɹUnity 5.3Ҏ߱ʹ༻Մೳɻ • LZMAɿ࠷ߴ͍ѹॖɻ࠷͍ղౚɻ
ɹɹɹղౚ͢ΔʹɺҰ୴શͯϝϞϦʹల։͢Δඞཁ͕͋Δɻ
AssetBundleͷಡࠐ • AssetBundle.LoadFromFile • AssetBundle.LoadFromMemory (WWW.assetBundle) • WWW.CacheOrDownload
AssetBundleͷಡࠐ • AssetBundle.LoadFromFile • چ໊CreateFromFile • ϔομΛಡΈɺϩʔΧϧετϨʔδΞΫηε͢Δɻ • ※ΤσΟλLoadFrommemoryAsyncͷΑ͏ͳಈ࡞Λߦ͏ҝɺ ɹएׯͷΦʔόʔϔου͕͋Δɻ
• LZMAΛಡΉ߹ɺLoadFromMemoryͱಉ༷ͷಈ࡞ɻ
0 30 60 90 120 ඇѹॖ LZ4 LZMA ϔομʔ AssetBundle
Ξηοτ -PBE'SPN'JMFT
AssetBundleͷಡࠐ • AssetBundle.LoadFromMemory • چ໊CreateFromMemory • ϝϞϦ͔ΒAssetBundleΛߏங͠ɺϩʔυ͢Δ • LZ4ͷ߹ɺϝϞϦʹͦͷ··ίϐʔ͢Δɻ LZMAͷ߹ɺશͯղౚ͠LZ4࠶ѹॖ͢Δʢ5.3Ҏ߱ʣ
• AssetBundleΛ҉߸Խ͢Δ߹ʹͷΈ͓קΊ
0 75 150 225 300 ඇѹॖ LZ4 LZMA ϔομʔ AssetBundle
ΤϯδϯϝϞϦ Ξηοτ -PBE'SPN.FNPSZ
0 100 200 300 400 ඇѹॖ LZ4 LZMA ϔομʔ WWW
AssetBundle ΤϯδϯϝϞϦ Ξηοτ 888BTTFU#VOEMF
AssetBundleͷಡࠐ • WWW.CacheOrDownload • ΞηοτΛμϯϩʔυ͠ɺUnityͷΩϟογϡγεςϜͰΩϟογϡ͢Δ • LZ4ٴͼແѹॖͷ߹ɺϝϞϦʹͦͷ··อଘ͢Δ LZMAͷ߹ɺղౚ͠LZ4࠶ѹॖ͢Δʢ5.3Ҏ߱ʣ • ىಈ࣌ʹΩϟογϡͷ༗ແআఆΛߦ͏
• 2ճҎ߱Ωϟογϡ͔Βऔಘ͢Δ
0 75 150 225 300 ඇѹॖ LZ4 LZMA ϔομʔ AssetBundle
ΤϯδϯϝϞϦ Ξηοτ $BDIF0S%PXOMPBEⴱ㔐
0 15 30 45 60 ඇѹॖ LZ4 LZMA ϔομʔ ΤϯδϯϝϞϦ
Ξηοτ $BDIF0S%PXOMPBEٍؗحءُ״《䖤
AssetBundleͷಡࠐ • UnityWebRequest & DownloadHandler • AssetBundleΛϩʔΧϧετϨʔδʹμϯϩʔυ͠ɺΩϟογϡ͢Δɻ • LZ4ͷ߹ɺϝϞϦʹͦͷ··ίϐʔ͢Δɻ LZMAͷ߹ɺશͯղౚ͠LZ4࠶ѹॖ͢Δʢ5.3Ҏ߱ʣ
• WWW.CacheOrDownloadͱൺֱ͠ɺσʔλͷॲཧΛࢦఆ͢Δ͜ͱͰώʔϓΛ͑ΒΕΔ
0 17.5 35 52.5 70 ඇѹॖ LZ4 LZMA ϔομʔ WebRequest
Ξηοτ -PBE'SPN.FNPSZ
AssetBundleͷΞηοτͷಡΈࠐΈ • LoadAsset • LoadAllAssets • LoadAssetWithSubAssets • AsyncΛ͚Δͱඇಉظ
AssetBundleͷΞηοτͷಡΈࠐΈ • LoadAsset ୯ҰͷΞηοτΛऔΓग़͢ • LoadAllAssets AssetBundle͕แ͢ΔɺࢀরՄೳͳΞηοτΛશͯऔΓग़͢ શମͷ2/3Λ༻͢Δ߹ɺLoadAssetΑΓޮత • LoadAssetWithSubAssets
αϒΞηοτʢLocalIDͷؔΘΔΞηοτʣΛऔΓग़͢
AssetBundleͷΞηοτͷಡΈࠐΈʢඇಉظʣ • AsyncΛઃఆ͢ΔͱɺΞηοτͷಡࠐΛ ϫʔΧʔεϨουͰߦ͏ɻ • 1ϑϨʔϜͷॲཧ࣌ؒThreadPriorityͰઃఆ High- ࠷େ50ϛϦඵɺNormal - 10ϛϦඵ
BelowNormal - 4ϛϦඵɺLow - 2ϛϦඵ
AssetBundleͷΞηοτͷಡΈࠐΈʢඇಉظʣ • 5.1Ͱɺ1ϑϨʔϜ1Ξηοτͱ͍͏Ṗಈ࡞Λ͍ͯͨ͠ɻ ʢͦͷҝɺϩʔυ͢ΔΞηοτʹΑͬͯఀࢭ࣌ؒʹόϥ͖͕ͭ͋ͬͨʣ • 5.2·ͰɺLoadAllAssetsAsyncͱLoadAssetWithSubAssetAsync͕େ෯ ʹ͍ෆ۩߹͕͋ͬͨɻ • 5.3͔ΒUnityEngine.ObjectͷϩʔυϫʔΧʔεϨουͰ࣮ߦ͢Δɻ ฒྻҰׅͰॲཧ͠ɺϩʔυྃޙʹAwake͕ݺΕΔɻ
ଂΩϟογϡγεςϜ • LoadFromCacheOrDownload͘͠ DownloadHandlerAssetBundleΛ༻͢Δͱɺ ଂΩϟογϡγεςϜΛ༻͢Δɻ • LZMAΛΩϟογϡ͢ΔࡍɺLZ4࠶ѹॖ͢Δࣄ͕Ͱ͖Δɻ • Ωϟογϡͨ͠AssetBundleɺLoadFromFilesͰ ίετͰΞΫηεग़དྷΔɻ
ଂΩϟογϡγεςϜͷಈ࡞ • 䭷㹀ך"TTFU#VOEMFָ֮לٍؗحءַُ《䖤׃ծ搀ֽלتؐٝٗ٦سׅկ ⡎׃ծغ٦آّٝ♳־ג傊غ٦آّٝꤐ׃זְկ • ΩϟογϡͷॲཧϫʔΧʔεϨουͰߦ͏ɻ • ෳΛಉ࣌ʹΒͤΔͱOSͷಉ࣌ΞΫηεݶքʹୡ͢ΔʢಛʹϞόΠϧʣ
ଂΩϟογϡγεςϜͷಈ࡞ • 饯⹛儗חٍؗحءُך剑穄⢪欽傈然钠׃גծ 劢⢪欽劍ָ䭷㹀劍麓ֺגְלꤐׅկ • أزٖ٦آָ♧匈חזהծ劢⢪欽ך،إحزַꤐׅկ • "TTFU#VOEMFך陎ⴽכؿ؋؎ٕせ • 䭷㹀ך"TTFU#VOEMF僇爙涸חꤐׅ"1*ָ搀ְ
铎DSD䭷㹀ׅהꤐׁ
ଂΩϟογϡγεςϜ ًٔحز -;."تؐٝٗ٦س׃㜥さדծ խ-;⢪欽⳿勻կ הִ֮׆⢪ִ رًٔحز - 稢ְַ،إحز盖椚ָדֹזְկ - ،إحزָ㟓ִֺׅהծ،إحزך剣搀
ثؑحؙ瘝ד儗ַַָկ
ΩϟογϡγεςϜΛࣗ࡞͢Δ߹ • WWWΫϥεbytesΞΫηε༻ʹʢΤϯδϯଆ͕ʣ ϝϞϦΛ֬อ͍ͯ͠ΔҝɺϝϞϦΛ༨ܭʹ͏ɻ • ਪ • HttpWebRequest ɹ(PCݱࡏHTTPSΛ͑ͳ͍ʣ •
ωΠςΟϒϓϥάΠϯ ʢΦϯσϚϯυϦιʔε(iOS)ɾDownloadManager(android) ɹNSURLConnection(iOS) ɾjava.net.HttpURLConnection(Androidʣ)
،إحز麊欽كأز٥فؙٓذ؍أ ⟎
ಉҰͷཁૉΛେྔʹؚΜͩPrefabආ͚Δ • ΦϒδΣΫτશͯͦͷ··γϦΞϥΠζ͞ΕΔҝɻ • ྫ͑ಉҰͷPrefabΛ30ݸίϐʔͯ͠ϦετϏϡʔΛ ࡞ͬͨ߹ɺಉ͡σʔλΛ30ճσγϦΞϥΠζ͢Δɻ • ୯ҰͷPrefabΛInstantiateΛ༻ͯ͠ ෳͨ͠ํ͕ɺएׯޮతɻ
Resources • Resources/AssetBundleʹɺ ࢀর͠ͳ͍ΞηοτؚΊͳ͍ɻ • ResourcesͷΞηοτग़དྷΕݮΒ͢ɻ
ResourcesΛΘͳ͍ʢUnityࣾͷ͓קΊʣ • ResourcesϓϩτλΠϓ༻ͱׂΓΔ • ৗʹΞΫηε͢Δඞཁ͕͋ΔɺΞηοτʹͷΈ͏
ResourcesΛΘͳ͍…ʢͲ͏͢ΜͶΜ…ʣ ،فٔח"TTFU#VOEMFろג׃תֲկ 4USFBNJOH"TTFUT瘝 "OESPJEכBQLⰻ[JQⰻח4USFBNJOH"TTFUTָ֮ -PBE'SPN'JMFד،ؙإأ⳿勻זְծ $BDIF0S%PXOMPBEװ⡦ַך䩛ד《⳿ׅկ పఈ͢Δ͜ͱͰɺ։ൃΛ໘ʹग़དྷΔɻ ʢResourcesΛ༻͢Δͷͱൺֱͯ͠ʣ
AssetBundleͷׂ • ཧΤϯςΟςΟ • λΠϓͷάϧʔϓ • ಉ࣌ίϯςϯπͷάϧʔϐϯά • 1Asset 1AssetBundle
• Ұͭʹ߆ΒͣɺέʔεόΠέʔεͰ͍͚Δ
AssetBundleͷׂ • ཧΤϯςΟςΟ • DLCʹ͍͍͢ϑΥʔϚοτ • ϨΠΞτUI • ΩϟϥΫλʔ •
ڞ༗͢ΔഎܠͷϞσϧςΫενϟ
AssetBundleͷׂ • λΠϓͷάϧʔϓ • ಉλΠϓͷΞηοτʢTextureAudioʣΛҰͭʹ·ͱΊΔ • ͕গͳ͘ɺϩʔΧϧ͔Βଓ͢ΔͳΒجຊܨ͗ͬͺͳ͠ͰOK
AssetBundleͷׂ • ಉ࣌ʹ༻͢ΔίϯςϯπͰάϧʔϐϯά • ඞཁʹͳΔΞηοτΛɺඞཁͳ͚ͩϩʔυ͢Δɻ • SceneΛAssetBundleԽ͓͍ͯ͘͠ํ • Կ༻͢ΔΞηοτׂ͢Δ •
ଟগͷΞηοτͷॏෳؾʹ͠ͳ͍
AssetBundleͷׂ • ̍Ξηοτ̍Ξηοτόϯυϧ • ݸผʹΞηοτΛऔಘ͢Δ • ΧʔυήʔϜͰ༗ར • ґଘؔͷղܾεΫϦϓτͰߦ͏ •
γΣʔμʔͷ҉ͷϩʔυΛݟམͱ͢ͱ༨ܭͳίετ͕ग़Δࣄ͕͋Δ • 5.3ະຬͰAssetBundleΛ༻͢Δ߹࠷దղ͔͠Εͳ͍ ʢLZMA͕େ͖ͳαΠζͰۃʹ͘ͳΔҝʣ
ґଘઌAssetBundleUnload͠ͳ͍ • Ξηοτͷ։์ͷΈΛߦ͍ɺAssetBundleҡ࣋͢Δɻ • ΞηοτͷෳʹΑΔϝϞϦɾϩʔυίετΛ͙ • Loadҡ࣋ʹίετ͕͋ΔͷͰɺέʔεόΠέʔεͰɻ • ׂʹґΔ
AssetBundleͲͷѹॖΛ͏͖͔ • ϩʔυΛ্͍͛ͨ߹ɿɹඇѹॖʢ࠷ʣ LZ4ʢόϥϯεʣ • Ϗϧυ͕࣌ؒͳ߹ɹɿɹඇѹॖʢѹॖॲཧ͕ແ͍ʣ • ΞϓϦαΠζ͕ͳ߹ɿɹLZMAʢѹॖ࠷ߴʣ • ༻ϝϞϦ͕ͳ߹ɹɿɹLZ4
or ඇѹॖ • ௨৴͕࣌ؒͳ߹ɹɹɿɹLZMAʢཁCacheOrDownloadܥ)
AssetBundleͷμϯϩʔυͲ͏Δʁ • 5.3Ҏ߱WebRequest͕͓קΊ • WWWආ͚Δ • CacheOrDownloadΛ͏ͳΒɺ ώʔϓ͕ΒΈա͗ͳ͍Α͏ʹ͢Δɻ
ʮϕετϓϥΫςΟεʯΛ৴͡ͳ͍ • ڥήʔϜʹΑͬͯ࠷దղҟͳΔɻ
ʮϕετϓϥΫςΟεʯΛ৴͡ͳ͍ • ڥήʔϜʹΑͬͯ࠷దղҟͳΔɻ • Stay alert! Trust no one! Keep
your laser handy!
None