ããã«ã¡ã¯ãç§ã®ååã¯ããããªãŒã§ãã ç§ã¯è¶£å³ãšããŠã¢ã³ãªã¢ã«ãšã³ãžã³ã§ã³ã³ãã¥ãŒã¿ãŒã²ãŒã ãäœã£ãŠããŸãã ä»æ¥ã¯ãç§ã®ã²ãŒã ãThe Future City Projectãã®æç¶ãäžä»£ã®ã¬ãã«ãã©ã®ããã«äœæãããã説æããŸãã ãã¹ãŠã®ãœãŒã¹ã¯ãèšäºã®æåŸã«æ²èŒãããŸãã ãããŠãé©ãããããŸãã
ã¢ã«ãŽãªãºã
æåã«ãç§ã®ã²ãŒã ããã«ã¯ãŒã«ã®äžäººç§°ã¢ã¯ã·ã§ã³ã²ãŒã ã§ããããšãæ確ã«ããå¿ èŠããããŸãã ãããã£ãŠãã¬ãã«ã¯å¹³ãã§ãã£ãŠã¯ãªããŸãããã€ãŸããéã«ç»ã£ãããžã£ã³ããããã§ããé«ãã®éãããªããã°ãªããŸããã ããã«ãã²ãŒã ã®èšå®ãšããŠã巚倧ãªè¶ é«å±€ãã«ãšç©ºé£ã¶ãããŒã«ãŒã®ããæªæ¥ã®éœåžãéžæããŸãããããã¯ãã¬ãã«çæã¢ã«ãŽãªãºã ã«ãèŠä»¶ã課ããŸããã
- ã¬ãã«ã¯éœåžã§ãããããéè·¯ã®ã°ãªãããçæããå¿
èŠããããŸãã ç§ã®é路網ã¯2çš®é¡ã®éè·¯ã§æ§æãããŠããŸãããããã¯äž»èŠéè·¯ãšäžè¬éè·¯ã§ãã äž»èŠéè·¯ã¯éåžžã®éè·¯ãšã¯ç°ãªããæåã®éè·¯ãåºãã2çªç®ã«éœåžã暪æããŸãããéåžžã®éè·¯ã¯4åã®1以äžã®é·ãã§ãã ãã®çµæãç§ãã¡ã¯ãã®ãããªåçãåãåããŸãïŒæ²ãã£ãŠããããšããaã³ããŸãïŒïŒ
- ä»ããããã®éã«éè·¯ãšå³¶ããããŸãã ãããã®å³¶ã¯äœãã§æºããããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãé·æ¹åœ¢ã®ã°ãªããã§ããã°ã©ããçæããŸãã ãã®ã°ã©ãã®åããŒãã¯ãç¹å®ã®å³¶ã®ã¹ããŒã¹å ã«ã©ã³ãã ã«é 眮ãããéšå±ã«ãªããŸãïŒåœç¶ãç¹å®ã®å¶éå ã§ãã€ãŸãã次ã®ããŒãã¯åã®ããŒãã®åã«é 眮ã§ããŸããïŒã äºåã«æ±ºããéšå±ã ãã®å Žåããã«ãã¬ãã«æ§é ãååŸããããã«ãã°ã©ãã®ããã€ãã®å±€ãååšããå ŽåããããŸãã ãããŠããããã®ã¬ã€ã€ãŒãäœããã®æ¹æ³ã§ãªãŒããŒã©ããããããã«ãè¿ãã®ã°ã©ãã«ã¯å ±éã®ããŒãïŒéšå±ïŒãããããããã¯ã©ã³ãã ã«æ±ºå®ãããŸãã
- çŸåšã¯ãã°ã©ãå ã®äœçœ®ã«åŸã£ãŠãããã®ããŒãïŒéšå±ïŒãå»äžã«æ¥ç¶ããã ãã§ãã ãããè¡ãããã«ãã貪欲ãªããã¹æ€çŽ¢ã¢ã«ãŽãªãºã ã䜿çšããŸããã ã€ãŸããå»äžã®ã»ã¯ã·ã§ã³ã®1ã€ïŒå»äžã®ã»ã¯ã·ã§ã³ãšéšå±ã¯äºåã«æ±ºå®ãããŠããŸãïŒãåãåºããŠéšå±ã®åºå£ã«é 眮ããä»ã®ãã¹ãŠã®ã»ã¯ã·ã§ã³ã§ãããè¡ããç®çã®ãã€ã³ãïŒå¥ã®éšå±ãžã®å ¥ãå£ïŒã«æãè¿ãã»ã¯ã·ã§ã³ãéžæããŸãããã®åŸãåãããšãããŠããŸãããã»ã¯ã·ã§ã³ã«ãã§ã«é©çšããŠããŸããåã®å埩ã§èŠã€ãã£ãå»äžãªã©ãåå©ã®çµãããŸã§ã§ãã
- 島å ã«ã°ã©ãæ§é ãäœæããåŸã 島ãäºãã«æ¥ç¶ããå¿ èŠããããŸãã ãããè¡ãããã«ãé£æ¥ãã島ã§ã¯ãäºãã«æãè¿ãéšå±ã®åšãã«äœçœ®ããŠããŸãã ãã®åŸããããã®éšå±ã¯ä»ã®éšå±ãšåãæ¹æ³ã§æ¥ç¶ãããŸãã
- ãããã£ãŠãå»äžã§æ¥ç¶ãããéšå±ã§æ§æããããããã¯ãŒã¯ãæ¢ã«ãããŸãã ãããã圌女ã¯äœããããããã«å®ã«æµ®ããŠããŸãã ãŸããåã島ããè¶ é«å±€ãã«ã«ãããšãéšå±ãšå»äžããããããã®é«å±€ãã«ã®éšå±ãšå»äžã«ãªããŸãã ååãšããŠãç§ã¯ãã¹ãŠã®å³¶ã®1/5ã§ããããŸããã ããããã¿ããªãšããããã®ã¯éåžžã«éå±ã§ãã
- æ®ãã®4/5ã®å³¶ã§ã¯ãããããŸããã äžéšã®éšå±ãšå»äžã¯äžçš®ã®å±æ ¹ã圢æããŠããŸãã ãããã®äžã«çŸããéšå±ã¯ã島ãã®å
éšç©ºéã«ããããšãå€æããŸããããé«å±€ãã«ã®å Žåã®ããã«ãããã®éã®ç©ºéãåããããšã¯ãããŸãããã空ã®ãŸãŸã«ããŠããã®ã§ãç°¡åã«é£ã³è¶ããããšãã§ããããã©ãããã©ãŒã ãããããŸãã ããã€ãäŸãæããŸãããã
ããã§ã¯ãäžã®éšå±ãšå»äžãã©ã®ããã«åäžã®å±æ ¹ã«çµåããããèŠãããšãã§ããŸãã
ãããŠãããã§ã¯ãã®ãããªå³¶ã®å éšç©ºéãèŠãããšãã§ããŸãã - ãããããã®ãããªå³¶ã¯ãã 空ã«èãäžããã ãã§ãã ãããåãé€ãããã«ã島ã«å¡ãè¿œå ããŸããã ãããã¯ãããããµããŒãããŸãã
- å®éã«ã¯ãã¬ãã«ã¯ãã§ã«æºåãã§ããŠããŸãããããçŸããããããã«ããã€ãã®èŠçŽ ãè¿œå ããŠã害ã¯ãããŸããã ãŸããäžã«å»ºç©ã®ã¢ãã«ãè¿œå ããŠãéœåžãç æŒ ã®äžã«ããããã«èŠããªãããã«ããŸããããã«ãããŸãïŒ
- ããã«ãç§ã¯éè·¯äžãéããããŒã«ãŒãè¿œå ããŸããã
æç¶ãçã«çæããããã¹ãŠã®éœåžã®æºåãã§ããŸããã
䜿ãæ¹
ããã§ã¯ãGitHubããããŠã³ããŒããããã©ã°ã€ã³ã®äœ¿çšæ¹æ³ã説æããŸãã ãããžã§ã¯ããéããšãLevelGeneratorãªããžã§ã¯ãã1ã€ã ãååšãããããã®ã¿ã衚瀺ãããŸãïŒãã®ãªããžã§ã¯ãããããã«ãã«ãããããã³ã³ãã³ããã©ãŠã¶ãŒã«ã¯è¡šç€ºããªãå Žåã¯ãShowPluginContentãã§ãã¯ããã¯ã¹ããªã³ã«ããŸãïŒã
èšå®ã¯æ¬¡ã®ãšããã§ãã
- çæãåæ§ç¯ã¬ãã«ãåé€ã¬ãã«-ãã¿ã³ã¯ãããã°ã«äœ¿çšããããããã®å©ããåããŠãã¬ãã«ãçæãåæ§ç¯ããŸãã¯åé€ã§ããŸãã
- ã·ãŒãã®çæãèšå®-ä¹±æ°ã䜿çšããŠçæããããç¹å®ã®
- MainMenuLevel-ã¡ã€ã³ã¢ãŒãããã¡ã€ã³ã¡ãã¥ãŒã®èé¢ã«äœ¿çšãããã®ã¯ããã£ã©ã¯ã¿ãŒã移åãããšãã«éœåžãæç»ããã¬ã³ããªã³ã°ãµã€ã¯ã«ããªããšããç¹ã§ãã
- é åºã®çæ-ããŸããŸãªã¢ãžã¥ãŒã«ã®æç»ç¯å²ãèšå®ã§ããŸãïŒã¢ãžã¥ãŒã«èªäœã¯LevelGenerator.cppãã¡ã€ã«ã§èšå®ã§ããŸãïŒã ã¢ãžã¥ãŒã«ã¯ãããŒã¿ãã£ã©ãŒããšãã¬ãã«ãã«ããŒãã«åå²ãããæåã®ããŒã¿ãçæããã2çªç®ã®ããŒã¿ã¯ãã®ããŒã¿ããã¬ãã«ãé ããŸãã ç¯å²çªå·ã¯ããã£ã©ã¯ã¿ãŒãäœçœ®ããäžå¿ã®ååŸãè¡šããŸãã
- 次ã«ãç¹å®ã®ç°å¢èŠçŽ ã®ææèšå®ããããŸãã
- RoadFrequency-éè·¯éã®ã»ã«ã®å¹³åæ°ã æ°å€ã倧ããã»ã©ãéè·¯ã¯å°ãªããªããŸãã
- MainRoadFrequency-ã¡ã€ã³éè·¯ãåå²ããéåžžéè·¯ã®å¹³åæ°ã
- RoadSize-ã»ã«å ã®éåžžã®éè·¯ã®å¹
- MainRoadSize-ã»ã«å ã®äž»èŠéè·¯ã®å¹
- TowerFrequency-1ã€ã®æ¯æã¿ã¯ãŒã«ãã島ã®ã»ã«ã®æ°ã
- FullBildingTowersFrequency-æ®ããšæ¯èŒããé«å±€ãã«ãè¡šã島ã®æ°ã æ°åã倧ããã»ã©å°ãªããªããŸãã
- FloorNum-ã¬ãã«ã®ããã¢ã®æ°ã ãã®æ°ãã°ã©ãã¬ã€ã€ãŒã®æ°ã®åæ°+ 1ãšããŠååŸããããšããå§ãããŸã
- CellSize-ã»ã«ã®ãµã€ãºã
- CellHeight-ã»ã«ã®é«ã
- FirstCityFloorããã³SecondCityFloor-ãããã®å€ã¯ãå°é¢ããã®ã¬ãã«ã®é«ãã決å®ããŸãã
- ActorTag-çæãããã»ã¯ã¿ãŒã¯ããã®ååã®ãã©ã«ããŒã«é 眮ãããŸãã
- GraphNodsFrequency-ã°ã©ãããŒãéã®å¹³åè·é¢ã決å®ããŸãã æ°å€ã倧ããã»ã©ãã°ã©ãã®é »åºŠã¯å°ãªããªããŸãã
- GraphLayerNum-ã°ã©ãã¬ã€ã€ãŒã®æ°ã
- HoverCarTrackLayers-ãããŒã«ãŒã®ããã¬ã€ã€ãŒãå«ãŸããŸãã åã¬ã€ã€ãŒã«ã¯ããããŒã¯ã©ããã®é«ãããããŒã¯ã©ããã®é£è¡æ¹åãããã³ãããã®éã®å¹³åè·é¢ãªã©ã®ãã©ã¡ãŒã¿ãŒããããŸãã
- WallThickness-çæãããã¡ãã·ã¥ã®å£ã®åãã 倩äºã®åãããã®æ°å€ã«çããããšãä»ãå ããŸãã
- ComplicitySpawnForTick-1ãã£ãã¯ã§çæãããã»ã¯ã¿ãŒã®åèšè€é床ã æ°åã倧ããã»ã©ãã²ãŒã äžã«ã¹ããŒã³ãšãžã£ãŒã¯ã®é 延ã倧ãããªãå¯èœæ§ããããŸãã ãã£ãã¯ããšã«çæã§ããã»ã¯ã¿ãŒã®æ°ãåã«èšå®ããªãã®ã¯ãªãã§ããã ãŸããã»ã¯ã¿ãŒã«ãã£ãŠã¹ããŒã³ã«ãããæéãç°ãªãããã§ãã VirtualSpawner.hãã¡ã€ã«ã§ç¹å®ã®åã»ã¯ã¿ãŒã®è€éãã確èªã§ããŸãã
- DeltaCellForGeneration-ã¬ãã«ã®åæ§ç¯ãéå§ããããã«ãã£ã©ã¯ã¿ãŒãã·ããããå¿ èŠãããã»ã«ã®æ°ã
- MinBildingZoneSize-ã»ã«å
ã®å³¶ã®æå°ãµã€ãºã çªç¶å³¶ãçŸããã
ãã®å€ããå°ããå¹ ãŸãã¯é·ãå Žåãé£æ¥ãããã®ã«æ¥ç¶ãããŸãã
次ã«ã3ã€ã®ãªããžããªããããŸãïŒLevelGenãµãã»ã¯ã·ã§ã³ãå³ã¯ãªãã¯ããŠãªããžããªããŒã¿ãäœæãããŸãïŒã
ã¿ã¯ãŒã¹ãã¬ãŒãž
TowerStorageã«ã¯-2çš®é¡ã®ãªããžã§ã¯ãããããŸãã
- Twerã¯ãLevelTowerActorTowerã¯ã©ã¹ãã掟çãããªããžã§ã¯ãã§ãã 圌ãã¯ã島ãééããå¡ãã©ã®ããã«èŠãããã決å®ããŸãã
- ãã«ãã£ã³ã°ã¯ãLevelTowerActorBildingã¯ã©ã¹ãã掟çãããªããžã§ã¯ãã§ãã ã¬ãã«ã®äžéšã«åºçŸãã建ç©ã®å€èŠ³ã決å®ããŸãã
ãããã£ãŠãèšèšå³ã®1ã€ãäœæãããšã次ã®ããã«ãªããŸãã
ã³ã³ã¹ãã©ã¯ã·ã§ã³ããªãŒã«ã¯BordersShowerãªããžã§ã¯ãããããŸã-ã¢ãã«ããã®äžã«åŒ·èª¿è¡šç€ºãããŠããé åå ã«åãŸãããå¢çããã¯ã¿åºãŠããããšãç解ã§ããããã«ããããã«å¿ èŠã§ãã
- ãµã€ãº-ã»ã«ã§èªèããããµã€ãºã
- BildingHeight-å€ã1ã®å Žåã¯å»ºç©ã®é«ãã決å®ãã2ã®å Žåã¯SecondCytiFloreïŒèµ€è²ïŒãè¶
ããŠã¯ãªãããFistCytiFlore + SecondCytiFloreãè¶
ããŠã¯ãããŸããã
ããã¯ãBildingHeight = 1ã®å»ºç©ã®ã¿ãéè·¯ã®äžã«ã¹ããŒã³ããŠãããŒã«ãŒã«ã¹ããŒã¹ãäžããããã«å¿ èŠã§ãã - CellSize-ã¬ãã«ãçæãããšããCellSizeã¯LevelGenratorèšå®ããååŸããããããBorderComponentãæ£ãã衚瀺ãããããã«ã®ã¿ã»ã«ãµã€ãºãå¿ èŠã§ãã
- FistCytiFloreãSecondCytiFlore-BorderComponentãæ£ãã衚瀺ãããããã ãã«ãŸã£ããåãããšãå¿ èŠã§ãã
ã«ãŒã ã¹ãã¬ãŒãž
RoomStorageã«ã¯ãã¬ãã«ã«é 眮ãããéšå±ã®ãã©ã¡ãŒã¿ãŒã決å®ãããªããžã§ã¯ãããããŸãã
- NodeRooms-ã°ã©ãã®ããŒãã«ããéšå±ã LevelRoomActorNodeãã掟ç
- GroundLinkRooms-ãããã¯ãNodeRoomãæ¥ç¶ããå»äžã®ã»ã¯ã·ã§ã³ã§ãã LevelRoomActorLinkãã掟ç
- RoadLinkRooms-ãã®ã»ã¯ã·ã§ã³ã¯ãå»äžãéè·¯ã暪æããå Žåã«æ¿å ¥ãããŸãã LevelRoomActorRoadLinkãã掟ç
- TerraceLinkRoom-ãããã¯ãå£æ²¿ãã®éè·¯ã®äžã«ããå»äžã®ã»ã¯ã·ã§ã³ã§ãã LevelRoomActorTerraceLinkãã掟ç
éšå±ã®1ã€ãäœæãããšã次ã®ããã«ãªããŸãã
åã®ã±ãŒã¹ãšåæ§ã«ãBordersShowerã衚瀺ãããŸãããæ¢ã«ä»ã®ãã©ã¡ãŒã¿ãŒããããŸãã
- JointSlots-ä»ã®éšå±ãåå ããå Žæã決å®ããŸãã ããããèšå®ããã«ã¯ã4ããçžå¯Ÿçãªåº§æšãšæ¹åã決å®ããå¿ èŠããããŸããæ£ããå®çŸ©ãããŠããªãå Žåãã¹ãããã¯WrongSlotsMaterialã§ãã€ã³ããããŸãã
- RoomSize-ã»ã«å ã®éšå±ã®ãµã€ãºã ãã¹ãŠã®éšå±ã¯çŽæ¹äœã§ãã
- RoomWals-JointSlotã®ããã«èšå®ããããéšå±ãå²ãå£ãè¿œå ã§ããŸãã ãªãå¿ èŠãªã®ã§ããïŒ å Žæã«ãã£ãŠã¯ãéšå±ã«å£ããªãå ŽåããããŸããå£ãããã«è¿œå ãããå Žåãåžžã«å£ãè¿œå ãããŸãã
- CanPlayerSpanw-ãã®éšå±ã«ãã£ã©ã¯ã¿ãŒã衚瀺ã§ããŸããã
- CellSizeãCellHeightãWallTicness-åæ§ã«ããããã¯BordersShowerã¬ã³ããªã³ã°ã«ã®ã¿å¿ èŠã§ãããã¬ãã«çæã«ã¯åœ±é¿ããŸããã
ãããŒã«ãŒã¹ãã¬ãŒãž
HoverCarStorageã«ã¯ããããŒã«ãŒã®ãã©ã¡ãŒã¿ãŒãå®çŸ©ãããªããžã§ã¯ããå«ãŸããŠããŸãã ãããã®ãªããžã§ã¯ãã¯ãHoverCarActorãã掟çããŠããŸãã
ãã®ãããªãªããžã§ã¯ããäœæãããšãã«è¡šç€ºããããã®ã¯æ¬¡ã®ãšããã§ãã
ãã®ãªããžã§ã¯ãã«ã¯æ¢ã«BordersShowerããªããå¯äžã®ãã©ã¡ãŒã¿ãŒã¯ããŒããŒè»ã®é床ã決å®ããSpeedã§ããForwardCarDistanceãã©ã¡ãŒã¿ãŒã¯äœ¿çšãããŸããã
ããã ãã§ã
ãã©ã°ã€ã³ãããŠã³ããŒãããããã®ãªã³ã¯
ãµãã©ã€ãº
ãŸã æåŸãŸã§èªãã§ãã人ãã¡ã¯ãçŽæãããé©ããåŸ ã£ãŠããŸãããããŠåœŒãã¯ãç§ã®ã²ãŒã ãThe Future City Projectãã§ãã ãã®ã²ãŒã ã¯ãæç¶ãçã«çæãããäžçã§ã®ãã«ã¯ãŒã«ã䜿çšããäžäººç§°ã¢ã¯ã·ã§ã³ã²ãŒã ã§ãã
ããŠã³ããŒããªã³ã¯ãæªæ¥éœåžãããžã§ã¯ãã