본문 바로가기

언리얼568

언리얼엔진5 AI TakeDamage ▣ 먼저 대미지를 줄 플레이어 c++에서 ApplyDamage() 함수를 사용하기 위해 필요한 #include "Kismet/GameplayStatics.h" 헤더를 추가하고 ApplyDamage() 매개변수에 맞게 코드를 작성합니다.  https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/ApplyDamage?application_version=5.3 U Gameplay Statics/Apply Damage | Unreal Engine 5.4 Documentation | Epic Developer CommunityHurts the specified actor with gen.. 2024. 5. 11.
언리얼엔진5 SpawnAIFromClass ▣ 먼저 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 Inventory DataTable save ▣ 먼저 Blueprint Structure 두 개를 생성합니다. FItemData는 아이템 데이터를 관리하는 구조체이고 FSlot 저장할 아이템 이름과 아이템 수에 관한 구조체입니다.   https://dev.epicgames.com/documentation/ko-kr/unreal-engine/blueprint-variables-in-unreal-engine?application_version=5.3 언리얼 엔진의 블루프린트 변수 | 언리얼 엔진 5.4 문서 | Epic Developer Community값을 가지거나 월드 내 오브젝트나 액터를 참조하는 프로퍼티입니다.dev.epicgames.com   ▣ 아이템에 ItemData를 반환하기 위한 블루프린트 인터페이스를 생성합니다. 생성한 블루프린트 인.. 2024. 5. 6.
언리얼엔진5 c++ CalculateDirection ▣ 애니메이션 블루프린트에 노드처럼 c++ 코드에서도 먼저 Angle 변수선언을 하고 CalculateDirection() 함수를 호출하여 필요한 데이터를 매개변수에 넣고 저장합니다.  ▣ 컴파일 후 애니메이션블루프린트에 스테이트머신에서 블랜드스페이스에 변수에 값을 연결하고 플레이를 하면 방향에 맞게 블랜드스페이스 애니메이션이 실행됩니다. 2024. 5. 5.
언리얼엔진5 c++ CharacterMovement ▣ 먼저 h헤더파일에 CharacterMovementComponent에 데이터를 저장할 변수를 선언하고 GetCharacterMovement()를 대입합니다.   ▣ cpp파일에서 필요한 헤더를 추가하고  ▣ CharacterMovement변수를 접근하여 변경하고 싶은 Speed를 대입해서 변경하면 됩니다. 2024. 5. 4.
언리얼엔진5 c++ AIController(Focus, Move) ▣ 먼저 AiController c++ 코드를 생성합니다.   ▣ 그리고 생성한 c++ AiController를 상속한 블루프린트도 생성합니다.   ▣ 적 블루프린트에 들어가서 디테일탭에 Ai Controller Class를 아까 생성한 AiController 블루프린트로 지정합니다.   ▣ AiController c++ 코드에. h 헤더파일로 들어가서 BeginPlay(), Tick() 함수를 선언하고 함수 정의까지 진행합니다.   ▣. cpp 파일로 가서 #include "Kismet/GameplayStatics.h"를 선언합니다. 그리고 Tick() 함수에 플레이어 Pawn을 저장하는 코드, Ai 시선처리하는 함수, Ai 이동하는 함수 코드를 완성합니다.  ▣ UGameplayStatics::Get.. 2024. 4. 27.
언리얼엔진5 엘리베이터 ▣ 먼저 엘리베이터 블루프린트를 생성하고 Cube Static Mesh를 활용하여 엘리베이터 틀과 버튼을 상속해서 만듭니다.  ▣ Event Graph에서 Event Custom으로 Event 노드를 생성합니다.   ▣ Move Component To 노드를 활용하여 버튼을 클릭하면 Button이 움직이고 엘리베이터가 위아래로 움직이는 노드를 완성합니다.  ▣ Move Compoent To 노드에 이동 위치 및 보간시간을 조절해서 연결합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Components/MoveComponentTo?application_version=5.3 Move Component ToMove Co.. 2024. 4. 26.
언리얼엔진5 Blend Poses Enum ▣ 먼저 Blueprint에서 Enumeration을 생성합니다. ▣ 그리고 두 개의 Fire State에 대한 Enum 값을 생성합니다. ▣ Player 블루프린트에서 아까 생성한 Enum에 대한 변수를 생성하고 1번 키를 누르면 Pistol 상태, 2번 키를 누르면 Rifle 상태에 대한 노드를 완성합니다. ▣ 애니메이션 블루프린트로와서 Blend와 Enum 이름을 검색하면 Enum에 대한 Blend Poses 노드가 나옵니다. 이걸 선택하고 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/animation-blueprint-blend-nodes-in-unreal-engine?application_version=5.3 언리얼 엔진의 애니메이션.. 2024. 4. 23.
언리얼엔진5 c++ PlaySound ▣ 먼저 언리얼에서 지원하는 소리를 다운로드합니다. https://docs.unrealengine.com/4.27/ko/WorkingWithAudio/Overview/ 오디오 시스템 개요 사운드 큐 노드 기반 오디오 애셋 사용법을 포함해서, 게임내 사운드 재생에 사용되는 오디오 시스템에 대한 개요서입니다. docs.unrealengine.com ▣ 소리를 재생할 c++ 클래스에 들어가서 .h 파일에서 소리에 대한 변수를 선언합니다. ▣. cpp 파일로 가서 소리를 재생하기 함수가 있는 #include "Kismet/GameplayStatics.h"를 선언합니다. ▣ GameplayStatics : 블루프린트와 C++ 모두에서 호출할 수 있는 유용한 게임플레이 유틸리티 함수가 포함된 정적 클래스 https.. 2024. 4. 23.
언리얼엔진5 c++ socket에 StaticMesh 적용 ▣ 먼저 Mesh 스켈레톤에 Socket을 추가하고 총을 프리뷰로 가져와서 회전 및 위치를 지정합니다. ▣ StaticMeshComponent를 추가하기 위해 변수를 먼저 선언부에 선언합니다. ▣ StaticMeshComponent 생성 및 상속 그리고 Sock에 상속할 코드를 완성합니다. ▣ AttachToComponent() 함수 매개변수 끝에 SockName을 지정합니다. https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/GameFramework/AActor/AttachToComponent/ AActor::AttachToComponent Attaches the RootComponent of this Actor to the supplied co.. 2024. 4. 20.
언리얼엔진5 c++ AnimInstance Montage 구르기 ▣ 먼저 가져온 애니메이션에 디테일에서 EnableRootMotion을 체크합니다. 그럼 애니메이션으로 이동되는 경로가 고정됩니다.   ▣ 그리고 애니메이션을 몽타주로 생성하고 애니메이션 블루프린트에 연결까지 진행합니다.  ▣ InputMappingContext에 Rolling에 대한 InputAction을 추가합니다.   ▣ 플레이어 C++에. h 헤더에서 애니메이션 몽타주에 대한 변수, 입력변수, 함수를 선언합니다.     ▣. cpp에서 InputAction에 대한 경로 지정 및 바인딩 코드를 완성하고 Rolling함수 안에서 AnimInstance를 가져와 Montage_Play() 함수를 이용해서 몽타주를 플레이하는 코드를 완성합니다.   https://docs.unrealengine.com/4.. 2024. 4. 18.
언리얼엔진5 c++ Animation(move, jump) ▣ Add C++ Class에서 All Classes를 선택해서 Animinstance를 생성합니다. ▣ Animation Blueprint를 생성하고 밑에 Parent Class에서 아까 생성한 Animinstance를 선택하고 생성합니다. ▣ 플레이어 C++코드로 들어가서 SetAnimInstanceClass를 지정해야 합니다. FClassFinder를 이용해서 Class를 가져오는데 애니메이션블루프린트 경로를 먼저 복사해서 그대로 붙여 넣고 ▣ 위에 있는 경로처럼 필요한 경로만 넣어주시고 Class를 가져오기 때문에 맨 끝에 _C를 추가하고 저장합니다. ▣ 컴파일 후 Player블루프린트에서 Animation 메뉴에 Anim Class를 확인하면 애니메이션 블루프린트 클래스가 추가된 걸 확인할 수 .. 2024. 4. 17.
언리얼엔진5 c++ Camera SpringArm ▣ UPROPERTY() : 변수에 붙은 리플렉션 매크로 ▣ 에디터 접근을 위한 매크로 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-uproperties?application_version=5.3 언리얼 엔진 UProperty 게임플레이 클래스에 대한 프로퍼티 생성 및 구현 관련 레퍼런스입니다. dev.epicgames.com ▣ SpringArm, Camera 컴포넌트를 사용하기 위한 헤더 추가 #include "GameFramework/SpringArmComponent.h" #include "Camera/CameraComponent.h" ▣ CreateDefaultSubobject(컴포넌트 이름) : 구성 요소 또.. 2024. 4. 14.
언리얼엔진5 UMG 불투명 애니메이션 ▣ 위젯블루프린트를 생성하고 불투명하게 해 줄 Text를 생성하고 Animation에서 render opacity를 0, 1로 각각 애니메이션에서 지정합니다. render opacity는 불투명도를 의미합니다. ▣ 레벨블루프린트로 들어가서 Squence노드를 활용하여 두 개를 동시에 호출하여 애니메이션이 재생되고 소리가 나오게 노드를 완성합니다. ▣ Sequence 노드는 한 번의 실행 신호로 일련의 이벤트를 순서대로 발동시키는 노드입니다. 이 노드에는 출력이 몇이든 있을 수 있으며, Sequence 노드가 입력을 받자마자 그 모두가 호출됩니다. 그들 모두 순서대로 지연 없이 호출됩니다. 전형적인 사용자에게는 이 출력들이 동시에 발동된 것처럼 보일 것입니다. 이 예제에서 Sequence 노드는 레벨 시작.. 2024. 4. 12.
언리얼엔진5 타이머 ▣ Get World Delta Seconds 노드를 이용해서 변수에 값을 더해서 타이머를 완성합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Utilities/Time/GetWorldDeltaSeconds?application_version=5.3 Get World Delta Seconds Get World Delta Seconds dev.epicgames.com ▣ 컴파일 저장 후 플레이를 해보면 Float 형식으로 타이머가 출력됩니다. ▣ 이번에는 Delay 함수를 이용해서 1초마다 변수에 +1을 더하는 방식으로 타이머를 완성합니다. ▣ 컴파일 저장 후 1초마다 변수 값이 하나씩 늘어나 출력되는 걸 확인할 수.. 2024. 4. 6.
언리얼엔진5 Ai move to (Ai 랜덤이동, Ai 공격) ▣ Enemy ai를 만들 Character 클래스를 생성합니다. ▣ BP_EnemyAi로 이름을 지정하고 메뉴 들어가서 Mesh를 지정하고 PawnSensing 컴포넌트를 추가합니다. ▣ Event Graph에서 Add Custom Event를 추가하여 Follow Player, RandomMove 두 개 Event를 생성합니다. Follow Player는 플레이어를 발견하면 플레이어를 따라가는 이벤트 RandomMove는 플레이어를 발견하지 않는 상태에서는 랜덤으로 이동하는 이벤트입니다. ▣ Ai move to를 검색하여 Ai move to 노드도 추가합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/BlueprintAPI/AI/AIM.. 2024. 4. 6.
언리얼엔진5 geometry material 모두 적용 ▣ 적용할 geometry Box를 선택하고 Shift + B 키를 누르면 모든 면이 선택됩니다. ▣ 그리고 Suface Materials에 원하는 Material을 넣으면 이렇게 모두 적용되는 걸 확인할 수 있습니다. 2024. 4. 6.
언리얼엔진5 소리 감지 ▣ 감지할 적 Enemy를 Pawn으로 생성합니다. ▣ Static Mesh를 추가하고 Pawn Sensing 컴포넌트를 추가합니다. ▣ 디테일탭에서 소리 감지 영역 값을 지정합니다. ▣ On Hear Noise 이벤트를 추가하고 소리가 감지되면 Line Trace를 쏘는 노드를 완성합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/EventDispatchers/OnHearNoise?application_version=5.3 On Hear Noise On Hear Noise dev.epicgames.com ▣ 소리를 발생시킬 Player블루프린트로 가서 PawnNoiseEmitter 컴포넌트를 추가합니다. 그리고 위.. 2024. 4. 4.
언리얼엔진5 스프라이트 자르기 ▣ Texture에서 오른쪽마우스를 클릭하고 Sprite Actions에서 Extract Sprites 클릭합니다. ▣ Sprite Extract를 설정하고 Extract클릭합니다. ▣ 그럼 이렇게 Sprite로 잘려서 나뉘게 됩니다. 2024. 4. 2.
언리얼엔진5 사다리 시스템 ▣ 사다리 Actor를 생성하고 Static Mesh와 Box Collision Component를 추가합니다. ▣ Box Collision에 Begin Overlap, End Overlap event노드를 각각 추가하고 사다리가 닿게 되면 BP_Player에 isLadder 변수가 True, False가 되는 노드를 연결하고 사다리에서 End 이벤트가 호출되면 Set Movement Mode에서 Walking모드로 다시 돌아가는 노드를 추가합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Pawn/Components/CharacterMovement/SetMovementMode?application_version=5.. 2024. 4. 1.
언리얼엔진5 조준 애니메이션 ▣ BP_Player에서 RifleAim에 대한 입력시스템을 추가하고 isRifleAim에 대한 boolean 변수를 생성합니다. ▣ ABP에 Event Graph에서 BP_Player에 isRifleAim을 Get 해서 ABP에 isRifleAim에 SET을 합니다. ▣ 스테이트 머신을 생성하고 RifleIdle State와 RifleAim을 각각 생성하고 isRifleAim 변수로 조건을 연결합니다. ▣ 그리고 RifleLocomotion을 cached pose에 save해서 연결합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/using-layered-animations-in-unreal-engine?application_versio.. 2024. 3. 26.