포트폴리오

[Unreal_C++_DarkSoul]#21_데이터 변환 Data Table에서 필요한 정보들을 추출하는 '데이터 변환'을 구현합니다. Overview 개요 및 설계 코드 정리 #1. 개요 및 설계 1. 개요 [Unreal_C++_DarkSoul]#4_문제 해결, Data Table 로드 함수 [Unreal_C++_DarkSoul]#4_리팩터링, Data Table 로드 함수, static 멤버 함수 Unreal C++ 개발 중 "Static 멤버 함수를 통한 리팩터링"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Ove webddevys.tistory.com [Unreal_C++_DarkSoul]#15_문제 해결, Data Table 로드 함수 [Unreal_C++_DarkS..
[Unreal_C++_DarkSoul]#20_Level Sequence Cinematic을 재생하는 Level Sequence를 제작하고, Game Play에 삽입합니다. Overview 개요 및 설계 코드 영상 #1. 개요 및 설계 1. 개요 일반 Stage(일반 근거리 공격 객체와 원거리 공격 객체만 나오는 단계)와 Boss Stage(보스 객체가 나오는 단계)의 구별이 필요하다고 판단했으며, 이를 위해 오직 Boss Stage에 발생하는 특별한 연출을 구현해보고자 했습니다. 재생 가능한 Level Sequence를 제작하고, Game Play 중 Player 캐릭터 객체가 일정 위치에 도달하면 Cinematic을 재생합니다. 이때, Level Sequence의 재생은 Game Play와 자연스럽게 ..
[Unreal_C++_DarkSoul]#13_Impact Effect Combo 공격 무기들의 충격 이팩트를 구현합니다. Overview 개요 및 설계 코드 결과 영상 개요 1. 목적 Combo 공격을 수행하는 무기들의 Impact Effect를 구현합니다. Combo 공격 무기의 충돌 이벤트에서 적절한 위치에 Impact Effect를 활성화하는 것이 목표입니다. 2. 설계 먼저, Power 컴포넌트는 데이터 멤버로 속해 있는 무기 클래스에 대한 정보를 Data Table을 통해 전달받습니다. 이때, Power 컴포넌트는 Imapct Effect 정보를 "TArray"에 저장하고, Fname과 bool 자료형은 각각 무기의 Sekeltal Mesh에 별도로 추가한 Socket 이름과 활..
[Unreal_C++_DarkSoul]#12_Targeting 회전 속도 Player의 Targeting 동작 수행 시 발생하는 부자연스러운 회전 속도 문제를 해결합니다. Unreal 포트폴리오 작업 과정을 기록합니다. Overview 문제 해결 결과 화면 문제 Player의 Targeting 동작 수행 과정에서 발생하는 부자연스러운 회전 동작 Player의 Targeting 동작으로 인해 부자연스러운 연출이 불가피합니다. 문제 해결 [Unreal_C++_DarkSoul]#6_기능 구현, Targeting 기능 [Unreal_C++_DarkSoul]#6_Targeting 기능 Player 근방의 적들을 인지하고, 선택된 적 객체를 Focusing 하는 기능을 구현합니다. 포트폴리오 진행 사항을 기록하기 ..
[Unreal_C++_DarkSoul]#11_Parkour(Vaulting) 장애물을 비교적 수월하게 극복하기 위해 Parkour 동작을 구현합니다. Unreal 포트폴리오 작업 과정을 기록합니다. Overview 개요 설계 상세 내용 게임 플레이 화면 개요 1. 목적 Player가 장애물을 보다 자연스럽게 넘어갈 수 있도록 합니다. Player가 기본 동작만으로 극복할 수 없는 장애물들을 키 입력 하나로 보다 수월하게 극복할 수 있도록 합니다. Player의 게임 플레이 과정에서 찾을 수 있는 재미 요소(?)를 추가하기 위함입니다. 2. 개요 먼저, First Person Character를 기준으로 세 가지 Line Tracing을 수행합니다. 세 가지 Line Tracing을 통해 장애물과 FPC과..
[Unreal_C++_DarkSoul]#10_AIController AI의 행동 방식을 정의하는 과정에서 발생한 문제를 해결합니다. Unreal 포트폴리오 작업 과정을 기록합니다. Overview 문제 해결 문제 1. AIController::Tick() void AAIC_CastleKnight::Tick(float DeltaSeconds) { Super::Tick(DeltaSeconds); SetFocus(PlayerPawn); MoveToActor(PlayerPawn, 100.f); if (UKismetMathLibrary::Distance2D(FVector2D(GetPawn()->GetActorLocation()), FVector2D(PlayerPawn->GetActorLocation())) < 2..
[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..
[Unreal_C++_DarkSoul]#4_리팩터링, Data Table 로드 함수, static 멤버 함수 Unreal C++ 개발 중 "Static 멤버 함수를 통한 리팩터링"에 대한 내용입니다. 포트폴리오 진행 사항을 기록하기 위한 포스팅입니다. Overview 문제점 해결 #1. 문제점 1. 내용 Unreal Editor에서 작성한 Player의 "Hit(피격)" 그리고 "Death(죽음)" 애니메이션 정보를 담은 데이터 테이블을 C++로 읽어오는 함수를 작성했습니다. 가독성과 성능이 비교적 나쁘지 않았지만, 중복 코드가 많아서 리팩토링을 하기로 결정했습니다. Data Table의 행 이름을 Player의 공격 모드 이름과 일일이 비교하는 여러개의 조건문로 인해 코드 중복이 발생하는 문제를 발경했..
Hardii2
'포트폴리오' 태그의 글 목록