Slide 1

Slide 1 text

ଘࡏ͠ͳ͍Ξηοτ΁ͷࢀরͱ 
 ະެ։ΞηοτͰͷωλόϨʹ 
 Ͳ͏ཱͪ޲͔͏͔ $"VOJUZ,VOJXBL %F/"$P -UE

Slide 2

Slide 2 text

,VOJXBL VOJUZNFUBDIFDLΛ࡞ͬͨਓɻ ήʔϜ։ൃ͔Βۤ͠ΈΛऔΓআ͖͍ͨɻ Ͱ੩తղੳثΛ։ൃ͍ͯ͠Δɻ 2

Slide 3

Slide 3 text

఻͍͑ͨ͜ͱ 3

Slide 4

Slide 4 text

ΞηοτͱϚελʔσʔλͷෆ੔߹ͷ༧๷ʹ͸ 
 Ϛελʔσʔλ͔Βࢀর͞ΕΔ͢΂ͯͷ 
 ΞηοτΛ೺ѲͰ͖ΔΑ͏ʹ͢ΔͱΑ͍ 4

Slide 5

Slide 5 text

༻ޠͷఆٛ 5

Slide 6

Slide 6 text

Ϛελʔσʔλ ήʔϜͷৼΔ෣͍ΛܾΊΔύϥϝʔλͷ͏ͪɺ 
 શϢʔβʔͰڞ༗͞Ε͍ͯͯมಈ͠ͳ͍΋ͷɻ 
 දͰදݱ͞ΕΔ͜ͱ͕ଟ͍ɻ 6

Slide 7

Slide 7 text

ΩϟϥΫλʔ*% ໊લ )1 ΞΠίϯ 'PP 'PP #BS" #BS #BS# #BS Ϛελʔσʔλͷྫ

Slide 8

Slide 8 text

Ξηοτ lΞηοτͱ͸ɺήʔϜ΍ΞϓϦέʔγϣϯΛ࡞੒͢ΔͨΊʹɺ 
 6OJUZϓϩδΣΫτͰ࢖༻͢ΔΞΠςϜͷ͜ͱɻΞηοτ͸ɺ 
 %ϞσϧɺςΫενϟɺεϓϥΠτɺα΢ϯυΤϑΣΫτɺ 
 ԻָͳͲɺϓϩδΣΫτͷࢹ֮త·ͨ͸ௌ֮తཁૉΛද͠·͢z 8 https://docs.unity3d.com/ja/current/Manual/AssetWorkflow.html

Slide 9

Slide 9 text

ΞηοτΞυϨε ΞηοτΛҰҙʹಛఆ͢Δจࣈྻɻ"EESFTTBCMFTͷ 
 ΞυϨεͰ΋ྑ͍͠ɺ"EESFTTBCMFTͱಉ༷ͷ 
 ΞηοτγεςϜ͕ൃߦ͢ΔΞυϨεͰ΋Α͍ɻ 9

Slide 10

Slide 10 text

ฐࣾͷήʔϜ͕Ϛελʔσʔλ͔Β 
 ࢀর͞ΕΔΞηοτΛಡΈࠐΉ·ͰͷྲྀΕ 10

Slide 11

Slide 11 text

11 ϚελʔσʔλʹΞηοτ΁ͷ 
 ෦෼จࣈྻ͕هࡌ͞Ε͍ͯΔ ෦෼จࣈྻʹ৭ʑҾͬ෇͚ͯ 
 ΞηοτΞυϨε͕׬੒͢Δ ͜ͷΞηοτΞυϨεΛ΋ͱʹ 
 Ξηοτ͕ಡΈࠐ·ΕΔ ΩϟϥΫλʔ*% ʜ ΞΠίϯ ʜ 'PP ʜ #BS ʜ #BS ΩϟϥΫλʔ*%ͷ 
 ΞΠίϯͷΞηοτ 
 ΞυϨεΛੜ੒ "TTFUT*DPOT#BSQOH

Slide 12

Slide 12 text

12 ΩϟϥΫλʔ*% ʜ ΞΠίϯ ʜ 'PP ʜ #BS ʜ #BS "TTFUT*DPOT'PPQOH "TTFUT*DPOT#BSQOH "TTFUT*DPOT#BSQOH ΞηοτΞυϨε

Slide 13

Slide 13 text

ฐࣾͷ๊͍͑ͯͨ՝୊ 13

Slide 14

Slide 14 text

w Ϛελʔσʔλʹଘࡏ͠ͳ͍ΞηοτΛ 
 ࢀর͍ͯ͠Δ΋ͷ͕͋Δ w Ϛελʔσʔλ͔Βࢀর͞Εͯ 
 ͍ͳ͍Ξηοτ͕ଘࡏ͢Δ 14 ϚελʔσʔλͱΞηοτͷෆ੔߹

Slide 15

Slide 15 text

w Ϛελʔσʔλʹଘࡏ͠ͳ͍ΞηοτΛ 
 ࢀর͍ͯ͠Δ΋ͷ͕͋Δ w Ϛελʔσʔλ͔Βࢀর͞Εͯ 
 ͍ͳ͍Ξηοτ͕ଘࡏ͢Δ 15 ϚελʔσʔλͱΞηοτͷෆ੔߹ ήʔϜ͕Ϋϥογϡ͢Δɺ͋Δ͍͸ҙਤ͠ͳ͍ 
 දݱʢςΫενϟͷܽଛ౳ʣʹͳͬͯ͠·͏

Slide 16

Slide 16 text

w Ϛελʔσʔλʹଘࡏ͠ͳ͍ΞηοτΛ 
 ࢀর͍ͯ͠Δ΋ͷ͕͋Δ w Ϛελʔσʔλ͔Βࢀর͞Εͯ 
 ͍ͳ͍Ξηοτ͕ଘࡏ͢Δ 16 ϚελʔσʔλͱΞηοτͷෆ੔߹ ެ։͢΂͖Ͱͳ͍Ξηοτ͕Ξηοτόϯυϧʹ 
 ؚ·Εͯ͠·͍ɺղੳ͞ΕͯωλόϨͯ͠͠·͏

Slide 17

Slide 17 text

w Ϛελʔσʔλʹଘࡏ͠ͳ͍ΞηοτΛ 
 ࢀর͍ͯ͠Δ΋ͷ͕͋Δ w Ϛελʔσʔλ͔Βࢀর͞Εͯ 
 ͍ͳ͍Ξηοτ͕ଘࡏ͢Δ 17 ϚελʔσʔλͱΞηοτͷෆ੔߹

Slide 18

Slide 18 text

2ͳͥෆ੔߹͕ى͜Δͷ͔ 18

Slide 19

Slide 19 text

"ΞηοτͱϚελʔσʔλ͸ ฒྻʹ։ൃ͞Ε͍ͯΔ͔Β 19 Ϛελʔ͍ͬͨ͡ ΞηοτͰ͖ͨ Ϛελʔ͍ͬͨ͡ ΞηοτͰ͖ͨ ΞηοτͰ͖ͨ Ϛελʔ͍ͬͨ͡

Slide 20

Slide 20 text

ෆ੔߹Λ๷͙ͨΊʹ͸ w ଘࡏ͠ͳ͍ΞηοτΛࢀর͍ͯ͠Δ 
 ϚελʔσʔλΛݟ͚ͭΒΕΔΑ͏ʹ͢Δ w Ϛελʔσʔλ͔Βࢀর͞Ε͍ͯͳ͍ 
 ΞηοτΛݟ͚ͭΒΕΔΑ͏ʹ͢Δ 20

Slide 21

Slide 21 text

ฐࣾͷͱͬͨΞϓϩʔν 21

Slide 22

Slide 22 text

22 "TTFU.BTUFS*OUFHSBUJPO5FTU "MM"TTFUT&YJTU"OE3FGFSFODFE "MM"TTFUT&YJTU"OE3FGFSFODFE T "MMFMFNFOUTFYJTUPOCPUI4FUT "TTFUT4USFBNJOH"TTFUT#BS$POTU "TTFUT4USFBNJOH"TTFUT#B[ 3VO"MM 3VO4FMFDUFE 3FSVO'BJMFE $MFBS3FTVMUT 1MBZ.PEF &EJU.PEF &YBNQMF ⎋ 5FTU3VOOFS 5FTU3VOOFS

Slide 23

Slide 23 text

ෆ੔߹Λݟ͚ͭΔͨΊʹඞཁͳ΋ͷ 23 ࢀর͞Ε͏ΔΞηοτ͢΂ͯͷ 
 ΞηοτΞυϨε ଘࡏ͢ΔΞηοτ͢΂ͯͷ 
 ΞηοτΞυϨε ൺֱ͢Δͱ 
 ෆ੔߹͕Θ͔Δ

Slide 24

Slide 24 text

ඞཁͳ΋ͷʹඞཁͳ΋ͷ 24 ϚελʔσʔλશମΛಘΔ"1* Ϛελʔσʔλ͔ΒಘΒΕΔΞηοτ 
 ΞυϨεશͯΛܭࢉ͢Δ"1* ͋ΔΞηοτ͔Βࢀর͞Ε͏Δ 
 ͢΂ͯͷΞηοτΛܭࢉ͢Δ"1* ଘࡏ͢ΔΞηοτ͔ΒΞηοτ 
 ΞυϨεΛٯࢉ͢Δ"1* ࢀর͞Ε͏ΔΞηοτ͢΂ͯͷ 
 ΞηοτΞυϨε ଘࡏ͢ΔΞηοτ͢΂ͯͷ 
 ΞηοτΞυϨε ൺֱ͢Δͱ 
 ෆ੔߹͕Θ͔Δ

Slide 25

Slide 25 text

ඞཁͳ΋ͷʹඞཁͳ΋ͷ 25 ϚελʔσʔλશମΛಘΔ"1* Ϛελʔσʔλ͔ΒಘΒΕΔΞηοτ 
 ΞυϨεશͯΛܭࢉ͢Δ"1* ͋ΔΞηοτ͔Βࢀর͞Ε͏Δ 


Slide 26

Slide 26 text

࣮ݱͨ͜͠ͱ 26

Slide 27

Slide 27 text

Ϛελʔσʔλ͔ΒಘΒΕΔ͢΂ͯͷ 
 ΞηοτΞυϨεΛܭࢉ͢Δ"1*Λ 
 ࣮૷͢Δ͜ͱʹͨ͠΋ͷͷʜ 27

Slide 28

Slide 28 text

ϥϯλΠϜίʔυͷ͞·͟·ͳͱ͜Ζʹ 
 ΞηοτΞυϨεͷܭࢉॲཧ͕ॻ͔Ε͍ͯͯ஍ࠈ 28

Slide 29

Slide 29 text

ؤுͬͯ΍Γ͖͕ͬͨͱͯ΋ͭΒ͍ʜ 29

Slide 30

Slide 30 text

ϥϯλΠϜίʔυͷ͞·͟·ͳͱ͜Ζʹ 
 ΞηοτΞυϨεͷܭࢉॲཧ͕ೖΒͳ͍Α͏ʹ 
 ڽूͤ͞ΔϥΠϒϥϦΛ։ൃ͢Δ͜ͱʹͨ͠ 30

Slide 31

Slide 31 text

࣮૷ͨ͠ϥΠϒϥϦΛ 
 ར༻ͨ͠ͱ͖ͷྲྀΕ 31

Slide 32

Slide 32 text

32 ΩϟϥΫλʔ*% ʜ ΞΠίϯ ʜ 'PP ʜ #BS ʜ #BS "TTFUT*DPOT'PPQOH "TTFUT*DPOT#BSQOH "TTFUT*DPOT#BSQOH ΞηοτΞυϨε ৽ͨʹΞηοτ͕௥Ճ͞ΕͨͷͰ ΞηοτΞυϨεΛ৽ઃ͍ͨ͠

Slide 33

Slide 33 text

33 "TTFUT*DPOTJDPO/BNFQOH ΞηοτΞυϨεΛ෼ղͯ͠ߟ͑Δ ݻఆจࣈྻ ݻఆจࣈྻ ύϥϝʔλ

Slide 34

Slide 34 text

෼ղ͞ΕͨΞηοτΞυϨε͔ΒܭࢉنଇΛ 4DSJQUBCMF0CKFDUͱͯ͠࡞੒͢Δ 34 "TTFUT*DPOTύϥϝʔλQOH ܭࢉنଇ

Slide 35

Slide 35 text

35 *OTQFDUPS J &YBNQMF3FTPMWFS 3BX3FTPMWFS4FFE1BSBNT 0QFO ʜ ʜ {} ʮܕύϥϝʔλ DPEF ʯʹ͸ʮJOUʯ΍ʮ'PP#BSʯ ͷΑ͏ͳίʔυʹॻ͘ͷͱಉ͡ه๏Ͱೖྗ͍ͯͩ͘͠͞ Ϋϥε໊ &YBNQMF3FTPMWFS ϥϕϧ ύϥϝʔλએݴ ύϥϝʔλ ΞηϯϒϦ ܕ NTDPSMJC 4ZTUFN4USJOH *OTQFDUPSͰΆͪΆͪຒΊΔ ύϥϝʔλ

Slide 36

Slide 36 text

36 ηάϝϯτ ηάϝϯτ ηάϝϯτछผ ݻఆจࣈྻ 4UBUJD ηάϝϯτ ηάϝϯτछผ ύϥϝʔλࢀর "TTFUT*DPOT 1BSBNFUFS ύϥϝʔλ4ZTUFN4USJOH ϑΥʔϚοτ 5P4USJOH ͰจࣈྻԽ ηάϝϯτ ηάϝϯτछผ ݻఆจࣈྻ 4UBUJD QOH $ϑΝΠϧΛ࡞੒ ݻఆจࣈྻ ύϥϝʔλ ݻఆจࣈྻ

Slide 37

Slide 37 text

37 ηάϝϯτ ηάϝϯτ ηάϝϯτछผ ݻఆจࣈྻ 4UBUJD ηάϝϯτ ηάϝϯτछผ ύϥϝʔλࢀর "TTFUT*DPOT 1BSBNFUFS ύϥϝʔλ4ZTUFN4USJOH ϑΥʔϚοτ 5P4USJOH ͰจࣈྻԽ ηάϝϯτ ηάϝϯτछผ ݻఆจࣈྻ 4UBUJD QOH $ϑΝΠϧΛ࡞੒ ຒΊऴΘͬͨΒίʔυੜ੒

Slide 38

Slide 38 text

38 [global::PathResolver.ResolverGenerated(Label="StreamingAssets")] public static class ExampleResolver1 { public static string Resolve(global::System.String param1) { var result = new StringBuilder(); result.Append(ResolveSegment0()); result.Append(ResolveSegment1(param1)); result.Append(ResolveSegment2()); return result.ToString(); } public static string ResolveSegment0() { return "Assets/Icons/"; } public static string ResolveSegment1(param1) { return param1.ToString(); ੜ੒͞Εͨίʔυ

Slide 39

Slide 39 text

39 [global::PathResolver.ResolverGenerated(Label="StreamingAssets")] public static class ExampleResolver1 { public static string Resolve(global::System.String param1) { var result = new StringBuilder(); result.Append(ResolveSegment0()); result.Append(ResolveSegment1(param1)); result.Append(ResolveSegment2()); return result.ToString(); } public static string ResolveSegment0() { return "Assets/Icons/"; } public static string ResolveSegment1(param1) { return param1.ToString(); ੜ੒͞Εͨίʔυ ύϥϝʔλΛ༩͑ͯΞηοτΞυϨεΛܭࢉ ݻఆจࣈྻ෦෼ ύϥϝʔλ෦෼ ݻఆจࣈྻ෦෼

Slide 40

Slide 40 text

40 [global::PathResolver.ResolverGenerated(Label="StreamingAssets")] public static class ExampleResolver1 { public static string Resolve(global::System.String param1) { var result = new StringBuilder(); result.Append(ResolveSegment0()); result.Append(ResolveSegment1(param1)); result.Append(ResolveSegment2()); return result.ToString(); } public static string ResolveSegment0() { return "Assets/Icons/"; } public static string ResolveSegment1(param1) { return param1.ToString(); ੜ੒͞Εͨίʔυ BUUSJCVUFΛ͚͓͍ͭͯͯ͢΂ͯͷܭࢉنଇΛ 
 ಘΒΕΔΑ͏ʹ͓ͯ͘͜͠ͱ͕ޙͰॏཁʹͳΔ ʢ୯ͳΔJOUFSQPMBUFETUSJOHʹ͠ͳ͍ཧ༝ʣ

Slide 41

Slide 41 text

41 var char2 = MasterData.GetCharacter(2); var address = ExampleResolver1.Resolve(char2); Debug.Log(address); // "Assets/Icons/Bar.png" ήʔϜͷϥϯλΠϜίʔυ

Slide 42

Slide 42 text

42 var char2 = MasterData.GetCharacter(2); var address = ExampleResolver1.Resolve(char2); Debug.Log(address); // "Assets/Icons/Bar.png" ήʔϜͷϥϯλΠϜίʔυ ϚελʔσʔλΛಡΈࠐΉ

Slide 43

Slide 43 text

43 var char2 = MasterData.GetCharacter(2); var address = ExampleResolver1.Resolve(char2); Debug.Log(address); // "Assets/Icons/Bar.png" ήʔϜͷϥϯλΠϜίʔυ Ϛελʔσʔλ͔ΒΞηοτΞυϨεΛܭࢉ ΞηοτΞυϨεΛ΋ͱʹΞηοτΛಡΈࠐΉ

Slide 44

Slide 44 text

44 static IDictionary> ResolverMap => new Dictionary> { { typeof(ExampleResolver1), () => ExampleResolver1.GetList( 
 MasterData.GetAllCharacters()) }, // ... }; ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ

Slide 45

Slide 45 text

45 static IDictionary> ResolverMap => new Dictionary> { { typeof(ExampleResolver1), () => ExampleResolver1.GetList( 
 MasterData.GetAllCharacters()) }, // ... }; ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ΞηοτΞυϨεͷܭࢉنଇ͸ͨ͘͞Μ 
 ͋ΔͷͰίϨΫγϣϯʹ·ͱΊΔΑ͏ʹ͢Δ

Slide 46

Slide 46 text

46 static IDictionary> ResolverMap => new Dictionary> { { typeof(ExampleResolver1), () => ExampleResolver1.GetList( 
 MasterData.GetAllCharacters()) }, // ... }; ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ΞηοτΞυϨεͷܭࢉنଇʹ͢΂ͯͷ 
 ϚελʔσʔλΛೖྗͯ͠ɺࢀর͞ΕΔ 
 ͢΂ͯͷΞηοτΞυϨεΛܭࢉ͢Δؔ਺

Slide 47

Slide 47 text

47 static IDictionary> ResolverMap => new Dictionary> { { typeof(ExampleResolver1), () => ExampleResolver1.GetList( 
 MasterData.GetAllCharacters()) }, // ... }; ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ͜ΕΛΞηοτΞυϨεͷܭࢉنଇ͝ͱʹॻ͘

Slide 48

Slide 48 text

48 static IDictionary> ResolverMap => new Dictionary> { { typeof(ExampleResolver1), () => ExampleResolver1.GetList( 
 MasterData.GetAllCharacters()) }, // ... }; ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ͢ΔͱϚελʔσʔλ͔Βܭࢉ͞ΕΔ 
 ͢΂ͯͷΞηοτΞυϨεΛೖखͰ͖Δ

Slide 49

Slide 49 text

49 ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ [Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); }

Slide 50

Slide 50 text

[Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); } 50 ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ܭࢉ͞ΕͨΞηοτΞυϨεͱଘࡏ͢ΔΞηοτͷ 
 ΞηοτΞυϨεΛಥ͖߹Θͤͯ֬ೝ͢Δϝιου

Slide 51

Slide 51 text

51 [Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); } ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ લड़ͷͱ͓Γίʔυੜ੒͞ΕͨΞηοτΞυϨεͷ 
 ܭࢉنଇʹ͸BUUSJCVUF͕͍͍ͭͯΔͷͰ͢΂ͯΛऔಘͰ͖Δ

Slide 52

Slide 52 text

52 [Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); } ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ͢΂ͯͷܭࢉنଇ͔Βࢀর͞Ε͏ΔΞηοτͷΞυϨεΛܭࢉ͢Δ ΋֬͠ೝ͔Β࿙Ε͍ͯΔܭࢉنଇ͕͋Δͱྫ֎ʹͳΔͷͰؾ෇͚Δ

Slide 53

Slide 53 text

53 [Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); } ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ͳΜΒ͔ͷΞηοτγεςϜ͔Β͢΂ͯͷΞηοτͷΞυϨεΛऔಘ͢Δ

Slide 54

Slide 54 text

54 [Test] public void AllAssetsExistAndReferenced() { var resolvers = TypeCache.GetTypesWithAttribute 
 (); var addressesRead = new HashSet( 
 resolvers.SelectMany(resolver => ResolverMap[resolver]())); var addressesExist = SomeAssetSystem.GetAllAssetAddresses(); SetAssert.AreEqual(addressesExist, addressesRead); } ෆ੔߹Λ֬ೝ͢Δίʔυʢʣ ࢀর͞ΕΔΞηοτͷΞυϨεͷू߹ͱ 
 ଘࡏ͢ΔΞηοτͷΞυϨεͷू߹͕ 
 Ұக͠ͳ͚Ε͹ɺଘࡏ͠ͳ͍Ξηοτ΁ͷ 
 ࢀর΍ωλόϨΞηοτ͕͋ΔͱΘ͔Δ

Slide 55

Slide 55 text

55 "TTFU.BTUFS*OUFHSBUJPO5FTU "MM"TTFUT&YJTU"OE3FGFSFODFE "MM3FTPMWFST$PWFSFE 3VO"MM 3VO4FMFDUFE 3FSVO'BJMFE $MFBS3FTVMUT 1MBZ.PEF &EJU.PEF 5FTU3VOOFS 5FTU3VOOFS <5FTU>ͷ͍ͭͨϝιου͸5FTU3VOOFS 
 ΢Οϯυ΢͔Β࣮ߦͰ͖Δ ⎋ /PUIJOH

Slide 56

Slide 56 text

56 "TTFU.BTUFS*OUFHSBUJPO5FTU "MM"TTFUT&YJTU"OE3FGFSFODFE "MM"TTFUT&YJTU"OE3FGFSFODFE T "MMFMFNFOUTFYJTUPOCPUI4FUT "TTFUT4USFBNJOH"TTFUT#BS$POTU "TTFUT4USFBNJOH"TTFUT#B[ 3VO"MM 3VO4FMFDUFE 3FSVO'BJMFE $MFBS3FTVMUT 1MBZ.PEF &EJU.PEF 5FTU3VOOFS 5FTU3VOOFS ෆ੔߹͕ͳ͚Ε͹྘ͷ 
 νΣοΫϚʔΫ͕ͭ͘ ⎋ /PUIJOH

Slide 57

Slide 57 text

"TTFU.BTUFS*OUFHSBUJPO5FTU "MM"TTFUT&YJTU"OE3FGFSFODFE "MM"TTFUT&YJTU"OE3FGFSFODFE T .JTTJOHFMFNFOUT FYUSBFMFNFOUTPGBMMFMFNFOUT NJTTJOH "TTFUT4USFBNJOH"TTFUT'PP4FDPOE NJTTJOH "TTFUT4USFBNJOH"TTFUT'PP4FDPOE 3VO"MM 3VO4FMFDUFE 3FSVO'BJMFE $MFBS3FTVMUT 1MBZ.PEF &EJU.PEF /PUIJOH 5FTU3VOOFS 5FTU3VOOFS ෆ੔߹͕͋Ε͹੺ͷ 
 ΤϥʔϚʔΫ͕ͭ͘ ⎋ ෆ੔߹ͷৄࡉ͕Θ͔Δ 57

Slide 58

Slide 58 text

6OJUZ5FTU'SBNFXPSLͷςετ͸ $-*͔Β΋࣮ߦͰ͖ΔͷͰෆ੔߹ͷ 
 ֬ೝ͸ࣗಈఆظ࣮ߦ͕͓͢͢Ί 58

Slide 59

Slide 59 text

ಋೖޙͷޮՌ 59

Slide 60

Slide 60 text

ࠓճઆ໌ͨ͠࢓૊ΈͰͷޮՌ͸·ͩະܭଌ ͨͩ͠ݩͱͳͬͨ·ͩચ࿅͞Ε͍ͯͳ͍࣌୅ͷ 
 ࣮૷͸ΞηοτͱϚελʔσʔλͷෆ੔߹Λ 
 ܶతʹݮΒͨ͠ʢʹ͸ͳΒͳ͔ͬͨʣ 60

Slide 61

Slide 61 text

·ͱΊ 61

Slide 62

Slide 62 text

·ͱΊ 62 ΞηοτͱϚελʔσʔλͷෆ੔߹ͷ༧๷ʹ͸ 
 Ϛελʔσʔλ͔Βࢀর͞ΕΔ͢΂ͯͷ 
 ΞηοτΛ೺ѲͰ͖ΔΑ͏ʹ͢ΔͱΑ͍

Slide 63

Slide 63 text

એ఻ 63 ࠓճ঺հͨ͠ΞηοτͱϚελʔσʔλͷ 
 ෆ੔߹ͷ֬ೝ͸੩తݕࠪͱݺ͹ΕΔ΋ͷͰ͢ɻ %F/"͸ήʔϜ෼໺ͷ੩తݕࠪʹྗΛೖΕ͍ͯ·͢ɻ 
 ڵຯ͕͋ͬͨΒͥͻ͓੠͕͚͍ͩ͘͞ʂ https://twitter.com/orga_chem