블루프린트 이용한 비주얼 스크립팅

처음에 Branch를 Return Node에 연결만 했는데 AI가 공격을 아에 하지 않았다.
어떤 문제가 발생한 것인지 찾아보니 Branch에 True핀과 False핀이라고 명시되어있어서 Branch가 해당 Bool값을 반환한다고 착각하고 있었다.
Branch는 C++에서 if문과 동일하다. 그래서 각 핀은 데이터를 반환하는 것이 아닌 단순한 실행 흐름으로 나누어 놓은 것이란 걸 알 수 있었다.
따라서 Make Literal Bool 노드와 Not Boolean 노드를 사용해 명시적으로 Bool 값을 Return Node에 전달해 반환할 수 있게 하였다.
이로써 해결이 되는 듯하게 보였으나 AI가 난수를 적용 받지 않고 계속해서 나를 공격해왔다...
무엇이 잘못된건지 한참을 살펴보다가 Return Node는 디폴트로 false의 값을 반환한다. 근데 앞에 Not Boolean을 사용했기 때문에 전체가 뒤집혀 true의 값을 리턴하게 된 것이다. 따라서 Branch의 두 경우가 모두 true로 반환해서 AI가 100퍼센트 확률로 나를 공격했던 것이다.
그래서 Not Boolean을 제거해 Branch의 False핀에 연결된 Return Node는 디폴트 false값을 반환하도록 하였고, 다시 실행해보니 정상적으로 작동 되었다.

AI와 가위바위보를 해서 결과 값을 텍스트로 뷰포트에 노출시키는 로직을 짰는데, 입력을 받아 Enum type 변수 Player에 데이터를 저장하는 것 까지는 되었는데 계속 뷰포트에 결과는 나오지 않는 문제가 있었다.

처음에 플레이어에게 입력 받은 값에 따라 Player 변수에 저장하는 것까지만 하고 이 Set 노드를 전체 실행핀에 연결시켜 주지 않아 AI와 비교할 Player의 값이 제대로 전달되지 않았던 것으로 보인다.

그래서 처음 사진과 같이 실행핀을 전체 로직에 넣어주었더니 정상작동 되었다.
비주얼 스크립팅인 블루프린트만을 사용해 간단하게 슈팅게임, 구구단, AI와 가위바위보를 구현해보았는데
C++로 코딩했을 때랑 비슷하면서도 생소한 부분이 있어 막히는 부분이 있었던 것 같다.
언리얼에 대해 더 친숙해질 필요를 느끼는 하루...
'내배캠 > TIL' 카테고리의 다른 글
24.12.20 (금) (0) | 2024.12.20 |
---|---|
24.12.19 (목) (0) | 2024.12.19 |
24.12.17 (화) (2) | 2024.12.17 |
24.12.16 (월) (0) | 2024.12.16 |
24.12.10 (화) (1) | 2024.12.10 |