게임 개발 120

[게임 수학] 내적 활용

내적\(\mathbf{A\cdot B=\left|A\right|\left|B\right|\cos\theta}\) 벡터의 내적은 같은 차원의 두 벡터가 주어졌을 때, 벡터를 구성하는 각 성분을 곱한 후 이들을 더해 스칼라를 만들어내는연산입니다. 즉, 두 벡터가 결국 스칼라로 됩니다. 게임에서는 물체를 랜더링 할 때 밝은 곳과 어두운 곳이 생기는데 이것을 계산 할 때 내적이 사용됩니다. 보이지 않는 곳을 제외 할 때도 사용합니다. 전투 판정에서도 앞뒤 판정이나 타겟이 얼마의 각도에 있는지를 알고자 할 때 사용합니다. 앞뒤 판별\(\mathbf{A\cdot B > 0}\) : 두 벡터의 내적의 결과가 0보다 크면 두 벡터가 이루는 각이 예각이므로 캐릭터 앞에 목표물이 있다고 판별 할 수 있습니다.\(\math..

[UE] 언리얼 엔진 AsyncTask 사용

AsyncTask 언리얼 엔진에는 코드를 비동기적으로 실행할 수 있는 AsyncTask라는 유용한 기능이 있습니다. 이 기능은 지정된 스레드에서 특정 코드를 실행하는 방식으로 작동하며, 주로 게임 스레드를 차단하지 않고 즉시 실행하기에는 작업이 너무 무거울 때 사용됩니다. 또한 멀티스레딩으로 인해 발생하는 문제, 특히 한 스레드에서 다른 스레드에서 사용 및/또는 수정하려는 프로퍼티에 액세스하는 문제에 대한 해결책을 제공합니다. AsyncTask(ENamedThreads::AnyThread, []() { // 이 코드는 게임 스레드를 멈추지 않고 비동기적으로 실행됩니다. }); 예를 들어 비동기 작업에 대한 중첩 호출을 만들 수도 있습니다: AsyncTask(ENamedThreads::AnyThread, ..

[UE] BindWidget으로 C++와 UMG 연결

C++에서 Blueprint으로 생성된 위젯을 어떻게 제어할 수 있을까요? 이에 대한 답은 BindWidget 메타 속성입니다. UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UTextBlock* TitleLabel; UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UImage* IconImage; 다음은 예제 코드입니다. BindExample.h #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "BindExample.generated.h" UCLASS(Abstract) class UBindExampl..

[UE] Unreal Engine UObject에서 Tick함수 사용하는 법

https://lykanstudio.tistory.com/83 // Test.h #include "Tickable.h" class PROJECTTest_API UTest : public UObject, public FTickableGameObject { GENERATED_BODY() public: UTest(); public: /** 사용할 Tick함수 입니다. */ virtual void Tick(float DeltaTime) override; /** Tick을 활성화할지 여부를 반환하는 함수입니다. */ virtual bool IsTickable() const override; /** 에디터에서 Tick을 활성화할지 여부를 반환하는 함수입니다. 일반적으로 true를 반환하여 에디터에서도 객체의 Tic..

[UE5] Game Ability System 상세 로그 보기

Game Ability System 소스 코드에는 많은 로깅들이 구현 되어 있습니다. 이러한 로그들은 ABILITY_LOG() 문으로 남기고 있습니다. 로그의 표시 수준 : VeryVerbose < Verbose < Log < Display < Warning < Warning < Error < Fatal 로그 카테고리 별로 표시 수준이 정해져 있으며 표시 수준 보다 낮은 수준은 표시 하지 않습니다. 예를 들어 아래 표에서 LogAbilitySystem 로그 카테고리의 표시 수준이 Display이면 'Display < Warning < Warning < Error < Fatal' 수준의 로그만 표시 됩니다. 로그 카테고리 표시 수준 LogAbilitySystem Display LogAbilitySystem..

[UE5] Game Ability System 디버깅 명령

showdebug abilitysystem 이 기능은 세 개의 "페이지"로 나뉩니다. 세 페이지 모두 현재 가지고 있는 게임플레이 태그를 표시합니다. AbilitySystem.Debug.NextCategory showdebug abilitysystem 명령으로 디버깅을 킨 상태에서 AbilitySystem.Debug.NextCategory 명령으로 세 페이지를 순환할 수 있습니다. AbilitySystem.Debug.PrevTarget 명령으로 이전 페이지로 순회 할 수도 있습니다. 첫 페이지 : 모든 어트리뷰트의 CurrentValue가 표시됩니다. 두 번째 페이지 : 모든 지속 시간 및 무한 게임플레이 이펙트와 스택 수, 해당 이펙트가 부여하는 게임플레이 태그, 부여하는 모디파이어가 표시됩니다. 세 ..