본문 바로가기

전체 글540

[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.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 06. 체력 게이지 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/4f4b3e6a8a038a7e50eaef17a54942cecd2045c1 체력 게이지 · developeSHG/UE5-Paper2D@4f4b3e6 hokyung.song committed Jan 9, 2024 github.com 체력 게이지를 만들어볼것. User Interface인 Widget Blueprint를 생성. WIdget Blueprint 라는 것은 한마디로 언리얼에서 제공하는 UI를 사용자가 블루프린트와 엮어서 관리한다. 이 시스템 자체가 UMG라고 해서 언리얼 모션 그래픽스의 약자로 생각하면 된다. Get User Widget Objecdt를 통해 만들어준 WBP_HpBar 클래스를 .. 2024. 1. 8.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 05. 피격 판정 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/e8209acf58d6fc4dfab15b163519a0bbdaa0c738 피격 판정 #1 · developeSHG/UE5-Paper2D@e8209ac hokyung.song committed Jan 8, 2024 github.com 충돌 박스를 이용해서 피격 판정 체크를 진행. 공격 범위라는 건 공통적으로 들고있는니 Creature에 생성. Sprite가 180도 뒤집힐 때, Box Collision도 같이 뒤집혀야하니 Spirte 산하에 붙여놨다. 충돌 박스안에 들어오는 오브젝트를 피격 범위로 인정한다. GetOverlappingActors. 오버랩하고 있는 즉 영역에 겹쳐진 물체를 가져온다. 필터.. 2024. 1. 8.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 04. DataTable GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/fba2c26dc738bb343c9d92fc3f52bddcbf0d96a7 DataTable · developeSHG/UE5-Paper2D@fba2c26 hokyung.song committed Jan 5, 2024 github.com 지난 글에 상속 구조를 이용해서 블루프린트 클래스를 관리하도록 수정했다. 아직 미완 상태인 것은 애니메이션을 업데이트하는 코드를 보면 Select 하는 곳에 Knight의 플립북을 강제로 밖아뒀는데, Creature는 꼭 Knight만 사용하지 않기 때문에 교체할 수 있는 형식을 사용할 것이다. 가장 좋은 방법 중 하나는 데이터로 빼서 관리하는 방법이다. DateTabl.. 2024. 1. 5.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 03. 상속 구조 설계 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/c2ba4a6a28363b8ee4add29bd0b09f94b44d077c 상속 구조 설계 · developeSHG/UE5-Paper2D@c2ba4a6 hokyung.song committed Jan 5, 2024 github.com 요소를 늘릴 때마다 온갖 클래스가 나올 수 있는데, 그때마다 클래스를 복붙해서 늘리는 방식은 올바른 관리방법이 아니다. 그래서 관리할 때, 결국에 객체 지향에서 가장 핵심이 됐던 부분 중 하나인 상속성을 이용하는 방법이다. 공용 기능은 상위로 올려서 부모 클래스를 관리하는 것이다. RPG 게임에서는 일반적으로 기사, 궁수, 법사 등등을 뭉쳐서 플레이어라는 클래스를 상위 클.. 2024. 1. 5.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 02. Character Movement GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/64769c11533b2224903b983636bf2bc54423cfb9 Character Movement · developeSHG/UE5-Paper2D@64769c1 hokyung.song committed Jan 4, 2024 github.com 저번 글에 이어 Character Movement 컴포넌트를 통해 똑같은 동작을 시켜볼 것이다. 언리얼 엔진을 공부할 때, 느낀 점이 구조가 타이트하게 잡혀있는 것이 단점이자 장점이라고 생각한다. 단점은 자유도가 낮으니까 익힐 때, 굉장히 골치아프고 힘들다는 게 단점이고, 장점은 그래도 언리얼 엔진의 구조를 보면서 거꾸로 이런 구조를 잡는것에 대해서 노하.. 2024. 1. 4.
[UE5 : Paper2D(BP) - 이동과 전투] Chapter 01. SetActorLocation GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/212ecaae21c402fedccf94fab3943f02dc6f3e7f SetActorLocation · developeSHG/UE5-Paper2D@212ecaa hokyung.song committed Jan 4, 2024 github.com 언리얼 엔진은 이미 구조가 타이트하게 잡혀있기 때문에, 애당초 BP_Knight라는 것을 만들 때, 캐릭터라는 것을 상속받아서 만들었고, 그렇다는 것은 Movement Component 라는 것이 붙어있다. 이것이 캐릭터 이동과 관련된 기능을 하는 부품이기 때문에, 이것을 이용해서 제어하는게 일반적이긴 하다. 하지만 이번 단계에서는 그냥 Set Actor L.. 2024. 1. 4.
[UE5 : Paper2D(BP) - 애니메이션 관리] Chapter 05. State 패턴 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/119b69edc1a2274f2dbab805fe09bfbcb87ed0a6 State 패턴 · developeSHG/UE5-Paper2D@119b69e hokyung.song committed Jan 4, 2024 github.com 여태까지 동작 상태인 Attack이나 Key Pressed를 Boolean을 통해 공격을 하겠다던지, 이동을 한다던지 각각 표현해왔다. 근데 이렇게 상태마다 Boolean을 계속 늘리게 되면, 점프나 벽을 타고 있는 상태 등 수도 없이 늘어날 것이다. 또 다른 문제는 공격중인 상태일 땐 당연히 이동을 안하고 있는 경우가 대부분이기 때문에, Boolean끼리 서로 독립적인 .. 2023. 12. 26.
[UE5 : Paper2D(BP) - 애니메이션 관리] Chapter 04. 공격 애니메이션 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/20bd9bf8ad567dbc5bfdf59b03bf24d993bfa63f 공격 애니메이션 · developeSHG/UE5-Paper2D@20bd9bf hokyung.song committed Dec 21, 2023 github.com 위 코드가 딱히 문제있는 것은 아니지만, 매 프레임마다 Keyboard Pressed 변수를 세팅하고 있고, 아래 InputAxis MoveUp 같은 것도 매 프레임마다 호출이 되어 direction을 세팅하고 있다. 결국 모든 것들이 키보드 입력과 관련되어서 변수를 세팅하는 부분인데, 이것들을 묶어서 하나의 함수로 관리를 하는 것이 편리하기 때문에 리팩토링. 스페이스바.. 2023. 12. 19.
[UE5 : Paper2D(BP) - 애니메이션 관리] Chapter 03. 애니메이션 갱신 GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/5f3cb40a93a070aa2e723bf6d8f43f4e23da75c2 애니메이션 갱신 · developeSHG/UE5-Paper2D@5f3cb40 hokyung.song committed Dec 8, 2023 github.com 저번까진 단순 키에 대한 처리만 했고, 애니메이션 갱신을 위해 이동하는 방향을 저장. 현재 Idle 상태만 저장하는 플립북만 있는데, 이동하고 있는 상태의 플립북도 필요하다. 기존에서 더 변수를 추가해 늘리면 관리가 힘드니 기능적으로 쪼개서 기능별로 묶어두는게 관리하기 편하다. 뒷 부분은 보여지는 애니메ㅣ션을 설정하는 부분이고, 중간 부분은 입력 방향에 따라 코드가 세팅이.. 2023. 12. 15.