본문 바로가기
카테고리 없음

유니티3D - NPC 랜덤 메이커 UMA! ( 유니티 다목적 아바타 ) #2

지난 게시글에서는 UMA 를 이용한 NPC 생성에 대해서 살펴보았습니다.

https://itadventure.tistory.com/423

 

유니티3D - NPC 메이커? UMA! ( 유니티 다목적 아바타 ) #1

지난 시간까지는 NPC와의 대화창을 만들었다면, https://itadventure.tistory.com/422 유니티3D - NPC 대화창 #4. 이미지 UI, 그리고 마스크 이미지 지난 게시글에서는 리치 텍스트란걸 사용하여 대화창의 대사

itadventure.tistory.com

NPC 하나를 의상을 입히고 체형을 조절하는 등의 커스터마이징은
실제 모델링에 비하여 볼 때 엄청난 시간 단축일텐데요.

그마저도 귀차니즘을 위하여 ( 크레이같은 사람일까요 ? :) )
이번에는 NPC 를 랜덤으로 뽑아내는 방법을 알아보겠습니다.


Assets - UMA - Getting Started 폴더에 보시면 UMARandomGeneratedCharacter.prefab 이라는 이름의
프리랩이 있는데 바로 이것이 랜덤 캐릭터를 뽑아내는 프리팹입니다.

드래그 해서 Scene 바닥 적당한 곳에 놓아 주세요,

웬 큐브가 보일텐데요.
지극히 정상입니다.
바로 플레이해보시면, 엇!
상자 한 가운데 복장을 다 차려 입은 NPC 가 서있는 것을 보실수 있습니다.

상자는 보기 거추장스러우니 잠깐 숨겨두도록 할까요?
플레이를 중지하고, 이 상자를 선택하신 다음에
Inspector(인스펙터) 창에서 UMA Random Avatar 스크립트의 화살표를 펼쳐 주세요.
그리고 Show Placeholder 체크상자를 해제해 주시면 됩니다.

그리고 플레이를 진행해보시면, 엇, NPC가 바뀌어 버렸습니다.
'랜덤 NPC' 이니까요. 플레이할 때마다 랜덤으로 나옵니다.
만약 고정 NPC 로 가져가려면 지난번처럼 프리팹으로 구워서 사용해야 하지요.

한가지 더 해볼까요. 속성을 바꾸어 봅시다.
플레이를 먼저 중지하시구요.
상자가 보이지 않아 선택하기 어려울 텐데요.
Hierarchy ( 하이라치 ) 창에서 해당하는 이름을 선택하시면 됩니다.

그리고 Inspector ( 인스펙터 ) 창에서 금방 화살표를 펼쳐서 열었던 스크립트 속성중 다음 값을 변경해 보세요.
Grid X Size : 8
Grid Z Size : 2
Grid Distance : 2

이제 플레이를 해 봅시다.
와우~ 이게 무슨일입니까? NPC 들이 대거 등장했습니다.
다들 키도 다르고 피부색상이나 착용 아이템 뿐만 아니라 체형도 약간씩 다를텐데요.

여기서 하나를 골라 지난번처럼 편집한 다음에 프리팹으로 만들어 버리면 됩니다.
다만 지난번과 다른 점은 NPC가 여러명이기 때문에 UMARandomGeneratedCharacter 프리팹 오브젝트 아래
아래와 같은 여러명의 NPC 오브젝트가 생성되어 있을 것입니다.
"Pat 일련번호"와 같은 방식으로 따라 붙는데 이 명칭을 기억하셨다가,

UMA - Prefab Maker 메뉴에서 프리팹을 구우실 떄,

UMA Avatar 를 선택하는 부분에서 해당하는 이름을 선택해주시면 됩니다.

참고로 랜덤 메이커를 2개 이상 배치하면 배치한 자리마다 각각 따로 따로 NPC 들을 뽑아냅니다.

이 랜덤 메이커에는 그 밖에도 몇가지 옵션이 더 있는데요.
해당 속성의 의미는 아래와 같습니다.

특히 Randomizers 는 NPC들을 랜덤으로 배치할 때 대상이 되는 아바타 그룹을 지정할 수 있습니다.
기본값은 Size 1 이지만 이 값을 2 이상으로 변경하면 그룹을 복수 선택할 수 있습니다.
무료 버전은 2개의 그룹만 있는 것 같은데요.
Element0 과 Element1 에 각각 RandomPeople 과 RandomPeople 2 를 배정해주면 섞어서 배치합니다.

아래는 위 옵션에 덩달아, Grid X Size 10, Grid Z Size 10, 무려 100명을 뽑아낸 NPC 목록입니다.
마치 공연을 보러온 군중같아 보이지 않으시나요? :)

필요하신 분에게 도움이 되셨을지요.
오늘도 여기까지 읽어주셔서 감사합니다.

다음 게시글에서는 NPC 대화창을 감추었다가 NPC 캐릭터를 만나면 대화창과 대사가 뜨는 부분을 다뤄보도록 하겠습니다.