본문 바로가기
반응형

전체 글454

Unreal 언리얼 데디케이티드 서버(Dedicated Server) 셋팅 (1) [Unreal] 언리얼 데디케이티드 서버(Dedicated Server) 셋팅 (1) 언리얼에서는 멀티 플레이를 위한 데디케이티드 서버와 리슨 서버를 제공합니다.이 글에서는 데디케이티드 서버를 셋팅하는 방법을 설명합니다. 먼저 데디케이티드 서버를 위해서는 Epic Games의 Github에 등록되어 있는 소스 빌드로 마이그레이션 해야한다. 먼저 언리얼 엔진의 GitHub에 접근하려면 계정을 연결해야 합니다.GitHub 계정 연결 방법 ↓ GitHub 내 언리얼 엔진GitHub에서 언리얼 엔진 소스 코드에 액세스하는 방법을 알아보세요www.unrealengine.com GitHub 계정 연결EpicGames에 로그인 후 계정 (Account) 대쉬보드에 들어간다. Github의 CONNECT를 눌러 연결을.. 2023. 11. 14.
Unreal C++ BlueprintNativeEvent, BlueprintImplementableEvent [Unreal/C++] BlueprintNativeEvent, BlueprintImplementableEvent 언리얼에서는 협업을 위한 블루프린트 기능을 제공한다.프로그래머는 기능을 구현해 확인을 받고 수정을 거듭한다.확인 한 번에 "OK"가 떨어진다면 금상첨화겠지만, 대부분의 기능들은 조금씩 수정되기 마련이다.거듭되는 수정에 지친 프로그래머는 관계자에게 직접 수정하라고 하지만 관계자는 C++에 대한 지식이 없다.이 때 필요한 것이 BlueprintNativeEvent와 BlueprintImplementableEvent다. BlueprintNativeEvent는 블루프린트에서 덮어쓸 수 있도록 지정하는 것이다.UFUNCTION(BlueprintNativeEvent) 매크로를 설정한 후 기존에 구현되어 .. 2023. 11. 4.
오일러각(Euler Angle)과 쿼터니언(Quaternion) 오일러각(Euler Angle)과 쿼터니언(Quaternions) 오일러 각은 강체가 놓인 방향을 3차원 공간에 표시하기 위해 레온하르트 오일러가 도입한 세 개의 각도이다. 오일러각은, xyz를 세 축을 기준으로 회전하는 것을 의미한다. 오일러각의 정의 자체가 한 축을 기준으로 돌리는것을 의미하기 때문에 x,y,z 축의 회전연산을 한 번에 할 수 없다. z축을 돌리는 순간 x,y축은 함께 도는 오일러각 시스템상에, 피할 수 없는 유명한 문제점이 하나 있다. 바로 짐벌락 현상이다. 회전을 하다 보면 특정 시점에 한 축이 축 자체의 역할을 잃어버리게 되는 현상을 말한다. 이런 문제들을 보완한게 바로 쿼터니언이다. 사원수(Quaternions)는 아일랜드의 수학자 윌리엄 해밀턴(William Rowan Ham.. 2023. 11. 3.
Unreal C++ Dynamic Delegate (다이나믹 델리게이트) [Unreal/C++] Dynamic Delegate (다이나믹 델리게이트) 언리얼에서는 C++ 에서만 사용할 수 있는 델리게이트와 블루프린트 객체에서도 사용가능한 다이내믹 델리게이트로 나뉜다. 블루프린트 객체와도 연동이 가능한 델리게이트를 언리얼 에서는 다이나믹 델리게이트(Dynamic Delegate)라고 한다. 블루프린트 오브젝트는 멤버함수에 대한 정보를 저장하고 로딩하는 직렬화 매커니즘이 들어있기 때문에 일반 C++언어가 관리하는 방법으로 멤버 함수를 관리할 수 없다.그렇기 때문에 블루프린트와 관련된 C++함수는 모두 UFUNCTION 매크로를 같이 사용해 블루프린트에게 알려줘야한다. 다이나믹 델리게이트- 함수 포인터가 아닌, 함수의 이름을 기반으로 등록해 호출하는 방식이다.- 직렬화(serial.. 2023. 11. 3.
Unreal C++ Custom Event [Unreal/C++] Custom Event  언리얼 엔진에서 이벤트는 멀티캐스트 델리게이트와 매우 유사하다.멀티캐스트 델리게이트처럼 여러 함수를 바인딩하여 동시에 실행시킬 수 있지만, 델리게이트는 외부 클래스에서 실행할 수 있는 반면 이벤트는 해당 클래스에서만 실행시킬 수 있다.즉, public 인터페이스에 노출이 되더라도 Broadcast(), IsBound(), Clear() 함수에 대한 접근이 제한될 수 있습니다. 이벤트 선언  이벤트 바인딩이벤트에 함수를 바인딩 하는 방법은 멀티캐스트 델리게이트의 바인딩 방법과 동일하다. 이벤트 실행이벤트를 사용하면 여러 함수를 연결한 다음 Broadcast()함수를 호출하여 한 번에 모두 실행할 수 있다.이벤트의 경우 Broadcast()해당 이벤트를 정의하.. 2023. 11. 3.
VisualStudio 단축키 정리 [VisualStudio] 단축키 정리 빌드: 널리 사용되는 바로 가기 키 명령 바로 가기 키 명령 ID 솔루션 빌드Ctrl+Shift+B빌드.솔루션빌드CancelCtrl+Break빌드.취소CompileCtrl+F7빌드.컴파일솔루션에서 코드 분석 실행Alt+F11Build.RunCodeAnalysisonSolution 디버그: 널리 사용되는 바로 가기 키   명령 바로 가기 키 [특수 컨텍스트] 명령 ID 함수에서 중단Ctrl+B디버그.함수에서중단모두 중단Ctrl+Alt+Break디버그.모두중단모든 중단점 삭제Ctrl+Shift+F9디버그.모든중단점삭제예외Ctrl+Alt+E디버그.예외간략한 조사식Ctrl+Alt+Q 또는 Shift+F9디버그.간략한조사식다시 시작Ctrl+Shift+F5디버그.다시시.. 2023. 11. 2.
Unreal C++ 언리얼 Delegate 델리게이트 [Unreal/C++] 언리얼 Delegate 델리게이트 Delegate (델리게이트)로 C++ 오브젝트 상의 멤버 함수 호출을 안전한 방식으로 할 수 있다. 델리게이트를 사용하여 임의 오브젝트의 멤버 함수에 동적으로 바인딩시킬 수 있으며, 그 오브젝트에서 함수를 호출할 수 있습니다. 델리게이트 오브젝트는 복사해도 안전하다. 델리게이트는 값으로 전달 가능하지만 heap 에 메모리를 할당해야 하기 때문에 추천하지 않는다.가급적 델리게이트는 참조 전달해야 한다.델리게이트는 싱글-캐스트와 멀티-캐스트 모두 지원된다.다이나믹 델리게이트도 안전하게 Serialize 시킬 수 있다. 델리게이트 선언델리게이트의 선언은 제공되어 있는 선언 매크로 중 하나를 사용한다.사용되는 매크로는 델리게이트에 바인딩되는 함수의 시그.. 2023. 11. 2.
Unreal 컴파일 시 사운드 벨소리 제거 방법 [Unreal] 컴파일 시 사운드 벨소리 제거 방법에디터 개인 설정 -> 레벨 에디터-> Miscellaneous -> 사운드 -> 에디터 사운드 활성화 체크 해제 2023. 11. 2.
Unreal C++ Actor의 충돌 구현 Actor BeginOverlap [Unreal/C++] Actor의 충돌 구현 Actor BeginOverlap Actor로부터 상속받은 클래스는 ActorBeginOverlap 이벤트를 가지고 있다.항상 델리게이트나 이벤트의 함수명은 On으로 시작한다. 충돌하려는 각 액터에 충돌체가 최소 하나 이상 존재해야하고해당 충돌체는 GenerateOverlap 이벤트가 켜져 있어야 충돌 검사가 가능하다. GenerateOverlap 이벤트는 에디터 디테일 패널의 Collision 안에 있다. OnActorBeginOverlap과 OnActorEndOverlap은 다이나믹 델리게이트로 구성되어 있다.OnActorBeginOverlap에서 F12를 눌러 타고 들어가면 Actor.h에 다음과 같이 구현되어 있다.일반 델리게이트는 파라미터의 순서와 .. 2023. 11. 2.
Unreal C++ Draw Debug : 오브젝트 그리기 [Unreal/C++] Draw Debug : 오브젝트 그리기Box, Sphere, Point, Circle, Line, Arrow를 그려본다. DrawDebugSolidBox(GetWorld(), Location[0] + Box.GetCenter(), Box.GetExtent(), FColor::Red);Solid Box : 월드, 중심 위치, 넓이, 색상을 추가한다.DrawDebugSphere(GetWorld(), Location[2], 100, 20, FColor::Blue); Sphere  : 월드, 중심 위치, 반지름, 분할정도, 색상을 추가한다.DrawDebugPoint(GetWorld(), Location[1], 100, FColor::Red); Point : 월드, 중심 위치, 크기, 색상.. 2023. 11. 2.
Unreal C++ 편리한 매크로 함수 위치(__FUNCTION__ ), 호출된 라인(__LINE__ ) [Unreal/C++] 편리한 매크로 함수 위치(__FUNCTION__ ), 호출된 라인(__LINE__ ) __FUNCTION__ : 현재 호출된 함수이름을 나타내는 매크로 __LINE__ : 현재 호출된 해당 라인을 나타내는 매크로 __FILE__ : 파일의 경로를 나타내는 매크로 코딩을 하다보면 클래스와 수많은 코드들을 마주하게 된다.이때 함수의 위치나 호출된 라인이 궁금할 때가 있다.특별한 경우에 찾아야 하거나 에러가 의심될 때 사용하면 편리하다. CLog::Log(__FUNCTION__, __LINE__);위와 같이 구현해두면 편리함을 느낄 수 있다.클래스명과 호출된 함수, 그리고 호출된 라인까지 출력된다. 2023. 11. 2.
Unreal C++ Debug Log (BP:Print String) 출력 방법 [Unreal/C++] Debug Log (BP:Print String) 출력 방법 언리얼 블루프린트에서 Log 를 출력하는 방법은 PrintString을 사용하면 된다.Screen에 출력하는 것과 Log에 출력하는 방법 두가지가 기본적으로 체크되어 있다. 블루프린트에서 PrintString을 진행하면 위와같이 OutputLog 창과 Screen에 출력된 로그를 볼 수 있는데C++에서는 출력 방법이 나뉜다.UE_LOG로 출력하는 방법과 UEngine의 AddOnScreenDebugMessage로 출력하는 방법이 있다.UE_LOG는 define으로 정의되어 있고 Screen은 함수로 구현되어 있다.#include "Engine.h"헤더파일을 추가해야하며 컴파일 시간이 꽤 오래걸릴 수 있다. UE_LOGUE.. 2023. 11. 2.
반응형