오랜만에 UE4를 켠다 요즘 너무 정신이 없다
인턴기간은 성공적으로 종료되었다. 인수인계와 맡겨진 일들 모두 말끔히 정리하고 나왔다.
오늘은 뭘 할건대?
- 수의사 AI제작 (BT, BB, BTS)
- 순서에 맞게 등장, 사라짐 제어
- 여유가 된다면 랜드스케이프 수정
수의사 AI 제작하기
우선 AI와 BT를 새로 팠다 그러려고 하다가 owner를 상속받는게 유리하다고 느껴져서 상속함
- Customer의 것을 재활용 할까 했는데 이미 너저분해서 새로 파려고 한다.
- 한번 정리도 해줘야 할 거 같음
- 수의사일 경우, next 함수를 실행하여 한번 둘러 볼 수 있도록 했다.
- target point 배열을 새로 만들었고 마지막까지 둘러보면 랜덤 철장으로 감
- go rand 함수는 입양되지 않은 철장 중 하나를 선택하게 되어있음
- owner를 상속 받았기 때문에 vector값만 바꿔주면, open-close - attach component 모두 가능하다.
마지막에 나올 수의사를 위해
- 마지막에 나올 수의사는 보리의 문을 연다..
- 문이 열리고 보리가 나올 수 있으며, 잡으러 뛰어감
- 이러한 이벤트를 위해 BP_vet에 last 불린 변수 추가 => vet2의 last를 true 적용
- 문을 열 때, last인 경우, 바로 attach to component를 수행하지 않고, 문만 열어줌
- 누가봐도 탈출하라는 소리임
(친절히 문을 열어주시는 선생님)
- 여기서부터는 강선생님과 같은 방식으로 보리를 잡으려고 달려드는 것을 구현한다.
- 플레이어의 방향으로 달려오게 됨, distance가 어느정도 가까워지면, 잡혀갈것이다..
순서 제어
- 이 부분은 포스팅은 안했지만 레벨 블루프린트로 구현해둔 부분
- door blueprint의 로직을 이용하여 구현했다.
- 문이 닫혀있는 상태일 때 turn 에 따라 함수가 실행된다. 1: 손님 2: 수의사 3: 손님, 아이 4: 수의사
- 이런 순서지요
- 각 캐릭터는 블루프린트를 스폰을 해서 쓰려다가, 얼마 안되니까 생성해놓고 삭제 하는 방식을 사용하려 한다.
- 생성시, actor를 배열에 담고, del 함수를 통해 배열에 저장된 actor들을 지운다.
- 이런 방식으로 각 이벤트를 제어한다. play함수를 실행시키면, 각 Ai Controller의 BTT를 실행 되며 움직이게 된다.
(우선 이렇게 문 앞에 옹기종기 모아두었음. 랜드스케이프를 수정하고 좀 치워두려 한다)
랜드스케이프 수정
지금 3시인 이유로 내일 하겠음
- 결국 조금 만들었음
- 스테이지 3이 가까워진 느낌이야