RPG / 판타지 AI 만들기
목차
- 도입부
- 캐릭터 AI와 환경 이해
- 환경 설정
- 내비게이션 메시 생성
- 웨이포인트 생성
- 캐릭터 이동
- 웨이포인트 경로 탐색
- 스켈레톤이 플레이어를 따라 이동
- 플레이어 숨기기와 장애물 통과
- 장애물 회피 AI
- 플레이어 숨기기
- 장애물 통과 AI
- 환경 최적화
- 결론
- 자원
🤖 캐릭터 AI와 환경 이해
이번 튜토리얼의 두 번째 파트에서는 캐릭터가 환경에서 무엇이 일어나는지 알고 걸을 수 있는지, 어떻게 멈추지 않고 움직일 수 있는지 등 공부할 내용을 알아보겠습니다. 우리는 먼저 게임에서 사용할 몇 가지 아트 에셋을 가져왔습니다. 저희들은 성경의 전쟁 이야기를 게임으로 제작하고 있으며, 이번 레벨은 투기장 장면입니다. 몇 개의 가드와 스켈레톤이 있습니다.
우선 플레이어와 스켈레톤을 태그하겠습니다. 그리고 땅을 나타내는 오브젝트도 마찬가지로 태그할 것입니다. 이 오브젝트들은 캐릭터에게 어디에서 걸을 수 있는지, 어디에서 걸을 수 없는지 알려줄 것입니다. 또한 다른 조각들도 장애물로 태그하겠습니다. 이때, 오브젝트에 메쉬 콜라이더를 사용하면 정확한 경계를 지정할 수 있지만, 튜토리얼을 짧게 유지하기 위해 메쉬 콜라이더를 사용할 것입니다.
정해진 경로대로 움직이기 위해 캐릭터는 어디를 걸을 수 있으며 어디를 걸을 수 없는지 정확히 알아야 합니다. 그러기 위해 우리는 프리팹에 포함된 내비게이션 메시 폴더를 열어야 합니다. 이 폴더에는 Waypoint라는 프리팹이 있는데, 이것은 최적의 경로를 결정하는 데 도움이 되는 중요한 역할을 합니다.
내비게이션 메시를 캐릭터와 환경에 적용하면 시작됩니다. 팝업 메시에는 "Build Navigational Mesh"라는 텍스트가 보이며, 이를 통해 Waypoint 메시가 세분화됩니다. 이때 세분화 정도를 설정할 수 있으며, 작은 레벨에서는 124 정도가 적당합니다. 또한 이 메시는 땅으로 인식되어야 하므로 이미 태그 처리되어 있어야 합니다.
이렇게 하면 메시의 하위 복제본이 생성되고, 걸을 수 있는 경로와 걸을 수 없는 지역을 정확히 알 수 있습니다. 이제 이 메시를 게임 실행 시에 생성되도록 환경을 설정할 수 있습니다. 그리고 완료된 메시를 캐릭터에게도 알려줄 필요가 있습니다. 따라서 게임 실행 중에도 생성된 메시 데이터를 유지해야 합니다. 게임을 정지시키면 이전에 생성한 메시 데이터가 사라지게 되므로 주의해야 합니다.
게임이 실행되는 동안 생성한 메시 데이터를 유지하기 위해 복사한 메시 데이터를 임시로 저장하고 게임이 종료된 후에 다시 붙여넣습니다. 이렇게 하면 캐릭터가 기억하고 있는 모든 경로 정보를 유지할 수 있습니다. 이제 캐릭터는 플레이어나 다른 곳으로 이동할 때 정확한 경로를 찾을 수 있습니다.
게임 실행 중에는 실제로 웨이포인트를 볼 수 없지만, 정상적으로 작동하는 것을 확인할 수 있습니다. 이제 게임 화면에서 스켈레톤이 플레이어를 따라 다니는 것을 확인할 수 있습니다. 이제 스켈레톤에 이동 명령을 주면 설정한 경로에 따라 이동할 것입니다.
또한 장애물을 통과하거나 플레이어를 숨기는 기능도 구현할 수 있습니다. 스켈레톤에 충돌 회피 AI를 적용하면 장애물을 회피하면서 플레이어를 추적할 수 있습니다. 플레이어를 숨기는 기능을 추가하면 스켈레톤이 플레이어를 감지하지 못하도록 숨을 수 있습니다. 또한 장애물 통과 AI를 적용하면 이동 중에 장애물을 통과할 수 있게 됩니다.
게임에서 내비게이션 메시를 최적화하는 방법과 메모리 관리에 대해서도 알아보겠습니다. 내비게이션 웨이포인트를 최적화하고 메시 데이터를 올바르게 관리함으로써 게임의 퍼포먼스를 향상시킬 수 있습니다.
마지막으로 결론을 내리며, 이번 튜토리얼에서는 캐릭터 AI와 환경 이해에 대해 배우고 캐릭터의 이동과 장애물 처리 등 다양한 기능을 구현해 보았습니다. 내비게이션 메시를 활용하여 캐릭터의 움직임을 효율적으로 제어할 수 있었습니다.
🔍 하이라이트
- 캐릭터 AI와 환경 이해
- 플레이어와 스켈레톤 태그하기
- 장애물 태그하기
- 내비게이션 메시 생성과 설정
- 웨이포인트 생성과 배치
- 캐릭터 이동과 경로 탐색
- 플레이어 숨기기와 장애물 통과 기능 추가
- 환경 최적화와 메모리 관리
자주 묻는 질문
Q: 내비게이션 메시를 최적화하려면 어떻게 해야 하나요?
A: 내비게이션 웨이포인트의 수를 줄이거나 웨이포인트 네트워크를 재배치하여 최적의 경로를 찾도록 설정할 수 있습니다.
Q: 메시 데이터를 메모리에서 관리하는 방법은 무엇인가요?
A: 게임 종료 시 메시 데이터를 복사하여 메모리에 유지한 다음, 다시 게임을 시작할 때 해당 데이터를 불러오면 됩니다.
Q: 내비게이션 메시를 사용하여 플레이어를 추적할 수 있나요?
A: 네, 내비게이션 메시를 이용하면 캐릭터가 플레이어를 추적하는 경로를 정확히 계산할 수 있습니다.