최대공약수
최소공배수
'프로그래밍 > 알고리즘' 카테고리의 다른 글
인수분해(Factorization) 알고리즘 (0) | 2020.02.11 |
---|
WRITTEN BY
- KeithHong
개인 기록 공간입니다. 잘못된 정보에 대한 수정 및 조언은 항상 감사합니다 ( _ _ )
최대공약수
최소공배수
인수분해(Factorization) 알고리즘 (0) | 2020.02.11 |
---|
For Monster
For Player
Task 내부에서 사용할 변수를 세팅하고, 인스턴스 편집 가능으로 세팅해주어야 원하는 데이터를 Blackboard의 값으로 세팅할 수 있다.
C++에서 처리하는 방식은 추후에 기록 예정
[UE4] AnimBlueprint 커스텀 SeqencePlayer Node 만들기 - 2 (0) | 2021.02.14 |
---|---|
[UE4] AnimBlueprint 커스텀 SeqencePlayer Node 만들기 - 1 (0) | 2021.02.14 |
[UE4] 안드로이드 셋업 (0) | 2020.11.05 |
[UE4] C++ 클래스를 상속받는 블루프린트에서 발생된 문제 (0) | 2020.09.27 |
[UE4] 나만의 UAsset을 만들어보자 - 5(마지막) (0) | 2020.09.11 |
1. Android Studio 3.5.3 인스톨
2. Android Device 셋업
3. Unreal Andoroid 셋업
프로젝트 셋팅 -> Android -> SDK 라이선스 수락
1. AppData 폴더의 SDK 경로 지정
2. jre 폴더 경로 지정
[UE4] AnimBlueprint 커스텀 SeqencePlayer Node 만들기 - 1 (0) | 2021.02.14 |
---|---|
[UE4] AI - 1 (0) | 2020.11.23 |
[UE4] C++ 클래스를 상속받는 블루프린트에서 발생된 문제 (0) | 2020.09.27 |
[UE4] 나만의 UAsset을 만들어보자 - 5(마지막) (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 4 (0) | 2020.09.11 |
- 문제점
생성자에서 Owner를 멤버 필드로 캐싱해 두는 경우 주소가 달라지는 현상
- Character는 ItemComponent를 멤버 필드로 가지고 있으며, 생성자에서 CreateDefaultSubobject를 통해 생성.
- BaseComponent에서 Component의 Owner인 Character를 멤버 필드로 캐싱
* BeginPlay에서 Character의 Address와 ItemComponent의 RefernceCharacter Address가 다른 현상 발생
- 결론
BP로 상속된 클래스의 경우 멤버 필드로 레퍼런싱을 하고자 할 때, BeginPlay에서 작업하자.
혹은, C++ 클래스를 기반으로 생성된 BP는 BP내부에서 레퍼런싱 해서 사용하자.
혹은, BP 상속 없이 순수 C++ 클래스로 사용하자.
PackageLoad, Default BP 생성 등 불필요한 작업이 없어 순수 의도대로 코드를 구현할 수 있다.
// Editor 실행 후 최초 Play 로그
BaseComponent Name : ItemComponent ,OwnerName : Default__BP_Character_C, Owner Address : 4414eb00
BaseComponent Address : 44201d80 ,OwnerName : Default__BP_Character_C, Reference_Character Address : 4414eb00
Character(31)CONSTRUCT OwnerName : Default__BP_Character_C, Address : 4414eb00
Character(32)CONSTRUCT ItemComponent : ItemComponent, Address : 44201d80 // ReferenceCharacter : 4414eb00
BaseComponent Name : ItemComponent ,OwnerName : Default__SKEL_BP_Character_C, Owner Address : 7f259d00
BaseComponent Address : 44151a80 ,OwnerName : Default__SKEL_BP_Character_C, Reference_Character Address : 7f259d00
Character(31)CONSTRUCT OwnerName : Default__SKEL_BP_Character_C, Address : 7f259d00
Character(32)CONSTRUCT ItemComponent : ItemComponent, Address : 44151a80 // ReferenceCharacter : 7f259d00
BaseComponent Name : ItemComponent ,OwnerName : Default__BP_Character_C, Owner Address : 321c3900
BaseComponent Address : 1752a080 ,OwnerName : Default__BP_Character_C, Reference_Character Address : 321c3900
Character(31)CONSTRUCT OwnerName : Default__BP_Character_C, Address : 321c3900
Character(32)CONSTRUCT ItemComponent : ItemComponent, Address : 1752a080 // ReferenceCharacter : 321c3900
// 최초 실행 시 위의 세번의 Constructor 호출이 발생
1. 최초 실행 시 EditorGameInstance를 생성하면서 Package Load
2. Blueprint Compile 시 Skeleton Class Generate 시 호출(?)
3. PlayActor Spawn 시 호출
Default__SKEL_BP_Character_C는 무엇인가?
BP에서 Skeleton Class를 Generate 할 때 생성되는 Bp인데...?
// 이후 Play 로그
LogLoad: Game class is 'BP_GameMode_C'
BaseComponent Name : ItemComponent ,OwnerName : BP_Character_C_0, Owner Address : 32253900
BaseComponent Address : 54f8400 ,OwnerName : BP_Character_C_0, Reference_Character Address : 32253900
Character(31)CONSTRUCT OwnerName : BP_Character_C_0, Address : 32253900
Character(32)CONSTRUCT ItemComponent : ItemComponent, Address : 54f8400 // ReferenceCharacter : 32253900
//BeginPlay에서 달라지는 Reference_Character 주소값 확인
//최초 실행 시 생성된 Default__BP_Character_C의 주소를 참조하도록 변경
BaseComponent::BeginPlay(23)BEGINPLAY BaseComponent Address : 54f8400 ,OwnerName : Default__BP_Character_C, Reference_Character Address : 321c3900
//현재 Component Owner의 정상적인 주소
Character::BeginPlay(46)BEGINPLAY OwnerName : BP_Character_C_0, Address : 32253900
Character::BeginPlay(47)BEGINPLAY ItemComponent : ItemComponent, Address : 54f8400 // ReferenceCharacter : 321c3900
[UE4] AI - 1 (0) | 2020.11.23 |
---|---|
[UE4] 안드로이드 셋업 (0) | 2020.11.05 |
[UE4] 나만의 UAsset을 만들어보자 - 5(마지막) (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 4 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 3 (0) | 2020.09.11 |
- AssetTypeAction 클래스를 생성하고, UAsset이 정상적으로 생성되는지 확인
[UE4] 안드로이드 셋업 (0) | 2020.11.05 |
---|---|
[UE4] C++ 클래스를 상속받는 블루프린트에서 발생된 문제 (0) | 2020.09.27 |
[UE4] 나만의 UAsset을 만들어보자 - 4 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 3 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 2 (0) | 2020.09.11 |
- AdvancedAssetCategory에 Custom Category 추가하기
1. AdvancedAssetCategory란?
Contents 폴더에서 우클릭으로 UMG나 Material, Foliage 관련 UAsset을 추가할 때 사용하는 메뉴
RegisterAdvancedAssetCategory : ProjectD_Helper 이름의 Category Type을 등록
비트 연산으로 사용중이지 않은 다음 비트에 CustomCategory Type을 추가해줌
RegisterAssetTypeAction : UAsset ActionType을 추가
Factory 클래스를 상속받는 CharacterSetting 클래스를 생성 할 수 있도록 등록
[UE4] C++ 클래스를 상속받는 블루프린트에서 발생된 문제 (0) | 2020.09.27 |
---|---|
[UE4] 나만의 UAsset을 만들어보자 - 5(마지막) (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 3 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 2 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 1 (0) | 2020.09.10 |
- Implement_module 세팅
- Startup Module / Shutdown Module 함수 호출
ModuleManager에서 모듈을 로드할 때 IModuleInterface를 상속받은FProjectD_Helper 클래스로 Module을 로드
StartupModule / ShutdownModule 을 통해서 모듈 초기화 및 정리
FModuleManager::LoadModuleWithFailureReason
엔진 로드 될 때, 모듈 초기화 작업 시 Helper_Module override 함수 호출
[UE4] 나만의 UAsset을 만들어보자 - 5(마지막) (0) | 2020.09.11 |
---|---|
[UE4] 나만의 UAsset을 만들어보자 - 4 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 2 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 1 (0) | 2020.09.10 |
[UE4] Delegate (0) | 2020.03.09 |
- 새로운 모듈을 추가해보자
(참고, 필수가 아니다)
1. 모듈이란?
UnrealEngine에서 관련 클래스들의 모음 DLL과 비슷하다.
* 사전 정의
모듈화하여 프로그램을 작성해두면 프로그램의 명세에 변경이 있어도 관계가 있는 모듈의 변경만으로 끝나고, 프로그램 개발의 생산성이 향상
* 언리얼 모듈 정의
클래스들의 모음
- Android 빌드 테스트 시, UnrealEd에 관련된 Error 발생
GameLogic target file에서 UnrealEd 모듈을 참조하고 있어서 발생 된 에러
[UE4] 나만의 UAsset을 만들어보자 - 4 (0) | 2020.09.11 |
---|---|
[UE4] 나만의 UAsset을 만들어보자 - 3 (0) | 2020.09.11 |
[UE4] 나만의 UAsset을 만들어보자 - 1 (0) | 2020.09.10 |
[UE4] Delegate (0) | 2020.03.09 |
[UE4] UPROPERTY 매크로 (0) | 2020.03.08 |
- Custom UAsset을 생성해보자!!
1. Custom UAsset이란?
DataTable / WidgetBlueprint / BlendSpace 등과 같은 UAsset을 만드는 것
2. UFactory
* 모든 UAsset의 기본 Factory 클래스로 UAsset을 만드는 경우 Factory 클래스를 상속.
내부에 다양한 가상 함수들이 존재한다.
- Factory Class의 생성자
- FactoryCreateNew
4.24에서는 위의 세팅만으로 Category -> Miscellaneous 에 출력 되었으나
4.25로 버전이 올라가면서 자동으로 Miscellaneous에 등록되지 않는 것으로 보인다.
[UE4] 나만의 UAsset을 만들어보자 - 3 (0) | 2020.09.11 |
---|---|
[UE4] 나만의 UAsset을 만들어보자 - 2 (0) | 2020.09.11 |
[UE4] Delegate (0) | 2020.03.09 |
[UE4] UPROPERTY 매크로 (0) | 2020.03.08 |
[UE4] Log 남기기 (0) | 2020.02.23 |
1. UPROPERTY의 config 키워드를 사용하려면 UCLASS(config = ini 이름) 지정.
2. ArenaBattleSetting 모듈 -> UABCharacterSetting -> CharacterAssets에 각 Asset이 엔진 시작 시 로딩된다.
언리얼 엔진이 초기화되면 엔진 구동에 필요한 모듈이 순차적으로 로딩된다.
모듈은 자신에게 속한 모든 언리얼 오브젝트의 기본 값을 지정해 생성한다. => 클래스 기본 객체(CreateDefaultObject)
엔진이 초기화되면 모든 언리얼 오브젝트 클래스 기본 객체가 메모리에 올라간 상태이다.
메모리에 올라간 클래스 기본 객체는 GetDefault 함수를 사용해 가져올 수 있다.
ArenaBattle - (4) 새로운 모듈 추가 (0) | 2020.03.14 |
---|---|
ArenaBattle - (3) Blackboard & BehaviorTree (0) | 2020.03.13 |
ArenaBattle - (2) AnimInstance 세팅 (0) | 2020.03.08 |
ArenaBattle - (1) 추가 로그 Category 설정 (0) | 2020.03.07 |