unreal

[Unreal_C++_DarkSoul]#9_Status Effect Weapon의 Skill 공격 시 고유의 Attribute와 매치되는 상태 이상 효과를 구현합니다 Unreal 포트폴리오 작업 과정을 기록합니다. Overview 개요 설계 상세 내용 게임 플레이 화면 개요 1. 상태 이상 효과 각 Weapon은 고유의 Attribute(속성)을 갖도록 합니다. 그리고, 각 Attribute는 Weapon의 스킬 공격 시 피격 대상에게 물리 대미지뿐만 아니라, 특별한 상태 이상 효과를 유발합니다. 예를 들면, 불 속성의 무기는 특정 스킬 공격 시 피격 대상에게 물리 데미지 뿐만 아니라, DoT 데미지를 전달하는 "화상" 효과를 유발합니다. 총 5가지 상태 이상 효과를 구현합니다. "Burn(화상)", "..
[Unreal_C++_DarkSoul]#8_문제 해결, Send Damage 방식 수정 Weapon 클래스가 Power Component를 통해 피격 대상에게 데미지 전달하는 방식을 수정합니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 문제점 고찰 및 해결책 제시 결과 코드 문제점 1. Sword.cpp void ASword::OnCapsuleBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) { CheckNull(O..
[Unreal_C++_DarkSoul]#7_Magic Projectile Player의 "Wizard" 공격 모드에서 활용하는 마법 발사체 개발 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 문제점 문제 해결 문제 해결 후 결과 코드 문제점 1. AMagic::SpawnMagicBall() void AMagic::SpawnMagicBall(const FName& InSocketName) { // Transform AActor* OwnerActor = GetOwner(); CheckNull(OwnerActor); APlayerCharacter* Player = Cast(OwnerActor); CheckNull(Player); FVector SpawnLocation = Pl..
[Unreal_C++_DarkSoul]#6_Targeting 기능 Player 근방의 적들을 인지하고, 선택된 적 객체를 Focusing 하는 기능을 구현합니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 먼저, Player 근방의 적 객체들을 인식합니다. 인식된 적 객체들 중 가장 근거리에 위치한 적 객체를 타게팅합니다. 타게팅 상태에서 "휠"을 올려 현재 타깃이 된 적 객체를 기준으로 시계 방향으로 타게팅 객체를 변경합니다. 더불어, "휠"을 내리면 반 시계 방향으로 타게팅 객체를 변경할 수 있습니다. * Blueprint로 개발한 과정과 세부 내용들은 같습니다. 아래 링크들을 참조하세요 [Unreal_블루프린트]#27_Targeting [Unreal_블루프린트]#27_Tar..
[Unreal_C++_DarkSoul]#5_Target Point, Enemy Spawn 위치 Unreal 포트폴리오 개발 중 "Target Point"를 활용한 Enemy Spawn 위치 지정 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview Enemy 객체를 Level에 배치하기 위해선, 우리는 Editor에서 각 객체의 블루프린트를 찾아가야 합니다. 위 같은 수고로움을 덜기 위해서, Enemy Spawner를 구현합니다. 먼저, 특정 EEnemyType(여러 종류의 적들을 구분하는 열거형)을 데이터 멤버로 갖는 타깃 포인트 클래스를 선언합니다. 게임 모드 클래스는 Level에 배치된 타겟 포인트 객체를 읽고, 지정한 EEnemyType을 스폰합니다. 코드 1. TP_EnemySpa..
[BOJ 알고리즘, C++] #11478_서로 다른 부분 문자열, Set BOJ 알고리즘 문제 풀이, 11478_서로 다른 부분 문자열 문제 Map 컨테이너를 활용하여 문자열이 갖는 총 부분 문자열을 계산합니다. 문제 풀이 Set 컨테이너를 사용하면 아주 간단하게 풀 수 있는 문제입니다. Set 컨테이너의 특징을 간략하게 설명하자면, 중복이 없는 "Key" 값을 원소로 갖는 자료구조입니다. Map과 달리 Set은 Key 값이 곧 Value이며, 간단하게 풀이하면, 중복 없는 항목들을 갖는 컨테이너로 볼 수 있습니다. 코드 #include #include #include using namespace std; // Set 사용 int main() { string str; set s; cin >> str; s..
[Unreal_C++_DarkSoul]#4_리팩터링, Data Table 로드 함수, static 멤버 함수 Unreal C++ 개발 중 "Static 멤버 함수를 통한 리팩터링"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 문제점 해결 #1. 문제점 1. 내용 Unreal Editor에서 작성한 Player의 "Hit(피격)" 그리고 "Death(죽음)" 애니메이션 정보를 담은 데이터 테이블을 C++로 읽어오는 함수를 작성했습니다. 가독성과 성능이 비교적 나쁘지 않았지만, 중복 코드가 많아서 리팩토링을 하기로 결정했습니다. Data Table의 행 이름을 Player의 공격 모드 이름과 일일이 비교하는 여러개의 조건문로 인해 코드 중복이 발생하는 문제를 발경했..
[Unreal_C++_DarkSoul]#3_Custom Structure, Custom Enumeration Unreal C++ 개발 중 "커스텀 구조체 클래스와 커스텀 열거형 클래스"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 임의의 Actor 클래스를 생성합니다. Actor 클래스의 헤더 파일에 사용자 정의 구조체 클래스와 열거형 클래스를 작성합니다. 각 타입의 클래스는 Unreal Editor에 Reflection 하기 위해 "USTRUCT()"와 "UENUM()"을 선언합니다. Custom Enum Class 1. Custom_Enums.h // Fill out your copyright notice in the Description page of Pr..
[Unreal_C++_DarkSoul]#2_Custom Log Class Unreal C++ 개발 중 "Custom Log 클래스"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Custom Log 1. CustomLog.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" /****************************************************************************** 목적: Debugging을 위해 로그 호출 함수가 위치한 함수 이름과 라인을 출력합니다. */*********..
[Unreal_C++_DarkSoul]#1_Interaface 클래스 Unreal C++ 개발 중 "Interface 클래스"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Interface 1. Header File #include "UObject/Interface.h" 2. Definition 3. Why? 두 가지 다른 객체가 공통의 기능을 구현하기 위해 필요한 클래스 다중 상속에 의한 가독성 저하 + 유지 보수성 저하를 방지합니다. 가독성, 유지보수성, 디버깅 효율 상승을 위한 객체지향 프로그래밍 방법 4. How? 새로운 C++ 클래스 생성 -> Unreal Interface 클래스를 부모 클래스로 하위 클래스 생성합니다. "IInterface_Test(임시로 만든 클래..
Hardii2
'unreal' 태그의 글 목록 (3 Page)