Subway Simulator-äžé£ã®å°äžéã·ãã¥ã¬ãŒã·ã§ã³ã²ãŒã ã 2014幎ã«ãªãªãŒã¹ãããæåã®ããŒãžã§ã³ã®ã²ãŒã ã¯ãéåžžã«æœè±¡çã§ããããåæ§ã®ããŒãã®è£œåã«å¯ŸããéèŠã確èªããéåžžã«é«ããã®ã§ããã 補åã®åŸç¶ã®æŽæ°ãšæ°ããããŒãžã§ã³ã¯ãå°äžéã·ãã¥ã¬ãŒã¿ãŒãããçŸå®çã«ããããšãç®çãšããŠããŸãããåè»ãšé§ ã®ã¢ããªã³ã°ãæ°ããã¬ãã«ã«éããã²ãŒã ã®ãããŒã«ã©ã€ãºããããããŒãžã§ã³ããã³ãã³ ã äžæµ· ã ã¢ã¹ã¯ã¯ ããã®ä»ã®éœåžã®å°äžéã衚瀺ããŸããã çŸæç¹ã§ã¯ãiOSã§ã®ã²ãŒã ã®æåã®ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ã®ç·æ°ã¯ãã»ãŒ100äžçªç®ã®å€ã«éããŸããã åæã«ãã²ãŒã ã¯ä»ã®ãã©ãããã©ãŒã ã§ãå©çšå¯èœã«ãªããŸãã
ååã«å€§ããªå¯žæ³ã®ç©ºéã§ã®éåã®ã·ãã¥ã¬ãŒã·ã§ã³ã«åºã¥ããŠãšã³ãžã³ãéçºããå Žåãããã€ã¹äžã§é©åã«åäœããããã«ã¡ã¢ãªã®å¶éãèæ ®ããå¿ èŠããããŸãã æ·±å»ãªãªãœãŒã¹æ¶è²»ãå¿ èŠãšããã²ãŒã ã§ã¯ãæé©åããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®æ±ºå®èŠå ã«ãªããŸãã ãã®å©ããåããŠããªã¢ã«ã§é åçãªç»åãšã¹ã ãŒãºãªã²ãŒã ãã¬ã€ããã»ã¹ãæäŸã§ããŸãã ãã®èšäºã§ã¯ãSubway Simulator 3Dã·ãã¥ã¬ãŒã¿ãŒã§ã®äœæ¥ãšãå質ãæãªãããšãªãã¡ã¢ãªæ¶è²»ãæå°éã«æããããã«äœ¿çšãããããŸããŸãªã¿ã€ãã®æé©åã«çŠç¹ãåœãŠãŸãã
ã¢ããªã±ãŒã·ã§ã³éçºã¯ãæãæé ãªã²ãŒã ãšã³ãžã³Unityã§å®è¡ãããŸããã ã¢ããããŒãã®ããã«æ°ããã¹ããŒã·ã§ã³ã®ã¢ãã«ããšã³ãžã³ã«å®æçã«ã¢ããããŒãããããšãèšç»ããŠãããšããäºå®ãèæ ®ããŠãç§ãã¡ã¯æãåçŽã ãå¯äžå¯èœãªè§£æ±ºçãã€ãŸãã²ãŒã ã®ã¢ãžã¥ã©ãŒã³ã¢ã«æ±ºããŸããã
å®éã圌ã®ä»äºã®åçã¯ãå€å žçãªã©ã³ããŒã®ãããšåãã§ãã
ãã¬ã€ã€ãŒã®ãã¬ããããããŸãïŒãã®å Žåãå¿ èŠãªæ§æã¢ãã«ãããŒããããåè»ã®æ§æãããã³ãã®ä»ã®ãã©ã¡ãŒã¿ãŒ-é床ãæ©èããã¯ãŒãé³ãªã©ïŒã
ãªããžã§ã¯ãã®ãããã¯ãŸãã¯ã¿ã€ã«ããããããããã«ã¢ãã«ãåã蟌ãããã®ãªããžã§ã¯ãããããŸãããŸããã¢ãã«ã®ãŒã座æšãšãã®å察åŽã®ç«¯ã®ãããããããããããã次ã®ãããã¯ã®ã¹ããŒã³ã®äœçœ®ãèªåçã«èšç®ãããŸãã
ã²ãŒã ã«ã¯ãããã€ãã®ã¿ã€ãã®ãããã¯ãå«ãŸããŠããŸãã
ãã³ãã« -ç·åœ¢ãŸãã¯æ²ç·-ã¯é¢ä¿ãããŸããã
ã¹ããŒã·ã§ã³ -ã²ãŒã ã®ç¬èªã®ã€ãã³ããªã¹ããšã«ããã·ãŒã³ãæã€ãããã¯ã ä¹å®¢ã®ãã¬ãããå«ãŸããŠããŸãã
ã«ã¹ã¿ã ã€ãã³ãããã㯠-åå²ã®ãããã³ãã«ãå«ãŸããå ŽåããããŸããããšãã°ãåè»ã¯ç·æ¥åæ¢ãæžéãªã©ãå¿ èŠã§ãã
ãšã³ãžã³ã®æ¬è³ªïŒ
å³ãããããããã«ãç§ãã¡ã®äž»äººå ¬ã¯é»è»ã§ãã ãããã£ãŠã圌ã«é¢ããŠã¯ãéãæ§ç¯ããŠããŸãã åè»ã¯äž»ã«ã«ãŒãã³ã³ãããŒã©ãŒãšæ¥ç¶ãããŠãããã«ãŒãã³ã³ãããŒã©ãŒã¯ãåè»ã移åããåçãªã«ãŒãã©ã€ã³ãæ§ç¯ããŸãã ã©ã€ã³èªäœã¯ãåãããã¯ã§æºåãããTransform'amã«åŸã£ãŠæ§ç¯ãããåTransformã¯ã¬ãŒã«ãã©ãã¯ã®ã¡ããã©äžå€®ã«é 眮ãããŸãã
ã²ãŒã ãã¬ã€ã®åçã³ã³ããŒãã³ãã¯ãæããªãœãŒã¹ãæ¶è²»ããŸãã é©åã«æé©åããããã«ãããã€ãã®ãœãªã¥ãŒã·ã§ã³ãé©çšããå¿ èŠããããŸããã 以äžãæ€èšããŠãã ããã
é»è»ã®åã
åè»ã®ãšã³ãžã³ãäœæããéã®äž»ãªåé¡ã¯ã移åããã»ã¹ãã©ã®çšåºŠåŸ¹åºçã«åäœæãããã§ãã ããã§ã¯ãåè»ãç©ççãªç©äœã§ãããšååã«æ³åããå¿ èŠããããŸããããã¯ãã«ããã³ãªããžã§ã¯ãã§ãããåŸã ã«å éããŠåæ¢ããå¿ èŠãããããã®äœçœ®ãšåŸãã¯è»éã®å転ã®çšåºŠã«å¿ããŠæ±ºãŸããŸãã
ç©çåŠã®æ³åã«å®å šã«æºæ ããŠåè»ã®åããã·ãã¥ã¬ãŒãããããšã«ã¯åé¡ããããŸãã å°ãªããšããWheelCollidersã®æ©æŠãèæ ®ããå¿ èŠããããŸããããã¯ãUnityã§åžžã«é©åã«åäœããããã§ã¯ãããŸãããç¹ã«ãåãªãè»ãããè€éã§å€§åã®è»èŒªä»ãè»äž¡ã«é¢ããŠã¯ããã§ãã ããã¯å€ãã®èŠå ã®1ã€ã«ãããŸããã æãæ·±å»ãªé害ã¯ãç©çåŠã®ãã®ãããªè©³çŽ°ãªèª€èšç®ããšã³ãžã³ã«é床ã®è² æ ããããããšã§ãã ããã¯ããã©ãŒãã³ã¹ã«æªåœ±é¿ãåãŒãããã°ãè¿œå ããŸãã
ç§ãã¡ã®æèŠã§ã¯ãæåã®æ¹æ³ã¯ç©çåŠã®åããç¹å®ã®ã«ãŒãã«æ²¿ã£ãäœçœ®ã®ãªãã»ãããšããŠã®ã¿å®è¡ããããšã§ãã
ã·ãã¥ã¬ãŒã¿ãŒã§ã®åè»ã®å転ã¯ã2ã€ã®è§åºŠïŒçŸåšãšä»¥åïŒã®å·®ã«åºã¥ããŠèšç®ãããŸãã å·®ã倧ãããã°å€§ããã»ã©ãåè»ã¯æšªã«åŸãã察å¿ãã暪æºããçºçããŸãã
private void Change() { target.position = Vector3.Lerp(target.position, currentPoint.position, lerpSpeed * Time.deltaTime); // - if (Vector3.Distance (PivotTrain.position, target.position) < damper) { // , float DeltaR = Roll - (currentPoint.rotation.z - previousPoint.rotation.z); // if (!(DeltaR > 0.05f || DeltaR < -0.05f)) Roll = Mathf.Lerp(Roll, currentPoint.localRotation.z - previousPoint.localRotation.z, 10 * Time.deltaTime); // NextCall (); } private void NextCall() { // , , if(!CurrentPoints[0].GetComponent<itemWay>().Last) previousPoint = currentPoint; CurrentPoints [0].GetComponent<itemWay> ().EndBlock (); CurrentPoints.Remove (CurrentPoints [0]); currentPoint = CurrentPoints [0]; }
åè»ã¯ãã«ã¡ã©ã®ã¢ãã¡ãŒã·ã§ã³ïŒé転è ãåãã®é床ã«ãã£ãŠæ±ºãŸãããŒã¹ã§é ãæ¯ãïŒãšããã¬ãŒãã®é床ãŸãã¯çšåºŠã«å¿ããåè»ã¢ãã«èªäœã®æºãã®ã¢ãã¡ãŒã·ã§ã³ã«ããæºããŸãã ã«ã¡ã©ãŸãã¯ãªããžã§ã¯ãã®ãµã€ã¯ãªãã¯ã¢ãã¡ãŒã·ã§ã³ã¯ãNGUIãšã³ãžã³ã®æšæºã³ã³ããŒãã³ãã§ããéåžžã®TweenPositionãŸãã¯TweenTransformãç°¡åã«äœæã§ããŸãã
äž»ãªãã®ã¯ãã¢ãã¡ãŒã·ã§ã³ãã³ã³ããžã·ã§ã³ã®é床ã«äŸåãããããšã§ãã åè»ã®é床ä¿æ°ãèæ ®ããäŸåé¢ä¿ã®äŸã以äžã«ç€ºããŸãã
void FixedUpdate() { speed = TrainEngine.Instance.speed; maxSpeed = TrainEngine.Instance.maxSpeed; tweenRot.dutation = (speed / maxSpeed) * 10; tweenRot.from.y = speed / (maxSpeed)/30; tweenRot.to.y = -tweenRot.from.y; }
ç©çåŠãæŽçããããã次ã®åé¡ã«é²ã¿ãŸãã ãããã¯ã«åºã¥ããŠãšã³ãžã³ãäœæããå ŽåãçŸåšã®ãããã¯ã®ãªããžã§ã¯ãããåè»ãŸã§ã®è·é¢ãèªã¿åãå¿ èŠãããããšã«çæããŠãã ããã çæ³çã«ã¯ãè·é¢ãæå°ã«èšç®ããããã«æäœã®æ°ãæžããå¿ èŠããããŸãã
ãšã³ãžã³ã®ããžãã¯ã¯ãä»»æã®ç¬éã«ãåè»ãšããã«æãè¿ããããã¯ã®éã§ã®ã¿è·é¢ãèšç®ãããããšãæå³ããŸãã æ®ãã®ãã³ãã«ãšã¹ããŒã·ã§ã³ã¯ããŒã«ïŒãªããžã§ã¯ãããŒãªã³ã°ïŒã«ãããã¡ã€ã³ã³ã³ãããŒã©ãŒãšå¯Ÿè©±ããŸããã åè»ãã¢ã¯ãã£ããªãããã¯ãééãããšããã«ãåŸè ã¯ã¢ã¯ãã£ããªã·ãŒãããããã·ããªãããã¯ã«ãªãã€ã¬ã¯ããããŸãã
lenghtBegin-ãããã¯ã®é·ãããã®åŸãåé€ããŠãã¹ãããã«æ§ç¯ã§ããŸã
ItemType-ãããã¯ã¿ã€ã
private void DistanceCheck() { if ((Vector3.Distance(transform.position, player.transform.position) > lenghtBegin)) { // ActiveBlock=false; Model.SetActive(false); // , WayController.Instance.ReturnBlock(ItemType); // WayController.Instance.GenerateWay(); } } WayController.cs // public void GenerateWay() { // if (CurrentLenght < LenghtTunnel) { RespawnTunnel (); } else { // RespawnStation(); } } // , . public void RespawnTunnel() { countLinear++; if (countLinear > LenghtLinear) { countLinear = 0; if (turnTunnel!=null) LoadTurn (Random.Range (0, turnTunnel.Count)); else LoadLinear (Random.Range(0,frontTunnel.Count)); } else { LoadLinear (Random.Range(0,frontTunnel.Count)); } } // public void LoadLinear(int num) { if (RespList) RespBlock.Add(frontTunnel [num]); // CurrentBlock.Add (frontTunnel [num]); // CurrentBlock [CurrentBlock.Count-1].ChangePosition (); CurrentBlock [CurrentBlock.Count - 1].transform.SetParent (RootTransform); frontTunnel.Remove (frontTunnel [num]); } // - , - public void ChangePosition() { Model.SetActive (true); this.transform.position = new Vector3 (WayController.Instance.EndBuild.position.x, WayController.Instance.EndBuild.position.y, WayController.Instance.EndBuild.position.z); this.transform.rotation = Quaternion.Euler (WayController.Instance.EndBuild.eulerAngles.x,WayController.Instance.EndBuild.eulerAngles.y, WayController.Instance.EndBuild.transform.eulerAngles.z); rotationTile = EndPos.rotation.eulerAngles.y; WayController.Instance.BuildWay (EndPos.position,rotationTile); SetWayPoint (); } // public void SetWayPoint() { for (int i = 0; i < WayPoints.Count; i++) RouteController.Instance.CurrentPoints.Add (WayPoints [i]); } t = target.position - transform.position; toRot = Quaternion.LookRotation(t); transform.rotation = rot; pos = transform.position + transform.forward * speed * Time.deltaTime; // RigidBody rbTrain.MovePosition (pos);
次ã«ãRoute Controllerã¹ã¯ãªããã¯Way ControllerãšçŽæ¥é£æºããå¿ èŠããããŸãã Route ControllerãåŠçãã移åã®ç®çãšããŠåè»ã«äžãããªããžã§ã¯ãã®ãªã¹ããå®çŸ©ããã®ã¯Way Controllerã§ãã
䜿çšãããšã³ãžã³ã®ããŒãžã§ã³ã®äž»ãªå©äŸ¿æ§ã¯ãã©ã€ã³äžã®åãã®æ§è³ªãäžåºŠã«å€æŽããããã«å¿ èŠãªå€ãé§åããã ãã§ååã§ããããšã§ãã ããšãã°ãçŸåšã®ç§»åæéããŠãŒã¶ãŒã«é©ããŠããªãããšãçµ±èšã§ç€ºãããŠããå Žåãé§ éã®ç·ãé·ããããçããããããŸãã æ°ããã¹ããŒã·ã§ã³ã¢ãã«ãããå Žåã¯ãåçŽã«ãããããšã³ãžã³ã¢ãã«ã®ãªã¹ãã«è¿œå ããããããã§ããããã®éå§ãšçµäºãèšå®ã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§éçãªå Žæã䜿çšãããŠããå Žåããã©ãã·ã¥ãšæŽæ°ã¯éåžžã«é¢åã§æéã®ãããããã»ã¹ã«ãªããŸãã ãã®ããŒãžã§ã³ã§ã¯ãæå°éã®ã¢ã¯ã·ã§ã³ã§ããµãŒããŒã䜿çšããã«æ°ããã¹ããŒã·ã§ã³ãŸãã¯è¿œå ã®ã¢ãã«ã§ããŒãžã§ã³ãããŠã³ããŒãã§ããŸãã ãã¡ããã倧éã®æŽæ°ãããå Žåã§ãããµãŒããŒãå¯äžã®æ£ãããœãªã¥ãŒã·ã§ã³ã§ãã
ãããã°ã¡ããªãã¯
移åã«é¢é£ããå¥ã®åé¡ã¯ãUnityã§ã®è·é¢ãšã¡ããªãã¯ã®æ¯çã§ãã åè»ã®ãã¹ãåžžã«ãããã¯åäœã§é£ç¶çã«çæãããå Žåãé ããæ©ããããªããžã§ã¯ãã¯é©åãªãã¬ãŒã ã®ã¬ã³ããªã³ã°ãäžå¯èœã«ãªããããªåº§æšã«ãªããŸãã
è€æ°ã®ã¡ãã·ã¥ã§æ§æãããåè»ã®ãã£ãã³ã¯ã座æšãé«ãããå€ã«éãããšæåéãæºãå§ããŸããã
ããã¯ãUnityã«ã¯ç¡é空éã®æŠå¿µããªãã座æšå€ãç°¡åã«èšç®ã§ããæ¡ä»¶ä»ãå¢çã®ã¿ããããšããäºå®ã«ãããã®ã§ãã ãããã®å¢çããé¢ããã»ã©ãã·ãŒã³ã®ã¬ã³ããªã³ã°ã§ãšã©ãŒãçºçããŸãã
ããã«åºã¥ããŠãã²ãŒã ãšã³ãžã³ã«ãªã¹ããŒã³ãè¿œå ããããšã決å®ããŸãããèšãæãããšãé§ ã«å°çãããšãåè»ã¯ãããšãã³ãã«ã®æãè¿ã調æŽãããã¯ããŒã座æšç¹ã«æ»ãããšã確èªããŸããã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ããã¬ã€ã€ãŒã30å以äžããŒã«ããå Žåã®åãã®èšç®ã«ããããšã©ãŒã®å¯èœæ§ãæžãããŸãã
public void RespawnStation() { StationResp [0].SetTriggers (false); StationResp [0].transform.localPosition = new Vector3 (0.0f, 0.0f, 0.0f); StationResp [0].transform.localRotation = Quaternion.identity; EndBuild.transform.position = new Vector3(StationResp [0].EndPos.position.x,StationResp [0].EndPos.position.y,StationResp [0].EndPos.position.z); EndBuild.transform.rotation = Quaternion.Euler (StationResp [0].EndPos.eulerAngles.x,StationResp [0].EndPos.eulerAngles.y, StationResp [0].EndPos.eulerAngles.z); Train.transform.localPosition = new Vector3 (RespPoint.localPosition.x, RespPoint.localPosition.y, RespPoint.localPosition.z); Train.transform.localRotation = RespPoint.localRotation; WayController.Instance.RebuildBlocks (); }
ãšã³ãžã³ã§è¡ãããäœæ¥ã«ããã¡ã¢ãªãå€§å¹ ã«ã¢ã³ããŒããããŸããããããã§åæ¢ããŸããã§ããã 次ã®ã¹ãããã¯ãã¢ããªã±ãŒã·ã§ã³ã®èŠèŠãšé³å£°ãæé©åããããšã§ããã
ãã¯ã¹ãã£å§çž®
Subway Simulatorã®æåã®ããŒãžã§ã³ã«ã¯ãäºåèšå®ãããå æºïŒãªã¢ã«ã¿ã€ã ãå«ãïŒãå«ãéçãªå Žæãå«ãŸããŠããŸããã ãã®ãããªã³ã³ã»ããã¯ãã²ãŒã ãã€ã³ã¿ãŒãã§ã€ã¹ãšå Žæãåè»ã人ã®äž¡æ¹ã«ãã«ãããªãŽã³ã¢ãã«ãšå€æ°ã®ãã¯ã¹ãã£ã䜿çšãããŸã§æ©èœããªãããšãããã«æããã«ãªããŸããã ãã以å€ã®å Žåã¯ãäžçšåºŠã®ã¡ã¢ãªã³ã¹ãã§é«å質ãæäŸããå¥ã®ãªãã·ã§ã³ãéžæããå¿ èŠããããŸãã
ãŸããããªãã€ã¯ãã©ã€ãã«ãŒãïŒLightMapsïŒãåããã·ã§ãŒããŒãäœæãããŸãã-ç §æã®èšç®ãååãšããŠæŸæ£ãããããªã¢ã«ã®ç¹å¥ãªã·ã§ãŒããŒãšé»è»ã®ã¹ãããã©ã€ãã«çœ®ãæããããšèããŸããã
ãã¯ã¹ãã£ãªã³ã°ã®éã ããã§èª¬æããæ¹æ³ã䜿çšãããŸããã å®è£ ã§ã¯ããã¹ãŠãéåžžã«ã·ã³ãã«ã§ããããããã©ãŒãã³ã¹ãžã®åœ±é¿ãæãæçã§ããã
RGB Compressed PRVTC 4ãããå§çž®ã䜿çšããŠãåãã±ãŒã·ã§ã³ãã¯ã¹ãã£ã256x256ã«å§çž®ããŸããã ããããLightMapïŒç §æãããïŒã¯ãå¥ã ã®RGBãã£ã³ãã«ã®1ã€ã®ç»åã«ãã¢ã§é 眮ãããŸããã
ãã£ã³ãã«ããã·ã³ã°ã·ã§ãŒããŒãè¿œå ããã3ã€ã®ããªãšãŒã·ã§ã³ã®ç®çã®ãããããªããžã§ã¯ãã®è¿ãã®ç®çã®ãããªã¢ã«ã«è¡šç€ºãããŸãã ããããããããããã«ããã¯ã¹ãã£ã«RGBãæ··åããã·ã§ãŒããŒã³ãŒãã®äžéšã®ã¹ã¯ãªãŒã³ã·ã§ããïŒ
void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; fixed4 light = tex2D (_Light, IN.uv2_Light); fixed4 g = tex2D (_MainTex2, IN.uv_MainTex); fixed a = (c.r+c.g+cb)/3; fixed3 r; rr = ((g.r+(cr-a))*_R)+((g.g+(cr-a))*_G)+((g.b+(cr-a))*_B)+((g.a+(cr-a))*_A); rg = ((g.r+(cg-a))*_R)+((g.g+(cg-a))*_G)+((g.b+(cg-a))*_B)+((g.a+(cg-a))*_A); rb = ((g.r+(cb-a))*_R)+((g.g+(cb-a))*_G)+((g.b+(cb-a))*_B)+((g.a+(cb-a))*_A); o.Albedo = r.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Emission = ((light.r*_N1)+(light.g*_N2)+(light.b*_N3)+(light.a*_N4))*r.rgb; o.Alpha = ca; }
ãã®çµæãç»åèªäœã®è²ã¯å§çž®ãããŸãããã¢ã«ãã¡ãã£ãã«ããããç §æãã³ã³ãã©ã¹ãã¯èš±å®¹å¯èœãªãµã€ãºã®ãŸãŸã§ãããããã¢ãã€ã«ããã€ã¹ã®ç»é¢ããã¯å質ã®å£åã¯ã»ãšãã©ç®ç«ã¡ãŸããã
äžèšã¯ãã¯ã¹ãã£ååžã®äŸã§ãã å·Šã®ç»åã«ã¯è²ã®ã¿ãå«ãŸããŠããŸããå¯èœãªéãå§çž®ããŸãïŒäžèŠæš¡ã®å Žæã®ãã¯ã¹ãã£ã®å Žåãå¶éã¯ååãšããŠæ£ç¢ºã«256ãã¯ã»ã«ã§ãïŒã å³ã®ç»åã«ã¯ã3ã€ã®RGBãã£ã³ãã«ã®ã³ã³ãã©ã¹ããšLightMapãå«ãŸããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®åã³ã³ããžã·ã§ã³ã«ã¯ã512 x 512ã®è§£å床ã§4ã€ã®ç°ãªãè²ãããããããã¬ã€ã³ã§ãã¯ã¹ãã£ãããã¯ããåãæ¹æ³ã䜿çšããŸããããããã£ãŠããã±ãŒã·ã§ã³ãšãã¬ã€ã³ã®äž¡æ¹ã®ã¡ã¢ãªæ¶è²»ãåæžããããšãã§ããŸããã
ãŸããå°ããªå Žæã®ãªããžã§ã¯ãã«å¯ŸããŠ2ãããå§çž®ãå®è¡ããããšãéåžžã«äŸ¿å©ã§ãã 倧ããªãªããžã§ã¯ãã§ã¯ããã®ãœãªã¥ãŒã·ã§ã³ã¯æ©èœããŸãã-ç®ã«èŠããã¢ãŒãã£ãã¡ã¯ãã衚瀺ãããå ŽåããããŸãã
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ããã®ãããªå§çž®ã®è©Šã¿ã倱æããäŸã§ããå Žæã®äžéšã«ã¢ãŒããã¡ã¯ããã¯ã£ãããšèŠããŸãã
é³ãšã¢ãã«ã®å§çž®
è¿œå ã®æé©åã®äžç°ãšããŠããã¹ãŠã®ãµãŠã³ããæ倧å€1ã«çµããŸããããã¹ãã®çµéšãããã¢ãã€ã«ããã€ã¹ããã®é³è³ªã®äœäžã¯ã»ãšãã©ãªãããšãããããŸããã ãŸãããã¹ãŠã®ãµãŠã³ããã¡ã€ã«ã®ã¢ãã©ã«ã¢ãŒããèšå®ãããšãã¡ã¢ãªæ¶è²»ãã»ãŒååã«åæžãããŸããã
åèã®ããã«ïŒDecompress On Loadãé·ããµãŠã³ãã«é©çšããCompressed In MemoryãçããµãŠã³ãã«é©çšããããšããå§ãããŸãã
ãããã¿ã€ãã¢ããªã³ã°
åªããã·ãã¥ã¬ãŒã¿ãŒã®ã¿ã¹ã¯ã¯ããŠãŒã¶ãŒã«ã²ãŒã ããã»ã¹ã®è©³çŽ°ãªã¡ã«ããºã ã«èå³ãæãããã ãã§ãªããé©åãªç»åãæäŸããããšã§ããããŸãã å®éã®ã³ããŒããè€æ°ã®åè»ãšé§ ãã·ãã¥ã¬ãŒãããããšã決å®ããããã®ã«åºã¥ããŸãã ãããªãã¯ãã¡ã€ã³ã«ããã¹ã±ãããšã¹ããŒã ã®ãããã§ãçŸæç¹ã§ã¯ã3ã€ã®ã¢ãã«ã®åè»ãšãã¢ã¹ã¯ã¯ãšå京ã®å°äžéã®ããã€ãã®é§ ãå®è£ ããããšãéåžžã«å¯èœã«ãªããŸããã
ããªãŽã³ã¹ããŒã·ã§ã³ã®å¹³åææšã¯ã25ã3äžããªãŽã³ããã³åè»ã®12ã2äžããªãŽã³ã§ãã äžèšã§è¿°ã¹ãããã«ããã¯ã¹ãã£å§çž®ãšãªããžã§ã¯ãããšã®ãããªã¢ã«ã®éã«å¯Ÿããå³æ Œãªå¶éãè¿œå ã§é©çšãããŸããã ãã¯ã¹ãã£ãšã¢ãã«ã®æ°ãéåžžã«å€ãã®ã§ããã¯ã¹ãã£ã®äºåã«äœæãããã·ã£ããŠãããã®ã¿ã«çŠç¹ãåœãŠãŠãç §æã®èšç®ãã¹ãæŸæ£ããŸããã
ã·ãã¥ã¬ãŒã·ã§ã³çµæã¯æ¬¡ã®ãšããã§ãã
å°äžéé§ ãããã¹ãããã«ã€ããåç
å°äžéé§ ãNovoslobodskayaããã¹ã¯ãªãŒã³ã·ã§ãã
ãããã«
åã ã®ãã±ãŒã·ã§ã³ãããã¯ãããŒãããŠã²ãŒã ãšã³ãžã³ãéçã«ãŒãããåçã«ãŒãã«å€æŽãããšãæäœäžã®ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªæ¶è²»ãå€§å¹ ã«åæžããããšãã§ããŸããã ããã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãã匱ãããã€ã¹ã§å®è¡ã§ããåæã«éåžžã«èš±å®¹å¯èœãª1ç§ãããã®ãã¬ãŒã æ°ãçæã§ããŸãã
ãã¯ã¹ãã£ãšã¢ãã©ã¹ãRGBãã£ã³ãã«ã®åå¥ã®ã¹ãã¯ãã«ã«ããã¯ãããšãã¢ããªã±ãŒã·ã§ã³ã®ééãæžããããšãã§ããŸããã ããã¯ãã¢ãã©ã¹ãååšããŠãä¿åã§ããªãã»ã©å€ãã®ãã¯ã¹ãã£ãã¢ããªã±ãŒã·ã§ã³ã«ããå Žåã«ç¹ã«éèŠã§ãã ãã·ãã¥ã¬ãŒã¿ããšãããžã£ã³ã«ã®ã²ãŒã ãéçºããå Žåãç°å¢ã®ä¿¡é Œæ§ã«ã¯åççã«æ£ç¢ºãªèŠçŽ ã®æ倧æ°ãå¿ èŠã«ãªãããããã®åé¡ã¯ç¹ã«æ·±å»ã§ãã ç§ãã¡ã®å Žåããã®å§çž®ãšãããã³ã°ã®æ®µéã®ãããã§ãã²ãŒã ã§æãå¿ èŠãªãã¹ãŠã®è©³çŽ°ããŸãšããªå質ã§ç¶æããããšãã§ããŸããã
ã¡ã«ããã¯ã®å®è£ ã«é¢ããŠã¯ãããã§ã¯ãå Žæã®åçãªèªã¿èŸŒã¿ã«ããããã¬ã€ã€ãŒã«ããã²ãŒã ãã¬ã€ã®åãæž¡ãããã»ã¹ãšã»ãã·ã§ã³ã®é·ããå¶åŸ¡ããããšãå¯èœã«ãªããŸããã ããã¬ãã«ãŸãã¯å¥ã®ã¬ãã«ã§ãã¬ã€ããå¹³åçãªãŠãŒã¶ãŒã®ããŒã¿ã«åºã¥ããŠã匱ç¹ãšé·æãç¹å®ããããã«å¿ããŠã²ãŒã ãã¬ã€ãæ¡åŒµãŸãã¯ããªãã³ã°ã§ããŸãã ãŸãããã€ãããã¯ãšã³ãžã³ã®ãããã§ãå°æ¥ãã¢ããªã±ãŒã·ã§ã³ãå®å šã«åæ§ç¯ããããšãªãããµãŒããŒããçŽæ¥æ°ããã¹ããŒã·ã§ã³ããšã³ãžã³ã«è¿œå ããããšãå¯èœã«ãªããŸããã
ææ¡ããããœãªã¥ãŒã·ã§ã³ãèªè ã®é¢å¿ãåŒãããšãé¡ã£ãŠããŸãã ãæž èŽããããšãããããŸããïŒ