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
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
440
MAMを軸とした動画ハンドリングにおけるAI活用前提の整備と次世代ビジョン / abema-ai-mam
cyberagentdevelopers
PRO
1
110
コンテンツを支える 若手ゲームクリエイターの アートディレクションの事例紹介 / cagamefi-game
cyberagentdevelopers
PRO
1
120
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
Figma Dev Modeで進化するデザインとエンジニアリングの協働 / figma-with-engineering
cyberagentdevelopers
PRO
1
430
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
140
Apple/Google/Amazonの決済システムの違いを踏まえた定期購読課金システムの構築 / abema-billing-system
cyberagentdevelopers
PRO
1
210
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.5k
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
240
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
180
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
610
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
130
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
Rails Girls Zürich Keynote
gr2m
93
13k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Code Review Best Practice
trishagee
64
17k
Practical Orchestrator
shlominoach
186
10k
Adopting Sorbet at Scale
ufuk
73
9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
How to Think Like a Performance Engineer
csswizardry
19
1.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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