ç§ãã¡ã¯é·ãéUnityãšååããŠããŸãããã9æã«è¡ãããPixonic DevGAMM Talksã«ä»²éãæåŸ
ããã®ãå©ããããŸããã§ããã ãã£ãŒã«ããšã³ãžãã¢ã®Valentin Simonovã¯ãæ°ãããã¯ãããžãŒã®å©ç¹ãèæ
®ããŠã²ãŒã ã®ã¢ãŒããã¯ãã£ãèšç»ããæ¹æ³ã«ã€ããŠèªããŸããã Unityã¯ããããŸã§éæã§ããªãã£ãã¬ãã«ã®ããã©ãŒãã³ã¹ãéæããããã«ãæ°å¹Žéãããã«åãçµãã§ããŸããã YouTubeã§ãã¬ãŒã³ããŒã·ã§ã³ãèããŠãã«ããã®ããäžã«ããã¹ã©ã€ãã§ãã©ã³ã¹ã¯ãªãããèªãããšãã§ããŸãã
ã²ãŒã ã®çç£æ§ã10åé«ããããšãã§ãããšèšã£ããã©ããªããŸããïŒ å®éãããã¯å®å
šã«çå®ã§ã¯ãããŸãããããã¹ãŠã®ãžã§ãŒã¯ã«ã¯çå®ããããŸãã ç§ãã¡ãçŸåšåãçµãã§ããããšãUnityã®å°æ¥ã¯ã©ããªããããããŠä»ããªãã䜿çšã§ããããšã«ã€ããŠã話ããããšæããŸãã
Unityã¯å®å
šã«ç°ãªãã²ãŒã ãäœããŸãã ããã«ãç§ãèªåã§ãã¬ã€ããäŸãããã€ã瀺ããŸãã ãããã¯ç°ãªãæ©èœã䜿çšããç°ãªãããã©ãŒãã³ã¹ãéçºãžã®ç°ãªãã¢ãããŒããå¿
èŠã§ãã

ãããŠãããã©ã«ãã§ããã©ãŒãã³ã¹ãšåŒã°ãããããžã§ã¯ãã«åãçµãã§ããŸãã ãããã¯ãé©åã«äœ¿çšãããšãããã©ãŒãã³ã¹ã倧å¹
ã«åäžããç¹å¥ãªæ©èœã§ãã äžéšã®ã¿ã¹ã¯ã§ã¯ãx10ãããã«x11ã枬å®ããŸããã ç¹ã«ãçžäºäœçšããå€æ°ã®ãªããžã§ã¯ããã·ãã¥ã¬ãŒãããåé¡ã§ã¯ã
ããããPerfomance by Defaultã«ã€ããŠè©±ããšããéçºãžã®ã¢ãããŒããå€ããã²ãŒã ã®ã¢ãŒããã¯ãã£ãžã®ã¢ãããŒãã倧ããå€ããªããã°ãªããªãããšãæå³ããŸãã ãããŠå®éã誰ãããããå¿
èŠãšããããã§ã¯ãããŸããã
ãããã質åïŒãECSã§äœãããŠããŸããïŒ ãã¹ãŠã®GameObjectãåé€ãããã¹ãŠã®å€æãéå±€ãããã³ã³ã³ããŒãã³ããåé€ããŸããïŒã ããããç§ãã¡ã¯çãããæ®ããŸãã Unityã¯çŸåšãšãŸã£ããåãããã«äœ¿çšã§ããŸãããããã©ãŒãã³ã¹ãããã«åäžãããã«ã¯ãç°¡åã«èª¬æããããã¯ãããžãŒã«ã€ããŠç¥ãå¿
èŠããããŸãã
ãŸããScriptable Render PipelinesïŒSRPïŒãšåŒã°ããå¥ã®ãã¯ãããžãŒã«ã€ããŠèšåããããšæããŸããããã«ãããã²ãŒã ã®ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãããå¹ççã«ã¬ã³ããªã³ã°ã§ããŸãã ãããããUniteã®1ã€ã§ç€ºãããã¢ãèŠãã§ãããã ããã§ã¯ããªã¢ã«ã¿ã€ã ã§PCäžã§ãçŽ6äžå°ïŒ10äžå°ã«éããå°ãæžéãå§ããŸãïŒã®èšå€§ãªæ°ã®ãŠããããã·ãã¥ã¬ãŒããããŸãã
ãããŠãç§ãã話ããããæ°æ©èœã¯ãEntity Component SystemïŒECSïŒãCïŒJob Systemãæ°ããBurstã¹ãŒããŒã³ã³ãã€ã©ãŒãããã³Scriptable Render PipelinesïŒSRPïŒã§ãã

ç¹°ãè¿ããŸããç§ãã¡ãšäžç·ã«é²ãã§ããããæ°ããæè¡ãåŠã¶ãããéã皌ãã ãã§ç°¡åã«äœããã²ãŒã ãéçºããŠãæ§ããŸããã
ç§ãã¡ã解決ããããšããŠããããšãç解ããããã«ã¯ã2018幎ã®éã®ç¶æ
ãç解ããããšãéèŠã§ãã

CPUã³ã¢ã®ããã©ãŒãã³ã¹ãšæ°ãã©ã®ããã«å¢å ããŠãããã«æ³šç®ããŠãã ããã ããæç¹ãããã·ã³ã°ã«ã¹ã¬ããã®ããã©ãŒãã³ã¹ãäœäžããŸããã ã€ãŸããçŸåšå€ãã®ã³ã¢ããããŸããããããã®çç£æ§ã¯ããã»ã©éãæé·ããŠããŸããã ãããã£ãŠããã¹ãŠã®ã³ã¢ã®ãã¯ãŒã䜿çšããããšæããŸãã

ç§ã®æºåž¯é»è©±ã«ã¯8ã€ã®ã³ã¢ããããŸãïŒ4ã€ã®åŒ·ãã³ã¢ãš4ã€ã®åŒ±ãã³ã¢ã ãŸããææ°ã®æºåž¯é»è©±ã¯ææ°ã®ã³ã³ãã¥ãŒã¿ãŒãšåãé床ã§å®è¡ã§ããŸãïŒãã ããéç±ã®ããããã»ã©é·ãã¯ãããŸããïŒã ãŸããããã©ãŒãã³ã¹ã®åäžã¯ãã¹ãŠã®ã³ã¢ã䜿çšããã ãã§ãªããã·ã³ã°ã«ã³ã¢ã®ããã©ãŒãã³ã¹ãæé©åããããšãç解ããå¿
èŠããããŸãã
æåŸã®åçã¯ãããã»ã¹ã®ããã©ãŒãã³ã¹ãã©ã®ããã«åäžããã¡ã¢ãªã¢ã¯ã»ã¹é床ãããã»ã©åäžããªããã®äŸãšããŠåžžã«ç€ºããŠããŸãã

çŸåšãã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ãéåžžã«é
ãããšãããããŸãã ããã»ããµã¡ãŒã«ãŒã¯ãã®éããå¹³æºåããããã«å€ãã®ããšãè¡ããŸãããã£ãã·ã¥ãè¿œå ããCPUã¯ææ©çãªèšç®ã«åŸäºãã次ã«å®è¡ãããã³ãŒããäºæž¬ããããšããŸãã ãããŠãããªããã²ãŒã ãäœããšãïŒãŸãã¯ç§ãã¡ãããªãã®ããã«ãšã³ãžã³ãäœããšãïŒã«ããã«ã€ããŠèããªããã°ãç§ãã¡ã¯ææ°ã®ããã»ããµãæ倧éã«æŽ»çšããããšã¯ã§ããŸããã
ããªãã®å€ãã¯ãUnityã§åæ§ã®ç»åãèŠãã®ã«äœæéãè²»ããã§ãããã

ããã§ã¯ããã«ãã¹ã¬ãããååšããããšãããããŸãããã³ã¢ãšã¹ã¬ããã®æ®ãã¯ã»ãšãã©ããžãŒã§ã¯ãããŸããã äœããè¡ãããŠããŸãããç§ã¯ããããå®å
šã«å æããããšæããŸãã
ããã§ã¬ã³ããªã³ã°ãå®äºããŸãããããã¯ãã©ãã¯ããã¯ã¹ã§ãã éžæè¢ã«ã¯ãForwardãŸãã¯Deferredã«å ããŠããããªã¢ã«ãã·ã§ãŒããŒãã³ãã³ããããã¡ãŒãªã©ã®ããŸããŸãªèšå®ããããŸãã çŸããç»åãäœæã§ããŸãããå€ãã®ã¢ã«ãŽãªãºã ãå®è£
ããã®ã¯éåžžã«å°é£ã§ãã

ãããŠãUnityã®ã¢ãŒããã¯ãã£ã«ã€ããŠã¯ãã³ã³ããŒãã³ããã²ãŒã ãªããžã§ã¯ãããã©ã³ã¹ãã©ãŒã ã®éå±€ããã¹ãŠã®ã³ãŒããMonoBehaviourã®ãã¹ãŠã®ããŒã¿ããããŠåã³ã³ããŒãã³ãããã®ããŒã¿ãåŠçããããšã«ã€ããŠããã¹ãŠç¥ã£ãŠããŸãã

ããããçŸç¶ã«ã¯åé¡ããããŸãã é
ããæ©ãããããªãã¯ããã«åºããããããªãããããããå¿
èŠããããã©ãããç解ããŸãã ãªããžã§ã¯ãã®éå±€èªäœã«ã¯äžå®ã®ãªãŒããŒãããããããäžéšã®ãšã³ãã£ãã£ã¯ã²ãŒã ãªããžã§ã¯ãã§ããå¿
èŠã¯ãããŸããã ãŸããå€æ°ã®ã³ã³ããŒãã³ããšãããããã®æŽæ°ãããå Žåããã¹ãŠãéåžžã«é
ããªããŸãã ç§ã¯ãã€ãŠ
ãã®èšäºãæžããŸããããããããããªãæ¹æ³ãç¥ããããªãããŸã é¢é£ããŠããŸãã

ããã»ããµã®ã³ã³ããã¹ãã§æãéèŠãªããšã¯ããã¹ãŠã®ã³ã³ããŒãã³ãããã¹ãŠã®ããŒã¿ãã¡ã¢ãªã«æ£åšããŠãããããããã»ããµãã£ãã·ã¥ã®äœ¿çšãäžæãããããšã§ãã
ä»ãç§ã¯ããã«æ°ããæ©èœãè©Šãããã§ãã

ECSãšã¯äœããã©ã®ããã«æ©èœãããã«ã€ããŠã¯ããŸã泚ç®ããŸããã ãã€ã³ãã¯ããšã³ãã£ãã£ãæã£ãŠãããšããããšã§ãããšã³ãã£ãã£ã¯ãã²ãŒã å
ã®ç¹å®ã®ãšã³ãã£ãã£ã®IDã«ãããŸãããã³ã³ããŒãã³ãã®åœ¢åŒã§ããŒã¿ãä¿åããŸãã ããŒã¿ã®ã¿ãã³ãŒããªãã ã·ã¹ãã ã¯ç¹å®ã®ã³ã³ããŒãã³ãã§ãšã³ãã£ãã£ãåŠçããäœããã®åœ¢ã§ãã®ããŒã¿ãå€æŽããŸãã
ãªãECSãè¡ãã®ãã競åä»ç€Ÿãããã©ã®ããã«åªããŠããã®ãïŒ ããã€ãã®ãã€ã³ãããããŸãã ãŸããå®å
šã«å
¬åŒã§ã¯ãããŸããããä»ã¯ãšã³ãžã³ãå®è¡ãããšæããŸãã çŸåšã®Unityã³ã³ããŒãã³ãã§ããGameObjectsãåãé€ãããã¹ãŠãå®å
šã«æšãŠãŠECSãã€ã³ã¹ããŒã«ããããªãããšã¯æããã§ãã ããããæã
ã¯ããè¯ââããšã³ãžã³ã«åãã£ãŠåãããã§ãã

é«ãããã©ãŒãã³ã¹ãæåŸ
ããŠããŸãã å°ãåãŸã§ãMike Actonãåå ããŸããïŒC ++éçºãããŠããå Žåã圌ã¯ããŒã¿æåããã°ã©ãã³ã°ã®äŒéè
ã®1人ã§ããããšãããããŸãïŒã ãããŠãã·ã¹ãã å
šäœãå¯èœãªéãé«éã«åäœãããã-C ++ãããé«éã«ãããã
ãŸããããŸããŸãªãã®ãECSã«ãã€ãã£ãã«çµ±åããæ¹æ³ã«ã€ããŠãèããŠããŸãã ãã°ããåã«ãæ°ãããããã¯ãŒã¯ãäœæããŠããããšãçºè¡šããŸãããããã¯ECSã«ãåºã¥ããŠããŸããECSã§ãã«ããã¬ã€ã€ãŒã²ãŒã ãäœæããã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ã³ãŒããå
±æããããšãå¯èœã«ãªããŸãã
Unityã§ãããã°ããŒã«ã«åãçµãã§ããŸãã ã€ãŸã ECSã¯ã²ãŒã ãªããžã§ã¯ããã³ã³ããŒãã³ããšã¯å¥ã«ååšããŸãããããã¯éåžžã«äžäŸ¿ã§ãã ç©äºãåçŽåãããã
次ã®ãããªDebugViewããããŸãã

ããã§ã¯ãææããŠãããšã³ãã£ãã£ã®çš®é¡ãåŠçã«å¿
èŠãªã·ã¹ãã ã®æéãã€ã³ã¹ãã¯ã¿ãŒã§ç¢ºèªã§ããã³ã³ããŒãã³ããšã³ã³ããŒãã³ãããšã®ã·ã¹ãã ãã³ã³ããŒãã³ãã®åãšã³ãã£ãã£ã®ããŒã¿ã確èªã§ããŸãïŒAPIã¯é »ç¹ã«å€æŽãããå€ãã®ãã¥ãŒããªã¢ã«ã¯ãã§ã«å€ããªã£ãŠãããããããŸããïŒã
ãŸããæ°ããéçºUnity for Small ThingsïŒããã¯ãã€ã³ã¹ã¿ã³ãã¡ãã»ã³ãžã£ãŒåãã®ã²ãŒã ãäœæã§ããéåžžã«å°ããªã©ã³ã¿ã€ã ã§ãïŒãèããå Žåããã¹ãŠãECSã§æ§ç¯ãããŸãã
æè¿ãéçºãšECSãžã®ç§»è¡ã®ããŒã ã¯éåžžã«äººæ°ã®ããæè¡ã§ããã誰ãããããç¥ãå¿
èŠããããŸãã
ããã°ã©ããŒåãã®äŒè°ãããã®ã§ãã³ãŒãã¹ã©ã€ããªãã§è¡ãã®ã¯å°é£ã§ãã ããã«ã¯å€ãã®ã³ãŒãããããŸãã®ã§ãäœããæ確ã«ããããã«äœããã®çš®é¡ã®ããããããéšåãåŒãåºãã®ã¯é£ããã§ãã

å®éãCïŒJob Systemã§åäœããäŸãã1ã€ã®ã·ã¹ãã ãåããŸããïŒããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒãã³ãŒãéãåæžããããã«å€ãã®ããšãè¡ããæ§æshugarãè¿œå ããŸãã
RotationDataã³ã³ããŒãã³ãã§åäœããã·ã¹ãã ããããç¹æ®ãªTransformAccessArrayã§è¡šãããGameObjectå€æãå¿
èŠã§ãã ãããŠãã·ã¹ãã ã®åæŽæ°ã¯ããžã§ããäœæãããã®ãžã§ããå®è¡ããã©ããã§æŽæ°ããããã€ãã®ã°ã«ãŒãã«åå²ããŠç°ãªãã¹ã¬ããã§å®è¡ã§ããŸãã
ãããžã§ã¯ãã§ã®äœ¿çšæ¹æ³ ä»ã®ECSå®è£
ã®å Žåãšåæ§ã«ãïŒGameObjectsãTransformsãšã¯ç°ãªãïŒãŸã£ããç°ãªãæ¹æ³ã§èããå¿
èŠãããããšãç解ããå¿
èŠããããŸãã ãããŠããã®èãã«æ
£ããŸãããã ãã²ãŒã ãäœæããŠECSã«åãæ¿ããã-ã©ã®ããã«ïŒããªã©ã®è³ªåãããåããããããããžã§ã¯ãã®æåããå§ããå¿
èŠãããããšã¯æããã§ãã å®æããã²ãŒã ã§ã¯ããããè¡ãã®ã¯éåžžã«å°é£ã§ãã

ECSã¯ãã®å°ããªäžçã§å¥ã
ã«äœãã§ããã®ã§ãUnityãšã®çžäºäœçšãéããŠèããå¿
èŠããããŸãã GameObjectsããã³Transformsãšã®ããåãã®æ©äŒãããã€ãæäŸããŸãããç©çåŠãã¬ã³ããªã³ã°ãªã©ãããã§ã¯ãŸããŸãè€éã«ãªããŸãã ãããŠã䜿ãæ
£ããã€ã³ã¿ãŒãã§ã€ã¹ã®å€ãã¯å©çšã§ããªããšããäºå®ã«ææ
¢ããå¿
èŠããããŸãããç§ãã¡ã¯ããã«ãåãçµãã§ããŸãã
ãããŠããã«ããžã§ãã·ã¹ãã ã§ã·ã¹ãã ãèšè¿°ããããšãèããå¿
èŠããããŸããããã¯ã¯ããã«å¹ççã§ãã

Job Systemã«ã€ããŠäžèšã ãã«ãã¹ã¬ããã³ãŒããèšè¿°ããããã®éåžžã«ç°¡åãªæ¹æ³ãäœæããããšèããŠããŸãã åæã«ãCïŒã§èšè¿°ãããã¹ãŠã確èªããééããç¯ãæ©äŒãäžãããããªããã©ãã§ãã©ã®ããã«äœæãããã瀺ãããããªãã§ãã ããã Jobsã§äœ¿çšã§ããèšèªæ©èœãå¶éãããã®ãµãã»ãããCïŒHigh Performance CïŒãšåŒã³ãŸãã ãžã§ãã³ãŒãã«ã¯åç
§ãè¡ããããŸããããã¹ãŠã®ããŒã¿ãã³ããŒããå¿
èŠããããŸããå€æ°ã®èšèªæ©èœã䜿çšããããšã¯ã§ããªãããããã«ãã¹ã¬ãããæ®åœ±ããã®ã¯éåžžã«å°é£ã§ãã
ãŸããéåžžã«é«éãªã³ã¬ã¯ã·ã§ã³ãšECSãšã®çµ±åã玹ä»ããŸãã ãã®ECSãšãžã§ãã·ã¹ãã ã®æ§é ã«ãããéåžžã«é«éãªã³ãŒãå®è¡ãå¯èœã«ãªããŸãã
åæã«ããããã®ãã¯ãããžãŒã䜿çšããæ©äŒãæäŸããã ãã§ãªãããããã®ã·ã¹ãã ãšé£æºããŠããžã§ãã§äœ¿çšã§ããããã«æ°ããAPIãäœæããŸãã

ç©çåŠçšã®éåæã¬ã€ãã£ã¹ããäœæããŸãããããã䜿çšããŠãã600ã®ã¬ãŒããã£ã¹ããå¿
èŠã§ãããã€ããã£ãŠãã ããããšèšãããšãã§ããŸãã ãããã®ãã¯ãããžãŒã䜿çšããŠãPlaybles APIãä»ããã¢ãã¡ãŒã·ã§ã³ãªã©ãçŸåšã®ã·ã¹ãã ãæ¡åŒµã§ããããã«åãçµãã§ããŸãã ãããŠãC ++ã§éãããããã³ãŒããCïŒã§å©çšã§ããæ°ããã·ã¹ãã ãUnityã§äœæããããšãèããŠããŸãã

Jobã®ã³ãŒãã䜿çšãããšãéåžžã«ç°¡åã§ãã ãžã§ãã¯ãExecuteã¡ãœãããååšããæ§é ã§ãããã®ã¡ãœããã§ã¯ããã®ãžã§ããå®è¡ããŠäœæ¥ãè¡ããŸãã ãããã£ãŠãç§ãã¡ã®å
éšã¹ã±ãžã¥ãŒã©ã¯ãã€ããããå®è¡ããã»ããè¯ãå Žæãç解ãããã¹ãŠã®äŸåé¢ä¿ã解決ããŸãã ããã§ãä»ã®ããã€ãã®ãžã§ãã®äŸåé¢ä¿ãšããŠäœ¿çšã§ããJobHandleãååŸããŸãã
ãããžã§ã¯ãã§ã®äœ¿çšæ¹æ³ Jobsãæåãã䜿çšããã®ã¯è¯ãããšã§ãããããã§ã¯å¿
èŠãããŸããã ã·ãã¥ã¬ãŒã·ã§ã³ãçµè·¯æ¢çŽ¢ããããã¯ãŒã¯ãªã©ãäœããã®ããã©ãŒãã³ã¹ãéèŠãªã·ã¹ãã ãããå Žåããã®ããŒã«ã䜿çšããŠæé©åããæ¹æ³ãèŠã€ããããšãã§ããŸãã

ãã ãããã®ããã«ã¯ãããã€ãã®å€§ããªã¹ããããèžãå¿
èŠããããŸããããŒã¿ãé©åã«ä¿åããæ¹æ³ãç解ããŠãã ããã å®éãECSã¯ããŒã¿ãã³ãŒãããåé¢ããECSã®å®è£
ã¯ã³ã³ããŒãã³ãããŒã¿ãã¡ã¢ãªã«ç·åœ¢ã«æ ŒçŽããã·ã¹ãã ã«ãã£ãŠãããã®ã³ã³ããŒãã³ããå®è¡ããããããã¹ãŠã®ããã»ããµæ©èœã䜿çšãããã¹ãŠããã£ãã·ã¥ã«æ ŒçŽããããããããŒã¿ãæ£ããæ ŒçŽã§ããŸãããªã© ç§ãã¡ã¯éåžžã«è¿
éã«ãããããããšããŸãã
次ã«ããã®äœæ¥ã䞊åã¿ã¹ã¯ã«åå²ãããžã§ãã³ãŒããèšè¿°ããŠå®è¡ããŸãã ãããŠïŒããããïŒãã¹ãŠãããªãã®ããã«åãã ãã¡ãããã³ã¢ã®æ°ãªã©ã«å¿ããŠãã¿ãŒã²ãããã©ãããã©ãŒã ã§ãã¹ãããå¿
èŠããããŸãã ããããç§ãèšã£ãããã«ããžã§ãã·ã¹ãã ãšECSã®äœ¿çšã¯ãã²ãŒã ã¢ãŒããã¯ãã£ã®èšç»æ¹æ³ã«ã倧ãã圱é¿ããŸãã
ãã®åŸããã¹ãŠãã¯ããã«ç°¡åã§ãã ããŒã¹ãã³ã³ãã€ã©ã¯ããã®CïŒïŒé«æ§èœCïŒïŒãµãããããçŸåšã®ãã©ãããã©ãŒã ã®ãã·ã³ã³ãŒãã«çµã¿èŸŒãç¹å¥ãªã³ã³ãã€ã©ã§ããããããžã§ã¯ãã«å
¬éããç¬èªã®ãã¯ãããžã§ãã

圌ãã¯ãããã圌ã以å€ã®èª°ãç解ããŠããªãéæ³ãããã€ãå®è¡ããŸãããããã®ããšã¯Jobã³ãŒãã10åé«éåããŸããããã¯éåžžã«ã¯ãŒã«ã§ãã ãããŠãæãã¯ãŒã«ãªããšã¯ãããªãããã®ã¢ã¯ã·ã§ã³ãå¿
èŠãšããªãããšã§ãããžã§ãã³ãŒããããå Žåã¯ã[BurstCompile]å±æ§ãè¿œå ããã ãã§ãããŒã¹ããã³ãŒããã³ã³ãã€ã«ãããç¡æãã®ããã©ãŒãã³ã¹ãåŸãããŸãã ãããç§ãã¡ã®æ°ããæè¡ã§ãããä»ããè©Šãããšãã§ããŸãã

æåŸã«ç°¡åã«èšåãããã®ã¯Scriptable Render PipelineïŒSRPïŒã§ããããã¯éåžžã«é·ãéåãçµãã§ãããç¹å®ã®ã²ãŒã çšã«éåžžã«ã«ã¹ã¿ã ã¬ã³ããªã³ã°ãèšè¿°ããæ©äŒãæäŸããããã«èšèšãããŠããŸãã

ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ã¯ãã«ãªã³ã°ïŒæç»ããããªããžã§ã¯ãïŒãã¬ã³ããªã³ã°ãããã³åŸåŠçãè¡ãã¢ã«ãŽãªãºã ã§ãã ããã§ãForwardãŸãã¯Deferredã®ãã©ãã¯ããã¯ã¹ãäœæãããŸãããæ¢ã«è¯å¥œã§ããæºåž¯é»è©±ãPCãã³ã³ãœãŒã«ã§éåžžã«ã¯ãŒã«ãªã°ã©ãã£ãã¯ãååŸã§ããŸãã ãã ããæ¡åŒµã§ããªããããå€ãã®å¶éããããŸãã ãã®æ°ããæ©èœã§ããSRPã䜿çšãããšããã€ãã©ã€ã³ãèšè¿°ããããããããäœããåé€ããããè¿œå ããããå¿
èŠãªããšãå®è¡ãããã§ããŸãã

çŸåšããã€ãã©ã€ã³ã®2ã€ã®äŸã«åãçµãã§ããŸãã ç§ãã¡ãæºåž¯é»è©±ãšåŒ±ãããã€ã¹ã察象ãšãã1ã€ã®LWRPãšãPCãã³ã³ãœãŒã«ã察象ãšããæ¥çã®éåžžã«æåãªäººã
ãäœæ¥ããHDRPã ãã®åã«ã圌ãã¯AAAã²ãŒã ãäœããŸããã 確ãã«ãããªãã¯ç§ãã¡ã®ãã¢Book of the DeadãèŠãŸããã
ããã§ã¯ããã®æè¡ã®ãã«ãã¯ãŒã瀺ãããã«HDRPã䜿çšããŸããã
ããã䜿çšããã«ã¯ãããªãå€ãã®ããã€ãã¯ãªã¹ããããèžãå¿
èŠããããŸããããã¯ãæ°ããPipelineã§çŸåšè¡ãããŠãããã®ãšå®è³ªçã«äºææ§ããªãããã§ãã ã€ãŸã ã¬ã¬ã·ãŒã§ã¢ããã°ã¬ãŒãããå Žåãã»ãšãã©ã®ãããªã¢ã«ãã¢ããã°ã¬ãŒããããŠãŒãã£ãªãã£ãæäŸããŸãããã·ã§ãŒããŒãæžãæããå¿
èŠããããŸãã ãã¯ã¹ãã£ã¯ããããç°ãªã£ãŠèŠããã§ãããã

ãŒãããå§ããŠPipelineãè©ŠããŠã¿ãããšãã§ããã°ããšãŠãã¯ãŒã«ã§ãã ãã€ãã©ã€ã³ã§äœãããããå Žåã¯ããåãåãããã ããã
ç¹°ãè¿ããŸãããå¿
èŠãªããšãç解ããŠãã ãããããã¯äœããããæ©äŒãå¢ããããã§ãããããããããè¡ãããšãã§ãã人ãå¿
èŠã«ãªããããããè¡ãæ¹æ³ãåŠã¶å¿
èŠããããŸãã

ç§ã®æèŠã§ã¯ããããã®æ°ããæè¡ãç§ãã¡ãšäžç·ã«é²ãã人ã¯åžå Žã§ããå€ãã®éèŠãããã®ã§ãããã¯ã¯ãŒã«ã§ãã ããã ãã§ãã誰ãããããã®æè¡ãèŠãŠãçŸããã¯ãŒã«ãªã²ãŒã ãäœã£ãŠãããããšãæãã§ããŸãã
èŽè¡ããã®è³ªå
-ECSãå©çšããŠéçºã§ããã®ã¯ãã€ã§ããïŒ-ECSã䜿çšã§ããŸããåé¡ã¯ãçŸåšã®åœ¢åŒã§ã¯ãããã©ãŒãã³ã¹ã«çŠç¹ãåœãŠãŠãã人ã
ãã€ãŸã ããçš®ã®AAAãããžã§ã¯ãã ãããŠUnityã®ã¿ã¹ã¯ã¯ãããã©ã«ãã§ããã©ãŒãã³ã¹ããã¹ãŠã®äººãå©çšã§ããããã«ããããšã§ãã ãã®ãããäœããã®ã·ã¹ãã ãECSã®ã¢ããªã³ãå¿
èŠã§ããããã«ãããçŸåšMonoBehaviorã䜿çšããŠããã®ãšåãããã«ç°¡åã«ECSã䜿çšã§ããŸãã ãã®ãããªã¢ãã€ã³ã¯ãããŸããããECSãå®å
šãªãªãªãŒã¹ã§ãªãªãŒã¹ããããšã¯æããŸããã ãããŠããŠãŒã¶ãŒã®1ïŒ
ã䜿çšããæ©èœãäœæããããšãããããŸããã ãããŠãããã¯Unityã®ã¿ã¹ã¯ã§ã¯ãããŸããã ãã§ã«æ¬çªç°å¢ã§ECSã䜿çšããŠãã人ã
ãç¥ã£ãŠããŸããããã®æ©èœã¯ãŸã éçºæ®µéã«ãããçŸåšæã䟿å©ãªã€ã³ã¿ãŒãã§ã€ã¹ãäœæããæ¹æ³ã®åé¡ã解決ããŠããããšã«çæããŠãã ããã ãããŠã次ã®ã¿ã¹ã¯ïŒããã»ã©é£ããã¯ãããŸããïŒã¯ããã®ECSã®äžã«ããããçš®ã®APIãäœæããMonoBehaviourãšåã䜿ããããã§äœ¿çšã§ããããã«ããæ¹æ³ã§ãã ã€ãŸã ããã€ããšãã質åã«å¯Ÿããçãã¯ãããŸããã
-ECSããã³ãã®ä»ã®ã¢ã€ãã ã¯ãåºæ¬çãªGameObjectãååŸãããã®ã¯ããŒã³ã15äžåäœæããŠç®¡çããããšã«çŠç¹ãåœãŠãŠããŸãã ãããããªããžã§ã¯ããã»ãšãã©ãªãããšã³ãã£ãã£ãç°ãªãå Žåã¯ã©ããªããŸããïŒ-ååãšããŠãããªãã¯äœãããããšãã§ããŸããããã®æè¡ã¯ããã䜿çšãã矩åãè² ããŸããã ãããã®ãã¯ãããžãŒã䜿çšããŠããã©ãŒãã³ã¹ãåäžã§ããå Žåã¯ããããã䜿çšããå¿
èŠããããŸãã ãããèªåã«é¢ä¿ãªãå Žåã¯ãUnityããã®ãŸãŸäœ¿çšãç¶ããŸãã ãããã£ãŠãpanicãŠãªãã§ãã ããã
-Unityã®ã¯ã©ã€ã¢ã³ãã.NETã®ãµãŒããŒãUnityã®ãµãŒããŒãè©ŠããŸããããäœããããŸããã ããããåæã«ããµãŒããŒäžã®Unityã«ãããã¯ãããžãŒã䜿çšããããšæããŸãã
-ç§ãã¡ã¯ããã«åãçµãã§ãããä»ã§ã¯å¹æçãªãµãŒããŒãœãªã¥ãŒã·ã§ã³ãæäŸã§ããªãããšãç解ããŠããŸãã Unityã²ãŒã ã®é«å質ãªãã¹ãã£ã³ã°ãå®çŸããããã«ããã°ããåã«Multiplay瀟ãè²·åããŸããã ç§ãã¡ã¯åå¥ã«ãããã¯ãŒãã³ã°ãè¡ãããšã³ãžã³ãæé©åããŠãããå€ãã®ãã®ãæšãŠãããšãã§ããããã«ããŠããŸãã ãããã£ãŠããã¹ãŠãæã£ãæç¹ã§ãåªãããã«ããã¬ã€ã€ãŒãœãªã¥ãŒã·ã§ã³ãå®çŸããŸãã
Pixonic DevGAMM Talksãšã®ãããªãè¬æŒ