Game !

All (86)

  1. 2022.06.20 [UE] 애니메이션 관련 정리

    BS 는 두 가지가 있다 블렌드 스페이스 1D > 분할 기준(축)이 1개 블렌드 스페이스 > 분할 기준(축)이 2개 USkeletalMeshComponent > BP 에 붙는 스켈레탈 메시 컴포넌트. > 컴포넌트 내에서 스켈레탈 메시를 적용할 수 있음 - BP 로 만들지 않고, C++ 클래스만으로도 사용가능. ( C++ 클래스 내부에서만 사용할 경우.. 시각적으로만 안보이는 것 뿐이지, 클래스 내부에 선언된 컴포넌트를 통해 스켈레탈 메시를 적용할 수 있는 거임 ) USkeletalMesh > 진짜 스켈레탈 메시 Animation/AnimMontage.h > UAnimMontage 를 가지고 있는 헤더파일 UAnimMontage > 애니메이션 몽타주 클래스 이름 > 에디터에서는 [메뉴] 애니메이션 ▷ 애님..

  2. 2022.05.09 [UE] USceneComponent 와 PrimitiveComponent

    UActorComponent 씬에 올릴 수 있는 것들은 모두 액터가 기반이 되어야하며 이 액터들은 각각 다른 유형의 컴포넌트들을 가지게 되는데, 이 모든 컴포넌트에 대한 베이스 클래스이다. 언리얼 엔진에서는 1. 트랜스폼 정보를 가진 액터 컴포넌트를 Scene Component 라고 한다 2. 렌더링 정보를 가진 액터 컴포넌트를 Primitive Component 라고 한다 USceneComponent Transform 정보를 가진다. Actor 또는 USceneComponent 들의 Hierarchical Attachment - 부착을 지원한다. ( 하이어라키 계층 구조를 지원한다 ) 렌더링과 자체 콜리전을 가지지 않는다. 더보기 예를 들어, BP 에 Box 콜리전과 Text 렌더링을 한다고 하자. 사..

  3. 2022.05.09 [UE] 델리게이트와 이벤트

    Unreal C++ 함수 콜백 종류 델리게이트 다이나믹 델리게이트 이벤트 델리게이트는 외부(C++)에서 연결해서 사용 가능 다이나믹 델리게이트는 BP와 연결하기 위해 사용 가능 이벤트는 자신의 클래스에 속해서만 사용 가능 델리게이트 C++ 에서만 사용할 수 있는 콜백 함수 2개의 타입이 있다 ( 싱글 / 멀티 ) 바인딩할 경우, 인자랑 타입이 똑같아야한다. 더보기 델리게이트 생성 싱글 DECLARE_DELEGATE DECLARE_DELEGATE_OneParam DECLARE_DELEGATE_TwoParams DECLARE_DELEGATE_Params DECLARE_DELEGATE_RetVal DECLARE_DELEGATE_RetVal_OneParam ... 멀티 위의 표준과 동일하다. 단, 멀티 표기를 ..

  4. 2022.05.08 [C++] 코드 위치나 정보를 받아오는 매크로 들

    디버깅이 어려운 환경에서는 보통 로그를 찍게 되는데 이때 로그에서 코드의 정보를 출력해주는 매크로를 사용해서 추가 정보를 출력할 수 있다. 표준 C++ 에서 제공 __FUNCTION__ 매크로 현재 함수의 이름을 받아온다 C++ 에서는 함수마다 내부적으로 __func__ 라는 로컬 변수가 정의돼있다. 이 변수는 현재 함수의 이름을 저장하고 있다. __LINE__ 매크로 현재 스크립트의 줄번호를 받아온다 __FILE__ 매크로 현재 소스코드의 파일을 받아온다. EX. CGlobal.h... CPlayer.cpp ... 단, 파일 이름만 출력하지 않고 파일의 전체 경로를 출력하게 된다. ▶ C:\CppProject1\TestGame\Source\MyGame\CPlayer.cpp

  5. 2022.05.07 [UE] Unreal C++ 스크립트 규칙

    언리얼에서는 자료형을 int32 등으로 사용하게 된다. int 는 4바이트 int32 는 4바이트 int 뒤에 붙는 32 표기는 비트 정보이다 int32 는 8*4 = 32 비트 ▶ 언리얼은 PC용 게임으로만 제작되는 것이 아니기 때문에 멀티플랫폼을 지원한다. 그래서 자료형 크기를 변환할 수 있게 사용 플랫폼마다 int 크기가 다를 수 있다. (phthon) C++ 스트립트에서 데이터 경로로 블루프린트의 클래스타입 쓸 때는.. 경로 마지막에 _C 를 붙여줘야 한다. ( 블루프린트로 레퍼런스를 가지고 올 경우 _C ) ▶ 오브젝트가 아니라고 명시 EX. 레퍼런스로 가져온 경로 : AnimBlueprint'/Game/ABP_CPlayer.ABP_CPlayer' CHelpers::GetClass(&animIn..

  6. 2022.05.06 [C++] interface

    interface 특정 기능을 구현할 것을 약속한 추상 형식 ( 다형성 의도를 명확하게 표현하기 위해 약속된 문법.. 이라고 생각할 수 있다 ) 특정 기능을 약속한 함수만 갖는다. 즉, 멤버 변수나 구체적으로 구현된 함수를 갖지 않는다. 모든 멤버 함수는 public 으로만 사용된다. 인터페이스로 사용한다 라고 가독성을 높이기 위해 인터페이스의 이름은 I 로 시작하도록 약속되어있다. interface 는 그 자체로 객체를 생성할 수 없고, 해당 인터페이스를 상속받아 무조건 재정의해서 사용하도록 의도한다. 기존에는 별도로 C++ 에서 문법을 제공하지 않았기 때문에 구조체 또는 클래스로 인터페이스를 만들어서 사용했다. #define interface class interface IAnimal { public..

  7. 2022.05.06 [C++] 함수 포인터

    함수 포인터 함수의 주소값을 저장하는 포인터 (함수의 시작 주소를 가리킨다) 함수 : 프로그램(exe 파일)이 실행될 때, 우리가 소스파일에 정의한 모든 함수가 메인 메모리(프로그램이 실행되면서 할당받은 메모리)에 올라간다. 이때. 우리가 작성한 함수이름은 함수의 시작 주소를 가리키는 포인터가 되는데, 이 포인터가 가리키는 주소가 변경되면 안되니까.. 포인터 상수로 함수의 시작 주소를 가리키게 된다. 이것을 함수 포인터 라고 부른다. 포인터 상수 : const ptr 포인터를 상수로 처리했다 는 의미이다. ---> "포인터를 상수로" 라고 생각하면 쉽다. cf. 상수 포인터 : ptr 상수를 가리키는 포인터 라는 의미이다. ---> "상수를 가리키는 포인터" 라고 생각하면 쉽다. ① 함수 포인터 선언 문..

  8. 2022.05.02 컴퓨터와 프로그램 메모리

    프로그램(exe) 메모리 프로그램을 실행하면 운영체제가 프로그램을 위한 메모리 공간을 할당한다. 우리가 하는 일은 모두 이 연속된 메모리 안에서 일어나게 된다. 프로그램의 메모리 공간은 네 개의 영역으로 나눠서 관리된다 ( 위의 이미지 ) 1. 코드 영역 : 프로그램에 작성된 코드가 저장된다. 2. 데이터 영역 : 프로그램의 글로벌 데이터들이 저장된다. 3. 힙 영역 ( 위에서부터 아래로 데이터를 쌓아간다. ) : 단, 너무 많은 동적할당을 할 경우.. 힙 데이터가 스택 영역을 침범하게 된다. 이것을 힙 오버플로우라고 한다. 4. 스택 영역 ( 아래에서 부터 위로 데이터를 쌓아간다. ) : 함수 데이터들이 차곡차곡 쌓이는 공간이다. 코드에서 각각의 함수를 호출할 때마다 지역 변수나 매개 변수, *반환 주..

  9. 2022.05.01 컴퓨터에서의 2의 보수

    1 2 3 4 5 6 7 int iNumber = 10; cout

  10. 2022.05.01 [UE] 언리얼 오브젝트와 UClass

    언리얼 오브젝트 언리얼 엔진의 관리를 받는 특수한 객체 언리얼 오브젝트가 아닌, 입력에 따라 결과 값만 받고싶은 C++ 클래스도 언리얼 프로젝트에서 전혀 문제없이 쓸 수 있다. 언리얼 엔진에서는 이러한 오브젝트를 구분하기 위해 클래스에 접두어를 사용한다. - 언리얼 오브젝트 (언리얼 엔진의 관리를 받는 객체) : U로 시작. ex) UObject, UMeshComponent... - 일반 C++ 오브젝트 ( C++ 네이티브 객체) : F로 시작. ex) FName, FVector... 언리얼 오브젝트를 생성하기 위한 최상단 기본 클래스는 UObject 이다. 언리얼 오브젝트는 언리얼 엔진이 자체적으로 만들어 제공하는 프레임웍이기 때문에 언리얼 헤더 툴 ( UHT ) 이라는 프로그램의 도움을 받아야 한다...

1 2 3 4 5 ··· 9