본문 바로가기

전체 글

(150)         글쓰기    
마우스버튼입력액션 테스트를 위해 뷰포트에 놓왔던 BP_Bullet는 제거합니다. 총알 발사를 위해 프로젝트 Input탭의 바인딩에 Action을 추가합니다. 총알 발사 위치를 설정하기 위해 PlayerPawn헤더파일에 UArrowComponent 포인터변수를 추가합니다. 총알블루프린트는 레벨에 배치되지 않았지만 실시간으로 생성되므로 TSubclassOf라는 자료형으로 선언해야 합니다. UPROPERTY(EditAnywhere) class UArrowComponent* firePosition; UPROPERTY(EditAnywhere) TSubclassOf bulletFactory; 생성자에 firePosition객체를 얻어오는 코드를 추가하고 boxComp에 붙여줍니다. ABullet::ABullet() { // Set ..
C++ Bullet 클래스 생성하기 void ABullet::Tick(float DeltaTime) { Super::Tick(DeltaTime); FVector newLocation = GetActorLocation() + GetActorForwardVector() * moveSpeed * DeltaTime; SetActorLocation(newLocation); } 총알은 키입력을 받을 필요가 없으니 Actor클래스로 만듭니다. 이름은 Bullet으로 합니다. 충돌체와 모양이 필요하므로 C++클래스를 만든후 playerPawn과 마찬가지고 UBoxComponent와 UStaticMeshComponent를 추가해줍니다. Bullet.h public: // Called every frame virtual void Tick(float Delt..
UE5 플레이어 키입력 바인딩하기 프로젝트세팅 엔진 입력바인딩에서 다음과 같이 WASD를 설정해 줍니다. 바인딩된 키입력을 담을 변수 h,v와 처리함수를 playerPawn.h에 private로 선언해줍니다. private: float h; float v; void MoveHorizontal(float value); void MoveVertical(float value); 선언한 함수를 playerPawn.cpp에 구현해줍니다. void APlayerPawn::MoveHorizontal(float value) { h = value; } void APlayerPawn::MoveVertical(float value) { v = value; } 이 처리함수를 바인딩해줍니다. SetupPlayerInputComponent()는 playerPaw..
UE5 Visual Studio Integration Tool 재설치 혹시 intellisence가 작동안하면 Epic Games Laucher 라이브러리에서 엔진 버전밑 설치된 플러그인을 클릭후 Visual Studio Integration Tool을 제거후 다시 설치합니다. 마켓플레이스에서 검색후 설치해줍니다. 설치 완료후 다시 비쥬얼스튜디어 프로젝트 파일을 열면 새로운 위치를 찾았다고 확인하라고 하고 에디터 좌측아래 준비를 누르면 설치를 하고 있으니 완료때까지 잠시 기다려 줍니다. 언리얼과 Visual Studio의 관계가 생각보다 느립니다. 항상 준비가 완료되었는지 메세지를 확인하면서 작업해야 합니다.
플레이어 제작하기 플레이어 클래스 제작하기 C++ 폴더에 C++클래스를 만듭니다. 부모클래스는 Pawn으로 하고 Public 이름을 PlayerPawn으로 합니다. Visual Studio로 가서 리로딩하고 언리얼로 돌아와 라이브코딩을 합니다. 혹시 리컴파일 하라는 메세지가 나타나면 언리얼에디터를 끄고 오른쪽 화살표를 눌러 리빌드 해줍니다. 잘되었으면 언리얼에디터가 다시 로딩 됩니다. 앞으로도 C++클래스의 생성자가 새로 생성되거가 변경되면 이 과정을 반복합니다. playerPawn을 생성했으니 박스충돌체를 추가해 봅시다. playerPawn.h에 맨아래 다음코드를 추가해서 boxComp의 포인터를 준비합니다. public: // Called every frame virtual void Tick(float DeltaTim..
슈팅프로젝트 환경 구성 블루프린트로 만들었던 슈팅프로젝트를 블루프린트대신 C++코드를 이용해서 비행슈팅 게임을 다시 만들어 보겠습니다. 인생 언리얼 이라는 책을 참조했습니다. 우연히 저자인 이영호 선생님한테 하루 배울시간이 있었는데 재미있었습니다. New Level만들기 New Level을 선택후 Empty Level을 선택합니다. Maps폴더에 ShootingMap이라는 이름으로 저장합니다. 기본맵 설정하기 프로젝트파일을 열어 Mpas&Modes탭 우측에 Editor Startup Map항목과 Game Default Map항목을 앞서 만든 ShootingMap으로 지정합니다. GameModeBase클래스 만들기 콘텐츠브라우저 C++Classes폴더에 +Add-NewC++Class로 새 C++클래스를 만듭니다. 부모클래스로 G..
UE5 ENHANCED Input 연습2 프로젝트를 C++로 만들고 이름을 Shooting이라고 한다. C++Class를 하나 만들고 PlayerPawn이라고 한다. VisualStudio가 열리면 프로젝트명+Build.cs를 연다. 여기서는 ShootingBuild.cs이다. PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); 맨 뒤에 , "EnhancedInput"를 추가해준다. 이래야 언리얼 C++에서 EnhancedInput 관련 작업을 할 수 있다. using UnrealBuildTool; public class Shooting : ModuleRules public Shooting(ReadOnlyTargetR..
EnhancedInput 연습 뉴레벨을 Basic으로 만들고 NewInput이라고 저장한다. Contents폴더 아래 Input폴더를 만들고 우클릭 Input>InputAction을 3개 만든다. 이름은 IA_Jump, IA_Look, IA_Move로 저장하는데 IA_Move, IA_Look은 Axis2D로 변경하고 Ctrl-S로 저장해 이름옆의 별표를 지운다. IA_Jump는 단순 트리거 동작이므로 변수를 Bool로 지정한다. 실제 키입력을 받아 맵핑해주는 Input Mapping Context를 만들어 이름은 IMC_Player라고 한다. 파일을 열고 디테일에ㅔ서 Mappings+를 누르고 IA_Jump를 선택후 키보드 SpaceBar를 선택해준다. Mapping+를 눌르 IA_Move를 선택해주고 WASD키를 위해 +를 눌러 4..
UE5 Enhanced Input Enhanced Input은 이전의 'Action And Axis' 매핑과 완전히 역호환 됩니다. Unreal Engine5에서 기존의 Input은 Deprecated 조치되었으며, Enhanced Input을 사용하기를 권장합니다. 입력시스템의 동작 방식 플레이어의 입력은 컨트롤러를 통해 폰으로 전달됨 입력을 컨트롤러가 처리할 수도, 폰이 처리할 수도 있는데, 일반적으로는 폰이 처리하도록 설정 다양한 사물에 빙의하는 게임의 경우 폰이 유리 입력 매핑 컨텍스트 : 입력 매핑 컨텍스트를 이용하여, 런타임에 각 설정에 맞는 입력장치를 설정할 수 있습니다. (예 : 게임패드용 입력 매핑 컨텍스트, 키보드용 입력 매핑 컨텍스트) 입력값 변조(Modifier) : 우리가 AD / WS 입력값을 받아낼 때 이 값을..
카메라컴포넌트작업 https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/UsingCameras/CameraComponents/ 카메라 컴포넌트 작업 블루프린트에 카메라 컴포넌트를 추가하여 오브젝트에 대한 카메라 시점으로 사용하는 방법을 안내합니다. docs.unrealengine.com https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/UsingCameras/SpringArmComponents/ 스프링 암 컴포넌트 사용법 Spring Arm 컴포넌트는 카메라 시야가 막히는 상황을 자동으로 처리하는 데 사용됩니다. docs.unrealengine.com https://docs.unrealengine.com/4...
카메라사용법 https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/UsingCameras/ 카메라 사용법 언리얼 엔진 4 에서 씬에 있는 액터를 찾는 법에 대한 하우투입니다. docs.unrealengine.com 카메라 액터 배치는 모드 메뉴의 기본 탭에서 카메라 액터를 끌어 레벨에 놓으면 됩니다. 레벨에 카메라가 배치되면, 뷰포트에 화면속 화면 창이 생겨 그 카메라의 시야를 확인할 수 있습니다. 창 중앙 상단에는 카메라 이름이 표시되며, 창 좌상단 구석의 핀 아이콘은 창에 고정시키는 (카메라 이외를 클릭해도 화면에 계속 표시하도록 하는) 옵션도 있습니다. 카메라를 선택하면, 디테일 패널이 그 카메라에 관계된 세팅으로 채워지는 것을 확인할 수 있습니다. 아래는..
UE5 C++클래스 Character상속 마켓플레이스에서 Paragon을 검색후 GreyStone을 구매후. Paragon:GreyStone 프로젝트에 추가해준다. 콘텐츠드로워에 다음 Meshes폴더에 Greystone을 Ctrl-C 해 놓는다. C++ Class를 만드는데 부모 클래스는 Character로 하고 이름은 MyCharacter로 한다. MyCharacter.h를 살펴보면 MyCharacter는 Character클래스로 부터 상속 받았다. #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "MyCharacter.generated.h" UCLASS() class TESTUNREALENGINE_API AMyCharacter : public ACharacter ..