본문 바로가기

BP34

[UE5 : Paper2D(BP) - 게임 컨텐츠] Chapter 03. 몬스터 AI GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/4077e879c90e9f626c2ee4dac1ba9ce5660d7939 몬스터 AI · developeSHG/UE5-Paper2D@4077e87 hokyung.song committed Jan 24, 2024 github.com 현재 몬스터들이 플레이어를 안따라가고 멍하니 있는 이유는, 몬스터 클래스의 Pawn을 보면 Auto Process AI가 Placed in World로 되어있다. 이 속성은 월드에 사용자가 툴을 이용해서 드래그앤드롭으로 배치한 애들만 AI에 의해 컨트롤이 된다. 이것을 맨 마지막 옵션이 Spawned으로 변경하면, 배치한 것 뿐만 아니라 코드로 스폰한 몬스터도 인공지능 즉 .. 2024. 1. 16.
[UE5 : Paper2D(BP) - 게임 컨텐츠] Chapter 02. 유닛 충돌 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/1ec0877b6ac1a52f60d45735419e34f116540437 유닛 충돌 · developeSHG/UE5-Paper2D@1ec0877 hokyung.song committed Jan 23, 2024 github.com 플레이어와 몬스터 사이에 충돌이 없어서 뚫고 지나가는 현상을 수정해 볼 것이다. 겸사겸사 공격할 때, 피격을 받는 것도 충돌 범위를 이용해서 하는 것이 아닌, 무조건 다음 칸에 있는 대상이 몬스터면 픽업하는 식으로 수정해 볼 것이다. 즉, Collision 박스를 없애는 것. 타일에 몬스터가 있는지 체크하기 위해선, 몬스터를 저장할 목록을 Creatures 배열로 관리. 객체.. 2024. 1. 16.
[UE5 : Paper2D(BP) - 게임 컨텐츠] Chapter 01. 몬스터 스폰 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/c38c9528e354c09469abd3af2902c64dd595333b 몬스터 스폰 · developeSHG/UE5-Paper2D@c38c952 hokyung.song committed Jan 22, 2024 github.com 랜덤하게 몬스터들을 스폰하는 기능을 만들것인데, 이 기능을 종합적으로 어디에서 관리하고 만들까가 고민이다.유닛끼리도 충돌이 일어나야 된다고 하면 이전에 만들어본 Tile Map의 클래스에서 관리하는 게 좋다. Can Go라는 함수를 통해 갈수있는 타일인지 벽인지 확인하는 것처럼 몬스터의 충돌 여부도 같이 판단하는 걸 고려할 수 있다. 우선 벽이 아닌 비어있는 타일을 찾는 일.. 2024. 1. 16.
[UE5 : Paper2D(BP) - 타일맵] Chapter 05. 타일 단위 이동 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/a93be1324f8a1cb7d501bd0ed235797ac780b0b3 바람의 나라처럼 타일을 한 칸씩 일정 시간에 거쳐서 스르륵 이동하는 것을 구현해볼 것. 구현하는 방법이 여러가지 있을 수 있는데, 플레이어가 현재 위치가 어디 있는지를 Actor Location 이라는 디테일이 있는 정보로 알 수 있지만, 현재 긔드 기준으로 몇 번 좌표에 위치해있는지를 따로 관리하는 방법이 있다. 그래서 몇 번 좌표로 이동해야한다고 하면 우선 그리드 좌표는 바로 이동을 하되, 실질적으로 월드 기준으로 하는 좌표는 조금 뒤따라가서 스르륵 이동하게끔 만들면 쉽다. 그리드 포지션 같은 경우는 내가 어떤 특정 좌표에 .. 2024. 1. 15.
[UE5 : Paper2D(BP) - 타일맵] Chapter 04. 타일 좌표 구하기 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/23ad85131e8168a25718fd10e7c6bd902704bc85 타일 좌표 구하기 · developeSHG/UE5-Paper2D@23ad851 hokyung.song committed Jan 15, 2024 github.com 현재는 플레이어가 미세하게 움직일 수 있는데, 이것을 고전 로그라이크 게임처럼 타일 한 칸 단위로 움직일 수 있게끔 만들어 볼 것이다. 그리드에 x, y의 좌표를 건네주면 갈 수 있는지 여부를 불리언으로 뱉어주는 Can go라는 함수. Map Grid라는 배열을 기준으로 한 인덱스를 구해준 것이다. 사실상 동일한 데이터를 지금 x, y라는 좌표로도 관리하고 있지만, 1.. 2024. 1. 15.
[UE5 : Paper2D(BP) - 타일맵] Chapter 03. 타일맵 정보 추출 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/7460d3fa9cd3d0fa92f511b877ab8b9cdf1b4adc 타일맵 정보 추출 · developeSHG/UE5-Paper2D@7460d3f hokyung.song committed Jan 15, 2024 github.com 맵 정보를 추출해서, 어느 구역은 갈 수 있는지 없는지 등등을 추출해서 관리할 것이다. 타입 맵에 대한 정보를 어떻게 추출할까. 여태 했던 것을 응용하면 알 수 있다. Tile Map을 게임에 배치하면 아웃라이너 쪽에 Type이 PaperTileMapActor로 알 수 있다. 몬스터나 플레이어의 경우 항상 상속 구조를 통해 해당 클래스에 기능을 추가하거나 기능을 추출해.. 2024. 1. 15.
[UE5 : Paper2D(BP) - 타일맵] Chapter 02. 타일 충돌 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/7ff1bbaa672b4ea0601cd9f6accb3de43fc7bf7e 타일 충돌 · developeSHG/UE5-Paper2D@7ff1bba hokyung.song committed Jan 15, 2024 github.com 맵 자체에다가 충돌의 개념을 적용시켜보자. 예전에 했던 방식은 Volumes에서 BlockingVolume 이라 갈 수 없는 영역을 발판 삼아 지정을 해뒀었는데, 현재 맵에 적용하기에는 복잡하다. 또 굳이 일일이 블록킹 볼륨을 여러 개를 깔아야 할 필요도 없다. Tile set을 만들 때, 애당초 Collision을 설정할 수 있는 부분이 있다. Collidiong Tiles.. 2024. 1. 15.
[UE5 : Paper2D(BP) - 타일맵] Chapter 01. 타일맵 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/856b0f6c0fbc85ccf1245f24cb3e66dfe359a516 타일맵 · developeSHG/UE5-Paper2D@856b0f6 hokyung.song committed Jan 15, 2024 github.com 현재까지 이미지 파일 하나를 배치해서 배경으로 사용했는데, 흔히 통맵을 사용했다. 근데 통맵말고 타일이라는 조금 더 작은 단위의 아트 리소스를 갖고와서 찍어볼 것이다. Apply Paper2D Texture Settings를 해준 다음, Create Tile Set을 해준다. Tile Size가 32x32라 함은 아트 리소스를 만들어 줄 때, 32x32 픽셀 짜리가 한 칸이라고 .. 2024. 1. 13.
[UE5 : Paper2D(BP) - 인공지능과 컨트롤러] Chapter 02. Controller GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/c9720e4b49f1bd1beba0892f876df25bb14dccd9 Controller · developeSHG/UE5-Paper2D@c9720e4 hokyung.song committed Jan 9, 2024 github.com 여태 플레이어나 몬스터라는 클래스 내부에다가 사진처럼 컨트롤하는 부분도 같이 넣어놨고, 그게 딱히 문제가 되진 않았다. 근데 경험이 쌓이고 복잡한 게임을 만들게 되면서 이렇게 직접적으로 나이트나 몬스터 클래스 안에다 입력까지 넣어놓는게 별로 좋은 코드가 아니란 걸 느꼈다. 왜냐하면 코드 양이 굉장히 방대해질수록 정말로 해당 클래스에 관련된 데이터만 넣고싶지. 인공지능이.. 2024. 1. 9.
[UE5 : Paper2D(BP) - 인공지능과 컨트롤러] Chapter 01. FSM GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/350956311be0247df882a7db1caf725a5285c672 FSM · developeSHG/UE5-Paper2D@3509563 hokyung.song committed Jan 9, 2024 github.com 인공지능을 구현할 때, 대부분 초보자들은 Boolean으로 접근을 하려는 경우가 굉장히 많다. 나도 예전에 그랬다. 예를 들면, 불리언 변수를 계속 만들어서 멈춰있느냐 아니면 정찰을 가느냐 즉 어느 상태에 있느냐 체크를 했다. 이렇게 불리언을 계속 늘리게되면 나중에 로직이 꼬일 수가 있기 때문에 굉장히 좋지 않은 방법이다. 권장하는 방법은 상태를 이용해서 관리하는 방법이 좋다. 이.. 2024. 1. 9.