접근 제어 (DefaultsOnly + InstanceOnly => Anywhere)VisibleAnywhere : 변수의 값을 블루프린트 에디터와 월드 상 배치된 오브젝트 디테일 패턴에서 값을 보기 가능VisibleDefaultsOnly : 변수의 값을 블루프린트 에디터에서 값을 보기 가능VisibleInstanceOnly : 변수의 값을 월드 상 배치된 오브젝트 디테일 패턴에서 값을 보기 가능 EditAnywhere : 변수의 값을 블루프린트 에디터와 월드 상 배치된 오브젝트 디테일 패턴에서 값을 수정 가능EditDefaultsOnly : 변수의 값을 블루프린트 에디터에서 값을 수정 가능 EditInstanceOnly : 변수의 값을 월드 상 배치된 오브젝트 디테일 패턴에서 값을 수정 가능 블루프린트..
UFUNCTION 매크로
·
Unreal Engine 5/MMORPG 개발
기본BlueprintImplementableEvent : C++에서 구현X, C++에서 호출되면 블루프린트가 호출BlueprintNativeEvent : C++에서 기본 구현 제공, 블루프린트에서 override 가능BlueprintPure : 입력에만 의존 (순수 함수)BlueprintCallable : 블루프린트에서 호출이 가능 네트워크Server : 서버에서 호출 가능Client : 클라이언트에서 호출 가능NetMulticast : 서버에서 호출된 후 모든 클라이언트에서 실행Reliable / Unreliable : 함수 호출이 반드시 전달되어야함(Reliable) 또는 그렇지 않음(Unreliable)을 나타냄 기타Exec : 콘솔 명령으로 실행 가능BlueprintAuthorityOnly : 함..
경량 패턴
·
게임 디자인 패턴
GoF의 디자인 패턴에 기록된 정의는 "공유를 통해 많은 수의 소립객체들을 효과적으로 지원합니다." 입ㄴ디ㅏ. 경량 패턴을 왜 사용하는지 알아보기 위하여 숲을 구현하는 것을 예시로 알아보겠습니다.숲을 구현한다 라는 문장은 수 많은 나무들이 존재하는 숲을 구현한다 라는 뜻이고 그래픽스 프로그래머는 1초에 60번씩 GPU에 전달해야 하는 수백만 개의 폴리곤이 있습니다. 또한 전체 데이터를 CPU에서 GPU로 버스를 통해 전달을 해야합니다. 간단하게 나무에 대한 Class를 제작해보면class Tree{private: Mesh mesh; Texture bark; Vector Position; double heigth; double thickness; Color barkTint;};와 같은 방식으로 구..
명령(Command) 패턴
·
게임 디자인 패턴
GoF 디자인 패턴에서의 명령 패턴에 대한 정의는 "요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다"라고 써있다. 이는 매우 복잡하고 난해하게 써있다고 생각한다. 간단하게 정의하면 콜백을 객체지향적으로 표현한 것이라고 한다. A, B, X, Y키가 존재하는 게임기에 대해 Input Handler를 구현해보자void InputHandler::handleInput(){ if(isPressed(BUTTON_X)) jump(); else if(isPressed(BUTTON_Y)) Swap(); else if(isPressed(BUTTON_A)) fireGun(); else if(isPresse..
Collision 설정에 대한 정리
·
Unreal Engine 5/MMORPG 개발
Collision Enable1. Query : 두 물체 충돌 영역이 겹치는지 테스트 (겹치면 BeginOverlap Event)RayCast, Sweep도 Query기능이다 2. Physics : 물리적 시뮬레이션에 사용 3. Query and Physics : 두 기능 모두 사용 Collision Respones : 다른 체널과의 반응 지정1. Ignore : 충돌 무시2. Overlap : 충돌 무시, 이벤트 발생3. Block : 충돌 감지(이동 막힘) GetCapsuleComponent()->SetCollisionProfileName(TEXT("CharacterCollision"));와 같은 방식으로 캐릭터의 캡슐 컴포넌트에 콜리전설정을 부여할 수 있다. Collision의 디테일 설정에서는 S..