본문 바로가기

[ CODING STUDY ]477

언리얼엔진5 c++ GameMode Default Pawn ▣ 먼저 Game Mode Base C++ 클래스를 생성합니다. ▣ 먼저 클래스 생성자를 선언부에 선언합니다. ▣ 구현부. cpp에서 플레이어. h 헤더를 포함하고 기본 Pawn클래스로 지정할 클래스 경로를 복사하고 그 경로를 가져와서 DefaultPawnClass에 대입합니다. ▣ 컴파일 후 World Settings에 Game Mode를 생성한 C++로 지정하면 Default Pawn Class 가 코드로 지정한 Pawn로 바뀐 걸 확인할 수 있습니다. 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++ EnhancedInput ▣ EnhancedInput 입력 Context와 InputAction을 생성합니다. ▣ Project Settings -> Input -> Default Classess에 EnhancedInput과 Component를 설정했는지 확인합니다. 그리고 플레이어 C++ 코드를 불러옵니다. ▣ 솔루션 탐색기에서 Source폴더에 프로젝트폴더에 프로젝트이름. Build.cs를 찾아서 PublicDependencyModuleNames.AddRange()함수코드에 "EnhancedInput"을 추가하고 저장합니다. ▣ 그리고 플레이어 캐릭터 C++에. h 헤더로 가서 #Include "InputActionvalue.h"를 추가합니다. 이때 빨간 줄로 오류가 나오는 경우가 있습니다. 저장 후 ▣ 프로젝트 경로로 가서.. 2024. 4. 15.
언리얼엔진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 c++ SkeletalMesh 설정 ▣ Tools에서 New C++ Class를 클릭합니다. ▣ Character Class로 선택하고 이름과 경로를 지정한 다음에 생성합니다. ▣ ContructorHelpers는 ObjectBase.h 에 정의되는 특수한 네임스페이스로, 생성자 전용 흔한 동작을 수행하는 데 사용하는 헬퍼 템플릿이 들어 있습니다. 예를 들어, 에셋이나 클래스로의 레퍼런스 검색은 물론 컴포넌트 생성 및 검색용 헬퍼 템플릿이 있습니다. ▣ 사용방법 : ContructorHelpers::FObjectFinder변수이름(TEXT("경로"); 경로는 가져올 Mesh에서 오른쪽마우스를 클릭하고 Copy Reference로 저장한 후에 붙여 넣습니다. https://dev.epicgames.com/documentation/ko-kr/.. 2024. 4. 14.
언리얼엔진5 UMG 불투명 애니메이션 ▣ 위젯블루프린트를 생성하고 불투명하게 해 줄 Text를 생성하고 Animation에서 render opacity를 0, 1로 각각 애니메이션에서 지정합니다. render opacity는 불투명도를 의미합니다. ▣ 레벨블루프린트로 들어가서 Squence노드를 활용하여 두 개를 동시에 호출하여 애니메이션이 재생되고 소리가 나오게 노드를 완성합니다. ▣ Sequence 노드는 한 번의 실행 신호로 일련의 이벤트를 순서대로 발동시키는 노드입니다. 이 노드에는 출력이 몇이든 있을 수 있으며, Sequence 노드가 입력을 받자마자 그 모두가 호출됩니다. 그들 모두 순서대로 지연 없이 호출됩니다. 전형적인 사용자에게는 이 출력들이 동시에 발동된 것처럼 보일 것입니다. 이 예제에서 Sequence 노드는 레벨 시작.. 2024. 4. 12.
언리얼엔진5 spring arm 제어 ▣ spring arm에 위치를 제어해서 카메라 위치를 옮기면 이렇게 spring arm에 대한 충돌이 어느 방향에서는 충돌하되지 않아 벽을 통과하는 문제가 발생합니다. ▣ 이럴 때에는 SpringArm에 위치는 Player Mesh 위치에 있어야 벽을 통과하는 문제가 해결되고 카메라에 위치는 Target Arm Length와 Socket Offset, Target Offset를 이용해서 제어해야 합니다. 먼저 Socket Offset에 위치를 바꿔서 카메라에 위치를 조절하겠습니다. ▣ 그럼 이렇게 벽을 통과하는 문제는 해결되지만 벽이 닿이는 시점에 따라 카메라 위치가 바뀌게 됩니다. ▣ 이번에는 Socket Offset으로 위치를 변경하겠습니다. ▣ 그럼 카메라가 반전되는 문제는 해결되지만 카메라를 가.. 2024. 4. 12.
언리얼엔진5 캐릭터 앉기 ▣ 앉는 키에 대한 Input System을 생성합니다. ▣ 생성한 IA_Crouch노드를 추가하고 오른쪽 마우스를 클릭하여 Crouch라고 검색하여 Crouch 함수와 Un Crouch 함수를 생성합니다. ▣ Crouch함수 : 캐릭터에게 웅크리기 시작하도록 요청합니다. 요청은 CharacterMovementComponent의 다음 업데이트 시 처리됩니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/BlueprintAPI/Character/Crouch?application_version=5.3 Crouch Crouch dev.epicgames.com ▣ Character Movement 컴포넌트에서 Can Crouch를 체크하고 Max W.. 2024. 4. 10.
언리얼엔진5 슬로우모션 ▣ Set Global Time Dilation노드는 전역 세계 시간을 설정하는 노드입니다. 1.0은 일반속도, 1.0보다 크기 되면 전역 세계 속도가 빨라지고 1.0보다 작게 설정하면 전역 세계 속도가 느려집니다. https://docs.unrealengine.com/4.27/en-US/BlueprintAPI/Utilities/Time/SetGlobalTimeDilation/ Set Global Time Dilation Set Global Time Dilation docs.unrealengine.com ▣ Custom Time Dilation 노드는 플레이어 속도를 제어합니다. 단 솔로모드 일 때 가능합니다. 0.5로 설정하면 Half Speed Global Time에 반 속도로 1로 설정하면 Worl.. 2024. 4. 7.
언리얼엔진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 1인칭 3인칭 시점 변경 ▣ 먼저 1인칭 시점 카메라를 Mesh에 추가하고 Sockets을 head 머리로 지정하고 회전값을 시점에 맞게 변경합니다. ▣ Event Graph에서 V키를 누르면 1인칭 3인칭을 활성화 비활성화하는 노드를 완성합니다. ▣ 노드는 디테일탭에 있는 Activate를 체크 및 해제를 해서 조절하기 위함입니다. ▣ V 키를 누르면 이렇게 1인칭 3인칭 시점이 변경되는 걸 확인합니다. 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 material 텍스처 타일링 변경 ▣ 변경하고 싶은 material을 복제합니다. ▣ material 편집 툴에서 오른쪽마우스를 클릭하고 TextureCoordinate를 검색하여 노드를 추가합니다. ▣ TextureCoordinate 는 2채널 벡터값 형태로 UV 텍스처 좌표를 출력하여, 머티리얼에 다른 UV 채널을 사용하거나 타일링을 지정하거나 메시 UV 에 다른 작업을 하거나 할 수 있는 표현식입니다. https://docs.unrealengine.com/4.27/ko/RenderingAndGraphics/Materials/ExpressionReference/Coordinates/ Coordinates 표현식 텍스처 좌표나 텍스처 좌표를 수정 또는 그 자체로 사용할 수 있는 출력값에 어떠한 작업을 하는 표현식입니다. docs.unr.. 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 폰 감지 ▣ 먼저 Enemy Pawn Class를 생성합니다. ▣ Enemy에 Static Mesh를 추가하고 Pawn Sensing 컴포넌트를 추가합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/AI/Components/PawnSensing/GetPeripheralVisionAngle Get Peripheral Vision Angle Get Peripheral Vision Angle dev.epicgames.com ▣ Details에서 Pawn 감지 영역값을 지정합니다. ▣ Evets메뉴에서 On See Pawn 이벤트를 추가합니다. ▣ Find Look at Rotation 노드를 사용하여 플레이어가 감지되면 해당 위치.. 2024. 4. 4.
언리얼엔진5 샷건 시스템 ▣ Line Trace를 여러 개 반복하는 For Loop를 연결하고 End 입력핀에 현재위치 + 방향 * 길이 + 에서 더하기를 하여 x, y, z에 Random Float in Range노드를 사용하여 랜덤으로 x, y, z 값을 넣고 더합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/BlueprintAPI/Math/Random/RandomFloatinRange?application_version=5.3 Random Float in Range Random Float in Range dev.epicgames.com ▣ 그리고 Line Trace에 Hit 하게 되면 먼저 Is Simulating Physics 노드로 Simulating .. 2024. 4. 3.
언리얼엔진5 스프라이트 자르기 ▣ Texture에서 오른쪽마우스를 클릭하고 Sprite Actions에서 Extract Sprites 클릭합니다. ▣ Sprite Extract를 설정하고 Extract클릭합니다. ▣ 그럼 이렇게 Sprite로 잘려서 나뉘게 됩니다. 2024. 4. 2.
언리얼엔진5 나이아가라 날씨 시스템 ▣ Plugins -> Niagara 플러그에서 Niagara라 시스템이 체크되어 있는지 확인합니다. ▣ FX -> Niagara System 생성합니다. ▣ New System을 선택하고 Next버튼을 클릭합니다. ▣ Fountain을 선택하고 Finish 버튼을 클릭하고 NS_ 약자로 생성합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/overview-of-niagara-effects-for-unreal-engine 언리얼 엔진용 나이아가라 이펙트의 개요 이 페이지에서는 언리얼 엔진 5 나이아가라 VFX 시스템의 개요를 설명합니다. dev.epicgames.com ▣ 이미터 스폰(Emitter Spawn) - 이 그룹은 이미터가 GP.. 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.