언리얼 엔진 5 81

[언리얼 엔진 5] 블루프린트에서 디버깅하는 방법

게임을 돌려보면서 디버깅을 해보고 싶을 때, 비주얼 스튜디오에서는 텍스트 편집기 좌측에 중단점을 설정할 수 있었다. 코드가 진행되다가 중단점을 만나면 게임이 멈추고, 그 상태에서 코드를 한줄씩 실행해보면서 어느 변수에 어떤 값이 들어가는지, 어느 함수에서 예외가 발생했는지 등을 파악하며 디버깅을 쉽게 할 수 있었다. 언리얼 엔진의 블루프린트도 똑같은 기능을 지원한다. 예시를 위해 AIController의 이벤트 그래프 중 일부를 준비했다. 브랜치 노드에 빨간 중단점이 달려있는 것이 보일 것이다. 비주얼 스튜디오에서의 그것과 같은 기능이다. 블루프린트에서는 노드를 우클릭하고 Add BreakPoint를 눌러 중단점을 만들어줄 수 있다. 다음은 이 상태로 게임을 실행한 결과이다. 빨간색 화살표가 중단점에 해..

[UE5] 블루아카이브 TPS게임 개발일지 (19) - 총알 투사체 제작 (Projectile Movement)

본론에 앞서, 칸나의 헤일로가 딱 붙어있기보다는 자연스럽게 캐릭터를 따라가게 했으면 좋겠다는 의견이 있었다. 원래는 칸나의 머리에 소켓(Halo_Socket)을 만들어 헤일로를 그대로 넣었었는데, 이제 헤일로를 별도의 액터로 만들고 칸나 블루프린트에서는 헤일로를 삭제했다. 헤일로가 칸나의 머리로 천천히 따라가게 하는 것은 다음 포럼의 글을 참고했다.https://forums.unrealengine.com/t/how-to-make-objects-follow-the-player/468227/4 How to make objects follow the player?The problem you’ve got is you have to either use AI or tick, you can’t use both, th..

[UE5] 블루아카이브 TPS게임 개발일지 (18) - 적 이동 애니메이션

지금까지 Enemy 블루프린트의 애니메이션에 애니메이션 시퀀스 하나만 박아두었었다. 슬슬 체계화된 애니메이션이 필요할 것 같아, 애니메이션 블루프린트를 만들기로 했다. 우선 Mixamo에서 Idle, 걷기, 달리기 애니메이션을 가져와, 총 사이즈에 맞게 적절히 수정해주었다.   그리고 이 세 애니메이션을 기반으로 한 Blend Space 1D를 만들었다. Blend Space는 일전에 칸나의 무빙샷 애니메이션에 사용한 바가 있다. https://ciel45.tistory.com/15 블루아카이브 TPS게임 개발일지 (6) - 조준 개선 (Layered Blend, Blend Space)·지금까지 조준 기능이 카메라 줌 인 부분만 구현되어있었다. 이번에는 조준한 채로 걸어다닐 수 있고, 카메라를 좌우로 돌..

[UE5] 블루아카이브 TPS게임 개발일지 (17) - 적 무기 모델링 임포트

이번엔 적들이 쓸 무기 모델링을 임포트하였다.  다시 한번 원화를 살펴보니, 들고있는 무기가 M16과 비슷하다는 느낌이 들었다.따라서 sketchfab에서 적절한 M16 모델을 구했다.https://sketchfab.com/3d-models/low-poly-m16-58af6360d8864eb79f47638fe8d94378 Low Poly M16 - Download Free 3D model by samanthacford - SketchfabAn American classic and former service rifle for the U.S. military. The Weapon comes in 3 configurations, the first with the A2 handguard, the second c..

[UE5] 블루아카이브 TPS게임 개발일지 (16) - 적 사망 연출 2

래그돌이 뭔가 이상한 이유는 Physics Asset이 엉망이었기 때문이다.캐릭터를 임포트한 뒤 아무것도 건드리지 않은 Physics Asset이다. 캡슐이 마구 겹쳐있고, 방향도 중구난방이며, 누락된 bone도 많은 것을 볼 수 있다.  그래서 이걸 계속 수정해보다가, 그냥 Physics Asset을 새로 만들기로 결정했다.     피직스 에셋을 새로 만든 뒤 필요없는 뼈들은 버리고, 우선 캡슐의 크기를 캐릭터에 맞게 잘 조정하였다. 그리고 관절부에 초록색, 빨간색 표시가 있는 것이 보일 것이다.이는 Constraint로, 관절이 움직일 수 있는 범위를 제한해준다.  우측의 디테일 패널에 angular를 검색해두고 작업하면 편하다. 빨간색 3d 원뿔 표시는 디테일 패널의 Swing 1,2 Limit와 ..

[UE5] 블루아카이브 TPS게임 개발일지 (15) - 적 사망 연출

적에게 데미지를 주는 기능을 만들었으니, 체력이 0이 되면 죽게 하도록 할 것이다. 사망 애니메이션을 따로 준비하지 않고, 래그돌(Ragdoll) 효과를 사용할 것이다.혹시 래그돌이라는 단어가 익숙치 않다면, 캐릭터가 힘빠진 듯이 흐느적거리면서 죽는 그것이라고 생각하면 된다.  작업에 앞서, 래그돌을 적용할 캐릭터의 스켈레탈 메시가 Physics Asset을 가지고 있는지 확인해주어야 한다.스켈레탈 메시를 정상적으로 임포트했다면 자동으로 추가되어있을 것이다. 상단 우측의 Simulate 버튼을 눌러 래그돌을 바로 시험해볼 수도 있다.    우선 Enemy 클래스가 소유하고 있는 Attribute 클래스에 IsDead 함수를 추가하였다. 말 그대로 죽었는지 알려주는 함수이다.FORCEINLINE bool ..

[언리얼 엔진 5] 라이브 코딩 내용이 적용이 안될 때

언리얼 엔진5로 개발을 하다보면 종종 라이브 코딩을 통해 컴파일을 해도 변경사항이 적용이 안될 때가 있다.또한 라이브 코딩으로 컴파일을 해도 엔진을 껐다가 켜면, 변경사항이 적용이 되어있지 않다.  라이브 코딩은 간단한 변경사항을 빠르게 확인하기 위한 것으로, 편리하긴 하지만 다소 불안정한 기능이다. 확실한 컴파일을 위해서는 에디터를 닫고 비주얼 스튜디오에서 컴파일하는 것이 좋다.  변경사항이 적용되지 않을 때 외에도 다수의 클래스를 수정하였을 때, 엔진의 런타임 중 컴파일을 하면 문제가 될 수 있는 부분(애니메이션 블루프린트의 부모 C++ 클래스 등)을 수정했을 시엔 에디터를 닫고 컴파일 해주는 것이 좋다.  비주얼 스튜디오에서 Ctrl + f5(디버그하지 않고 시작)를 누르면 자동으로 컴파일 후 엔진..

[UE5] 블루아카이브 TPS게임 개발일지 (14) - 데미지 판정 구현

언리얼 엔진의 Actor 클래스에는 데미지를 받는 함수가 기본적으로 정의되어있다. https://docs.unrealengine.com/5.3/en-US/API/Runtime/Engine/GameFramework/AActor/TakeDamage/ AActor::TakeDamageApply damage to this actor.docs.unrealengine.com 그 시그니쳐는 이러하다.virtual float TakeDamage( float DamageAmount, struct FDamageEvent const & DamageEvent, class AController * EventInstigator, AActor * DamageCauser) 액터가 데미지를 받게 하고자 한다면, ..

[UE5] 블루아카이브 TPS게임 개발일지 (13) - HP 시스템 제작 + SRP

앞서 라인트레이싱으로 적을 맞추는 것을 구현했으므로, 이제 적이 데미지를 받게 할 차례이다.이에 앞서 소개하고 싶은 소프트웨어 디자인 원칙이 있는데, SRP(Single Responsibility Principle)이다.즉 단일 책임 원칙으로, 한 클래스는 한 가지 책임만 갖게 하도록 하는 것이다. (역할의 분리) 적의 HP에 대한 정보는 물론 적의 성분이므로, Enemy.h에 정의하는게 맞을 수도 있다.하지만 이후에 프로젝트가 점차 커지게되면, Enemy 클래스는 공격, 행동, HP를 비롯한 스탯 등 많은 여러가지 역할을 맡게될 수 있다.  이렇게 한 클래스가 지나치게 많은 역할, 즉 책임을 맡을 경우 추후 유지보수가 어려워질 수 있다.    따라서 스탯 관련 데이터는 별도의 클래스에 구분하도록 하였다..

[UE5] 블루아카이브 TPS게임 개발일지 (12) - 크로스헤어 제작

이어서 조준선을 제작할 것이다. 언리얼 엔진에서 UI를 만들기 위한 도구는 UMG이다.https://docs.unrealengine.com/5.3/ko/umg-ui-designer-quick-start-guide-in-unreal-engine/ UMG UI 디자이너 퀵스타트 가이드언리얼 모션 그래픽 사용을 시작합니다.docs.unrealengine.com   UMG를 화면에서 사용하기 위해서는 우선 블루프린트를 만들어야 한다.      좌측 Palette 패널에서 필요한 UI들을 좌측 하단 Hierarchy 혹은 비주얼 디자이너(가운데 큰 화면)으로 가져올 수 있다.  화면 구성에 대해서는 여기를 참고하자.https://docs.unrealengine.com/5.3/ko/widget-blueprints-..