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を知らない
Search
Toru
March 24, 2019
Programming
0
1.7k
お前はまだ本当のAssetBundleを知らない
Unity製Appのリソースを更新するのに使えるAssetや運用例について紹介します。
Toru
March 24, 2019
Tweet
Share
More Decks by Toru
See All by Toru
remote controlling Oculus Quest even with macOS
sassembla
0
980
E2.pdf
sassembla
1
2.2k
URLCaching in Unity
sassembla
0
160
Unityテスト完全に理解した(実機、自動、利のあるテストに食らいつく話)
sassembla
8
22k
Other Decks in Programming
See All in Programming
CSC509 Lecture 12
javiergs
PRO
0
160
みんなでプロポーザルを書いてみた
yuriko1211
0
260
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
最新TCAキャッチアップ
0si43
0
140
Better Code Design in PHP
afilina
PRO
0
130
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
Realtime API 入門
riofujimon
0
150
CSC509 Lecture 09
javiergs
PRO
0
140
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.1k
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
110
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Embracing the Ebb and Flow
colly
84
4.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Six Lessons from altMBA
skipperchong
27
3.5k
Happy Clients
brianwarren
98
6.7k
Transcript
The AssetBundle that you never knows. @toru_inoue, KISSAKI Inc, “お前はまだ本当のアセットバンドルを知らない”
2 ( ג ) K I S S A K
I ද ɻ Toru Inoue 5XJUUFS!UPSV@JOPVF (JUIVCTBTTFNCMB ࡴҙۦಈ։ൃͱ͍͏)/Ͱ 6OJUZήʔϜͦΕҎ֎Λɹ ؤுͬͨΓ ؤுΒͳ͔ͬͨΓͯ͠Δɻ
3 ࠓ͞ͳ͍ࣄ "EESFTTBCMFTʹ͍ͭͯɺ ࠓ͢͜ͱͷԆઢ্ͳͷͰɺ ࣗ ΄΅͞ͳ͍ɻ
4 Γա͗ͨࣄ ͍Ζ͍ΖͳύλʔϯΛհ͢ΔΜ͚ͩͲɺ ࡉ͔͘ॻ͖ա͗ͯ͠·ͬͨɻ ઈର࣌ؒΓͳ͍ͷͰ෦తʹඈ͢ɻ ެ։͢Δࢿྉͷ΄͏ʹશ෦ॻ͍͓ͯ͘ɻ
5 "# "TTFU#VOEMF "#ͱɺ6OJUZΞϓϦʹؚ·ΕΔ Ϧιʔε "TTFU Λߋ৽͢ΔͨΊͷͷɻ “アセットバンドルです”
6 "# "TTFU#VOEMF օ͞Μࠓ͜͜ʹɺ "#ʹ͍ͭͯશཧղ͠ʹདྷͨͱࢥ͏ɻ “アセットバンドルです” ίϯχνϫʂ
7 "# "TTFU#VOEMF ͕ɺ"#ʹ͍ͭͯશཧղ͢Δͱ͍͏͜ͱɺ "#Ҏ֎ͷཁૉʹ͍ͭͯશཧղ͢Δ͜ͱʹ ଞͳΒͳ͍ɻ “アセットバンドルです..” スゥゥ,,,
8 "TTFU#VOEMF JTӡ༻ "#Λѻ͏ͱ͍͏͜ͱɺ ͦͷ࣮ɺ୯ʹ"#Λ͏͜ͱͰͳ͍ɻ ʮΞϓϦͷϦιʔεΛߋ৽͢Δ͜ͱʯɺ ͭ·ΓʮΞϓϦΛӡ༻͢Δ͜ͱʯͩɻ
更新! 9 ଞͷߋ৽Մೳཁૉ ΞϓϦͷϦιʔεΛߋ৽ͯ͠ɺ Ϣʔβʔʹ৽͍͠ମݧΛఏڙ͢Δ͜ͱɻ ͜ΕΛɺӡ༻ͱݺΜͰ͍Δɻ "#Λѻ͏ͱ͍͏͜ͱɺ ʮΞϓϦͷӡ༻Λ͢Δʯͱ͍͏͜ͱɻ Ϧιʔε
1 0 "#ΛؚΜͩ ӡ༻શ ཧղ ͱ͍͏Θ͚Ͱɺ"#ͷΛؚΉɺ 6OJUZΛͬͨΞϓϦͷʮӡ༻ʯ ʹ͍ͭͯͷΛ͢Δɻ
11 ͓ॻ͖ ߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ ӡ༻ͷ ཧͱݱ࣮ ͦͷ࣮ ཁૉͱӡ༻ͷ
͖߹Θͤ ͱɺະདྷͷબࢶ 1. 2. 3.
1 2 ͓ॻ͖ ߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ 1. ·ͣɺ6OJUZΞϓϦʹ͓͍ͯ ߋ৽Ͱ͖ΔϦιʔεʹ͍ͭͯհ͢Δɻ
6OJUZͷ"TTFUΛߋ৽͢Δํ๏ɺ"#Ҏ֎ʹ݁ߏ৭ʑ͋Δɻ ͜͜Ͱɺ6OJUZͷ֎෦͔Βߋ৽Մೳͳཁૉ6QEBUBCMFͱݺͿɻ 6OJUZΞϓϦͰͷߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ
6OJUZͰɺ͜Μͳײ͡ͷཁૉ͕֎෦͔Βߋ৽Մೳɻ 6OJUZΞϓϦͰͷߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ 6OJUZ4FSJBMJ[FE"TTFUܥ "TTFUશൠ CZUF͔ΒੜͰ͖Δܥ ίʔυ͔Βੜܥ
1 5 ͦΜͳ6QEBUBCMF #ZUF͔Β ੜͰ͖Δ "TTFU ίʔυ͔Β ੜͰ͖Δ "TTFU ԿͰ͑Δ
6OJUZ͕ 4FSJBMJ[Fͨ͠ "TTFU
ͦͷ໊ͷ௨ΓɺUnity͕Serialize(ΤσΟλͰΩϡοͱ)ͨ͠Assetɻ UnityΞϓϦͷ࣮ߦதʹಡΈࠐΉ͜ͱͰɺAssetͱͯ͠ల։Ͱ͖Δɻ 6OJUZ4FSJBMJ[FE"TTFU File Editor 1BSBN 1BSBN 1BSBN *NQPSU #VJME
5FYUVSFΠϯϙʔτϞʔυͱ͔1BSBNΛηοτϏϧυͯ͠ΞϓϦͰ͏ɺͱ͔ɻ File
ΞϓϦ֎͔ΒUSAΛ࣋ͪࠐΉํ๏ɺABͷΈɻ 6OJUZ4FSJBMJ[FE"TTFU File Editor 1BSBN 1BSBN 1BSBN *NQPSU File #VJME
"TTFU#VOEMF %PXOMPBE
ɾ৭ΜͳϑΝΠϧɺPrefabͱ͔ɺUnityͰѻ͑ΔAssetͷେ͕֘͢Δɻ ɾϑΝΠϧ͕AppͷϏϧυʹؚ·Ε͍ͯΔͱແ༻ʹUSAʹͳΔɻ ɾUSAΛApp֎͔ΒऔΓࠐΉ߹ɺAssetBundle͕།ҰͷબࢶʹͳΔɻ ɾ͜ͷܗࣜͷϑΝΠϧUnityͰ͔͠ੜͰ͖ͳ͍ɻ(ؤுΔͱҋ) 6OJUZ4FSJBMJ[FE"TTFU %PXOMPBE
UnityΞϓϦͷ࣮ߦதʹɺbyteྻ͔Βੜ͢Δ͜ͱ͕Ͱ͖ΔAssetɻ ͦͷΜͷͷΛϗΠϗΠ์ΓࠐΊͯϝνϟΫνϟศརͳͷ͕ͩɺ byte[]͔ΒੜͰ͖ΔίϯετϥΫλΛ͍࣋ͬͯΔAssetۃগɻ #ZUF͔ΒੜͰ͖Δ"TTFU File CDN Asset 6QMPBE QOHը૾Λ$%/ʹΞοϓΞϓϦ͔Β%PXOMPXECZUF<>͔Β5FYUVSF%Λੜɺͱ͔ɻ File
%PXOMPBE (FOFSBUF
#ZUF͔ΒੜͰ͖Δ"TTFU ɾpngը૾ͱ͔͔ΒTexture2Dͱ͔͕ੜͰ͖Δɻ ɾCDNͱ͔ʹϑΝΠϧஔ͍͓͚ͯDLͯ͠ੜ/ΩϟογϡͰ͖Δɻ ɾUnity֎ͰੜͰ͖Δɻ(UnityΛܦ༝͢ΔͱඞͣUSAʹͳΔɻ) ɾ͕ɺbyte[]͔ΒੜͰ͖ΔAssetUnityதͰܹϨΞͳଘࡏɻ
[σʔλΛಡΈࠐΈɺσʔλΛղੳ -> AssetΛੜ͢Δ,,] ύʔαʔίʔυΛࣗ࡞͠ɺΞϓϦ্ͰΈཱͯΒΕΔछྨͷAssetɻ ίʔυ͔ΒੜͰ͖Δ"TTFU JSON, etc +40/ϑΝΠϧͱ͔Λऔಘɺ"QQ্Ͱղੳ͠ɺ(0ੜ$PNQPOFOUηοτɺɺͱ͔Δɻ %PXOMPBE "EE$PNQPOFOU
4FU1BSBNʜ ᶃ ᶄ ᶅ OFX(BNF0CKFDU
ίʔυ͔ΒੜͰ͖Δ"TTFU [{ "command": “generateGO”, // GameObjectΛ࡞ͬͯ "gOName": “SOMETHING” // ໊લΛSOMETHINGʹͯ͠
}, { "command": “addComponent”, "componentName": “NAME” // NAME͍ͬͯ͏componentΛηοτʂ }] ͜ΜͳjsonΛड͚औͬͨΒɺ͜͏͍͏ײ͡ͷૢ࡞Λ͢ΔίʔυΛॻ͘ʂʂ શͳ࣮ྗͷੈքɻVRMͱ͔͍͢͝ΑͶɻ
ίʔυ͔ΒੜͰ͖Δ"TTFU ɾཁ[API͔Βड͚औͬͨσʔλΛղऍͯ͠uGUIʹදࣔ͢Δ]ͱ͔ͱಉ͡ɻ ɾ͑Δͷɺ[৭ʑͳύϥϝʔλΛಈతʹηοτͰ͖ΔComponent] ʹݶΒΕΔ(ͦΕͳΓʹ͋Δ)ɻ ɾσʔλͷఆٛɺੜͱͦͷղऍΛߦ͏ίʔυΛॻ͘ͷ͕໘͍͘͞ɻ ຊؾͰؤுΕVRM(gLTF)Έ͍ͨͳͷ࡞ΕΔɻ ɾσʔλUnity্ͰղऍͰ͖ΕOKͳͷͰɺUnity֎ͰੜͰ͖Δɻ
2 4 ͦΜͳ6QEBUBCMF #ZUF͔Β ੜͰ͖Δ "TTFU ίʔυ͔Β ੜͰ͖Δ "TTFU ԿͰ͑Δ
6OJUZ͕ 4FSJBMJ[Fͨ͠ "TTFU
2 5 Ͳ͏͍͏ܦ࿏Ͱ"QQʹʁ App byte[] txt(Data) AssetBundle File 64""TTFU#VOEMFʹೖΕΔ͔͠ͳ͍ɻଞͷదʹϑΝΠϧ͔ΒಡΊΔɻ
2 6 64"͏ͳΒ"TTFU#VOEMFͳΜͰ͚͢Ͳʂ App AssetBundle ͭͷ"TTFU#VOEMFʹɺdෳͷ64"͕ೖΕΒΕΔɻ Ͱɺ"#͔Β64"ΛऔΓग़͢ࡍɺͲͷ64"ΛऔΓग़͔͢ͱ ͍͏Ωʔͱͯ͠ɺʮ64"ͷ໊લʯΛࢦఆ͢Δɻ ͭ·Γɺ"#Λ͏ʹɺऔΓग़͍ͨ͠64"ͷ໊લ͕ॻ͍ ͯ͋ΔϑΝΠϧ͕ผʹඞཁʂʂʂ
͍ΘΏΔίϯςϯπΧλϩά
2 7 64"͏ͳΒ"TTFU#VOEMFͳΜͰ͚͢Ͳʂ NameList ͦ͜Ͱɺ ωʔϜϦετʙʙʂ ίϯχνϫʂ
2 8 64"͏ͳΒ"TTFU#VOEMFͳΜͰ͚͢Ͳʂ NameList AssetBundle MyNameIsA { l͜ͷ"#ʹ .Z/BNF*T"͕ ೖ͍ͬͯ·͢z
ͱॻ͍ͯ͋Δɻ
2 9 64"͏ͳΒ"TTFU#VOEMFͳΜͰ͚͢Ͳʂ NameList AssetBundle MyNameIsA { l͜ͷ"#ʹ .Z/BNF*T"͕ ೖ͍ͬͯ·͢z
༨ஊ͜ͷ༻్ͷͨΊʹNBOJGFUϑΝΠϧ͕͋ΔΜ͕ͩɺ "EESFTTBCMFTͰ͢ΒNBOJGFTUΛΘͣΧλϩά /BNF-JTU Λࣗ࡞ͯ͠Δɻ
3 0 64"͏ͳΒ"TTFU#VOEMFͳΜͰ͚͢Ͳʂ App AssetBundle ਤʹ͢Δͱ͜͏ʂ ͠ΜͲ͍Ͷʂʂ MyNameIsA NameList ᶃ"#ʹೖͬͯΔ64"ͷ໊લΓ͍ͨ
ᶄ.Z/BNF*T"͕ೖͬͯΔͰ ᶅ.Z/BNF*T"ͱΓͩͦ ᶆ.Z/BNF*T"ͱΕͨ
3 1 ਅɾͲ͏͍͏ܦ࿏Ͱ"QQʹʁ App byte[] txt(Data) File
6QEBUBCMF1SPT$POT 3 2 ࡞Γ͢͞ ϩʔυ Ωϟογϡ/ ࠩऔಘ ϝϞϦޮ ؚΊΒΕΔ Asset
USA NotBad VeryHard Good VeryGood 99% Bytes VeryGood VeryGood ࣗ࡞Մ ϊʔΨʔυ 1% Code Good VeryHard ࣗ࡞Մ ϊʔΨʔυ 70% ͣΓҰҰɻ
6QEBUBCMF1SPT$POT ༁ 3 3 ࡞Γ͢͞ ϩʔυ Ωϟογϡ/ ࠩऔಘ ϝϞϦޮ ؚΊΒΕΔ
Asset USA UnityϏϧυඞਢ AB͚ͩͰ μϝ Ϧετ͕ɺɺ σϑΥϧτͰ ࣮͞ΕͯΔ Կ͠ͳ͍Ͱ ޮྑ͍ 99% Bytes Unityෆཁ byte[]͔Β new͢Δ͚ͩ ࣗ࡞Մ ϊʔΨʔυ 1% Code Unityෆཁɺ ϑΥʔϚοτ ఆٛେม ࣗ࡞͢Δͱ ԿͰग़དྷΔ ࣗ࡞Մ ϊʔΨʔυ 70% ͜͜Ͱͯ͠ཉ͍͠ͷɺ࡞Γ͢͞ͱϩʔυɻͨͿΜ"#͕Ұ൪ਏ͍ɻ
3 4 ͰɺͦΜͳ6QEBUBCMFΛͬͯɺ "QQΛӡ༻͢Δ͜ͱʹͳΔΘ͚Ͱ͢ɻ #ZUF͔Β ੜͰ͖Δ "TTFU ίʔυ͔Β ੜͰ͖Δ "TTFU
ԿͰ͑Δ 6OJUZ͕ 4FSJBMJ[Fͨ͠ "TTFU
3 5 ͓ॻ͖ ߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ ӡ༻ͷ ཧͱݱ࣮ ͦͷ࣮
1. 2. ͱ͍͏Θ͚Ͱɺ 6QEBUBCMFΛͬͨӡ༻ͷɻ
3 6 ཧͷӡ༻ Ψοπϙʔζͨ͠Β Ϣʔβʔͷ"QQͷϦιʔε͕ ߋ৽͞Εͯ΄͍͠ʂ
3 7 ཧͷӡ༻
3 8 ཧͷӡ༻ X ͜ͷӉͰແཧͦ͏ɻ
3 9 ݱ࣮ͷӡ༻ 6QEBUBCMFΛ࡞ΓɺͳΜΒ͔ෆࢥٞͳྗͰ ΞϓϦʹଧͪࠐΊ͍͍ɻ ͜ΕΛͲ͏ઃܭ͢Δ͔ɻ
4 0 ӡ༻࢙ "QQͷӡ༻Λߟ͑Δʹ͋ͨͬͯɺ ͯ͞Ͳ͏͍͏ӡ༻͕͜ͷੈʹ͋Δͷ͔ɻ దʹྺ࢙ͬΆ͘ฒͯΈͨɻ આ໌༻ͳͷͰήʔϜ࢙ͷࢿྉͱͯ͠ݟͳ͍Ͱ΄͍͠ɻ
4 1 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ ϞόΠϧҎલʜ དྷੈ
4 2 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ ϞόΠϧҎલʜ ݹ͍ػೳ͕໓ͼΔ͜ͱكͰɺ ͲΜͲΜ৽ػೳ͕Ճ͞ΕΔΠϝʔδɻ དྷੈ
4 3 Β͘͠ɺϦϦʔε࣌ͷ"QQʹ શͯͷϦιʔε͕ೖ͍ͬͯΔɻ ໘ന(#ΞϓϦͱ͔ ͜Ε͕ӡ༻ͳͷ͔ʁͱݴΘΕΔ ͱӡ༻Ͱɻ ϫϯύϯظ Ϗϧυ࣌
શ෦ೖΓʂ
4 4 །Ұӡ༻ʹඞཁͳͷ͕ɺ "QQىಈ࣌ͱ͔ʹ"QQ7FSΛૹΓɺ ࠷৽͔Ͳ͏͔νΣοΫ͢Δػೳɻ νΣοΫͯ͠ݹ͔ͬͨΒετΞʹ ߦͬͯੜ·ΕมΘΖ͏ɻ ؙ͝ͱੜ·ΕมΘΔͷͰɺ 6QEBUBCMFͷग़൪ͳ͍ɻ ϫϯύϯظ
4 5 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ શ෦ೖΓɺ"QQ7FSߋ৽ ϞόΠϧҎલʜ ͭ͗͜͜ɻ དྷੈ
4 6 ͕͢͞ʹશ෦ΞϓϦʹ͍ΕΔͷ ΊΑ͏ɺͰ͔͍ͧ͜Εɻ ͱ͍͏͜ͱͰɺ <ىಈޙʹϦιʔεΛऔಘ> ͱ͍͏֓೦͕ੜ·ΕΔɻ "OESPJEͷ0CCͱ͔ͦͷล͕ ͜͏͍͏ػߏɻ Ϧιʔεظ
औಘ։࢝ʂ औಘͨ͠ϦιʔεΛ อ࣋ʂ
4 7 ͜Μͳײ͡ɻ Ϧιʔεظ Πϯετʔϧ࣌࠷খݶɻ ֎෦Ϧιʔεʙʙ
4 8 ͜͜Ͱɺ·͋ɺ ֎෦Ϧιʔε6QEBUBCMFɻ Ϧιʔεظ Πϯετʔϧ࣌࠷খݶɻ ֎෦Ϧιʔεʙʙ
ඈ͍͍ͯ͠ ؾ͕͢Δ 4 9 ͍ͭʹ"QQʹ֎෦͔ΒσʔλΛೖ ΕΔνϟϯε͕౸དྷ͢Δ͕ɺ "QQ͕͍ͭɺͲ͜ʹΞΫηε͢Δ ͔·ͩϋʔυίʔυͩɻ ·ͩɺϦιʔε͕ΞϓϦ͔Β ͞Ε͚ͨͩʹա͗ͳ͍ɻ
"QQͰ͏શϦιʔεΛऔಘ͢Δɻ Ϧιʔεظ 63- ϋʔυίʔυʂ "QQͰ͏ͷΛશ෦औಘ ݸͷϦιʔε͕͋ͬͨΒɺ ݸΛҰؾʹམͱ͢ɻ "QQʹอ࣋ɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 5 0 "QQ͕"QQ σʔλʹͳ͚ͬͨͩ ͳΜͰɺӡ༻τϦΨʔ·ͩϫϯ ύϯظͱҰॹɻ ΞϓϦ͕ੜ·ΕมΘΕɺ ࠶ॳճىಈऔಘ͕Ͱ͖Δɻ
ͦΜ͚ͩɻ Ϧιʔεظ ϫϯύϯظͱಉ͘͡ɺ ͕͜͜సճɻ
5 1 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ શ෦ೖΓɺ"QQ7FSߋ৽ ϞόΠϧҎલʜ ͭ͗͜͜ɻ ॳճىಈ࣌औಘɺ"QQ7FSߋ৽ શϦιʔεҰؾʹऔಘ དྷੈ
5 2 ͓ΊͰͱ͏ɺͱ͏ͱ͏ <"QQΛΠϯετʔϧͣ͠͞ʹ ԿճͰϦιʔεΛߋ৽Մೳ> ͱ͍͏ΞϨʹͳΔॠ͕ؒདྷͨɻ "QQͷ0O"QQ1BVTFͱ͔Ͱɺ Ϧιʔεͷߋ৽Λݕɺߋ৽͕͋ Εऔಘ͢Δͱ͍͏ख๏ΛͱΔɻ Ϧιʔε
Ξοϓσʔτظ "QQ͕ىಈͨ͠Γɺ εϦʔ ϓ͔ΒͬͨΓɻ 0O"QQ1BVTF
5 3 ͜Ε·Ͱͱҧ͍ɺ"QQͷߋ৽Λ ෆཁʹ͍ͨ͠ɻ ϦιʔεͷΈΛߋ৽͢ΔͷͰɺ ࠓͲΜͳϦιʔεΛอ͍࣋ͯ͠Δ ͷ͔දݱ͢Δ<3FT7FS>͕ඞཁʹ ͳΔɻ Ϧιʔε Ξοϓσʔτظ
3FT7FSૹ "QQ7FSͷସ 0O"QQ1BVTF
5 4 ӡ༻τϦΨʔظ͔Βେ༷ มΘΓ͢Δɻ ݕ͢Δࡍʹखݩͷ3FT7FSΛ͍ɺ αʔό͕ͲΜͳ3FT7FSΛฦͯ͘͠ Δͷ͔؍ଌ͢Δɻ ҟͳΔ3FT7FS͕ؼ͖ͬͯͨΒɺ ͦͷ3FT7FSΛͬͯऔಘΛ։࢝ɻ Ϧιʔε
Ξοϓσʔτظ ৽3FT7FSͰऔಘ ࠷৽ͷ3FT7FSͱ ҟͳΔͷͰɺ ࠷৽3FT7FSΛฦ͢ɻ ৽3FT7FSड͚औΓ 3FT7FSૹ 0O"QQ1BVTF
5 5 औಘ͕ޭͨ͠Βɺ"QQͷ 3FT7FSΛ৽͍͠ͷʹߋ৽ɻ ࣍ͷݕͰɺɺΈ͍ͨͳϧʔϓɻ Ϧιʔε Ξοϓσʔτظ ৽3FT7FSड͚औΓ 3FT7FSૹ ޭʂखݩͷ3FT7FSΛ৽3FT7FSʹߋ৽ɻ
3FT7FSʹԠͨ͡ ϦιʔεΛฦ͢ ৽3FT7FSͰऔಘ αʔό͕ͬͯΔ ࠷৽ͷ3FT7FSͱ ҟͳΔͷͰɺ ࠷৽3FT7FSΛฦ͢ɻ 0O"QQ1BVTF
ඈ͍͍ͯ͠ ؾ͕͢Δ 5 6 <Ұͷىಈதʹ ෳճͷΞοϓσʔτΛड͚औΔ> ͱ͍͏Մೳੑ͕͋ΔͨΊɺ ΞϓσͷใΛऔಘͨ͠Βڧ੍త ʹλΠτϧը໘ͱ͔ʹؼͬͯɺ શɾچϦιʔεͷղ์
શɾ৽Ϧιʔεͷऔಘͱ͔͕ఆੴɻ Ϧιʔε Ξοϓσʔτظ λΠτϧʹؼͬͯ৽ن%- λΠτϧʹؼͬͯ৽ن%- λΠτϧʹؼͬͯ৽ن%-
5 7 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ ϞόΠϧҎલʜ ͭ͗͜͜ɻ શ෦ೖΓɺ"QQ7FSߋ৽ 0O"QQ1BVTFΞϓσݕɺ3FT7FSߋ৽ શϦιʔεҰؾʹऔಘ ॳճىಈ࣌औಘɺ"QQ7FSߋ৽ શϦιʔεҰؾʹऔಘ དྷੈ
5 8 Ϣʔβʔ͕ಛఆͷը໘Ͱࣗൃత ʹΞοϓσʔτΛ࣮ߦͰ͖ΔΑ ͏ʹ͠Α͏ɺΈ͍ͨͳྲྀΕɻ 0O"QQ1BVTFʹՃ͑ͯɺ Ϣʔβʔૢ࡞͔Βͷݕॲཧ͕ ՃΘΔ͚ͩͳΜ͚ͩͲͶɻ ͍͍ͩͨ"QQதʹͦ͏͍͏ը໘ ͋ΔΑͶɻ
ҙ Ξοϓσʔτظ 0O"QQ1BVTF Ϣʔβʔૢ࡞ ػձͷՃɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 5 9 ӡ༻τϦΨʔલظͱมΘΒͣɻ ՃͰϢʔβʔʹࡋྔ μϯϩʔ υλΠϛϯάͷܾఆݖ Λ༩͑ɺ Πϯλʔωοτ͕ෆ۰ͳੈքͰ
ήʔϜΛ͢Δ͜ͱΛՄೳʹ͢Δɻ XJpͰҰؾʹམͱͯ͠༡Ϳɺͱ͔ɻ ҙ Ξοϓσʔτظ 0O"QQ1BVTF Ϣʔβʔૢ࡞ ͜ͷล͔Βઌ มΘͬͯͳ͍ɻ
6 0 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ ϞόΠϧҎલʜ ͭ͗͜͜ɻ 0O"QQ1BVTF Ϣʔβʔૢ࡞ͰͷΞϓσݕɺ3FT7FSߋ৽ શϦιʔεҰؾʹऔಘ શ෦ೖΓɺ"QQ7FSߋ৽ 0O"QQ1BVTFΞϓσݕɺ3FT7FSߋ৽ શϦιʔεҰؾʹऔಘ ॳճىಈ࣌औಘɺ"QQ7FSߋ৽ શϦιʔεҰؾʹऔಘ དྷੈ
6 1 ͜͜·ͰϦιʔεશମΛऔಘ ͍͕ͯͨ͠ɺΘͳ͍ͷ͍ͬͺ ͍͋ΔɻͦΕ·͋ແବ͕ଟ͍ɻ ͏σʔλ͚ͩΛ͏ͱ͖ʹ औಘͰ͖ΔΑ͏ʹ͢Δͱɺ ࣏͕҆ྑ͘ͳΔɻ Α͏શऔಘΛΊɺ औಘͷΦϯσϚϯυԽΛߦ͏ɻ
ৗ࣌ Ξοϓσʔτظ 2ݸͷϦιʔεΛશ෦མͱͯ͠ ɺશ෦͏͍ͭͬͯΔͷʁ "͍ͳ͍ɻେ෦ͷϦιʔεແବɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 2 ΦϯσϚϯυͰΔ͖ࣄͭɻ ϦιʔεΛ͏λΠϛϯάͰɺॳ Ίͯऔಘ͢Δ͜ͱɻ ͦΕͱɺ Ϧιʔεͷߋ৽ݕΛௐ͠ɺ ͏λΠϛϯάͰ࠷৽ϦιʔεΛ
औಘͰ͖ΔΑ͏ʹ͢Δ͜ͱɻ ৗ࣌ Ξοϓσʔτظ
6 3 ༻࣌ʹ͏͚ͩ6QEBUBCMFΛ औಘ͢Δɻ ৗ࣌ Ξοϓσʔτظ Ϧιʔεͷ༻࣌ʹ ॳΊͯର<͚ͩ>Λ औಘ͢Δɻ ͏ͷϦιʔε͚ͩΛ
औಘ͢Δɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 4 औಘࡁΈͷϦιʔε͕͋Δ߹ɺ લظ·ͰͷશऔಘࡁΈͱಉ͡ঢ়ଶ ͳͷͰɺͦͷ··͑Δɻ ৗ࣌ Ξοϓσʔτظ औಘࡁΈͳΒ
ͦͷ··͑Δ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 5 ͕ɺ औಘࡁΈϦιʔε͕ ݹ͘ͳ͍ͬͯΔߋ৽͞Ε͍ͯΔ ߹ɺͦͷ··ͬͯ͠·͏ͱԘ ക͕ѱ͍ɻ ༻࣌ʹߋ৽͞Ε͍ͯΔ͔Λ
νΣοΫɺ࠷৽ͷϦιʔεΛऔಘ Ͱ͖ΔͱԘക͕ྑ͍ɻ ৗ࣌ Ξοϓσʔτظ ݹ͘ͳ͍ͬͯΔͳΒɺ ͦͷͰ࠷৽Λऔಘɻ ্ͦͯ͠ॻ͖ 9 ߋ৽ʂ ߋ৽͞ΕͯΔ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 6 ৗ࣌ Ξοϓσʔτظ 0O"QQ1BVTF Ϣʔβʔૢ࡞ ϦιʔεͦͷͷͰͳ͘ɺ Ϧιʔεͷߋ৽ใΛऔಘɻ
Ϧιʔε༻࣌ͷߋ৽νΣοΫΛ ߦ͏ͨΊʹɺ ߋ৽ݕ࣌ʹ<Ϧιʔεߋ৽ใ> Λऔಘ͢Δɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ ৗ࣌ Ξοϓσʔτظ 0O"QQ1BVTF Ϣʔβʔૢ࡞ ௨৴ Ϧιʔεͷߋ৽νΣοΫΛΑΓࡉ ͔͘ߦ͑ΕɺϦιʔε༻࣌ʹ ࠷৽ͷϦιʔεΛ͑ΔՄೳੑ͕
ߴ͘ͳΔɻ ͳͷͰɺ"QQͷ௨৴ʹศͯ͠ݕ ॲཧΛߦ͏͜ͱʹ͢Δɻ ΞϓϦ͕ߦ͏௨৴ʹศ͠ɺ ϦιʔεݕΛߦ͏ɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 8 ͜͜·Ͱἧ͏ͱɺ ɾߴසͰ6QEBUBCMF*OGPΛߋ৽ ɾϦιʔε͕͋Ε༻͢Δ ɾ͍࣋ͬͯΔϦιʔε͕ݹ͍ແ͍ ߹ɺऔಘͯ͠༻ ͱ͍͏͕ܳͰ͖Δɻ
ৗ࣌ Ξοϓσʔτظ 9 ߋ৽͞Ε͍ͯΔ͔ະॴ͔࣋ɺ ͲͪΒʹͯ͠࠷৽Λऔಘ͢Δɻ
ඈ͍͍ͯ͠ ؾ͕͢Δ 6 9 ӡӦͷτϦΨʔ͕3FT7FSͳͷɺ લظ͔ΒมΘ͍ͬͯͳ͍ɻ "QQ͕ૹΓग़ͨ͠3FT7FSΛαʔ ό͕ड͚ɺ৽͍͠ใ͕ؼͬͯ ͘Εɺ ͔ͦ͜Βઌɺࣗಈతʹ6QEBUBCMF
ߋ৽͞ΕΔɻ ৗ࣌ Ξοϓσʔτظ 9 ߋ৽͞Εͨ 6QEBUBCMF͕͋Εɺ ͦͷใΛฦ͢ɻ 3FT7FSૹ
7 0 ϫϯύϯظ Ϧιʔεظ དྷੈظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ લલલੈ લલੈ
લੈ ݱੈ ڈ དྷੈ ϞόΠϧҎલʜ Ϣʔβʔૢ࡞ͰͷΞϓσݕɺ3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ 0O"QQ1BVTF Ϣʔβʔૢ࡞ͰͷΞϓσݕɺ3FT7FSߋ৽ શϦιʔεҰؾʹऔಘ શ෦ೖΓɺ"QQ7FSߋ৽ 0O"QQ1BVTFΞϓσݕɺ3FT7FSߋ৽ શϦιʔεҰؾʹऔಘ ॳճىಈ࣌औಘɺ"QQ7FSߋ৽ શϦιʔεҰؾʹऔಘ ͋ͱͰɻ
7 1 ͓ॻ͖ ߋ৽Մೳཁૉ 6QEBUBCMF ʹ͍ͭͯ ӡ༻ͷ ཧͱݱ࣮ ͦͷ࣮
ཁૉͱӡ༻ͷ ͖߹Θͤ ͱɺະདྷͷબࢶ 1. 2. 3.
7 2 6QEBUBCMFͱӡ༻ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ ͜͜·ͰͰछͷ6QEBUBCMFͱͭͷӡ༻Λհ͖͕ͯͨ͠ɺ ͏ͪϫϯύϯظ"QQؙ͝ͱߋ৽ͳͷͰআ֎͞ΕΔ͕
7 3 6QEBUBCMFͱӡ༻ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x 6QEBUBCMFͱӡ༻ͷΈ߹Θͤʹ੍ݶͳ͍ɻ Γ͍ͨ͜ͱ͔Β͖ͳΈ߹ΘͤΛબ΅͏ɻ
7 4 6QEBUBCMFͱӡ༻ૣݟද Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x ͍ͭͰΞϓσ 6QEBUBCMFҰݸ͝ͱͷऔಘ
Ϣʔβʔૢ࡞Ξϓσ ಛఆλΠϛϯάΞϓσ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ԿͰ͑Δ 6OJUZ4FSJBMJ[F"TTFU
࠶ͼ6QEBUBCMF1SPT$POT 7 5 ࡞Γ͢͞ ϩʔυ Ωϟογϡ/ ࠩऔಘ ϝϞϦޮ ؚΊΒΕΔ Asset
USA NotBad VeryHard Good VeryGood 99% Bytes VeryGood VeryGood ࣗ࡞Մ ϊʔΨʔυ 1% Code Good VeryHard ࣗ࡞Մ ϊʔΨʔυ 70%
7 6 Ϩοπɾ۩ମྫ 6QEBUBCMFͱӡ༻ύλʔϯΛ ͘Έ͋ΘͤͯΈΔɻ
7 7 ΩϟϥΫλʔ͕Ճ͞ΕΔ"QQͳΒ ը૾ฤ Ωϟϥ͕ֆͳΒ➡ ૿͑ΔλΠϛϯάͰɺCZUF<>͔ΒಡΊ͍͍ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ
x 3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ Ϣʔβʔૢ࡞Ξϓσ 3FT7FSߋ৽ ಛఆλΠϛϯάΞϓσ 3FT7FSߋ৽ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ԿͰ͑Δ 6OJUZ4FSJBMJ[F"TTFU
7 8 ΩϟϥΫλʔ͕Ճ͞ΕΔ"QQͳΒ Ϟσϧฤ Ωϟϥ͕ϞσϧͳΒ 64"Ͱ͋Δඞཁ͕ͳ͍ͳΒ ➡ ૿͑ΔλΠϛϯάͰɺίʔυ͔Βੜ͢Ε͍͍ 73.͕͜Εɻ Ϧιʔεظ
ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x 3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ Ϣʔβʔૢ࡞Ξϓσ 3FT7FSߋ৽ ಛఆλΠϛϯάΞϓσ 3FT7FSߋ৽ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ԿͰ͑Δ 6OJUZ4FSJBMJ[F"TTFU
7 9 ΩϟϥΫλʔ͕Ճ͞ΕΔ"QQͳΒ 64"ฤ Ωϟϥ͕Ϟσϧ͔ͭ64"ඞਢɺίʔυੜແཧͳΒ ➡ USAΛϏϧυ࣌ʹೖΕΔ ڧ੍Ξϓσ Ϧιʔεظ ϦιʔεΞοϓσʔτظ
ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x 3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ Ϣʔβʔૢ࡞Ξϓσ 3FT7FSߋ৽ ಛఆλΠϛϯάΞϓσ 3FT7FSߋ৽ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ԿͰ͑Δ 6OJUZ4FSJBMJ[F"TTFU
8 0 ͘͠
8 1 Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x 3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ Ϣʔβʔૢ࡞Ξϓσ
3FT7FSߋ৽ ಛఆλΠϛϯάΞϓσ 3FT7FSߋ৽ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ΩϟϥΫλʔ͕Ճ͞ΕΔ"QQͳΒ 64"ฤ Ωϟϥ͕Ϟσϧ͔ͭ64"ඞਢɺίʔυੜແཧͳΒ ➡ Ωϟϥ͕૿͑ΔλΠϛϯάͰ"#Λͬͯӡ༻
8 2 ԻɺγφϦΦɺқઃఆ͕Ճ͞ΕΔ "QQͳΒ ➡ ૿͑ΔλΠϛϯάͰɺCZUF<>͔ίʔυ͔Βੜ͢Ε͍͍ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ
x 3FT7FS͍ͭͰߋ৽ 6QEBUBCMFҰݸ͝ͱͷऔಘ Ϣʔβʔૢ࡞Ξϓσ 3FT7FSߋ৽ ಛఆλΠϛϯάΞϓσ 3FT7FSߋ৽ ڧ੍"QQΞϓσػߏ #ZUF͔Β ੜͰ͖Δ"TTFU ίʔυ͔Β ੜͰ͖Δ"TTFU ԿͰ͑Δ 6OJUZ4FSJBMJ[F"TTFU
8 3 Ϩοπɾ۩ମྫ "#Θͳ͍Ͱҙ֎ͱϦιʔεߋ৽Ͱ͖Δͷɺ Ͳ͏ࢥ͏ʁ "#ͷՁͬͯ͜ΜͳΜͳΜͩͥʁ
8 4 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ ΒΕ͍ͯͳ͍ͷɺ "#Ҏ֎ʹݟΔ͖ͷ͕͋Δͱ͍͏ɻ 6OJUZͷ߹ɺ Ξοϓσʔτ͢Δʹ"# ͱ͍͏ใ͕Ұ൪࠷ॳʹདྷΔΜ͚ͩͲɺ ͦΕ͕·͋ਏͯ͘ɻ
8 5 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ "QQΛӡ༻͢ΔೖΓޱͱͯ͠ɺ"#͔ͳΓෑډ͕ߴ͍ɻ ͜Ε·͋"#͕ѱ͍ͱ͍͏ΑΓɺ ӡ༻Λ͢ΔͨΊͷղͱͯ͠"#͕ଘࡏ͢ΔͷͰɺ ղ͔Β͍ΛΔͷ͕͍͠ͱ͍͏ɻ
8 6 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ Ϧ ι ʔ ε Ξ ο ϓ
σ ʔ τ ظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ Ϧιʔεظ ͙ΘʔͬͱΓ͍ͨӡ༻͕͋ͬͯɺ ͦΕΛ࣮ݱ͢ΔͨΊͷղͱͯ͠"#͕͋Δɻ ίϯχνϫʂ
8 7 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ ͳͷͰɺ "#ͷੜ͕Θ͔Εӡ༻͕Θ͔Δ͔ʁ /Pɻ "#ͷ༻ํ๏͕Θ͔ͬͨΒӡ༻͕Θ͔Δ͔ʁ ·ͩΓͳ͍ɻ ͱ͍͏ֶ͔श͢Δॱ൪ͱͯ͠ਏ͍ɻ
8 8 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ ߟ͑Δ͖ɺ ͦͷ"QQʹରͯ͠ɺ ཧతͳ6QEBUBCMFYཧతͳӡ༻ͷΈ߹Θͤ ͲΜͳͷͳͷ͔ɻ
8 9 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x Γ͍ͨӡ༻ͱɺ͍͍ͨ6QEBUBCMFΛΈ߹ΘͤΑ͏ɻ
9 0 "#ʹ͍ͭͯΒΕ͍ͯͳ͍͜ͱ Ϧιʔεظ ϦιʔεΞοϓσʔτظ ҙΞοϓσʔτظ ৗ࣌Ξοϓσʔτظ x "#ผʹඞਢ͡Όͳ͍ɻ
9 1 ͪͳΈʹ ૉʹ"#Λͬͯӡ༻ͨ͠΄͏͕͍͍ɺ ͱ͍͏έʔε͋Δɻ Ͳ͏͋ͬͯCZUF<>ίʔυ͔Βੜ͠ʹ͍͘߹ɺ ੜ͕໘ष͍߹ͳͲɻ
ऴ ੍࡞ɾஶ࡞ S K K
9 3 ࠷ߴͷདྷੈ ϞόΠϧͷੈքͰ·ͩདྷͳ͍͔͠Εͳ͍͚Ͳɺ༗ઢͷੈքͳΒ4USFBN(BNJOH Έ͍ͨͳͭདྷΔ͔ͩɻ (PPHMF͕Γͩͨ͠ɻ ɾϢʔβʔ͕ίϯτϩʔϥѲΔͱαʔόଆͰήʔϜىಈͯ͠ ͦͷը໘Λखݩͷ57ʹૹΓ͚ͭͯ͘Δ
ͱ͍͏ͷͰɺΑ͏·͋ɺ͏ʔΜɺΞϓϦͷӡӦతʹมΘΒͳ͍ɻ ɾ৽͍͠ϦιʔεΛ࡞ͬͯ ɾήʔϜͷதʹΞοϓσʔτ௨ϙΠϯτΛ࡞ͬͯ ɾΞοϓσʔτ Ҏ্ͩɻ ͓·͚
9 4 ࠷ߴͷདྷੈ அઈ͞ΕͨαʔόͱΫϥΠΞϯτɺ͍ͬͯ͏֓೦͕ফ͑ͯαʔό্ͷΫϥΠΞϯτ ηογϣϯ͚ͩʹͳΔͷ͋ΔΜ͚ͩͲɺ Ϣʔβʔ͕ήʔϜΛ༡ΜͰ͍Δɺ͍ͬͯ͏ηογϣϯͷ֓೦·ͩফ͑ͳ͔ͬͨɻ ·͋ɺϢʔβʔ͕༡ΜͰ͍ΔΫϥΠΞϯτͷηογϣϯ͕͋Δ͏ͪɺͦͷηο
γϣϯ͕ͲΜͳσʔλΛ͍ͭϩʔυͯ͠͏͔ɺͱ͔ͷ֓೦ফ͑ͳ͍ɻ ͷͰɺࠓͨ͜͠ͱ͋Μ·ΓมΘΒͳ͍ɻ ༻ҙ͢ΔσʔλมΘΒͣɺηογϣϯΛΓͨ͘ͳ͚ΕήʔϜΛىಈͨ͠·· ΞοϓσʔτΛܴ͑Δ͜ͱʹͳΔɻ ͓·͚
9 5 ࠷ߴͷདྷੈ 4USBNJOH(BNFͰมΘΔ͜ͱͱͯ͠ɺ ɾΫϥΠΞϯτηογϣϯͱαʔόڑ͕ͳͷͰɺσʔλμϯϩʔυͰͳ͘ ୯ͳΔల։ʹͳΓɺ͔͔Δ͕࣌ؒ΄΅ʹͳΔ ɾͷΪΨ͕ղফ͞ΕΔ
4USFBNJOHֆ ԻͷσʔλྔͦΕࣗମʹΛͭͿ͍ͬͯΔɻ,Ͱ.#Tɻ (#Λ͍ͭͿ͢ͷʹ TFDɺ࣌ؒɻ͋Εɺɺ ͋ʔʔෳͷϢʔβʔؒͰTIBSFEͳίϯςΩετͷ߹Ͳ͏ͳΔΜͩɺͬͺϝ ϯς͔ʁCBDLUPϦιʔεΞοϓσʔτظɻ·͋దࡐదॴͰɻ ͓·͚