본문 바로가기

전체 글469

[Unreal] Multiplayer Game Study Introduction멀티플레이어 환경에서 GameMode는 서버에 한개!  우선 멀티플레이 세팅으로 바꿔보자 이제 클라이언트가 서버에 접속하면 HUD가 만들어지는 기능을 구현하고 싶다.우선 새로운 PlayerController 클래스를 만들어서 그 곳에 기능을 넣어주자.    게임모드 클래스에 가서 새로 만들어준 player controller class를 넣어주고 ThirdPersonGameMode의 블루프린트 창에 들어가 Event OnPostLogin을 구현해준다.  이제 플레이어가 JumpBoost를 먹는 것을 구현해보자BP_JumpBoost로 들어가서 Replicates에 체크  이때 다음과 같은 에러가 나타나는데 원인은   일반 액터에서 게임모드를 바로 호출해서 부르려고 하기 때문임하지만 게.. 2024. 7. 4.
[Unreal] Delay vs Retriggerable Delay Delay기능: Delay는 지정된 시간만큼 실행을 지연시킨 후, 그 시간이 지나면 다음 노드로 진행합니다.용도: 일정 시간 후에 한 번만 실행되어야 하는 이벤트에 적합합니다. 예를 들어, 플레이어가 버튼을 누르고 나서 특정 행동을 지연시킨 후 실행하고자 할 때 사용할 수 있습니다.  Retriggerable Delay기능: Retriggerable Delay는 Delay와 유사하지만, 지연 시간 중에 다시 트리거되면 지연 시간이 리셋됩니다. 즉, 새로운 트리거가 발생하면 이전에 설정된 지연이 취소되고, 지연 시간이 다시 시작됩니다.용도: 반복적으로 트리거될 수 있는 이벤트에 적합합니다. 예를 들어, 플레이어가 지속적으로 버튼을 누르는 경우, 마지막 버튼 입력 후 일정 시간이 지난 후에만 특정 행동을 실.. 2024. 6. 21.
[Unreal] Widget과 Widget Component Widget은 Transform이 없다! 그래서 Transform이 있는 Widget Component를 써준다.   위의 방식은 위젯 컴포넌트에서 이미 생성된 위젯을 가져오는 방식Cast To 노드를 사용하여 위젯의 타입을 특정 위젯 블루프린트 클래스 (WBP_KISS2024_FinishStepHUD)로 캐스팅캐스팅이 성공하면, 해당 위젯을 변수에 저장하여 이후에 사용할 수 있도록 합니다. 사용 시점:위젯 컴포넌트가 이미 UI에 추가된 경우.기존 위젯을 참조하여 동작을 변경하거나 값을 업데이트하고 싶을 때. * Casting을 왜 해? 캐스팅(Casting)은 객체의 타입을 변환하여 특정 타입에서만 접근 가능한 속성이나 메서드를 사용할 수 있게 하는 작업입니다. Unreal Engine에서는 특히 블루.. 2024. 6. 20.
[Unreal] CPR- HeadPosition 구할 때 계산 방법에 대한 고찰(UpVector vs ForwardVector) 이슈: 1. CPR 할 때 가슴 압박 지점과 머리가 일직선이 되야 함2. 이를 구하기 위해  Layperson에 있는 HeadAngleSpot과 머리(Camera) 사이의 각도를 구함  3. 내가 처음 구현한 방법은 누워있는 사람의 가슴에 붙어있는 파랑색 스팟의 upVector와 머리(Camera)의 위치를 받아와서 두 벡터를 내적 → ACOS → R2D 하는 방식으로 구현하고 있음  계산 과정을 살펴보자 * 내적 공식  여기서 두 벡터는 단위벡터이고, 그럼 cos만 남는다! cos(세타) 값의 범위는 -1에서 1 사이이고, 내가 알고 싶은 것은 각도! 따라서 acos를 해준다. 여기서 주의할 것!acos의 범위는 0이 프로젝트에서는 고려할 필요 없음 다시 본론으로 돌아와서,4. 나는 가슴 패치의 up .. 2024. 6. 12.
[Unreal] 부모 객체의 스케일 변경이 자식 객체의 위치에 영향을 준다 이슈: 부모 객체의 스케일 변경이 자식 객체의 위치에 영향을 줄 수 있음해결 방법: 상위 부모를 따로 만들고 관련된 자식들을 따로 빼거나, 아예 자식에서 빼서 작업하거나 알아서 생각해서 하기  - 트랜스폼 계층 구조자식 객체는 부모 객체의 로컬 좌표계를 기준으로 자신의 트랜스폼을 계산하도록 함  - 로컬 좌표계와 월드 좌표계로컬 좌표계: 자식 객체는 부모 객체의 좌표계를 기준으로 자신의 위치, 회전, 스케일을 정의월드 좌표계: 최종적으로 렌더링되는 위치는 로컬 좌표계를 통해 월드 좌표계로 변환됨부모 객체의 스케일이 변경되면, 자식 객체의 로컬 좌표도 그에 따라 변환됨 - 스케일 변환의 영향부모 객체의 스케일이 변경되면, 자식 객체의 위치는 부모 객체의 스케일을 곱한 값으로 변환됨 ex.원래 부모 객체의 .. 2024. 6. 7.
[Unreal] Custom Event vs Create Event Custom Event정적 이벤트: Custom Event는 블루프린트 내에서 고정된(정적) 이벤트입니다. 특정 상황에서 트리거되도록 설정할 수 있으며, 블루프린트 안에서 다른 노드들과 연결되어 있을 때 주로 사용됩니다.직접 호출: 특정 작업을 수행하기 위해 직접 호출할 수 있습니다.간단한 사용: 기본적인 이벤트 바인딩 및 실행에 사용됩니다.Create Event동적 이벤트: Create Event는 런타임 중에 동적으로 이벤트를 생성하여 바인딩할 때 사용됩니다. 이 방법은 이벤트를 더욱 유연하게 관리할 수 있게 합니다.컨텍스트 바인딩: 특정 객체나 컨텍스트에 따라 이벤트를 바인딩할 수 있습니다.멀티캐스트 지원: 다수의 이벤트 핸들러를 동적으로 바인딩하고 관리할 수 있습니다. 기능 차이고정된 이벤트 vs.. 2024. 6. 5.