1幎åãç§ãã¡ã®äŒç€Ÿã«ã¯1ã€ã®ãããžã§ã¯ãããããŸãããæ¯èŒçé ãããã«ã©ãã«ã§æ¿ããæŠéãè¡ãã¢ãã€ã«ã·ã¥ãŒãã£ã³ã°ã²ãŒã War Robotsã§ãã ã²ãŒã ã¯é²åãç¶ããŠãããäžçäžã«æ°åäžã®ã€ã³ã¹ããŒã«ãšãã¬ã€ã€ãŒããããåžžã«æŽæ°ãè¡ãããŠããŸãã ããæç¹ã§ãOverwatchãCSïŒGOãŸãã¯Quakeã«å¹æµããé床ã®ãã€ãããã¯Unityã·ã¥ãŒãã£ã³ã°ã²ãŒã ãäœãããã£ãã®ã§ãã ããããçŸåšã®ã¢ãŒããã¯ãã£ãšã¢ãããŒãã§War Robotsã«åºã¥ããã¢ãã€ã«ãã©ãããã©ãŒã ïŒäž»ã«iOSãšAndroidïŒã®èšç»ãå®è£ ããããšã¯ã»ãšãã©äžå¯èœã§ããã
çè«çã«ã¯ãããè¡ãæ¹æ³ãç解ããŸãã-ã·ã¥ãŒãã£ã³ã°ã²ãŒã ã®äœææ¹æ³ããããã¯ãŒã¯ã®æäœæ¹æ³ãçºçããåé¡ãããã³ãããã®è§£æ±ºæ¹æ³ã«ã€ããŠè©³ãã説æããå€ãã®èšäºãYouTubeã®ãã¬ãŒã³ããŒã·ã§ã³ããããŸãã Rocket Scienceã¯ãããŸããããããã®ã¢ãããŒãã¯ãã¹ãŠ30幎åã«çºæããããã®ã§ããããã®éãããŸãå€åããŠããŸããã ããããç§ãã¡ã«ã¯ç·Žç¿ããããŸããã§ããã
å°æ¥ãèŠæ®ããŠãèšç»ãå®è¡ããããšãã§ããŸããã ã¢ãã€ã«ãã©ãããã©ãŒã çšã®åçé«éã·ã¥ãŒãã£ã³ã°ã²ãŒã ãäœæããŸãããããã¯çŸåšããŒã¿ãã¹ãäžã§ãããç©æ¥µçã«éçºãããŠããŸãã ãããŠãããããã¹ãŠãæ¬åœã«å ±æããããšæããŸãã ããã¯ã䜿çšããã»ãšãã©ãã¹ãŠã®ãªã¹ããšç°¡åãªèª¬æãå«ãæåã®ã¬ãã¥ãŒèšäºã§ãïŒéçºäžã®ä»ã®ãããžã§ã¯ããé¡äŒŒããŠããã詳现ãç°ãªãæè¡ãã¢ãããŒããšæ··åããªãã§ãã ããïŒã
ã·ãã¥ã¬ãŒã·ã§ã³
ã²ãŒã ãã¬ã€ãã·ãã¥ã¬ãŒãããããšããå§ããŸãããã ECSã§èšè¿°ããããšã«ããŸãã-ããã¯ãããŒã¿ãããžãã¯ããåé¢ããããŒã¿æåã®ã¢ãããŒãã§ãã ããŒã¿ã¯ããšã³ãã£ãã£ã«å±ãããšã³ãã£ãã£ããã³ã³ã³ããŒãã³ããšããŠè¡šãããŸãã ããžãã¯ã¯ã·ã¹ãã ã§èª¬æãããŠãããéåžžããšã³ãã£ãã£ã®ã³ã³ããŒãã³ããééããŠå€æŽããæ°ããã³ã³ããŒãã³ããšãšã³ãã£ãã£ãäœæããŸãã
çŸåšã®ãœãªã¥ãŒã·ã§ã³ãç§ãã¡ã«åããªãã£ããããECSãããªãè¿ éã«äœæããŸããã ECSã䜿çšãããšãããžãã¯ãããŒã¿ããåé¢ããã¯ãŒã«ãããŒã¿ããã°ããã·ãªã¢ã«åããã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§äº€æããããšãã§ããŸããã å ±æã©ã€ãã©ãªã§ECSã³ãŒããçæããããã®å¥ã®ãããžã§ã¯ãããããŸãã ãã®äžã®å€ãã®ã¡ãœããã¯ãã³ã³ããŒãã³ãããã³ã³ããŒãã³ãã«è€è£œãããŸããããšãã°ãããŒã¿ã®ã·ãªã¢ã«åãã³ããŒãæ¯èŒããã«ã¿å§çž®ãªã©ã§ãã
åãã·ãã¥ã¬ãŒã·ã§ã³ã³ãŒããã¯ã©ã€ã¢ã³ããšãµãŒããŒã§åæã«æ©èœããŸãã ããã«ããã次ã®å©ç¹ãåŸãããŸããã
- ã²ãŒã æ©èœã¯ãã¯ã©ã€ã¢ã³ãããã°ã©ããŒã«ãã£ãŠå®å šã«èšè¿°ã§ããŸãããµãŒããŒäžã§ãåãããžãã¯ãæ©èœããŸãã
- ãã¬ã€ã€ãŒã®ã¢ã¯ã·ã§ã³ãšã²ãŒã å ã®ã¢ã¯ã·ã§ã³ã®çµæã®éã«é 延ã¯ãããŸããã ã¯ã©ã€ã¢ã³ãã¯å³åº§ã«ã³ãã³ããããŒã«ã«ã§åŠçããŸãïŒäºæž¬ïŒã ãããŠãããŒã«ã«ã·ãã¥ã¬ãŒã·ã§ã³ã®çµæããµãŒããŒã®çµæãšç°ãªãå Žåã«ã®ã¿ãã¯ã©ã€ã¢ã³ãã¯äžçã®ãµãŒããŒã®ç¶æ ãåºæºãšããŠããŒã«ããã¯ããŸãã
- ãã¬ã€ã€ãŒã®ãã¬ãŒãã³ã°ïŒãã¥ãŒããªã¢ã«ïŒã²ãŒã ãµãŒããŒã«æ¥ç¶ããã«ãããã€ã¹äžã§ããŒã«ã«ã«ã·ãã¥ã¬ãŒãã§ããŸãã
- æ©èœãéçºãããšãããããžã§ã¯ãã¯åžžã«åäœãããµãŒããŒãå¿ èŠãšããŸããã ããžãã¯ãã°ã©ãã£ãã¯ã¹ãã²ãŒã ãã¶ã€ã³ãªã©ããã¹ãããã«ã¯ -ããŒã«ã«ã§è©Šåãéå§ã§ããŸãã
- å ±éã®ã©ã€ãã©ãªã䜿çšããŠãè² è·ãã¹ãçšã®ãããããã°ããäœæããããšãã§ããŸãããããã«ãããã²ãŒã ãµãŒããŒã®ããŸããŸãªããã©ãŒãã³ã¹ãšã¡ã¢ãªã®åé¡ãæããã«ãªããŸããã
ã客æ§
ã¯ã©ã€ã¢ã³ãã§ã®äºæž¬ãšããŒã«ããã¯ã«å ããŠãè£éã䜿çšããŸãã ããããéåžžã®æå³ã§ã¯ãããŸããããªããªã 1ãã¬ãŒã ã§1ç§éã«30åã·ãã¥ã¬ãŒãããŠæç»ããŸããå®éãå€å žçãªè£éã¯å¿ èŠãããŸããã
å¯èœã§ããã°ããµãŒããŒã®ãããã¡å ã®ç¶æ ãè£éããŸãããªããªãã ã¢ãã€ã«ãã©ãããã©ãŒã ã§ã¯ããã±ããã®æ倱ã倧ãããªãå¯èœæ§ããããŸãããããã§ã¬ã³ããªã³ã°ããããã®äžçã®ç¶æ³ãæãã§ããŸãã
顧客ã®ã¢ãŒããã¯ãã£
ã¯ã©ã€ã¢ã³ãã³ãŒãã¯äŸåæ§æ³šå ¥ãç©æ¥µçã«äœ¿çšããŸãã DIãã¬ãŒã ã¯ãŒã¯ãšããŠã Zenjectã䜿çšããŸã ã ç¹å®ã®ãã€ã³ãã£ã³ã°èšå®ã¯ãZenjectã§ã¯ã€ã³ã¹ããŒã©ãŒãšåŒã°ããå°ããªã³ã³ããžã·ã§ã³ã«ãŒãã§èª¬æãããŠããŸãã ã»ãšãã©ã®å Žåãç¹å®ã®ã€ã³ã¹ããŒã©ãŒãç¡å¹ã«ããããšã§ãæ©èœ/衚瀺/ãããã¯ãŒã¯ã®çžäºäœçšãç¡å¹ã«ãããããªæ¹æ³ã§èšè¿°ããããšããŸãã
ã²ãŒã ã«ã¯ããã€ãã®ã³ã³ããã¹ãããããããã«ãããªããžã§ã¯ãã¯ç¹å®ã®ã³ã³ããã¹ãã«å±ãããããšäžç·ã«äœãã§ããŸãïŒ
- ProjectContext-ã¢ããªã±ãŒã·ã§ã³ãåç¶ããéãã£ãšåç¶ãããªããžã§ã¯ãã
- MetaContext-ãã£ã©ã¯ã¿ãŒã®éžæãè£ åãè³Œå ¥ãªã©ã
- MatchContext-PvPããã«ã³ã³ããã¹ãã
æŠéã³ã³ããã¹ã
ã²ãŒã ã¡ã«ãã¯ã¹ã®ãã¬ãŒã³ããŒã·ã§ã³ã¬ãã«ã§ã®MatchContextã®ã³ã³ããã¹ãã§ã¯ã MVPã䜿çšããŸãã ã¢ãã«ã¯ECSããã®ããŒã¿ã§ããããã¬ãŒã³ã¿ãŒã¯ãããã䜿çšããŠè¡šç€ºããUnityãã¥ãŒéšåã衚瀺ããŸãã ãšã³ãã£ãã£ãšã³ã³ããŒãã³ãã®ãã¬ãŒã³ã¿ãŒãããŸãã ãã¬ãŒã³ããŒã·ã§ã³ã¬ãã«ã§ã¯ãUIã¯ä»¥äžã§èª¬æããMVVMã䜿çšããŸãã
ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ããŒã¿ã転éããããã«ãäœã¬ãã«ã®Photonã©ã€ãã©ãªãæ©èœããããããudpããŒã¹ã®ãããã³ã«ã䜿çšããŸãã ããŒã¿ãèªåã§ã·ãªã¢ã«åããŸããã«ã¹ã¿ã ãã«ã¿å§çž®ãäœæããŸããã ã²ãŒã ã®äžçã¯åºããã¢ãã€ã«ããã€ã¹ã«ãšã£ãŠãã©ãã£ãã¯ã®éã¯éåžžã«éèŠã§ããMTUã«äŒã£ãŠãäžçã®ç¶æ ã1ã€ã®ç©çããã±ãŒãžã«åãŸãããã«ããã®ã¯ããããšã§ãã
ã¡ã¿ã³ã³ããã¹ã
衚瀺ã¬ãã«ã®MetaContextã§ã¯ã Unity-Weldã©ã€ãã©ãªã«åºã¥ããŠMVVMãšDataBindingã䜿çšããŸãã ãã®çµæãUnityãããžã§ã¯ãã§éåžžè¡ãããŠããããã«ãå€ãã®èšå®ãšUIããžãã¯ãæã€åãŠã£ã³ããŠã®ã«ã¹ã¿ã MonoBehaviourã¯ã©ã¹ã¯ãããŸããã 代ããã«ãUIããžãã¯ã¯ç¹å®ã®ãŠã£ã³ããŠã®ViewModelã§èšè¿°ãããViewã¬ãã«ã¯1ã€ã®ã¯ã©ã¹-ViewïŒMonoBehaviorããç¶æ¿ïŒããã³ããŒã¿ãã€ã³ãã£ã³ã°ã®ããã€ãã®æšæºã¯ã©ã¹ã ãã§è¡šãããŸãã ãã®å Žåãããã°ã©ããŒã¯ããžãã¯ã®ã¿ãèšè¿°ããå¿ èŠãªããŒã¿ããåºåãããUIãã¶ã€ããŒã¯ãã£ã¹ãã¬ã€ãžã®ããŒã¿ãã€ã³ãã£ã³ã°ãã¿ã€ãã»ããããŠèšå®ããŸãã
ã¡ã¿ã³ã³ããã¹ãã§ã¯ã StrangeIoCããã³IoC +ã©ã€ãã©ãªããéšåçã«åçšããSignal-Command-Serviceã¢ãããŒãã䜿çšããŸãã çŸåšã¯Zenjectä¿¡å·ã«åºã¥ããŠããŸããããã€ã§ãä»ã®ãªãã·ã§ã³ã«æžãæããããããã«æžãããŠããŸãã ãããã£ãŠã ã€ãã³ããšã¢ã¯ã·ã§ã³ã®é¢ä¿ã¯ã€ã³ã¹ããŒã©ãŒã¬ãã«ã§æ§æããã1è¡ã§èª¬æãããŸãã
ã¡ã¿ãµãŒããŒãšéä¿¡ããããã®ãããã³ã«ã¯Protobufã«åºã¥ããŠãã ã WebSocketã¯ãã©ã³ã¹ããŒããšããŠäœ¿çšãããŸãã
ãµãŒãããŒãã£ã®ãœãªã¥ãŒã·ã§ã³
äžèšã®ãã®ã«å ããŠãéçºãã¹ããŒãã¢ããããããã«ãã¯ã©ã€ã¢ã³ãã§ä»ã®å€ãã®ãµãŒãããŒãã£ã®ãœãªã¥ãŒã·ã§ã³ãšãã©ã°ã€ã³ã䜿çšããŸãã
- FMOD-ãµãŠã³ãã®æäœçšã å¥ã®ãµãŠã³ããã¶ã€ããŒãããŸãã圌ã¯FMODãšãã£ã¿ãŒã§ã¯ãŒã«ãªãµãŠã³ããšé³æ¥œãã調çãããæ¹æ³ãç¥ã£ãŠããŸãã
- æ®çºæ§ç©çåŠ -ã¯ã©ã€ã¢ã³ãããã³ãµãŒããŒäžã®ç©çåŠãCïŒã§èšè¿°ãããŠããŸãã
- Lunar Console-ã¯ã©ã€ã¢ã³ãã®ãã°ã衚瀺ãããããããã³æ©èœããã¹ãããããã
- ãã«ãã·ãã -ãã¬ã€ã€ãŒãšéä¿¡ãããã£ãŒãããã¯ãåéããŸãã
- AppMetrã¯ãç¬èªã®åæã·ã¹ãã ã§ãã
- Json.net ã
- ãã®ä»
äžè¬çãªãœãªã¥ãŒã·ã§ã³
ãããžã§ã¯ãã®å ±éãœãªã¥ãŒã·ã§ã³ãéçºããå¥ã®ããŒã ããããŸãã äŸïŒ
- ç¬èªã®PackageManagerãããïŒUnity 2018ãããåªããŠããããã®ããªãåã«ç»å ŽããŸããïŒãããŒãžã§ã³ç®¡çãšåé€ããµããŒãããŠããŸãã ããã«ãããä»ã®ãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ãšãµãŒãããŒãã£ã®ãã©ã°ã€ã³ããã³ã©ã€ãã©ãªããããžã§ã¯ãã«æäŸããŸãã ãã©ã°ã€ã³ã®åé€ãšæŽæ°ã«åé¡ã¯ãããŸããã
- ç¬èªã®BuildPipeline-ããŸããŸãªæ§æãšãã©ãããã©ãŒã ã«åãããŠã¢ã»ã³ããªãã«ã¹ã¿ãã€ãºããæ©èœ éåžžãã¢ã»ã³ããªãšæ§æã®æé ã¯ç°ãªããŸã+ TeamCityãšã®çµ±åã
- ã·ã¹ãã å ã®ã¯ã©ã€ã¢ã³ãèªèšŒã¢ãžã¥ãŒã«ã
- èªåè©Šéšã·ã¹ãã ;
- åŒç€Ÿã«é©åãããµãŒãããŒãã£ã®ãã©ã°ã€ã³ïŒãã®ã³ã°ãåæãäžèšåç §ïŒ;
- äžè¬çãªã·ã§ãŒããŒ;
- ãã®ä»
顧客ã®æé©å
ã¢ãã€ã«ãã©ãããã©ãŒã åãã«æé©åããè±å¯ãªçµéšããããŸãã ç¹ã«ïŒ
- ã·ã§ãŒããŒãæé©åããŸãã
- ãã¯ã¹ãã£ãå§çž®ããã¢ãã©ã¹ã«ã¢ã»ã³ãã«ããã·ã§ãŒããŒã®ããªã¢ã³ãã®æ°ãæžãããªã©ããŠããã«ããµã€ãºãå€§å¹ ã«åæžããŸãã
- MeshMergerã䜿çšããŠãéçãªããžã§ã¯ããš1ã€ã®ãããªã¢ã«ã1ã€ã®ãªããžã§ã¯ãã«çµåãããã¯ã¹ãã£ãããŒãžããŸãã
- Unityã®çµã¿èŸŒã¿ãããã¡ã€ã©ãŒãããã³dotTraceãšdotMemoryã䜿çšããŠãã³ãŒããæé©åããŸãã
- ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãæå°éã«æããããã«ãã¡ã¢ãªããŒã«ãšäºåã«å²ãåœãŠãããã¡ã¢ãªã䜿çšããŸãã
- ãã«ã¿å§çž®ã䜿çšããŠãéä¿¡ãã±ããã®ãµã€ãºãåæžããŸãã
- ã¯ããã«ã
ããã®äžéšã¯ã以åã®èšäºãã¢ãã€ã«ã²ãŒã ã§ã®ãã¹ããšãã§ã¯ããããã³ãUnity3dã§ã®ã¢ãã€ã«ããã€ã¹çšã®2dã¢ããªã±ãŒã·ã§ã³ã®æé©å ãã§èªãããšãã§ããŸãã ããã2ã€ã®èšäºã®2ã€ç®ã¯ãã§ã«æ代é ãã§ãããããããã®å€ãã®ãã³ããæ©èœããŸãã
ã²ãŒã ãµãŒããŒ
æŠéãè¡ãããã²ãŒã ãµãŒããŒã¯CïŒã§èšè¿°ãããŠããŸãã äžèšã®udpããŒã¹ã®Photon Network Libraryã¯ããããã¯ãŒã¯ãããã³ã«ãšããŠäœ¿çšãããŸãã çŸæç¹ã§ã¯ããµãŒããŒã®ç·šéã¯ã»ãšãã©è¡ãããŸããã ãã¹ãŠã®ã²ãŒã ããžãã¯ã¯ã¯ã©ã€ã¢ã³ãããã°ã©ããŒã«ãã£ãŠäœæããããµãŒããŒäžã§å転ããŠããŸãã
ãŸããhttpãä»ããŠãµãŒããŒã«æ¥ç¶ãããªã¢ã«ã¿ã€ã ã§æŠéãèŠèŠçã«è¡šç€ºã§ããç¹å¥ãªããŒã«ãäœæããŸããã ããã«ããã¹ãŠã®ãšã³ãã£ãã£ããã®ã³ã³ããŒãã³ããããã³å€ã衚瀺ããããæŠéãèšé²ããŠåŸã§ãã¹ãç®çã§ãã¬ã€ãããããããšãã§ããŸãã ä»åŸã®èšäºã§ã¯ãã²ãŒã ãµãŒããŒã«ã€ããŠåå¥ã«èšè¿°ããŸãã
ã¡ã¿ãµãŒããŒ
ã¡ã¿ãšã¯ããã¬ã€ã€ãŒãããã£ãŒã«ãè³Œå ¥ããããã¡ã€ãã³ã°ããã£ãããã¯ã©ã³ãªã©ã®æ©èœãå®è£ ã§ãããã€ã¯ããµãŒãã¹ã·ã¹ãã ã®ããšã§ãã ãããã¯ãã¹ãŠåã ã®ããã°ã©ããŒã«ãã£ãŠäœæãããç°ãªããããžã§ã¯ãã§äžç·ã«äœ¿çšãããŸãã éçºã§äœ¿çšãããæè¡ïŒ
- Javaã¯äž»èŠãªéçºèšèªã§ãã
- Cassandra ã postgres-ãã¬ã€ã€ãŒããŒã¿ãä¿åããŸãã
- Consul-ã²ãŒã ããã³ãµãŒããŒèšå®ã®ããŒãšå€ã®ããŒã¿ã®ä¿åãå«ãããµãŒãã¹çºèŠãšããŠã
- RabbitMQ-ã¡ãã»ãŒãžãã¥ãŒã
- Protobufã¯ããµãŒãã¹ãšã¯ã©ã€ã¢ã³ãéã®ãããã³ã«ã§ãã
- gRPC-ãµãŒãã¹ãšã²ãŒã ãµãŒããŒéã®éä¿¡çšã
- netty ã akka ã logbackãªã©ãåæ§ã§ãã
ããŒã
ã²ãŒã ã¯æ©èœãšãšãã«æ¥éã«æé·ããæ°ããåŸæ¥å¡ãç©æ¥µçã«éããŠããŸãããäžè¬çã«ããããžã§ã¯ãããŒã ã¯ã³ã¢éšéãšé¢é£éšéã§æ§æãããŠããŸãã
ã³ã¢ã«ã¯ãã¯ã©ã€ã¢ã³ãããã°ã©ããã²ãŒã ãã¶ã€ããŒããããžã§ã¯ããããŒãžã£ãŒããããã¯ããªãŒããŒãQAïŒãã¹ã¿ãŒïŒãå«ãŸããŸãã é¢é£éšéã¯æ¬¡ã®ãšããã§ãã
- ã°ã©ãã£ãã¯ããã°ã©ã;
- ã¡ã¿ãµãŒããŒããã°ã©ããŒã
- ãããžã§ã¯ãã®å ±éãœãªã¥ãŒã·ã§ã³ãéçºããããŒã ã
- ã¢ãŒãã£ã¹ã;
- ã¢ãã¡ãŒã¿ãŒ;
- ã³ãã¥ããã£ãããŒãžã£ãŒã
- ãµããŒã;
- ããŒã±ãã£ã³ã°ãªã©
ã©ããã£ãŠåãã®
ç§ãã¡ã¯ã¹ã¯ã©ã ã«åãçµãã§ããŸãã ãããã誰ããèªåã®ã¹ã¯ã©ã ãæã£ãŠããããšãç解ããããšã¯äŸ¡å€ããããŸãã 2é±éã®å埩ãããŒã«ãŒãã©ã³ãã³ã°ãå顧ããã¢ãªã©ããããŸãã ãããåæã«ãç§ãã¡ã®ãªãªãŒã¹ã¯ã¹ããªã³ãã®çµããã«çžãããŠãããããªãªãŒã¹ãã¹ãã®è¿œå 段éããããŸãã
GitHubã«ã³ãŒããä¿åãããã«ãªã¯ãšã¹ããè¡ã ãã³ãŒãã®ã¬ãã¥ãŒã«Upsourceã䜿çšããŸãã Riderããã³Visual Studio + Resharperã§ã³ãŒããèšè¿°ããŸãã
ã¯ã©ã€ã¢ã³ããæ§ç¯ãããµãŒããŒãå±éããã³å±éããã«ã¯ãTeamCityãšGradleã䜿çšããŸãã ã¢ãã€ã«ããã€ã¹ãžã®ã¯ã©ã€ã¢ã³ãã®ã€ã³ã¹ããŒã«ã¯ã1åãŸãã¯2åã®ã¯ãªãã¯ã§è¡ãããŸãã
- [å®è¡]ãã¯ãªãã¯ããŠãTeamCityã§ã¯ã©ã€ã¢ã³ãããã«ãããŸãïŒã»ãšãã©ã®ã¢ã»ã³ããªã¯èªåçã«è¡ãããããããã®æé ã¯çç¥ã§ããŸãïŒã
- ãã«ãçšã«çæãããQRã³ãŒãã䜿çšããã€ã³ã¹ããŒã«ã
çµè«ã®ä»£ããã«
ã芧ã®ããã«ãç§ãã¡ã®æ代ã«ã¯ãçé¢ç®ãªè£œåã¯å€ãã®ã¢ãããŒããšãã¯ãããžãŒãããã³ãªãœãŒã¹ãšã¹ãã·ã£ãªã¹ãã䜿çšããŠããããã¹ãŠãäžèŠæããã»ã©åçŽã§ã¯ãããŸããã
次ã®èšäºã§ã¯ãECS ããã®äœææ¹æ³ãããã³ãã®æ©èœã«ã€ããŠèª¬æããããäžèšã®ä»ã«è¿ãå°æ¥èªã¿ãããã®ã«ã€ããŠã®ã³ã¡ã³ããæžãããšãã§ããŸãã