728x90 반응형 UnReal8 [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. [Unreal] 서브 레벨 구성 및 스트리밍 레벨 로드 Unity의 Scene Addictive와 비슷하다고 생각하면 된다.서브레벨 구성SubLevel1을 Level로 만들고, SubLevel1을 연다.Level을 Unlit으로 설정한 후 Window->Place Actors를 누른다.레벨에 Shapes들을 배치한다.폴더로 subLevel 정의를 한다. 같은 레벨을 2개 복사한 후 MainLevel을 만든다.SubLevel2와3의 폴더 명을 변경한다.MainLevel에 합쳤을 때, 폴더 명이 같으면 서브레벨을 나눈 의미가 없이, 같은 폴더 내에 배치된다.Main Level 배치MainLevel을 열고 place actors에 light검색 후 directional light를 추가한다.(unlit -> lit으로 변경한다.)우측 상단의 Levels의 add .. 2025. 3. 18. [Unreal] Blueprint를 활용한 물체 충돌 구현, 효과 주기 시작하기 앞서언리얼은 유니티와 다르게 엔진이 꽤..자주 꺼지는 편인 것 같다.힘들게 만든 작업물을 날리고 싶지 않다면 컴파일, 저장 습관을 기르도록 해야한다.우측 하단에 저장이 되어있는지 저장이 안되어있는지 친절하게 알려주니 자주 확인하며 저장하는 습관을 기르자.저장을 하지않으면 메모리에만 쌓이고, 엔진이 꺼지면서 메모리도 같이 죽어 내용물이 다 날라가는.. 슬픈 광경을 볼 수 있다. 블루프린트 기본콘텐츠 브라우저에 새로운 폴더(Blueprints)를 생성한다.Blueprints 폴더 안에서 우클릭 후 Blueprint class를 선택한다.Actor클래스를 선택한다. 다른 클래스들은 포스팅을 업데이트 하면서 채워가겠다.언리얼 네이밍 규칙 명명에 따르면 블루프린트는 BP_의 접두사를 가져야 하므로, BP.. 2025. 3. 18. 이전 1 2 다음 728x90 반응형