Programming/Unreal Engine

    언리얼 엔진 Cast (캐스팅) 심층 분석

    언리얼의 Cast는 UObject 베이스 클래스들을 동적으로 안전하게 형변환 해주는 함수입니다. 캐스팅에 실패하게 될 경우 nullptr을 반환해주게 됩니다. 캐스팅을 할 경우 null 체크는 필수겠죠? 해당 포스팅은 언리얼 Cast의 동작을 하나 하나 분석해 정리하는데 목적을 두었습니다. 다양한 타입을 캐스팅해야 하는 캐스팅의 특성상 가독성은 우주로 날아가는 템플릿 기반으로 되어있어 잘못 파악한 경우도 있을 수 있습니다. 틀린 부분이 혹여나 있다면 댓글로 잡아주시면 정말 감사하겠습니다. Cast함수는 내부적으로 TCastImpl 구조체의 인라인 함수인 DoCast 함수를 호출하게끔 되어있습니다. // Dynamically cast an object type-safely. template FORCEINL..

    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 ..