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
2k
【Unity道場】ゲームアプリマネタイズの最前線 〜GDCのマネタイズ関連講演まとめ〜
unitydojo
4
1.5k
はじめてのUnity入門
unitydojo
0
2.1k
【Unity道場】エフェクト実践編
unitydojo
10
9.5k
【Unity道場】パフォーマンス最適化の ポイント
unitydojo
12
52k
【Unity道場】アセットストアマニアクス 2016 冬の陣
unitydojo
1
580
【Unity道場京都スペシャル】エディタの基本操作が_めっちゃ早くなるテクニック
unitydojo
6
3k
【Unity道場京都スペシャル】ゼロから始めるUnity UI
unitydojo
1
1.4k
【Unity道場京都スペシャル】プロが教える脱初心者スクリプト術!
unitydojo
3
2.8k
Other Decks in Technology
See All in Technology
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
MLOps の現場から
asei
6
640
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
230
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
260
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
C++26 エラー性動作
faithandbrave
2
730
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
440
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
740
Featured
See All Featured
Visualization
eitanlees
146
15k
RailsConf 2023
tenderlove
29
940
Testing 201, or: Great Expectations
jmmastey
40
7.1k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Gamification - CAS2011
davidbonilla
80
5.1k
Mobile First: as difficult as doing things right
swwweet
222
9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
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