전체 글

GameProgramer 취업준비 중인 백수 onestone3647@gmail.com
https://youtu.be/-JDrNxF66qM?si=MOYP5CafxU-dsULo 캐릭터나 사물에 가하는 대미지를 처리하는 시스템입니다. 클래스 관계도는 다음과 같습니다. 대상에게 대미지를 전달할 때, 대상에게 Interface_PRDamageable 인터페이스가 존재하는지 확인한 후 존재할 경우 Interface_PRDamageable의 TakeDamage 함수로 대미지의 정보를 나타내는 PRDamageInfo 구조체를 전달합니다. 대미지를 전달하는 PRDamageInfo 구조체의 구조는 다음과 같습니다. Amount: 대미지 양입니다. DamageType: 대미지의 유형입니다. Melee: 근거리 공격으로 인한 대미지입니다. Projectile: 원거리(투사체) 공격으로 인한 대미지입니다. En..
위젯 애니메이션은 시작과 끝에 Delegate를 사용하여 특정 함수를 실행할 수 있습니다. 예를 들어 위와 같이 대미지를 표시하는 폰트는 대미지를 출력한 후 위젯 애니메이션으로 FadeOut 되면서 완전히 사라질 때 위젯 애니메이션의 끝에 선언한 Delegate를 실행하여 폰트를 제거합니다. 이처럼 위젯 애니메이션의 시작과 끝에 Delegate를 사용하여 활용한 코드는 다음과 같습니다. // SampleWidget.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "P..
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Components/UActorComponent/OnRegister/ UActorComponent::OnRegister Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called. docs.unrealengine.com 플레이어 캐릭터에 추가한 ActorComponent에서 플레이어 캐릭터에 접근할 때마다 Cast으로 형을 변환하는 것이 귀찮아질 때 다음과 같이 ActorComponent를 상속 받는 클래스를 생성하여 O..
https://youtu.be/EJNKKzYF0Is AISpawnSystem을 게임 내에서 AI 캐릭터를 ObjectPooling으로 관리하는 컴포넌트입니다. 주요 기능과 역할을 다음과 같습니다. AI 풀 관리 AI 스폰 AI 동적 생성 및 풀링 동적 생성된 AI 캐릭터 관리 AI 풀 관리 AISpawnSystem은 GameMode의 PostInitializeComponents 함수에서 컴포넌트를 초기화하면서 초기 AIPool을 생성합니다. // AProjectReplicaGameMode.h // Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "ProjectReplica.h" #include "GameFramework/Game..
// Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class ProjectReplica : ModuleRules { public ProjectReplica(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "UMG", "NavigationSystem", "AIModule", "Game..
https://youtu.be/8aK99pYxqTs 캐릭터가 적이 공격하는 정확한 타이밍에 회피를 실행하여 회피를 하게 되면 캐릭터를 제외한 모든 것이 시간이 멈춘 것처럼 멈추게 되어 적이 무방비상태가 되는 스킬을 구현해봤습니다. 월드의 시간이 멈춘것처럼 구현하는 것은 GlobalTimeDilation의 값을 조절하여 구현했습니다. 캐릭터가 회피 애니메이션을 재생하면 AnimNotifyState 클래스로 적의 공격을 탐지하는 캐릭터 클래스의 ExtremeDodgeArea Collision을 활성화합니다. 회피하는 동안 캐릭터는 적의 공격의 대미지를 받지 않는 상태이며 적의 공격이 캐릭터에게 닿을 경우 SkillSystem의 ExtremeDodge 스킬을 실행합니다. ExtremeDodge 스킬이 실행되면..
https://youtu.be/rXgSyDD7myg Judgement Cut 스킬의 이펙트 및 범위 피해를 주는 오브젝트(이하 Area)는 캐릭터의 ObjectPoolSystem에서 생성 및 관리하고 있습니다. 게임을 시작하기 전 SkillSystem에서 검기 스킬을 DataTable의 정보를 토대로 스킬을 생성 및 초기화합니다. // SkillSystem.cpp // SkillSystem에서 DataTable의 정보를 토대로 Skill을 생성 및 초기화합니다. TArray UPRSkillSystemComponent::CreateSkillFromDataTable(UDataTable* NewSkillDataTable) { TArray NewConstructSkills; if(NewSkillDataTable..
https://youtu.be/9PE9_3lu3t8 검기 투사체(이하 검기)는 캐릭터의 ObjectPoolSystem에서 생성 및 관리하고 있습니다. 게임을 시작하기 전 SkillSystem에서 검기 스킬을 DataTable의 정보를 토대로 스킬을 생성 및 초기화합니다. // SkillSystem.cpp // SkillSystem에서 DataTable의 정보를 토대로 Skill을 생성 및 초기화합니다. TArray UPRSkillSystemComponent::CreateSkillFromDataTable(UDataTable* NewSkillDataTable) { TArray NewConstructSkills; if(NewSkillDataTable != nullptr) { TArray RowNames = N..
한돌이
Lykan Studio