나무 열 그루가 막던 길을 다시 열기
모아보기 · 개발 기록 · 블로그 공개
풍경에 쓰는 나무와 이동을 막는 장애물을 구분했습니다.

보이는 나무와 막히는 길
광장 나무는 풍경을 채우지만, 그 위치를 물리적으로 막아야 하는지는 별개의 결정입니다. 이동에 방해되는 나무 열 그루를 따로 골랐습니다.

실제 Unity 경로와 씬 저장 확인
물리와 길찾기를 함께
선택한 나무의 콜라이더를 끄고 이동 경로를 다시 베이크했습니다. 그래야 캐릭터가 통과할 수 있게 된 자리와 AI가 고르는 길이 맞습니다.
다른 충돌은 보존
열 그루를 격리해 캐릭터가 통과하는지 검사했고, 나머지 137개 콜라이더의 상태가 유지되는지도 대조했습니다.
두 가지 지도에서 같은 길을 열기
플레이어가 입력으로 움직이는 길과 에이전트가 경로를 계산하는 길은 같은 풍경을 보더라도 서로 다른 데이터를 씁니다. 콜라이더만 끄면 사람은 지나가는데 에이전트는 예전 탐색 지도를 따라 돌아갈 수 있어요. 탐색 지도만 다시 만들고 물리 장애물을 그대로 두면, 에이전트가 길이라고 생각한 곳에서 실제 캐릭터가 멈출 수 있어요. 열 그루만 대상으로 좁히고 두 데이터를 함께 고친 이유입니다.
다른 나무나 건물까지 일괄적으로 충돌을 제거하면 광장 경계를 넘어가는 길이 열릴 수 있어요. 따라서 통과해야 할 자리와 여전히 막혀야 할 자리를 함께 살펴봤습니다. 변경한 인스턴스의 목록을 확인하고, 씬 안의 나머지 충돌체 상태를 이전 값과 대조했습니다. 외부 에셋과 씬 인스턴스를 구분한 덕분에 같은 나무가 다른 씬에서 쓰이더라도 그쪽 설정을 건드릴 필요가 없었습니다.
후속 작업에서 같은 방식으로 길을 더 열려면 화면에 보이는 장식물 목록만으로 판단하기보다, 플레이어가 자주 가는 목적지와 이동 궤적을 기준으로 좁힐 수 있어요. 카페 앞처럼 자연스럽게 사람이 모이는 곳과 화단처럼 지나가지 않는 편이 자연스러운 곳은 요구가 달라요. 나무가 보이는지, 캐릭터가 지나가는지, 탐색 경로가 직선으로 이어지는지를 구분해 확인하면 어떤 변경이 필요한지 빠르게 알 수 있어요.
경로를 다시 만들 때 기존 NavMesh 에셋을 유지한 것도 의미가 있어요. 씬에 연결된 탐색 지도가 새 파일로 갈라지면 실제로 어느 지도를 읽는지 추가로 확인해야 합니다. 기존 연결을 그대로 쓰면서 데이터만 다시 만들면 이동 결과의 차이를 바뀐 장애물 조건과 비교하기 쉽습니다.
나무는 남기고 길은 열었습니다
나무를 없애면 길은 쉽게 열리지만 카페 앞의 분위기도 달라져요. 문제는 나무가 보이는 것이 아니라 일부 위치에서 걸을 때 걸린다는 점이었습니다. 그래서 필요한 나무만 통과할 수 있게 하고, 캐릭터가 실제로 걸어가는 길과 자동으로 찾아가는 길을 함께 맞췄습니다.