반응형 Unreal/Manual132 Unreal 생성자에게 도움을 주는 ConstructorHelpers [Unreal] 생성자에게 도움을 주는 ConstructorHelpers 언리얼에서는 생성자에서 에셋이나 클래스를 불러오기 쉽게 Helpers를 제공한다.#include "UObject/ConstructorHelpers.h" 헤더를 추가하면 생성자에서 ConstructorHelpers를 사용 가능하다. 내부에는 아래와 같이 구조체로 구현되어 있다.C++에서는 보지 못했던 느낌표 두개(!!) 연산자로 nullptr을 체크한다.nullptr 이 아니면 true nullptr 이면 false 새로운 방식에 익숙해져 보자 2023. 10. 28. Unreal C++ 언리얼 에셋 불러오기 [Unreal/C++] 언리얼 에셋 불러오기 언리얼에서 에셋을 가져오는 경우가 수도 없이 많다.게임 시작 전에 미리 불러와 사용하는 경우도 있고 게임 중간에 동적으로 불러오는 일도 많다. 이 글에서는 상황에 따른 에셋 참조 방법을 설명한다.1. 언리얼에서의 에셋 경로 분석2. 생성자에서 ConstructorHelpers의 FObjectFinder를 이용한 방법3. 게임 중간에 생성자가 아닌 곳에서 동적으로 불러오는 방법4. 블루프린트 클래스를 가져오는 방법 언리얼에서의 에셋 경로 분석다양한 경로들Material'/Game/StarterContent/Materials/M_Ground_Grass.M_Ground_Grass'ParticleSystem'/Game/StarterContent/Particles/P.. 2023. 10. 28. Unreal 언리얼 엔진 소스 코드 확인하기 [Unreal] 언리얼 엔진 소스 코드 확인하기언리얼 엔진의 소스(UE4, UE5)는 솔루션의 프로젝트에서 확인이 가능하다. 프로젝트의 솔루션 파일 내에서 확인하기. 에디터 내에서 엔진의 소스 코드 확인하기 Engine이 설치 되어 있는 폴더에서 확인하기Engine의 설치 경로-> Engine -> SourceEx) 예를 들어 자주 쓰는 FVector의 경우 아래 경로에 있다. Engine->Source->Runtime->Core->Public->Math->Vector.h엔진의 소스를 바꾸고 싶은 경우 타고 들어가서 바꿀 수는 있지만 여기서 직접 커스터마이징 하지는 않고 실제로는 깃헙에서 언리얼 엔진 소스를 받아서 쓴다. 게임에 관련된 소스들은 대부분 Runtime에 구현되어 있다. 2023. 10. 26. Unreal 권장하는 에셋 명명 규칙 [Unreal] 권장하는 에셋 명명 규칙 언리얼 엔진(UE) 으로 프로젝트를 진행하다 보면 콘텐츠 브라우저(Content Browser) 의 에셋 목록이 점차 늘어나기 마련이다. 그러면 조정 중인 에셋의 베리에이션을 불필요하게 늘리거나, 지나치게 비슷한 에셋 이름 때문에 혼동할 우려가 있다.따라서 대규모 프로젝트를 진행하려면 개발 초기에 개별 에셋에 대한 공통의 명명 규칙을 정하는 것이 좋다. 그래야 개발팀이 더 쉽게 파일을 찾을 수 있고, 상충이 일어나거나 헷갈릴 일이 예방된다. 에셋접두사일반 HDRIHDR_머티리얼M_머티리얼 인스턴스MI_피직스 에셋PHYS_피직스 머티리얼PM_포스트 프로세스 머티리얼PPM_스켈레탈 메시SK_스태틱 메시SM_텍스처T_OCIO 프로파일OCIO_블루프린트 액터 컴포넌트AC.. 2023. 10. 25. Unreal UPROPERTY 종류 [Unreal] UPROPERTY 종류프로퍼티지정자효과AdvancedDisplay이 프로퍼티는 디테일 패널의 고급 (드롭다운) 섹션에 들어갑니다.AssetRegistrySearchableAssetRegistrySearchable (애셋 레지스트리 검색가능) 지정자는 이 프로퍼티와 그 값이, 이것을 멤버 변수로 포함하는 클래스 인스턴스에 대한 애셋 레지스트리에 자동 추가됨을 나타냅니다. 구조체 프로퍼티나 파라미터에 사용하는 것은 적법하지 않습니다.BlueprintAssignable멀티캐스트 델리게이트하고만 사용할 수 있습니다. 프로퍼티를 블루프린트에서 할당할 수 있도록 노출시킵니다.BlueprintAuthorityOnly이 프로퍼티는 멀티캐스트 델리게이트여야 합니다. 블루프린트에서, BlueprintAut.. 2023. 10. 25. Unreal C++ 코딩 표준 지침 [Unreal/C++] 코딩 표준 지침 이 글은 언리얼 엔진 문서 기반으로 작성되었습니다. 코딩 표준언리얼 엔진 4 코드베이스에 에픽게임스가 사용하는 표준과 규칙입니다.docs.unrealengine.com 코딩 규칙의 중요성소프트웨어가 수명을 지속하는 동안 들어가는 경비의 80%는 유지 보수비이다.원저자(초기 개발자)가 소프트웨어의 수명이 다할 때까지 관리하는 일은 거의 없다.코딩 규칙을 따랐을 경우 한층 읽기 쉽도록 해주므로, 보다 빨리 그리고 철저하게 이해할 수 있다. 이에 따라 작성하는 사람 보다 읽는 사람을 염두에 두고 체계를 잡아야 한다.읽는 사람 대부분은 클래스의 공용 인터페이스를 사용하기 때문에,- 읽기 쉬운 public을 상단에 선언하고 private를 하단에 작성한다. 작명 규칙각 .. 2023. 10. 25. Unreal C++ 컴포넌트 추가하기 [Unreal/C++] 컴포넌트 추가하기 C++ 에서 컴포넌트를 추가해 사용할 일이 많다.예를들어 블루프린트에서는 Root 컴포넌트를 기본적으로 제공해주지만C++로 작성된 코드의 경우 Actor를 상속받는다 해도 Static Mesh 컴포넌트는 추가되지 않는다. 예시로 StaticMeshComponent를 추가해 보도록 한다. 1. Actor를 상속받는 C++ 클래스 만들기2. 필요한 컴포넌트의 헤더를 추가하기3. 컴포넌트 정의하기4. 컴포넌트 생성하기5. 확인하기 1. Actor를 상속받는 C++ 클래스 만들기- C++ 클래스를 생성할 때에는 접두사로 C를 붙여 생성한다.- C02_Spawn Actor라는 클래스를 만들었다.2. 필요한 컴포넌트 헤더 추가- 여기서는 StaticMeshComponent.. 2023. 10. 24. Unreal C++ 헤더 포함 Header Include [Unreal/C++] 헤더 포함 Header Include 언리얼 엔진에서의 프로그래밍은 C++ 기반으로 구성되어 있기 때문에다른 헤더 파일에 정의된 C++ 클래스나 기능을 사용하기 위해서는 헤더 파일을 포함하는 전처리가 필수적이다.일반적인 C++ 프로젝트에서는 헤더가 꼬이거나 중복 호출 되는 경우만 조심하면 되지만언리얼에서는 헤도 포함시 위치가 중요하다. generated.h 아래에 헤더를 포함시킬 경우 아래와 같은 에러가 발생한다. #include found after .generated.h file - the .generated.h file should always be the last #include in a header.generated.h 파일 뒤에 #include가 있습니다..generat.. 2023. 10. 24. Unreal C++, 라이브 코딩 컴파일 [Unreal] C++, 라이브 코딩 컴파일 라이브 코딩 컴파일 방법단축키 Ctrl + Alt + F11개인적으로 라이브 코딩을 선호하지 않는다.라이브 코딩을 사용하지 않고 Visual Studio에서 컴파일 하는 편이 좋다.-> 빠르고 오류도 적다. 라이브 코딩 비활성화 방법상단 메뉴바에서 편집 -> 에디터 개인설정 -> 라이브 코딩 -> 라이브 코딩 활성화 체크 해제라이브 코딩 비활성화 방법 (간편)우측 하단에 컴파일 옵션 메뉴를 열고 라이브 코딩 활성화를 체크 해제 한다. 비활성화 후 Visual Studio에서 솔루션 빌드를 하면 짤랑거리는 소리가 나며 컴파일이 완료된다. 라이브 코딩이 활성화 되어 있는 경우Visual Studio에서 컴파일을 시도하면Unable to delete hot-re.. 2023. 10. 23. Unreal C++ 클래스 폴더&파일 생성, 삭제, [Unreal/C++] 클래스 폴더&파일 생성, 삭제, 생성폴더는 클래스를 생성하면서 만들거나파일탐색기에서 미리 생성해 둔 후 클래스 파일을 만들 때 경로를 지정해 준다.클래스 폴더는 콘텐츠 브라우저 내에서 생성이 안된다.* 빈 폴더는 언리얼 에디터 (콘텐츠 브라우저)에 표시되지 않는다. 삭제콘텐츠 브라우저에서 삭제 불가1. 엔진 에디터 종료2. Visual Studio 내에서 제거 삭제3. 파일 탐색기에서 삭제4. Visual Studio 빌드->솔루션 빌드5. 엔진 실행 이동1. 엔진 종료2. 파일 탐색기에서 파일 정리3. 프로젝트 폴더에서 솔루션 파일(.sln) 삭제4. ProjectName.uproject 우클릭 후 Generate Visual Studio project file 실행5. .. 2023. 10. 22. Unreal 언리얼 프로젝트 폴더 구조 [Unreal] 언리얼 프로젝트 폴더 구조 프로젝트를 생성할 때 옵션빈 프로젝트최대 퀄리티시작용 콘텐츠 포함하지 않음레이트레이싱 사용 안함 블루프린트 기반 프로젝트프로젝트명.uprojectConfigContentSavedIntermediateBuild (빌드하면 생기는 파일)Plugins (옵션) C++ 기반 소스가 포함된 프로젝트프로젝트명.uprojectConfigContentSavedIntermediateBuild (빌드하면 생기는 파일)SourceBinaries.vs프로젝트명.slnPlugins (옵션) ※ 기본 프로젝트 생성 시 Blueprint와 C++ 프로젝트의 용량이 다른 이유는 Intermediate 폴더에 들어있는 엔진 소스 라이브러리가 포함이 되어 프로젝트 빌드가 되기 때문에 용량이 크.. 2023. 10. 5. Unreal C++ vs 블루프린트 [Unreal] C++ vs 블루프린트 C++ 클래스 장점빠른 런타임 퍼포먼스: 일반적으로 C++ 로직은 블루프린트 로직보다 훨씬 빠릅니다. 이유는 다음과 같습니다.명확한 디자인: C++ 에서 변수나 함수를 노출하면 세밀한 제어를 통해 원하는 것을 정확히 노출할 수 있으므로, 특정 함수/변수를 보호하고 클래스의 공식 "API"를 만들 수 있습니다. 따라서 지나치게 크고 따라잡기 어려운 블루프린트를 만들지 않아도 됩니다.광범위한 액세스: C++ 에서 정의(하고 제대로 노출)한 함수와 변수는 다른 모든 시스템에서 액세스할 수 있어, 여러 시스템 사이 정보 전달에 완벽합니다. 또한, C++ 에는 블루프린트보다 많은 엔진 함수 기능이 노출되어 있습니다.더 많은 데이터 제어: C++ 에서는 데이터 저장과 로드 관.. 2023. 10. 5. 이전 1 ··· 7 8 9 10 11 다음 반응형