Unreal Engine

반응형
Unreal Engine

[이득우의 언리얼 C++] Chap.03 움직이는 액터의 제작

이득우의 언리얼 C++ 게임 개발의 정석 언리얼 엔진 학습에 목말라하는 게임 개발자에게 단비 같은 언리얼 엔진 프로그래밍 책이다. www.acornpub.co.kr

Unreal Engine

회전과 이동, 다양한 수학 함수를 포함한 FMath

AddForce xyz축의 방향으로 force 힘을 주는것 움직이는데 사용 AddTorqueInDegress xyz축을 기준으로 회전에 힘을 주는것 FMath::[함수] 를 활용한 랜덤값 만들기 하지만 FRand 함수는 0~1 (양수) 이기 때문에 음수의 랜덤값을 출력해주지는 않는다 음수를 위해서는 FrandRange(-500,500) 으로 Range를 붙여준다면 두 숫자 사이의 값을 출력해준다

Unreal Engine

AddActorLocalOffset , AddActorWorldOffset

AddActorLocalOffset = 물체의 xyz방향에 따라 위치 이동 AddActorWorldOffset = 지도의 xyz방향에 따라 위치 이동 (물체가 회전해있어도 고정이다) 이 경우 둘다 오른쪽이 x이기에 어떤것을 사용해도 x축으로 200만큼 가지만 이렇게 돌려놓았을경우 world는 오른쪽으로 200 actor는 위로 200으로 이동하게 되겠다 FRotator rotation = FRotator(x축, y축, z축) AddActorRotation(rotation) 앞서 말한 Offset이 위치를 이동시킨다면 이건 단어 그대로 회전을 의미한다. 풍차라던지 이러한 부분에서 활용할 가능성이 있어보이는 함수이다

Unreal Engine

Collision & sweep

먼저 Sweep(boolean형식) 의 기본값은 false로 따로 콜리젼 등을 설정해주지 않으면 객체끼리의 충돌을 무시한다. 이를 true로 바꿀시 blueprint나 디테일에서 pysics의 유무와 관계없이 충돌판정을 주게된다 하지만 sweep이 true로 되어있어도 콜리전 판정이 앞서는것을 알 수 있다 계속해서 전진하는 다각형구체의 타입은 worldDynamic 이고 콜리전반응은 블록(무시)가 되겠다 따로 생성한 벽의 타입은 woldStatic으로 역시 블록이 디폴트값이다 이때 벽이나 구체의 블록을 상대방의 타입을 겹침 처리한다면, Sweep값이 true일때 멈추는 모습 Sweep가 true이지만 콜리전반응을 겹침으로 설정하여 통과함.

Unreal Engine

콜리전 Collision

콜리전이란 일종의 히트박스이다 만들어둔 Ico의 스태틱매쉬를 봤을때 사각형을 기존의 콜리전은 완벽하게 저 물체의 테두리에 맞아떨어졌지만 정사각형의 콜리전을 설정하고 플레이를 누르게 된다면 그렇다! 이 콜리전이란것은 그 물체가 가지고있는 히트박스로 생각하면 편한것이다 눈에 보이는 저 모형은 꼭짓점으로 서있는것처럼 보이지만 사실은 위의 사진의 정사각형이 히트박스이므로 가능하며, 이 콜리전은 따라서 물체와 정교하게 연결될수록 물리력이 가해졌을때 정교한 반응을 보여줄수있다 (엔진에 부하는 그만큼 더 가해진다)

Unreal Engine

DefaultsOnly + 계속 움직이게 코딩하기

간단하게 간다! 앞서 설명한 InstanceOnly 와 다르게 디폴트 온리의 경우 에디터의 블루프린트 안을 뜻하는것이다! 만들어놓은 월드 오리진과 플로터 로케이션(bool)이 보이지만 여기서는 보이지 않는다 헤더파일에 수정이 가능하도록 작성 이 좌표변수 InitialDirection의 기본설정값을 정해줌 매 프레임당 호출되는 AddActorLocalOffset매게변수로는 FVector , bool형식 , FhitReusult의 포인터 = 주소값이 팔요하다

Unreal Engine

InstanceOnly (Visible, Edit)

EditInstance UPROPERTY 에 있는 매게변수중 Edit과 Visible 의 INSTANCEONLY 에 대해서 공부했다 먼저 EditInstanceOnly의 경우 InitalLocation으로 직접 좌표를 언리얼 엔진에서 좌표를 설정해주어야한다 이때 SetActorLocation은 AActor에 있는 함수이므로 이름을 변경할 수 없다 [ 변경가능한것은 InitialLocation이라 명한것=내가만든 변수명(포인터일까?) Visible UPROPERTY안에 있는 VisibleInstanceOnly의 경우 변수명 PlacedLoaction이라 정의했다 이후에 cpp에서 GetActorLoaction함수를 넣어주었는데 이는 월드에 내가 설정한 좌표랑 별개로 PLAY하였을때 저 PlacedLocat..

Unreal Engine

C++ Actor 생성하기

1.헤더 파일안에 UStaticMeshComponent를 포인터로 StaticMesh라고 명해준다 2.cpp파일내에 포인터로 설정한 staticmesh를 ... 추가예정 블루프린트에서 보면 잘 생성 및 추가되어있는 모습 2. 엑터의 기본위치 설정법 보면 그냥 Float벡터라는 뜻인줄 알았는데 ***라고 불리는 벡터를 3d차원에서 xyz를 정해주는 뭐시기라고 한다 자료형 InitialLocation(변수명) 을 통해 아래의 SetActorLocation에 값을 지정해주므로써 플레이를 누르면 그 위치로부터 시작한다

Unreal Engine

언리얼 오류 VisualStudio 오류 해결방법

강의를 보면 클래스들이 잘 색칠도 되어있고 그런데 도대체가 내 컴퓨터는 뭐가 문젠지 클래스만 겨우 인식하는것 같고 UCLASS()만 봐도 보라색이여야 하는게 흰색으로 정신이 나가버리는줄 알았다... Visual Studio 2019를 설치했었는데 혹시 싶어서 2017으로 다운그레이드 시켰다 삭제는 프로그램 추가 제거에서 삭제하면 잘 삭제가 되며 https://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=o~msft~vscom~older-downloads Azure DevOps Services | 로그인 현재 사용자 환경에서 Microsoft Internet Explorer의 보안 강화 구성이 사용하도록 설정되어 있습니다. 이 보안 강화..

Unreal Engine

Visual Studio 업데이트 후 언리얼 C++ 오류 (해결)

Can't compile C++; "Unable to create child process" 대충 이런 오류가 나면서 잘 되던 (사실 잘 안되어서 업데이트라도 해보자라는 심정으로 업데이트를 했음..) C++가 빌드가 안되는것이다... 한참을 구글로 뒤져보다 래딧에 비슷한 상황인 유저가 해결방안으로 말하길 본인의 프로젝트 폴더 에서 .vs와 Intermediate 를 삭제후 u프로젝트 우클릭- generate visual 어쩌고 를 눌러주면 된다! 따라해봤는데 이제 잘 됩니다 래딧 최고

반응형
빡상이
'Unreal Engine' 카테고리의 글 목록