🦆 어떻게 할거야?
보호소에 등장할 사람을 추려보자면
1. 보호소 주인(1명)
- 손님 데려와서 구경시켜주기
- 손님이 강아지 고르면 가서 문 열어주고 데려오기
2. 손님(2명)
3. 어린 손님(손님 2와 같이)
- 뛰어다니며 구경
- 앞에 지나갈 때 컹! 하면 앞으로 다가오게
- 몇번의 타이밍 게임 성공시 선택, 입양
4. 수의사(1명)
- 강아지 순서대로 살펴본 후 선택
- 데려감
- 보리(플레이어) 선택시
이 인물을을 어떻게 배치할 것이냐!
스폰 순서
손님1 ▶︎ 수의사 ▶︎ 손님2+어린손님(딸) ▶︎ 수의사 ▶︎ 종료
🐱 손님먼저 구현하자
손님 구현한 방법
- 철장 앞마다 TargetPoint생성
- Behaviot Tree를 이용하여 TargetPoint로 이동, wait하는 로직 구현
- 철장을 쳐다봐야 하기 때문에 turn 이라는 BTT도 추가하였음
- 총 6개의 TargetPoint를 한번 주욱 본 후, 다시 돌아오면서 한번씩 더 보도록 설계
- 모두 두러본 후, 랜덤으로 배열에 있는 TargetPoint중 하나 선택
- 해당 지점으로 이동했다가 문 밖으로 나가기
🐹 그 다음은 주인
주인은 손님과 비슷한 점이 많아 코드 공유를 위해 Child BluePrint로 생성했음
주인 구현 방법
- 창고 안으로 들어와, 지정된 Target Point에 서있기
- 손님이 다 둘러본 후 랜덤의 숫자를 정한 순간, 같이 따라가서 문 열어주기
- 위와 같은 로직의 구현을 위해 AI, BT를 새로 작성
- 문을 열어 주는 task에서는 AI_Owner의 변수를 조정하여, Animation Blueprint에서 값을 잡아 무언가를 들고있는 애니메이션을 재생하도록 함
- 유레카! transition에서 재생중인 애니메이션이 끝나려면 얼마나 남았는지 알 수 있는 노드가 있더라
- 위의 Time Remaining함수를 사용하면 남은 시간을 알 수 있다. 0이면 다 끝난것이니, Transition이 되도록 했음.
이 부분은 Tutorial에서 잘 몰라서 적용하지 못했는데 이걸 쓰면 딱이겠다.
점점 아는 함수가 많아져서 구현이 빨리 진행된다.
친절히 문을 열어주시는 머머리아저씨(손님, 주인 같은 mesh로 진행중이었음)
🐮 그 다음은 다음 포스트로
🦊 이제 뭘 해야하지?