본문 바로가기

전체 글145

Unreal Engine GameMode Game Mode란, 게임룰을 관리하는 엑터이다. 예를들어, 어떤 캐릭터가 어디에 스폰되어야 하는지와 멀티플레이어 게임에서는 해당 게임의 플레이어 수 등을 제한할 수 있다. 프로젝트 전체에 대한 게임모드와 월드 오버라이드라는 특정 레벨에 대한 게임모드를 볼 수 있다. 오른쪽에 클래스 를 통해서 월드에 어떤 플레이어를 스폰할지 정할 수 있다. 디폴트 폰 클래스를 BP_ThirdPersonCharacter로 해주고 save 또한 월드 오버라이드 게임모드를 none으로 설정해주어야한다. 그래야 오버라이드 하지 않고 디폴트 모드로 게임세팅이 되기 때문이다. 그 후, 기존 플레이어를 지우고 액터 배치패널을 열어 플레이어 스타트를 추가해주면 여기서 플레이 버튼을 이용해서 게임 테스팅을 진행할 수 있다. 2023. 7. 7.
Unreal Engine 충돌 글리치 Bug fix pushingCube와 충돌했을때 움직일때는 문제가 없으나, 가만히 서서 부딪히는 상황에서 글리치 현상이 발생한다. 캐릭터 코드는 움직이지 않는 한, 콜리전을 확인하지 않게 되어있기 때문이다. 따라서 매 틱마다 캐릭터를 조금씩 이동하되, 원점으로 돌아오도록 하면 된다. 따라서 BP_ThirdPersonCharacter 블루프린트 에디터를 열고, Delta는 얼마나 멀리 움직여줄 것인지에 대한 것이다. Sweep은 이동중에 발생하는 충돌처리를 할 것인지에 대한 것이다. -1 -1 로 하나를 더 연결해준 이유는, 가만히 있는 것 처럼 위치를 고정시키기 위함이다. 이제 스무스하게 충돌시 밀리는 것을 확인할 수 있다. 하지만, 이렇게 고쳐주면 캐릭터 회전에서 항상 정면을 바라보는 문제가 생긴다. 따라서, Get.. 2023. 7. 7.
Unreal Engine 하위 블루프린트 클래스 생성 이전에 C++ 클래스로 Moving Flatform 이라는 액터를 하나 만들었다. 그 하위에 마우스 오른쪽 버튼을 누른 뒤, 블루프린트 클래스를 생성할 수 있다. 다음과 같이, self의 하위에 메시를 덮어서 사용할 수 있다. Actor의 하위 블루클래스 이기 때문에, c++ 코드로도 수정이 가능하다. 이것을 이용해 위로 움직였다 아래로 내려오는 기둥 2개를 만들어봤다. 또한 하위 블루프린트의 좋은 점은 해당 액터를 상속하는 또다른 블루프린트를 만들 수 있다는 것 이다. 2023. 7. 7.
Unreal Engine 움직임 버그 fix 원래 좌우로 움직이던, 코드에 버그가 있어서 수정했다. 버그 내용은 다음과 같았다. 분기문의 DistanceMoved 와 MoveDistance를 비교하기 때문에 빠른 속도로 큰 거리를 이동하면, 내가 생각한 범위보다 더 움직이는 문제가 발생했던 것이었다. 수정된 내용은 다음과 같다. void AMovingFlatform::Tick(float DeltaTime) { Super::Tick(DeltaTime); FVector CurrentLocation = GetActorLocation(); CurrentLocation = CurrentLocation+(PlatformVelocity * DeltaTime); SetActorLocation(CurrentLocation); float DistanceMoved =.. 2023. 7. 7.