unreal39 언리얼엔진5 c++ ConstructorHelpers::FClassFinder와 LoadClass<>, LoadObject<> 차이 ▣ ConstructorHelpers::FClassFinder 역할: 클래스를 찾는 데 사용되며, 주로 객체(액터, 컴포넌트 등)의 생성자(Constructor)에서 사용됩니다. 사용 시점: 객체가 생성될 때, 자산이나 클래스를 미리 로드하여 사용할 때 주로 사용됩니다. 특징: 주로 생성자 안에서 사용되며, 클래스나 자산을 즉시 로드합니다. 하드 리퍼런스를 사용하기 때문에 로드 경로에 있는 자산이나 클래스가 반드시 존재해야 합니다. 잘못된 경로나 존재하지 않는 클래스가 있을 경우 런타임 에러가 발생할 수 있습니다. 로드가 즉시 이루어지기 때문에, 게임 시작 시점 또는 에디터 로드 시점에 성능 저하를 초래할 수 있습니다. 주 사용 사례: 클래스가 반드시 있어야 하는 경우: 즉시 해당 클래스를 찾아서 로드해.. 2024. 9. 14. 언리얼엔진5 c++ OnOverlapBegin WidgetComponent 추가, Player 충돌 제외 https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/UMG/Components/UWidgetComponent/GetWidget ▣ c++코드에서 충돌 시 OtherActor가 유효한지 여부를 확인해야 합니다. 그러지 않으면 crash가 나게 됩니다. ▣ FindComponentByClass는 컴포넌트클래스를 찾습니다. 반환 후 꼭 찾은 여부 유효한지에 대한 조건문을 만들어줘서 충돌을 방지합니다. ▣ 이 코드의 목적목적설명🔎 플레이어 자신과의 충돌 무시플레이어가 자신의 Collider에 충돌하는 경우가 있음 (예: 캡슐 → 구체)🧼 위젯이 잘못 표시되는 걸 방지플레이어에게 붙은 위젯이 보이지 않게 숨김 처리✅ 코드의 안.. 2024. 7. 26. 언리얼엔진5 Physics Door ▣ 먼저 Actor를 생성하고 Static Mesh를 추가합니다. ▣ 해당 Static Mesh에 들어가서 Collstion을 추가합니다. ▣ Static Mesh에 디테일탭에서 Simulate Physics를 체크합니다. ▣ Phsics Constraint를 추가합니다. https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Physics/Constraints/ConstraintsReference/ 피직스 컨스트레인트 레퍼런스언리얼 에디터의 피직스 컨스트레인트에서 사용할 수 있는 모든 프로퍼티에 대한 레퍼런스입니다.docs.unrealengine.com ▣ PhsicsConstraint에 Component Name을 Static Mesh.. 2024. 6. 14. 언리얼엔진5 c++ FOnMontageEnded(Montage종료시 호출 델리게이트) ▣ Montage에 관한 헤더를 추가합니다. ▣ 몽타주 재생 종료에 대한 델리게이트를 인스턴스 선언하고 몽타주가 끝나면 호출되는 함수를 바인딩합니다. 종료 시 호출할 함수 선언 시 (UAnimMontage* Montage, bool isEnded) 매개변수로 선언해야 합니다. 그리고 몽타주가 끝나면 델리게이트에 연동된 함수를 호출하는 코드까지 작성합니다. 그럼 몽타주 재생 후 종료 시 해당 함수를 호출합니다. ▣ FOnMontageEnded 코드로 들어가면 이렇게 델리게이트 형식으로 선언되어 있는 걸 확인할 수 있습니다. 2024. 6. 14. 언리얼엔진5 c++ AIController Character AnimInstance Cast ▣ Character에 대한 참조 정의를 하기 위해서는 GameFramework/Character.h 헤더를 추가합니다. ▣ 그리고 Pawn -> Character -> Mesh -> AnimInstance를 하나하나 대입하고 캐스팅하여 가져와서 AnimInstace를 접근하여 사용가능합니다. 2024. 6. 4. 언리얼엔진5 Stealth Animation System ▣ 먼저 Stealth 공격, 죽음 애니메이션을 Import 합니다. ▣ 플레이어 블루프린트에서 SkeletalMesh를 추가하고 Animation Mode를 Asset으로 지정한 다음에 기본 애니메이션으로 지정합니다. ▣ 그리고 위치와 회전값을 변경하고 Hidden in Game을 체크하여 안 보이게 합니다. ▣ 그리고 키를 누르면 BoxTrance를 쏘고 해당 Actor가 Zombie라면 해당 Actor를 숨기고 플레이어 애니메이션 재생하면서 SkeletalMesh를 다시 보이게 하고 애니메이션을 재생하는 노드를 완성합니다. ▣ 그리고 해당 좀비 Actor를 배치하고 ▣ 가까이 가서 키를 누르면 애니메이션이 재생되는 걸 확인할 수 있습니다. 2024. 5. 28. 언리얼엔진5 c++ FlashLight ▣ 먼저 플레이어 헤더파일에서 USpotLightComponent를 저장할 변수, FlashLight 소리 변수, FlashLight 함수를 선언합니다. https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Components/USpotLightComponent/ USpotLightComponentA spot light component emits a directional cone shaped light (Eg a Torch).docs.unrealengine.com ▣ cpp파일로 와서 필요한 헤더파일을 추가하고 SportLightComponent를 생성하고 상속 및 위치 회전을 하는 코드 작성 후 함수에서 키를 누르면 함수가 호출되고 Fl.. 2024. 5. 22. 언리얼엔진5 Morning Night System ▣ 먼저 Plusings에서 Sun Position Calculator를 체크해서 설치합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/geographically-accurate-sun-positioning-tool-in-unreal-engine?application_version=5.3 Geographically Accurate Sun Positioning Tool In Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer CommunityA tool giving you fine control over the Sun's geographic location based on l.. 2024. 5. 22. 언리얼엔진5 C++ SpawnAIFromClass, SpawnActor ▣ 먼저 Enemy cpp로가서 AIControllerClass에 대한 설정과 AutoPossessAI 설정을 하는 코드를 작성합니다. ▣ AutoPossessAI 종류 Disabled 기능이 비활성화되었습니다(AI를 자동으로 보유하지 않음). PlacedInWorld 폰이 세계에 배치된 경우에만 AI 컨트롤러가 소유합니다. Spawned 월드가 로드된 후 Pawn이 스폰된 경우에만 AI 컨트롤러가 소유합니다. PlacedInWorldOrSpawned 폰은 생성될 때마다 AI 컨트롤러에 의해 자동으로 소유됩니다. ▣ AI가 있는 스폰 하려면 Unreal Engine에서 "Spawn Actor for Class" 대신 "Spawn AI From Class" 노드를 사용해야 합니다. 이는 AI 캐릭터가 .. 2024. 5. 9. 언리얼엔진5 c++ CharacterMovement ▣ 먼저 h헤더파일에 CharacterMovementComponent에 데이터를 저장할 변수를 선언하고 GetCharacterMovement()를 대입합니다. ▣ cpp파일에서 필요한 헤더를 추가하고 ▣ CharacterMovement변수를 접근하여 변경하고 싶은 Speed를 대입해서 변경하면 됩니다. 2024. 5. 4. 언리얼엔진5 Material 색 변경 ▣ Material을 새로 생성합니다. ▣ 오른쪽에 있는 Palette메뉴에서 Constant3 Vector를 드래그하여 추가합니다. ▣ 상자를 클릭하여 원하는 색으로 변경하고 Base Color에 연결하고 저장합니다. ▣ 색을 적용하고 싶은 Static Mesh를 드래그합니다. ▣ 이번에는 Constant를 추가하고 Roughness에 연결하고 저장합니다. ▣ 그럼 이렇게 표면이 바뀌는걸 확인할 수 있습니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-materials?application_version=5.0 2024. 3. 20. 언리얼엔진5 랜드스케이프 LOD설정 ▣ Landscape 디테일탭에 LOD Distribution메뉴에서 설정 2024. 3. 19. 언리얼엔진5 랜드스케이프 ▣ Landscape Mode 단축키 : Shift + 2 https://docs.unrealengine.com/5.0/ko/creating-landscapes-in-unreal-engine/ 랜드스케이프 생성 새 랜드스케이프 터레인을 생성하는 방법에 대한 가이드입니다. docs.unrealengine.com ▣ 랜드스케이프 생성 1 새로 생성(Create New) 레벨에 새 랜드스케이프 액터를 생성합니다. 2 파일에서 임포트(Import from File) 외부 프로그램에서 제작한 랜드스케이프 하이트맵을 임포트합니다. 3 레이어 편집 활성화(Enable Edit Layers) 변경 유지 랜드스케이프 레이어 및 스플라인의 사용을 활성화합니다. 4 머티리얼(Material) 랜드스케이프에 머티리얼을 할당합.. 2024. 2. 29. 언리얼엔진5 손전등 ▣ Component에서 Spot Light를 추가합니다. https://docs.unrealengine.com/5.1/ko/spot-lights-in-unreal-engine/ 스포트 라이트 스포트 라이트에 대한 기초입니다. docs.unrealengine.com ▣ 카메라에 상속해서 넣어주고 Light 디테일을 손전등 느낌이 나오게 조절합니다. ▣ F키를 누르면 Spot Light가 활성화, 비활성회되는 노드를 완성합니다. ▣ 컴파일 저장 후 F키를 누르면 이렇게 손전등이 나오는 걸 확인할 수 있습니다. 2024. 1. 20. 언리얼엔진5 34장 [Default Land Movement Mode, Set Movement Mode] ▣ 안녕하세요. 이번장에서는 Default Land Movement Mode에 대해 공부해 보겠습니다. 저번장이랑 중복되는 부분이 있습니다. ▣ 먼저 저번장에서 만들었던 Player를 사용하겠습니다. Player는 캐릭터컨트롤러로 생성합니다. ▣ Player에 모양과 카메라위치도 지정합니다. ▣ Prjoect Settings에 Input에 Axis Mappings에 두 개를 생성합니다. W키, S키를 누를 때의 입력, A, D 키를 누를 때의 입력을 각각 생성합니다. ▣ Player에 Event Graph로 들어가서 위에 이미지처럼 코드를 완성합니다. Get Actor Forward Vector함수는 방향에 대한 함수입니다. Add Movement Input함수는 Character Movement를 사용.. 2023. 2. 23. 언리얼엔진5 32장 [Jump] ▣ 안녕하세요. 이번장에서는 블루프린트를 이용해 점프를 하는 함수를 공부해 보겠습니다. ▣ 먼저 저번장에서 사용했던 Player를 사용하겠습니다. ▣ Edit메뉴에 Project Settings에 ▣ Engine메뉴에 Input로 들어가서 Action Mpaaings를 추가합니다. 이름은 Jump로 지정하고 키는 스페이스 키로 지정합니다. ▣ 그리고 Player에 Event Graph로 들어가서 Jump를 검색하면 Input에 Action Events가 있습니다. 클릭해서 생성합니다. ▣ 그리고 또다시 jump라고 검색을 하면 함수 중에 Jump라는 함수가 있습니다. 클릭해서 생성합니다. ▣ 노드를 연결하고 컴파일 저장 ▣ 씬에서 플레이버튼을 클릭하고 스페이스키를 누르면 점프가 되는 걸 확인할 수 있습니.. 2023. 2. 21. 언리얼엔진5 19장 [Break point, Debug, 단축키] ▣ 안녕하세요. 이번장에서는 break point, Debug 그리고 여러 단축키에 대해 공부해 보겠습니다. ▣ 먼저 Window메뉴에서 Place Actors를 클릭합니다. ▣ 그럼 이렇게 왼쪽에 Place Actors에 관한 메뉴가 나옵니다. 여기서 SHAPES버튼을 클릭하고 Cube를 드래그해서 Cube하나를 생성합니다. ▣ Cube를 클릭한 상태에서 Q키, W키, E키, R키를 누르면 여러 모드를 선택할 수 있습니다. ▣ END키를 클릭하면 위에 이미지처럼 Cube가 바닥에 붙는 자석효과가 실행됩니다. ▣ CTRL + D를 클릭하면 그 자리에 같은 엑터를 복사합니다. ▣ LEVEL BLUEPRINT에서 PrintText함수를 생성하고 F9키를 누르면 break Point가 찍힙니다. ▣ 이 상태로.. 2023. 2. 1. 언리얼엔진5 16장 [Reference] ▣ 안녕하세요. 이번장에서는 Reference에 대해 공부해 보도록 하겠습니다. Reference는 참조라는 뜻을 가지고 있습니다. 그런데 Reference를 참조라는 뜻으로 접근하면 어렵습니다. 쉽게 이야기를 하면 Reference는 메모리 주소를 참고한다라는 느낌으로 생각해 주시면 됩니다. 그럼 노드 코드를 만들며 공부해 보겠습니다. ▣ 저번장에서 공부했던 함수를 먼저 생성하겠습니다. 함수의 이름은 Test로 지정하고 Details메뉴에서 Inputs를 하나 추가합니다. 이름은 num1으로 지정해 주시고 데이터형식은 Integer로 지정합니다. 그런 다음에 변수 이름 옆에 화살표 모양이 있습니다. 화살표를 클릭하면 Pass-by-Reference 체크박스가 있는데 이걸 체크합니다. 그럼 매개변수의 값.. 2023. 1. 30. 이전 1 2 다음