일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 람다사용정렬
- UML관련
- UELOG
- dataasset
- 선택정렬
- 강참조
- 크리티컬섹션
- enumasByue
- 정렬알고리즘
- BFS
- unorder_map
- C++
- 람다
- UE_LOG
- stl
- 언리얼가비지컬렉터
- C++최적화
- 프로그래머스
- 정렬
- 자료구조
- 데이터애셋
- 델리게이트
- 알고리즘
- map
- 약참조
- UE4 커스텀로그
- 스마트포인터
- 애셋로드
- moreeffectiveC++
- 언리얼엔진구조체
- Today
- Total
목록UnrealEngine (81)
기억을 위한 기록들
*언리얼엔진4 문서 참조하여 작성 https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/Assets/AsyncLoading/ 비동기 애셋 로딩 실행시간에 애셋을 로드/언로드하는 메서드입니다. docs.unrealengine.com 애셋 데이터를 참조하고 요청 시 로드하는 데 사용할 수 있는 일반적인 방법에는 두 가지가 있습니다. FSoftObjectPath와 TSoftObjectPtr 아티스트나 디자이너가 애셋을 참조하도록 하는 가장 쉬운 방법은 하드 포인터의 UPROPERTY를 만들고 카테고리를 지정하는 것이다. UE4에서 애셋을 참조하는 하드 UObject 포인터 UPROPERTY을 가지고 있다면, 그 애셋은 ..
TMap이란? - 키(key)와 값(value)을 짝으로 데이터를 저장. - 키를 검색하여 값을 얻을 수 있다. Add함수 map에 추가하기는 Add함수와 key,value를 이어서 입력해준다. Add는 키의 고유성을 보장하고, 중복된 키로 입력하게 되면 value만 변경된다. 실수해서 Add뒤에 key만 입력했다면 value는 자료형에 맞는 기본값으로 설정된다. Append 함수 해당 함수를 이용하면 다른맵에서 모든 엘리먼트를 삽입시켜 병합하는 것 역시도 가능. 기존 맵에 같은 key가 있다면 value가 대체된다. 언리얼 매크로 TMap 에 UPROPERTY 매크로와 편집가능 키워드 (EditAnywhere, EditDefaultsOnly, EditInstanceOnly) 중 하나를 마킹하면, 언리얼..
프로그래밍을 하다 보면 동적으로 할당해준 메모리에 대한 관리를 계속해서 해줘야 한다. 우리의 컴퓨터는 일정한 메모리를 갖고 있고, 정해진 메모리를 초과하게 되면 동작하는 프로그램이 정상적으로 작동하지 않을 수가 있기 때문이다. 메모리 관리에 도움 되는 기법 중 하나로 가비지 컬렉터(grabage Collection)가 있고, 해당 기법은 프로그램이 동적으로 할당했던 메모리 영역 중에 필요 없게 된 영역을 해제하는 기능이다. 가비지 컬렉션의 장점과 단점 장점 1. 유효하지 않은 포인터 접근을 방지한다. 2. 이중 해제로 이미 해제된 메모리를 또다시 해제하려고 하면 문제가 생길 수도 있다. 3. 메모리 누수로 더 이상 필요하지 않은 메모가 해제되지 않고 남아 있게 되면, 사용할 수 있는 메모리가 적어져서 프..
언리얼엔진하면은 다룬다고 하면 알아야할 몇가지들이 있다. 그 중에서 언리얼엔진에서 베이스가 되는 프로퍼티 시스템인 리플렉션 이 있다. 리플렉션이라는 것은 자바나 C#등에선 지원하지만, 언리얼엔진에서 사용되는 C++ 언어에서는 지원하지 않아 언리얼엔진에서 구현되어 있는 시스템이라고 했다. 하지만 난 리플렉션이라는게 뭐길래 엔진에서 구현해서 지원해주는것일까?? 처음들어봐서 자바에서 어떻게 사용되는지 먼저 찾아보았다. 자바에서 리플렉션 개념 자바에서의 리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다. (투영, 반사 라는 사전적인 의미를 지니고 있다.) 자바의 Reflection은 JVM에서 실행되는 애플리케이션의 런타임 동작을 검사하거나 수정할 수 있는 기능이 필요한 프로그램에서 ..
FHITResult는 충돌 지점(point of impact) 및 해당 point의 표면(surface) normal과 같은 trace의 한 번의 hit 정보를 포함하는 구조체입니다. /** * Structure containing information about one hit of a trace, such as point of impact and surface normal at that point. */ USTRUCT(BlueprintType, meta = (HasNativeBreak = "Engine.GameplayStatics.BreakHitResult", HasNativeMake = "Engine.GameplayStatics.MakeHitResult")) struct ENGINE_API FHitR..
import unreal as ue4 # 언리얼 클래스의 인스턴스들 system_lib = ue4.SystemLibrary() editor_util = ue4.EditorUtilityLibrary() string_lib = ue4.StringLibrary() 1. ue4.SystemLibrary() https://docs.unrealengine.com/4.26/en-US/PythonAPI/class/SystemLibrary.html unreal.SystemLibrary — Unreal Python 4.26 (Experimental) documentation Get the clamped state of r.DetailMode, see console variable help (allows for scalab..
엔진 에디터 상에서 파이썬을 활용하여 개발에 있어서 편리한 기능들을 제작할 수 있다. https://docs.unrealengine.com/4.27/ko/ProductionPipelines/ScriptingAndAutomation/Python/ Python 을 사용한 에디터 스크립팅 언리얼 에디터에서 Python 을 사용하여 콘텐츠 제작 작업 스크립트를 짜는 방법을 설명합니다. docs.unrealengine.com 위에 자세히 나와있지만, 짧게 요약하자면 1. 플러그인 활성화 2. 개발모드 활성화 3. OutPut Log 확인 4. OutPut Log 확인하기 위와 같이 파이썬 언어 입력이 정상 작동한다. 하지만 위처럼 하는 건 불편하므로 간단 사용 별도의 비주얼스튜디오코드에서 py 파일을 임포트 해서..
https://docs.unrealengine.com/4.27/en-US/PythonAPI/ Unreal Python API Documentation — Unreal Python 4.27 (Experimental) documentation docs.unrealengine.com
FString uuid = FPlatformMisc::GetHashedMacAddressString(); UE_LOG( LogTemp, Warning, TEXT("uuid is %s"),*uuid ); //TEMP TArray macAddress = FWindowsPlatformMisc::GetMacAddress(); for( auto value : macAddress ) { UE_LOG( LogTemp, Warning, TEXT( "macAddress is %d" ), value ); }
// cm/s const float centimeterPerSecond = GetVelocity().Size(); // GetSpeed // Km/h const float KilometersPerHour = centimeterPerSecond * 0.036f; // M/s const float MeterPerSeconds = centimeterPerSecond * 0.0036f; const float IwantSpeedKMh = 10.0f; const float changeTouunit = IwantSpeedKMh / 0.036; //1 Unreal Unit = 1cm
FString myStr="10.0"; float myStrValue = FCString::Atof( *myStr.TrimQuotes() ); TrimQuotes() 함수는 문자열 앞뒤에 있는 " " 를 제거해주는 함수이다. 반대로 float을 FString으로 변환하기 float myValue=10.0f; FString myValueStr = FString::SanitizeFloat(myValue);
예를 들어 3개의 액터가 1초마다 본인의 이름을 출력하도록 설정하였다. 여기서는 132321 순으로 출력되고, 몇초 후엔 321213 순으로 출력되며 미세한 차이로 무작위하게 출력된다. 이런 순서를 맞춰주기에 위 함수를 사용하는데 Tick 실행이 시작되는것에 대한 의존(종속)관계를 설정할 수 있다. 동일 프레임 처리 되지만, 데이터 처리의 순서의존성이 있을 경유 유용하다. 만약 DoSomething 이라는 위젯버튼 클릭시 아래와 같이 해당 액터들을 가져와, Add Tick Prerequisite Actor 함수를 사용하여 의존을 해주게 되면, 1,2, 3 순서대로 종속시켜 순서대로 출력이 된다. 이렇게 되면 맨 위에 있던 함수의 뜻은 자기자신 (Self) Tick이 실행된다음 Mesh Tick(보통 An..