저번 글에서 네더 포탈을 통해 네더->오버월드, 오버월드->네더로 갈 때 새 포탈이 어떤 좌표에 생기는지 알아보았음.

(링크: http://gall.dcinside.com/board/view?id=minecraft&no=26355)


저번에 쓴 규칙을 이용해서, (편하게 8의 규칙이라고 하자) 지름길을 만들어 보자.

집에 네더포탈을 하나 만들어 두고 오버월드에서 정확히 1000블럭 떨어져있는 사막에다 새로운 포탈을 만들어야지

네더 통해서 가면 125블럭만 가면 되겠네 ㅎㅎ


하면서 사막에 새 포탈을 만들었지만, 


viewimage.php?id=20b4de23e6c039a07a&no=24b0d769e1d32ca73cee87fa11d02831d3049d5484b72b456f01af270def20f9c76be3b912ced6c24f7eb1f4e899455a668ae717df2b7609c65aa3e86c74b8


들어가보면.. 

분명 사막에 포탈을 새로 만들었는데 새로 사막(네더) 포탈이 생기는 것이 아니고, 원래 있던 집(네더) 포탈로 나와버린다.

궁금하면 직접 해봐도 좋음.


게다가 네더에서 다시 그 포탈로 들어가면, 오버월드의 사막이 아니라 집 포탈로 나와버린다. 사막쪽 포탈은 잉여가 된데다가 이상하게 엉켜버림.


이전 글에서 설명한 대로라면 오버월드에서 1000블럭을 이동했기 때문에 네더에 생기는 포탈은 1000/8 = 125블럭만큼 떨어진 곳에 생겨야 될 텐데

어째서 이런 결과가 나온것일까?



이유는 이렇다. 나는 처음으로 포탈을 만들었을 때 "포탈"이라는 이름 때문에 네더와 오버월드의 포탈에 번호 같은게 매겨져서 1:1로 짝지어질 거라고 생각했는데, 오해였다. 아주 잠깐동안 그렇게 짝지어지기는 하는데, 그 시간은 15초 정도 뿐이고 그 이후에는 링크가 깨져 버림.


그 이후에는 플레이어가 오버월드나 네더에서 포탈을 타고 다른차원으로 움직일 때마다, 저번 글에서 설명했던 포탈을 찾고 생성하는 과정을 똑같이 진행한다.


그래서 포탈이 근처에 있으면 그 포탈로 플레이어를 뱉어내고(여러개가 있다면 가장 가까운 포탈로), 포탈이 하나도 없으면 새로 만들어서 내보내는 것 뿐임.


중요한 건, 근처 몇 블럭까지 포탈의 존재여부를 확인하냐인데, 포탈이 원래 생겨야 할 장소로부터 반경 128블럭을 탐색한다.

포탈이 생길 이론적인 위치를 중심으로 하는 반지름 128짜리 가상의 구체를 상상해보면 이해가 될 것임.

그 구체 내부에 포탈이 하나도 없을 때만 새 포탈이 생성되고 포탈이 있다면 그 원래 있던 포탈을 통해 나오는 것이다.



viewimage.php?id=20b4de23e6c039a07a&no=24b0d769e1d32ca73cee87fa11d02831d3049d5484b72b456f01af270def20f9c76be3b912ced6c24f7eb1f4e899455a668ae711de7b7304c35ef1e86c74b8


위의 경우에 우리는 오버월드에 있는 집에서 포탈을 하나 만들었으니, 네더에는 8의 규칙에 따라 포탈이 한개 생겨 있다(A지점이라고 하자).

1000블럭 떨어진 사막에 새로 포탈을 지으면, 그 사막과 대응되는 네더의 좌표(B지점이라고 하자) 근처 128블럭 내에 포탈이 있는지를 탐색하게 되는데,

만약 A지점에 포탈이 없었다면 B지점 근처에 새로운 포탈이 생성되었겠지만,


A지점에 포탈이 이미 존재하고, A와 B사이의 거리가 125블럭으로 128블럭보다 가깝기 때문에, 

새 포탈이 만들어지는 대신 이미 존재하는 A지점 포탈로 가버리는 것이다.


그렇다면 오버월드에서 128 x 8 = 1024블럭만큼이나 이동해야 새로운 포탈을 만들수 있는것일까? 다행히도 그렇지 않다.


네더 쪽에서 포탈을 만든다면, 16블럭보다 멀리 가서 새 포탈을 만든다면 오버월드의 포탈로부터 16 x 8 = 128블럭보다 더 먼 지점과 대응이 되므로, 새로운 포탈이 생겨난다.

이렇게 하면 오버월드에서 128블럭보다 더 떨어진 곳에 다른 지점으로 통하는 새 포탈을 만들 수가 있다. 

오버월드에 새 포탈을 만든 경우와 비교해서 간격이 1/8로 줄었다.


그렇지만 가장 가까운 곳에 정확하게 만드는 방법은, 새로운 포탈의 위치와 대응되는 지점에 직접 수동으로 포탈을 만들어 주는 것임!

오버월드에서 1000블럭 떨어져있다면, 네더에선 125블럭 떨어진 곳에, 

오버월드에서 80블럭 떨어져 있다면, 네더에선 8블럭 떨어진 곳에 만들어주면 됨.

너무 가까워서 오차가 걱정될 정도가 아니라면 네더에 있는 포탈의 위치는 충분히 가까워도 된다. 단 8배 공식을 정확히 맞춰서 포탈을 만들어 주는것이 마음이 편안해지고 에러가 날 확률도 적어질 것임.


예시

오버월드에 A [80, 64, 80], B [160, 64, 160]

  네더에 A' [20, 64, 20], B' [10, 64, 10]에 각각 포탈을 만들면, 


두 포탈간의 거리가 굉장히 가깝지만 같은 알파벳끼리 잘 이동이 될 것임.



두줄 정리: 

1. 다른 차원의 포탈끼리 이어진 링크는 아주 짧은 시간만 지속되고 풀려버린다. 그 이후엔 플레이어가 포탈을 통과할 때마다 적합한 위치에 포탈이 있는지 탐색해서 내보내고 없다면 새로 만들어질 뿐이다.


2. 이미 포탈을 하나 만든 상태에서 근처에(몇백블록 정도 떨어진) 새로운 포탈을 열고 싶을 때는, 오버월드 쪽에서만 새 포탈을 만들지 말고 네더 쪽에서도 새 포탈을 만들면 된다. (좌표를 8로 나눈 위치에 정확히 만들면 꼬일 확률이 거의 없어짐)

 

ps. 간단하게 설명하느라 넘어가거나 틀린 부분이 있을수 있는데(네더에 y128위에는 포탈이 생길수 없다던가..)  

정확하게 알고싶다면 https://minecraft.gamepedia.com/Nether_portal 이걸 읽어봐...나는 읽다 포기했음 ㅋㅋ

확실한건, 8로 나누거나 곱한 좌표에 수동으로 포탈을 만든다면 절대 꼬일 일은 없을것이다.

그림그리는게 너무 귀찮아서 2개밖에 못햇다.. 그럼 야생맨들 즐겜하셈!