[UE4]수의사 AI 추가

후이재·2020년 9월 5일
1
post-thumbnail

오랜만에 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이 가까워진 느낌이야
profile
공부를 위한 벨로그

0개의 댓글