728x90 반응형 개발일지/Unreal&C++11 [Unreal] 캐릭터 만들고 입력 받아 이동하기 입력 액션(Input Action)input action을 만든다.Move는 축의 값을 받아야 하므로 Vector2D로 설정한다.위와 똑같이 Jump도 생성한다.Value Type에 Digital(bool)로 설정 후 Triggers에 Pressed로 설정한다.입력 매핑 컨텍스트Input->Input Mapping Context 선택하여 IMC_Character로 명명한다.위에서 만들었던 입력액션을 연결한다.+버튼을 누른 후 만들었던 IA_Move, IA_Jump를 연결하고 키를 매핑한다. 아래와 같이 설정하면 된다.기본 설정 값이 WASD이므로 화살표( ↑ ← ↓ → )로 설정해보자.언리얼의 Enhanced Input 시스템에서 키보드 입력을 2D벡터로 처리할 때 각 키는 기본적으로 X축 값만을 변경한.. 2025. 4. 22. [Unreal] 리플렉션(Reflection)? 작동 원리 및 장단점 언리얼 엔진의 리플렉션(Reflection)은 프로그램이 런타임에 클래스, 구조체, 함수, 멤버 변수 등 객체의 메타데이터를 조사하고 조작할 수 있는 시스템이고 언리얼 엔진의 핵심 기능이다.엔진은 리플렉션 시스템에 의존하므로, 언리얼 엔진에서 효율적으로 개발하려면 사실상 사용이 필수적이다.에디터, 블루프린트, 직렬화(Serialization), 네트워크 리플리케이션 등 다양한 시스템에서 사용된다. 리플렉션의 주요 목적런타임 타입 정보 접근실행 중 특정 객체의 클래스 타입 정보 확인. - 예: `GetClass()`를 통해 클래스 정보를 조회.동적 객체 생성메타데이터 접근 및 조작변수와 함수의 속성 및 설명을 코드에서 활용. - 예: `UPROPERTY()`와 같은 매크로를 통해 변수에 메타데이터를.. 2025. 4. 4. [Unreal] 언리얼 인터페이스, 그리고 장/단점 (Interface) C++에는 언어 자체적으로 인터페이스라는 개념이 존재하지 않는다. 하지만 언리얼 엔진에서는 인터페이스를 구현한다.이는 언리얼 엔진의 객체 지향 설계와 리플렉션 시스템을 활용하여 게임 개발의 유연성과 확장성을 높이기 위한 것.언리얼 인터페이스는 다양한 기능을 정의하고, 이를 여러 클래스에서 구현할 수 있도록 하는 도구라고 생각하면 된다.C++에 인터페이스가 없는 이유인터페이스가 있는 다른 언어들(C#, Java..)는 C++보다 이후에 나왔다. 더 웰메이드 언어라고 볼 수 있다.(안전하다는 얘기다. 안좋게 보면 구조적인 제약이 있고, 성능이 이전 언어들에 비해 떨어진다.)C++은 계속해서 업데이트되고 있으나, 기본적으로 다중상속을 지원하기 때문에 인터페이스와 유사한 기능을 구현할 수 있다. (아래 예시 참.. 2025. 4. 3. [Unreal] 오브젝트 그리고 CDO(Class Default Object), generated.h, GENERATED_BODY 언리얼 오브젝트의 베이스 클래스는 UObject.UClass매크로는 UObject에서 파생된 클래스에 태그를 지정하여 UObject처리 시스템이 인식하도록 할 수 있다. 각 UClass는 CDO라는 하나의 오브젝트를 유지한다. 기본적으로 클래스 생성자에 의해 생성되고, 이후에는 수정되지 않는 디폴트 템플릿 오브젝트이다.UClass와 CDO는 보통 읽기 전용이지만 주어진 오브젝트 인스턴스에 대해 GetClass()함수를 통해 엑세스 할 수 있다.UClass* RuntimeClass = GetClass();RuntimeClass->GetDefaultObject(); UObject는 모든타입의 함수 혹은 멤버 변수를 가질 수 있다. 언리얼이 이런 변수나 함수를 인식하고 조작하려면 특수 매크로로 표시하고 특정 .. 2025. 4. 1. [C++] 가상 함수와 비 가상 함수 가상함수는 다형성을 구현하는 핵심 메커니즘으로, 객체지향 프로그래밍에서 중요한 역할을 한다.비 가상함수는 성능이 중요한 경우에 선호되며, 가상함수는 유연한 설계가 필요한 경우에 사용된다.이는 C++에서 중요한 개념이다. 호출 방식비 가상 함수정적 바인딩을 사용한다.(static binding)컴파일 시간에 어떤 함수를 호출할 지 결정된다.(함수 주소가 컴파일 시 결정됨)객체의 선언된 타입을 기준으로 함수가 호출된다.가상 함수동적 바인딩을 사용한다.(dynamic binding)런타임에 어떤 함수를 호출할지 결정된다.객체의 실제 타입을 기준으로 함수가 호출된다.메모리 구조비 가상 함수클래스의 모든 객체가 함수를 공유한다.별도의 메모리 공간에 위치하며, 객체 내부에 존재하지 않는다.가상 함수가상함수 테이블을.. 2025. 3. 18. [Unreal] 게임 플레이 프레임워크 게임 플레이 프레임 워크액터레벨에 배치하거나 스폰할 수 있는 오브젝트의 기본 클래스액터의 이동방식, 렌더링 방식을 제어하는데 사용할 수 있는 액터컴포넌트 컬렉션이 포함될 수 있다.플레이 도중 네트워크를 통해 프로퍼티 및 함수 호출의 리플리케이션 지원카메라플레이어가 월드를 보는 방식. 플레이어의 시점.플레이어가 월드를 보는 위치와 방향을 계산플레이어 컨트롤러카메라 클래스 지정카메라 액터 인스턴스화폰플레이어 혹은 AI가 제어할 수 있는 모든 액터의 베이스 클래스기본적으로 컨트롤러와 폰은 1:1대응관계컨트롤러는 하나의 폰만 제어가능컨트롤러폰(부모가 폰인 모든)클래스에 빙의하여 동작을 제어하는 비물리적인 액터플레이어 컨트롤러는 인간 플레이어가 폰을 제어하는데 사용.AI컨트롤러는 자신이 제어하는 폰의 인공지능을 .. 2025. 3. 18. 이전 1 2 다음 728x90 반응형