UE4
언리얼 엔진 Cast (캐스팅) 심층 분석
언리얼의 Cast는 UObject 베이스 클래스들을 동적으로 안전하게 형변환 해주는 함수입니다. 캐스팅에 실패하게 될 경우 nullptr을 반환해주게 됩니다. 캐스팅을 할 경우 null 체크는 필수겠죠? 해당 포스팅은 언리얼 Cast의 동작을 하나 하나 분석해 정리하는데 목적을 두었습니다. 다양한 타입을 캐스팅해야 하는 캐스팅의 특성상 가독성은 우주로 날아가는 템플릿 기반으로 되어있어 잘못 파악한 경우도 있을 수 있습니다. 틀린 부분이 혹여나 있다면 댓글로 잡아주시면 정말 감사하겠습니다. Cast함수는 내부적으로 TCastImpl 구조체의 인라인 함수인 DoCast 함수를 호출하게끔 되어있습니다. // Dynamically cast an object type-safely. template FORCEINL..
Portfolio Project--HS_Rpg_SingleDemo
20년 4월 20일 군 입대 후 이 글을 쓰는 지금은 6월 24일입니다. 처음으로 사지방이란 곳에 와서 원래도 잘 못했던 포스팅을 하려니 기분이 묘하네요!...! 입대 전 데모 형식으로 제작했던 포트폴리오에 대한 포스팅을 늦었지만, 작성해보려고 합니다. youtu.be/xhE7dpr2SBM HS_Rpg_SingleDemo HS_Rpg_SingleDemo는 본래 서버 공부도 할겸 4인 플레이를 목표로 제작 중이던 프로젝트에서 클라 컨텐츠를 그대로 끌어와 개발하였으며, 싱글 플레이에 맞춰 보스몬스터의 패턴을 수정하였다는게 특징입니다. 개발은 생산성을 고려해 UI 연동 부분을 제외하고는 모두 C++로 개발하였습니다. (후기) 훌륭한 언리얼 엔진 소스를 바탕으로 이제 좀 여러가지 기능들을 좀 더 좋은 코드로 구..

Ue4 Camera Shake (언리얼 카메라 쉐이크)
발매되고, 출시하고, 판매하는 모든 게임 중 카메라 쉐이크가 없는 게임보다 있는 게임이 더 많을 것이라고 단언한다. 이번 포스팅은 언리얼에서 카메라 쉐이크가 어떻게 제공되고, 어떻게 사용하면 되는지를 담고 있다. (참고) 필자는 개발 중 여러 방식으로 고민하다 카메라 쉐이크를 언리얼 제공 CameraShakeBP를 스킬 및 연출등의 갯수 마다 늘려 C++에서 추가해 필요할때마다 호출하는 방식으로 사용하였다. C++ 클래스로 관리하여도 좋으나, 생산성과 유지보수의 편리함 때문에 위와 같은 방식을 선택하였음을 참고하시길 바란다! 자 이제 시작해보자. 1. 먼저 CameraShake 블루프린트 클래스를 만들어보자. 2. 옵션이 해주는 기능을 하나하나씩 살펴보자. [Single Instance] : 카메라 ..

Ue4 Change Class Names (언리얼 클래스 명 수정)
언리얼에서 한번 추가한 클래스의 네이밍 수정을 최대한 간단하게 하는 법을 해당 포스팅에서 다루고자 한다. 1. 바꾸고자 하는 클래스 헤더에서 클래스 타입을 뜻하는 첫 알파벳을 제외하고 모두 선택해, Ctrl + H(치환단축키) 사용 - Ctrl + R의 Rename기능을 사용해도 좋습니다. 2. 바꾸고자 하는 클래스 네이밍을 하단 박스에 넣습니다. ex) 기존 BTDecorator_AI_IsInAttackRange 변경 BTAI_IsInAttackRange 3. 변경 영역을 현재 프로젝트로 지정하고 모두 바꾸기를 직접 누르거나 단축키(alt + a)를 통해 모두 변경 4. 이에 맞춰 솔루션 탐색기의 클래스 네이밍도 직접 바꿔준다. 5. 컴파일 후 에러가 없는지 확인한 후 프로젝트를 닫고 Generate ..