본문 바로가기

분류 전체보기

(150)         글쓰기    
언리얼 참조 사이트 https://blog.naver.com/PostView.naver?blogId=destiny9720&logNo=220905078054&categoryNo=19&parentCategoryNo=11&viewDate=&currentPage=2&postListTopCurrentPage=1&from=menu&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=2 [1-1] 언리얼 C++ 프로젝트의 구성 안녕하세요. 첫 C++ 강좌네요. ^^ 첫 강좌는 언리얼 C++ 프로젝트의 구성에 대해 정리해보았습니... blog.naver.com https://iamfoodie.tistory.com/1031
MyPawn에서 키입력 받기 MyPawn은 부모 클래스를 Pawn으로 만들었다. Actor와 다른점은 코드를 보면 아래 함수가 추가되어져 있다 // Called to bind functionality to input void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); } 여기에 Edit>프로젝트세팅>Inputs Tab의 InputAxis를 연결해줘야 한다. 우선 InputAxis를 만들자. MyPawn.h에 방금만든 Axis를 이벤트를 선언한다. public: void UpDown(float Value); void LeftRight(float..
스크린디버그메세지 Engine->AddOnScreenDebugMessage() UE_LOG는 콘솔에 표시되는 것이지만 블루프린트 Print 노드 처럼 화면에 메세지를 나타내는 방법도 있다 사용전 #include "Engine.h"를 포함시키고 Engine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello world")); 처럼 사용하면 된다. References Module Engine Header /Engine/Source/Runtime/Engine/Classes/Engine/Engine.h Include #include "Engine/Engine.h" Source /Engine/Source/Runtime/Engine/Private/UnrealEngine.cpp Syntax void AddOnScreenDebugMes..
게임 모드와 게임 스테이트 https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Framework/GameMode/ 게임 모드와 게임 스테이트 Game Mode, 게임 모드와 Game State, 게임 스테이트에 대한 개요입니다. docs.unrealengine.com 플레이중인 게임의 정보를 처리하는 클래스는 크게 Game Mode (게임 모드)와 Game State (게임 스테이트), 둘입니다. 가장 제약이 없다는 게임일지라도 토대가 되는 규칙들이 있으며, 이러한 규칙들이 게임 모드를 이룹니다. 가장 기본적인 수준에서 이러한 규칙에 포함되는 것은 다음과 같습니다: 존재하는 플레이어와 관람자의 수는 물론, 허용된 플레이어와 관람자 최대 수 플레이어가 게임에 들어오는 방식, ..
UE5 GameModeBase GameMode를 연습하기 위해 프로젝트를 새로 만들어 보겠습니다. Games의 Blank템플릿을 선택합니다. 프로젝트 디테일은 C++로 하고 Starter Content를 포함시킵니다. 이름을 GameMode로 하고 Create합니다. 레벨에디터가 열리면 File>New Level을 선택하고 Base를 선택해줍니다. 컨텐트드러워를 열고 컨텐트폴더아래 Maps라는 폴더를 생성해줍니다. 뷰포트롷 돌아와 Ctrl-S를 누르면 레벨을 저장할수 있는데 방금만든 Maps폴더에 DefaultMap이라고 저장합니다. 프로젝트세팅 Maps탭에 Default Maps의 Start Map, Default Map을 방금만든 DefaultMap으로 설정해주면 에디터실행시 자동으로 로딩된다. 레벨에디터 아웃라이너 아래 Deta..
UE5 C Class Rotation 시키기 - AddActorLocalRotation() 인스턴스 생성후 회전하는 클래스를 만들어 보겠다. 부모클래스를 액터로 하고 이름을 RotationActor로 한다. 스스로 돌기만 하면되기 때문이다. Visual Studio로 이동후 모두 다시로드를 클릭해준다. RotationActor.cpp와 RotationActor.h 2개의 파일이 새로 생성되었다. 앞과 동일한 요령으로 RotationActor.h에 다음 코드 추가 UPROPERTY(VisibleAnywhere) UStaticMeshComponent* Mesh; RotationActor.cpp에 Mesh= 부터 추가해준다. ARotationActor::ARotationActor() { // Set this actor to call Tick() every frame. You can turn this..
Unreal5 에러 로딩 해결 방법 C++ 클래스로 프로그램 작성시 언리얼로 로딩을 시작하는것 보다. 비주얼스튜디오 솔루션파일로 시작해야 액터들이 보인다. 물론 앞에서 설명한 방법으로 ctrl+Alt+F11로 라이브코딩해서 나타나게 할 수도 있다. 그런데 어느날 비주얼 스튜디오를 켠후 실행 버튼을 누르니 오류가 뜨면서 이전 버전으로 로딩할껀지 물어보는거다. 언리얼이 로딩되었지만 액터들이 보이지 않았고 그래서 앞의 설명들을 찾아보게 된거다. 결론은 연습중 ClassOnly.cpp에 UE_LOG를 추가하고 밥먹으로 가기위해 프로젝트를 저장하고 컴퓨터를 껏다가 이렇게 된거다. UE_LOG(LogTemp, Warning, TEXT("Current Tick %f"), DeltaTime); 결론은 내가 오타를 쳐서 에러가 난거였고 그 에러 때문에 해..
UE5 생성한 액터 콘텐츠 브라우저에 보이지 않는 경우 해결 방법 언리얼 5에서 액터(Actor)를 생성해보자. 하단의 콘텐츠 드로어에서 C++ 클래스 폴더를 마우스 오른쪽 버튼으로 클릭한 후, 새 C++ 클래스를 누른다. 또는 C++클래스 폴더를 선택한 상태에서 추가 버튼을 눌러도 된다. 액터를 선택하고 다음 버튼을 누른다. 이름을 적당히 지은 다음에 클래스 생성 버튼을 누르자. 프로젝트가 코드에 추가된다. 비주얼 스튜디오가 열리게 되고 컴파일이 시작된다. 콘텐츠 브라우저에 보면 MyActor가 추가된 것을 알 수 있다. 하지만 언리얼을 종료하고 다시 들어오게 되면 MyActor가 사라져있다. 이 경우 선택된 폴더에서 아무 파일이나 클릭해 비주얼 스튜디오를 켠다. 그리고 Ctrl + Alt + F11로 라이브 코딩 컴파일을 새로 하면 된다. 그러면 다시 MyActor..
UE5 빌드 환경 설정 및 컴파일 방법 참고 https://docs.unrealengine.com/5.0/ko/build-configuration-for-unreal-engine/언리얼 5, BuildConfiguration.xml 설정 Build Configuration Configure how the engine is built. docs.unrealengine.com 라이브 코딩 컴파일 - Ctrl + Alt + F11 or Cmd : LiveCoding.Compile 입력 라이브 코딩 해제 후 빌드 - Visual Studio, Ctrl + F5 빌드 환경 설정 언리얼 5에서 c++ 코드를 한 줄만 수정해도 빌드 시간이 매우 오래 걸린다. 아래는 아무 설정도 안하고 액터(MyActor.cpp/h)를 수정하였을 때 걸린 시간과 로그이다...
언리얼 C++ StaticMesh 추가하기 앞의 예제에서 StaticMeshComponent까지 추가했지만 StaticMesh를 레벨에디터에서 추가해줘야 했습니다. 이제 이마저도 C++에서 추가해보겠습니다. AClassOnly::AClassOnly() { // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; Mesh = CreateDefaultSubobject(TEXT("MESH")); RootComponent = Mesh; ConstructorHelpers::FObjectFinder SM(TEXT("/Game/StarterConte..
언리얼 C++ StaticMesh컴포넌트 추가하기 레벨블루프린트에디터에서 인스턴스에 추가했던 스태틱메시컴포넌트를 이제 C++코드상에서 추가해 보겠습니다. ClassOnly.h 맨밑에 아래 2줄을 추가해줍니다. public: // Called every frame virtual void Tick(float DeltaTime) override; UPROPERTY(VisibleAnywhere) UStaticMeshComponent* Mesh; }; UPROPERTY(VisibleAnywhere)는 아래 변수를 리플렉션해주는겁니다. 디테일에 표시되게 해주는거죠. UStaticMeshComponent* Mesh; 컴포넌트의 주소를 담을 포인터를 하나 만들어 줍니다. ClassOnly.cpp를 열어 다음과 같이 아래 2줄을 추가해주빈다. AClassOnly::AC..
C++ 퀵스타트 - 액터움직이기 SetActorLocation() 1 - 필수 프로젝트 구성 런처에서 언리얼 엔진 을 엽니다. 새 프로젝트를 생성하기 가 나타납니다. 새 프로젝트 탭을 클릭한 다음 C++ 탭을 선택합니다. 거기서 기본 코드 를 선택하여 깨끗한 시작점을 확보하고, "시작용 콘텐츠 포함" 설정되었는지 확인합니다. 프로젝트 이름을 지어줘야 하는데, 여기서는 "inflearn" 라 하겠습니다. 이제 프로젝트 생성 을 클릭하여 시작하면 됩니다. 이제 언리얼 에디터 가 새 프로젝트를 열 것입니다. Visual Studio 역시 프로젝트가 만든 솔루션 파일을 열어 로드할 것입니다. 2 - C++ 클래스 생성 언리얼 에디터 에서 File (파일) 드롭다운 메뉴의 New C++ Class... (새 C++ 클래스...) 명령으로 새 클래스를 만들 수 있습니다. 부모를 ..