본문 바로가기

게임 공부95

[윈도우즈 API 정복] 1. 윈도우즈 프로그래밍 Windows와 Windows API 다 알겠지만 Windows는 마이크로소프트에서 개발한 운영체제이다. 윈도우즈 이전엔 주로 MS-DOS(Disk Operating System)가 사용 되었으며, 가장 표면적인 차이점은 윈도우즈 OS는 사용자 입장에서 직관적인 GUI 환경의 운영체제라는 점이다. 운영체제는 응용 프로그램이 하드웨어 위에서 잘 동작할 수 있도록 도와주는 시스템 소프트웨어이다. 응용 프로그램이 디스크에 존재하는 파일을 읽고 싶다면 하드웨어에게 명령을 내려야 하는데, 이를 운영체제가 도와준다. 단순한 파일 읽기라도 내부적으론 많은 복잡한 과정(명령)을 거치게 되는데, 윈도우즈는 이러한 복잡한 명령 집합을 랩핑하여 간단한(상대적으로) 인터페이스를 구현해 놓았고, 우리는 이를 통해 파일을 쉽게 .. 2023. 5. 23.
[UE4] UWorld::SpawnActorDeferred() https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/UWorld/SpawnActorDeferred/ UWorld::SpawnActorDeferred Spawns given class and returns class T pointer, forcibly sets world transform ( this allows scale as well). docs.unrealengine.com https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Actors/ActorLifecycle/ 액터의 수명 주기 액터가 로드 또는 스폰된 .. 2023. 1. 3.
[UE4] 게임 인스턴스 및 게임 모드 언리얼에서 게임을 실행하는 과정은 크게 다음과 같다. 1. 엔진 초기화 2. 게임 인스턴스(Game Instance) 생성 및 초기화 3. 월드 생성 및 레벨 로드 4. 플레이 엔진 초기화 이후 언리얼은 게임 인스턴스를 생성하고, 초기화 한다. UGameInstance::Init() 게임 인스턴스는 하나의 게임을 관리하는 언리얼 오브젝트이며, 게임과 생명 주기를 함께 한다. 즉 게임이 실행되고 종료될 때까지 계속해서 접근이 가능하며, 중간에 그 메모리가 지워지지 않는다. 게임 인스턴스는 클라이언트 당 1개만 존재하는 것으로 알고 있다. (2개 이상이 필요한 경우가 있는지, 있다면 어떤 경우인지 찾아 보았는데 찾지 못했다.) 이후 월드를 생성하고 게임 모드를 시작하는데 다음과 같은 순서로 함수가 호출된다... 2022. 12. 17.
BlueprintNativeEvent - UFUNCTION 매크로 지정자 UFUNCTION 매크로에 BlueprintNativeEvent 라는 지정자를 넣어줄 수 있다. 이 지정자의 의도는 기본적으로 우리가 C++에서 함수 구현을 할 것이지만, 필요하다면 블루프린트에서 함수 재정의를 할 수 있도록 허락한다는 것이다. 만약 블루프린트에서 재정의를 했다면 재정의된 함수를 호출하고, 재정의가 되어 있지 않다면 기존 C++ 구현 함수를 호출하도록 언리얼 헤더 툴이 무언가 작업을 해준다. 좀 더 자세히 살펴보면, 우선 이 지정자를 사용하고 싶다면, 우리는 총 2개의 함수를 선언해야 한다. 예를 들어 다음과 같이 Func이라는 이름의 함수를 선언하고 싶다면, 추가로 Func_Implementation 이라는 이름의 가상 함수도 선언해야 한다. UFUNCTION(BlueprintNativ.. 2022. 1. 23.
언리얼 빌드 툴, 언리얼 헤더 툴이란? Unreal Build System (UBT) 다양한 빌드 구성으로 빌드 프로세스를 자동화시켜주는 커스텀 툴 추상적인 소스 코드 구조를 만들고, 각 플랫폼에 맞게 프로젝트를 재생성한다. .uproject의 Generate Visual Studio project files가 UBT를 실행하는 명령이다. UBT가 실행되면 현재 프로젝트의 폴더 구조와 소스 파일들을 분석하고 플랫폼에 맞는 개발 도구 환경을 자동으로 생성 Unreal Header Tool (UHT) 언리얼 오브젝트 클래스에 대해 다음과 같은 작업을 UHT가 함 컴파일 전에 클래스를 분석하여 언리얼 오브젝트 정보를 담은 메타 데이터 생성 메타 데이터는 프로젝트 폴더의 Intermediate 폴더에 생성됨 메타 데이터는 UClass라는 클래스에 보.. 2022. 1. 16.
액터와 컴포넌트, 폰 액터(Actor) 액터는 월드(레벨)에 배치될 수 있는 최소 단위다. 액터는 UObject를 상속하는 클래스다. 액터가 컴포넌트를 사용하려면 Root Component를 지정해야 한다. Root Component는 USceneComponent를 상속한 클래스여야 한다. 액터는 Root Component에 지정된 Transform을 사용한다. 컴포넌트(Component) 액터에 탈부착 가능한 하나의 유니크한 특성이다. UActorComponent는 UObject를 상속하는 클래스다. 액터에 직접 attach할 수 있고 재사용가능한 행동을 정의하는 컴포넌트를 위한 베이스 클래스이다. (형체가 없다.) 하지만 그 자체로는 월드에 배치될 수 없고 액터에 부착하는 등 액터를 꾸며주는 성질을 가진다. USceneC.. 2022. 1. 11.