몬스터 스폰할때 3D 지형이면 어떻게 스폰할 위치를 구하는지 궁금합니다..
높이 값이 다 다른 예를 들어서 굴곡이 있는 언덕같은 지형이라고 했을 때 몬스터 스폰은 어떻게 결정하는지 궁금해요..
스폰범위의 근방 3d 맵 메쉬 데이터를 전부 뒤져서 언덕인지 아닌지 찾아봐야하는건가요..?? 이렇게 한다고 해도 이걸 어떻게 어떤 알고리즘으로 해야하는지도 모르겠네요;;
아니면 뭔가 3d맵을 2d로 만듬다음에 높이값만 어떻게 추가적으로 넣는다던지..? 2차원 배열에서 각 배열 원소에 높이값을 추가?
아니면 그냥 3차원배열로 관리? 3d지형 메쉬를 직접 관리할 것 같지는 않은데.. 서버같은 경우는 3d지형 데이터를 보통 어떤식으로 관리하나요?? 지형 메쉬데이터를 설마 다뽑아서 관리하나요..???!? 너무 궁금합니다!
서버같은 경우도 어떻게 구하는지 궁금합니다. 아니면 뭔가 꼼수 같은게 있는 건지요..? 실무에선 보통 어떻게 하는지 궁금해요
강의 항상 감사합니다~!
답변 3
1
Cell은 그리드의 한 칸을 의미합니다.
3D라고 해도 모든 좌표마다 높이값이 다를텐데
그 무수히 많은 점들을 서버에서 일일히 기억할 수는 없겠죠.
그래서 결국 그리드처럼 일정한 사이즈의 사각형들로 나눠서 표현을 하게 됩니다.
(사실 클라에서도 마찬가지로 모든 좌표들의 높이를 기억하는 것은 아니고,
Terrain의 높이값을 지정하는 HeightMap을 이용해서 적당히 중간값을 계산하는거와 비슷합니다.)

그런데 동굴처럼 음푹 패여있는 지형은 애매한게
동일한 위치라도 동굴 안/밖이냐에 따라 2가지 위치가 있을 수 있게 됩니다.
위 그림에서 초록색 선 어딘가에 플레이어가 위치한다 가정하면,
높이를 기준으로 (1)위치인지 (2)위치인지를 판단해야 하겠죠. 이를 Layer라고 표현한겁니다.
ex) (1)위치보다 높이 있으면 (1) 위치로 인정, 아니라면 (2)로 인정하는 식으로 보정
1
메쉬 데이터를 뒤지기엔, 메쉬에 너~무 많은 정점이 있으니 서버에선 감당을 못합니다.
아니면 뭔가 3d맵을 2d로 만듬다음에 높이값만 어떻게 추가적으로 넣는다던지..?
2차원 배열에서 각 배열 원소에 높이값을 추가?
-> 이 방법이 가장 고전적으로 사용하는 방법입니다.
보통 3D게임에선 Terrain(지형)과 이동할 수 없는 고정 StaticMesh들에 따라
맵 위에 서 있는 좌표가 결정되는데,
적절한 툴을 만들어서 적당하게 위 사항들을 고려한 그리드를 생성하고,
높낮이가 있는 게임이라면 여기서 높이값도 넣어주면 됩니다.
그런데 의외로 MMO중에서는 무늬만 3D인 게임이 은근 많습니다.
리니지2M만 봐도 캐릭터는 3D이지만 실제 이동이나 맵 자체는 2D랑 별 다를 바가 없죠.
그런데 와우같이 동굴의 개념이 들어가는 경우라면 상황이 살짝 더 복잡해집니다.
같은 좌표라 해도 높이에 따라 동굴 안일 수도, 동굴 위의 지형에 있을 수도 있기 때문이죠.
이럴 땐 높낮이에 따라 적용하는 Cell을 바꿔치기 하는 일종의 Layer를 둔다거나,
아니면 아예 3D Cell의 느낌인 Voxel로 구현을 해야 합니다.
인터넷 검색해보면 복셀 관련 문서가 많이 나올거에요.
0
이럴 땐 높낮이에 따라 적용하는 Cell을 바꿔치기 하는 일종의 Layer 둔다거나
이부분이 이해가 안되는데 자세하게 설명좀 부탁드려도될까요? 그리고 cell은 정확히 어떤걸 의미하는 단어죠..?
UI 기능 관련 질문이 있습니다!
0
32
2
픽셀 좌표 스크린 좌표
0
32
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
72
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
83
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
82
1
Input 적용과 관련하여 질문 있습니다.
0
74
1
디버그 불가.. Unity에 연결 불가
0
81
1
달리기 애니메이션 에러
0
87
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
65
1
GetKey 오류
0
109
2
에셋을 어디에 올려두신지 알 수 있나요?
0
106
1
재귀호출? 오류나는데 왜 이래요 ?
0
169
6
Animation blending 파라미터 계산
0
67
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
96
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
87
2
질문있습니다
0
143
2
아 이거 소스코드 같은거 없나요?
0
141
3
질문 드립니다. string.IsNullOrEmpty(name)
0
86
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
135
2
유니티6 NavMesh 안되는분들
1
174
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
525
1
GetComponent<Poolable> 질문드립니다.
0
101
2
UI 불러오지 못함
0
117
2
UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.
0
155
2





