ããã«ã¡ã¯ç§ã®ååã¯ããããªãŒã§ãã ç§ã¯è¶£å³ãšããŠã¢ã³ãªã¢ã«ãšã³ãžã³ã§ã³ã³ãã¥ãŒã¿ãŒã²ãŒã ãäœã£ãŠããŸãã
ã²ãŒã äœæã®ç¹å®ã®æ®µéã§ããã€ã¢ãã°ãšã¯ãšã¹ããæžãããšãå¿ èŠã«ãªããŸãã æ®å¿µãªãããUnrealãšã³ãžã³ã«ã¯ãã®åé¡ã解決ããããã®çµã¿èŸŒã¿ããŒã«ããããŸããã ãã®ãããã¯ãšã¹ããšãã€ã¢ãã°ãç·šéããããã®ãã©ã°ã€ã³ãäœæããŸããã ãã€ãã®ããã«ããã¹ãŠã®ãœãŒã¹ã¯èšäºã®çµããã«æäŸãããŸãã
æåã®ããŒãã§ã¯èšäºã2ã€ã®ããŒãã«åããããšã«ããŸããããã©ã°ã€ã³èªäœã«ã€ããŠèª¬æãã䜿çšæ¹æ³ã説æããŸãã 第äºéšã§ã¯ãæè¡çãªåŽé¢ã«ã€ããŠã話ããŸãã
ãããã£ãŠããã©ã°ã€ã³èªäœã®è©±ã«çŽæ¥é²ã¿ãŸãã æåã«ãStoryGraphã¢ã»ãããäœæããå¿ èŠããããŸãã å³åŽã®ããã«ã§ã次ã®ãããªã¹ããŒãªãŒãªããžã§ã¯ããäœæããŸãã
1ïŒã¯ãšã¹ã-ãããã¯ãã®ãªããžã§ã¯ããäœæããåŸã®ã¯ãšã¹ãã§ãããã§ã«ã¯ãšã¹ããã§ãŒãºããã€ã³ãã§ããã¯ãšã¹ãéå§ããŒãïŒãã©ãã°ã¢ã³ãããããããµããŒããããŠããŸãïŒãè¿œå ããããšãå¯èœã«ãªããŸãã
2ïŒãã£ã©ã¯ã¿ãŒ-ãã£ã©ã¯ã¿ãŒã¯ããã®äžã«å¥ã®ã°ã©ããå«ããªããžã§ã¯ãã§ããããã¯ãã®ãã£ã©ã¯ã¿ãŒã®ãã€ã¢ãã°ãšãã£ã¿ãŒã§ãã ããã«ããã£ã©ã¯ã¿ãŒãªããžã§ã¯ãã«ã¯ACharecter_StoryGraphãªããžã§ã¯ããžã®å€éšåç §ããããããã¯ACharecterã®æŽŸçç©ã§ãã ãã£ã©ã¯ã¿ãŒã«ã¯ããã€ãã®ç¶æ ããããŸãïŒçããŠããïŒçããŠããïŒãšæ»ãã§ããïŒæ»ãã§ããïŒããããã®ç¶æ ãèæ ®ããããšãã§ããŸãïŒããã«ã€ããŠã¯åŸã§èª¬æããŸãïŒã ACharecter_StoryGraphããããã®ç¶æ ã«åãæ¿ããŸãã ãã£ã©ã¯ã¿ãŒã¯ã¡ã€ã³ã°ã©ãããã¡ãã»ãŒãžãåä¿¡ã§ããŸãã
3ïŒPlaceTrigger-ããªã¬ãŒã¯ããããäžã§èŠã€ããããšãã§ããå埩ãªããžã§ã¯ãã§ãã AActorãã掟çããAPlaceTrigger_StoryGraphãªããžã§ã¯ããžã®å€éšåç §ããããŸãã ããªã¬ãŒã¯ããã£ã©ã¯ã¿ãŒãšåæ§ã«ãå éšã§å¯Ÿè©±ããããšãã§ããã¡ãã»ãŒãžãšãã£ã¿ãŒãåããŠããŸãã
ããªã¬ãŒã«ã¯ãã¢ã¯ãã£ããšéã¢ã¯ãã£ãã®2ã€ã®ç¶æ ãããããŸããã ããã«ãããã€ãã®åäœã¢ãŒãããããŸãã
UnInteractive-ããªã¬ãŒã¯éã¢ã¯ãã£ãã§ããããã«ãŒããªã³ãã®ChangeStateé¢æ°ã䜿çšããŠãèªåã§ç¶æ ã®åãæ¿ããå®è£ ããå¿ èŠããããŸãã
ã€ã³ã¿ã©ã¯ãã£ã-ããªã¬ãŒã«è¿ã¥ããšããªã¬ãŒãã¢ã¯ãã£ãã«ãªããeããŒãæŒãã ãã§ããªã¬ãŒãã¢ã¯ãã£ãç¶æ ã«ãªããŸãã
AdvanceInteractive-ã¢ãããŒãããŠeãæŒããšãã¡ãã»ãŒãžãšãã£ã¿ãŒã§å®çŸ©ãããã¡ãã»ãŒãžãšå¯Ÿè©±ããããã®ãŠã£ã³ããŠãéããŸãã
ãŸãããã£ã©ã¯ã¿ãŒã®ãããªããªã¬ãŒã¯ãã¡ã€ã³ã°ã©ãããã¡ãã»ãŒãžãåä¿¡ã§ããŸãã
4ïŒDialogTrigger-ãã€ã¢ãã°ããã³ã¡ãã»ãŒãžãšã¡ã€ã³ã°ã©ããšã®çžäºäœçšã®ããã«ç§ãå°å ¥ãããªããžã§ã¯ãã ãŸãã2ã€ã®ç¶æ ïŒã¢ã¯ãã£ããéã¢ã¯ãã£ãïŒããããŸãã ãã£ã©ã¯ã¿ãŒãã€ã¢ãã°ãšãã£ã¿ãŒã«åãæ¿ããŠãã¡ãã»ãŒãžãšãã£ã¿ãŒãããªã¬ãŒããŸãã
5ïŒInventoryItem-ã€ã³ãã³ããªã®ä»¶åã ããããã£ã§èšå®ãããããã€ãã®ç¶æ ãæã€ããšãã§ããŸãã ãããã®æ¡ä»¶ã¯ãæ¢åã®æ¡ä»¶ïŒéã¢ã¯ãã£ããã¬ãã«ãããã³ã€ã³ãã³ããªïŒã«è¿œå ãããŸãã ç¶æ ã¯ãã¢ã€ãã ãéžæããããšã«ãã£ãŠåããŠå€æŽãããããã«ããã€ã¢ãã°ããªã¬ãŒç¶æ ã ãã§ãªãããã£ã©ã¯ã¿ãŒãã€ã¢ãã°ãšãã£ã¿ãŒãšããªã¬ãŒã¡ãã»ãŒãžãšãã£ã¿ãŒã§èšå®ã§ããŸãã ã€ã³ãã³ããªã¢ã€ãã ã¯ã¡ãã»ãŒãžãåä¿¡ããããšãã§ããŸãã
6ïŒãã®ä»-äžèšã«å±ããŠããªãããããããã®éçºã«åå ããŠããã¢ã€ãã ã ãããã®ã¢ã€ãã ã«ã¯ç¶æ ã¯ãããŸããããã¡ãã»ãŒãžãåä¿¡ã§ãããããã«å¿ããŠå€åããŸãã
ã¯ãšã¹ããªããžã§ã¯ããšãããäžã«ãããªããžã§ã¯ãã¯ç°ãªããªããžã§ã¯ãã§ãããšããäºå®ã«æ³šæããããšæããŸãã ããã¯äžŠè¡ããŠæ©èœããŸãã ããšãã°ããããããäœæããå人ãããããäœæããŸãã ãããŠããã¹ãŠã®æºåãã§ããããããããçµã¿åãããããšãã§ããŸãã
ã¹ããŒãªãŒã¢ã€ãã ãäœæãããããã§ã«ã¯ãšã¹ãã®äœæãéå§ã§ããŸãã ããã§ã¯ããã¹ãŠã®ããŒãã2ã€ã®ã¿ã€ãã«åãããŠããããšãæ確ã«ããå¿ èŠããããŸãããããã¯ãå¿ èŠãªãšãã«ãã€ã§ãé 眮ã§ããç¬ç«ããããŒããšããããã«äŸåãããªããžã§ã¯ããäœæããåŸã«ã®ã¿è¡šç€ºãããäŸåããŒãã§ãã ããã«ããã©ã°ã€ã³ã¯ãã©ãã°ã¢ã³ããããããã¯ãããžãŒããµããŒãããŠããããããªããžã§ã¯ããã°ã©ããã£ãŒã«ãã«ãã©ãã°ãããšããã®ãªããžã§ã¯ãã«äŸåãããã¹ãŠã®ããŒããäœæããããã«æ±ããããŸãã
ãã¹ãŠã®ããŒãã«ã¯ãåçŽãªã³ã¯ãšæ°Žå¹³ãªã³ã¯ã®2çš®é¡ã®ãªã³ã¯ããããŸãã åçŽããªãŒã¯ã¯ãšã¹ãã®åºç€ã§ããããã®æ§é ãšå®è¡é åºã決å®ããŸãã æ°Žå¹³ããŒãã¯ãç¹å®ã®ã¯ãšã¹ããã§ãŒãºã®ä¿®é£Ÿåã§ãïŒãã§ãŒãºããŒãã«ã¯ãåçŽæ¥ç¶ãšæ°Žå¹³æ¥ç¶ã®äž¡æ¹ããããŸãïŒã ã¬ãŒããŒã«ãªããžã§ã¯ããè¿œå ãããããªããžã§ã¯ãã«ã¡ãã»ãŒãžãéä¿¡ãããã§ããŸãããããã¯ãã¹ãŠãã¯ãšã¹ãã®ç¹å®ã®ãã§ãŒãºãã¢ã¯ãã£ãã«ãªã£ããšãã«çºçããŸãã
ããã§ã¯ãäœããäœæããŠã¿ãŸãããã ãŸããã¯ãšã¹ããäœæããŸãã ãã®åŸãã¯ãšã¹ãã®éå§ããŒããé 眮ã§ããŸãã ãã®ããŒãã«ã¯ã3çš®é¡ã®ããŒããæ¥ç¶ã§ããŸãã
1ïŒAddQuestPhase-ã¢ã¯ãã£ãåããããšãããŒãã¯ã¯ãšã¹ãã«æ°ãããã§ãŒãºãè¿œå ããŸãã
2ïŒGetObjectState-ãã®ããŒãã¯ãç¹å®ã®ãããããªããžã§ã¯ããããŒãã®ããããã£ã§æå®ãããç¹å®ã®ã¹ããŒãžã«å ¥ããšã¢ã¯ãã£ãã«ãªããŸãã ããŒããã¢ã¯ãã£ãåããããšããã®èåŸã«ããããŒããã¢ã¯ãã£ãåãããŸãã éå§ããŒãããå§ãŸããã€ãã©ã€ã³ãæ³åããŠãã ãããGetObjectStateããŒãã¯ãäžå®ã®æéãŸã§éããããæ°Žãéããªããã«ãã«ãªããŸãããéããšæ°Žã¯ããã«é²ã¿ãŸãã
3ïŒGameOver-ååããããã®ããŒããã¢ã¯ãã£ãã«ãªããšããã«ã²ãŒã ãçµäºããããšã¯æããã§ãã
ãåçŽãããªãŒãäœæãããã æ°Žå¹³ããŒããè¿œå ã§ããŸãããã®èª¬æã¯æ¬¡ã®ãšããã§ãã
1ïŒãã€ã¢ãã°ïŒã¡ãã»ãŒãžïŒã®ã¢ã¯ãã£ãå/éã¢ã¯ãã£ãå-ãã€ã¢ãã°ãŸãã¯ã¡ãã»ãŒãžã®ãã©ã³ããã¢ã¯ãã£ãåãŸãã¯éã¢ã¯ãã£ãåããŸãã
2ïŒã¢ã¯ãã£ã/éã¢ã¯ãã£ããªããžã§ã¯ã-ãªããžã§ã¯ããã¢ã¯ãã£ããŸãã¯éã¢ã¯ãã£ãã«ããŸãã ããã¯ãç¡å¹ã«ãããšããªããžã§ã¯ããã²ãŒã ããåçŽã«æ¶ããããšãæå³ããŸãã ããšãã°ããªããžã§ã¯ããäžèŠã«ãªã£ãå Žåããªããžã§ã¯ããåé€ã§ããŸããéã®å Žåã¯ãã²ãŒã ã®ãã段éã§ãªããžã§ã¯ããå¿ èŠã«ãªãããã£ã©ã¯ã¿ãŒãäºåã«ãªããžã§ã¯ããèŠã€ããããªãããã«ããããšãã§ããŸãã
3ïŒã¯ãšã¹ãã®ãã£ã³ã»ã«-ã¯ãšã¹ãããã£ã³ã»ã«ããŸããããšãã°ãã¯ãšã¹ããäºãã«ççŸãããã£ã©ã¯ã¿ãŒããã®ãã¡ã®1ã€ãå®è¡ãå§ããå Žåããã1ã€ããã£ã³ã»ã«ã§ããŸãã
4ïŒã¡ãã»ãŒãžã®éä¿¡-ããããã®ä»¶åã«ã¡ãã»ãŒãžãéä¿¡ããŠãäœããã®æ¹æ³ã§å€æŽããŸãã ãã¹ãŠã®å€éšãªããžã§ã¯ãã«ã¯ããã®ããŒããã¢ã¯ãã£ãã«ãªã£ããšãã«èµ·åããã€ãã³ãGetMessegeFromStoryGraphããããŸãã
5ïŒç»é¢ã¡ãã»ãŒãžã®è¿œå -ãã¬ãŒã€ãŒã«è¡šç€ºãããã¡ãã»ãŒãžã衚瀺ããŸãã
6ïŒã¬ãŒããŒã«è¿œå -ã¬ãŒããŒã«ãªããžã§ã¯ããè¿œå ããŸãã ãªããžã§ã¯ãã¯ãããŒããæ¥ç¶ãããŠããã¯ãšã¹ããã§ãŒãºãã¢ã¯ãã£ãã«ãªããŸã§ã¬ãŒããŒã«è¡šç€ºãããŸãã
7ïŒç»é¢ã«ã¯ãšã¹ããã§ãŒãºãå°å·ãã-ç»é¢ã«ã¯ãšã¹ãã®ç¹å®ã®ãã§ãŒãºã®å 容ã衚瀺ããŸãã ããšãã°ãã²ãŒã ã®éå§æã«ããã£ã©ã¯ã¿ãŒã«ããªããæããã®ãèŠããŸãã
8ïŒã¬ãã«ãã«ãŒããªã³ãã«ã¡ãã»ãŒãžãéä¿¡-ã¡ãã»ãŒãžã®éä¿¡ãšåãã§ããããã«ãŒããªã³ã¬ãã«ã«ã¡ãã»ãŒãžãéä¿¡ããŸãã ãã®ããŒããæ©èœããã«ã¯ãã¬ãã«ãã«ãŒããªã³ãã®åºæ¬ã¯ã©ã¹ãALevelScriptActorããALevelScriptActor_StoryGraphã«å€æŽããå¿ èŠããããŸãã
åºæ¬ãã«ãŒããªã³ãã¯ã©ã¹ãå€æŽããæ¹æ³ïŒ
ã¡ãªã¿ã«ãæ°ããã¬ãã«ãç®çã®ã¬ãã«ã®éåçã§äœæãããããã«ããããžã§ã¯ãèšå®ãå€æŽã§ããŸãïŒProgectSettingsâGeneralSettingsâLevelScriptActorClassã
9ïŒæååã®å°å·-ãã®ããŒãã¯ãåçŽãšæ°Žå¹³ã®äž¡æ¹ã®æ¥ç¶ãããããéç«ã£ãŠããŸãã ãããã°ã¡ãã»ãŒãžã衚瀺ããããããã¹ã¯ãªããããã¹ãã§ããŸãã
ã¯ãšã¹ããäœæãããç·šéé·ã«å ããŠãè£å©çãªãã®ããããŸãã ããã¯ãã£ã©ã¯ã¿ãŒãã€ã¢ãã°ãšãã£ã¿ãŒãšããªã¬ãŒã¡ãã»ãŒãžãšãã£ã¿ãŒã§ãã ãããã®ãšãã£ã¿ãŒã§äœ¿çšãããããŒãã®èª¬æã¯æ¬¡ã®ãšããã§ãã ãããã¯é¡äŒŒããŠãããããäž¡æ¹ã«ã€ããŠèª¬æããŸãã
1ïŒæ°ãããã€ã¢ãã°ïŒã¡ãã»ãŒãžïŒãã©ã³ã-æ°ãããã€ã¢ãã°ãã©ã³ããŸãã¯æ°ããã¡ãã»ãŒãžãäœæããŸãã åãã€ã¢ãã°ã¯ãã®ããŒãããéå§ããå¿ èŠããããŸãã ã¢ã¯ãã£ãã«ããããšãã§ãããã®ãã©ã³ãã¯ããã«è¡šç€ºããããéã¢ã¯ãã£ãã«ãªããæåããã¢ã¯ãã£ãã«ããå¿ èŠããããŸãã
2ïŒãã€ã¢ãã°ïŒã¡ãã»ãŒãžïŒããŒã-ãã€ã¢ãã°ãã©ã³ãã1ã€ã®å ¥åãšè€æ°ã®åºåã§æ§æãããããŒãïŒå¿çã®æ°ã«å¿ããŠïŒã
3ïŒãã€ã¢ãã°ïŒã¡ãã»ãŒãžïŒã®çµäº-ãã€ã¢ãã°ã®åå²ãæåŸãŸã§éããå Žåããã€ã¢ãã°ã¯äžèŠã«ãªããŸãã ãã®ããŒããæåŸã«é 眮ãããšãdeãã©ã³ããã¢ã¯ãã£ãã«ãªãã衚瀺ãããªããªããŸãã
4ïŒãã€ã¢ãã°ïŒã¡ãã»ãŒãžïŒçµäº-ãã€ã¢ãã°ããã¯ã¹ãçµäºããŸãã
5ïŒãã€ã¢ãã°ããªã¬ãŒã®èšå®-ãã€ã¢ãã°ããªã¬ãŒã®å€ãèšå®ããŸãã
6ïŒããªã¬ãŒã®ã¢ã¯ãã£ãå-ããŒãã¯ããªã¬ãŒã¡ãã»ãŒãžãšãã£ã¿ãŒã«ã®ã¿ååšããŸãã ãæ³åã®ãšãããããªã¬ãŒèªäœãã¢ã¯ãã£ãã«ããŸãã
ãã¹ãŠãå®äºããåŸãã²ãŒã ãéå§ããŠãäœãèµ·ãããŸããããããããæ©èœããã«ã¯ãStoryGraphãªããžã§ã¯ããã¬ãã«ã«ãã©ãã°ãããã察å¿ããã³ã³ããã¹ãã¡ãã¥ãŒé ç®ã䜿çšããå¿ èŠããããŸãã
ãã®ã¬ãã«ã§ã¯ãããã€ãã®ç°ãªãStoryGraphãªããžã§ã¯ããé 眮ã§ããããšã«æ³šæããŠãã ããã ããå Žæã«ãã¹ãŠã®ã¡ã€ã³ã¯ãšã¹ãã眮ããå¥ã®å Žæã«ãã¹ãŠã®è¿œå ãŸãã¯åã¯ãšã¹ããå¥ã®ãªããžã§ã¯ãã«é 眮ããå¿ èŠããããšããŸãã
次ã®èšäºã§ã¯ãæè¡çãªåŽé¢ãšããã©ã°ã€ã³ãäœæãããšãã«æ±ããŠããåé¡ã«ã€ããŠèª¬æããŸãã
第äºéšïŒ
Unrealãšã³ãžã³çšã®ã¯ãšã¹ãããã³ãã€ã¢ãã°ãšãã£ã¿ãŒã®äœæïŒããŒã2æè¡çåŽé¢
â ããã«ãœãŒã¹ããããŸã
ãã¢ãåçãããã ããªãïŒãã®ããããã¯æåã®åçã§èŠãããšãã§ããŸãïŒã ããããããŠã³ããŒãã§ããŸãã
ã²ãŒã å ã®ç®¡çã¯æšæºã§ãïŒ
i-åšåº«
j-log
f-ãã¥ãŒã®åãæ¿ã
PSå°ããããã«ããç¬éïŒæåã®ãã§ãŒãºãè¿œå ããããšãã¯ãšã¹ããã¢ã¯ãã£ãã«ãªããŸãã ãããŠãå®è¡ããã©ã³ãã®1ã€ã®çµããã«éãããšãã¯ãšã¹ãã¯å®äºãããšèŠãªãããŸãã
PPSä¿åããã³ããŒãæ©èœïŒããŒ[-ä¿åã]-ããŒãïŒããããžã§ã¯ãã«è¿œå ãããŸããã
æŽæ°ïŒXMLãã¡ã€ã«ãžã®ãšã¯ã¹ããŒããšXMLããã®ã€ã³ããŒããè¿œå ãããŸããã