[Unreal]#17_Behavior Tree Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Sequence 1. 화면 2. 기능 컴포짓 노드(합성 노드)입니다. 왼쪽에서 오른쪽으로 하위 노드들을 실행하고, 어느 하나가 실패할 때까지 실행합니다! 하위 노드들 중 어느 하나가 실패하면, 이후에 다른 하위 노드들의 실행도 중지됩니다. 모든 하위 노드들의 성공이 시퀀스의 성공입니다. "가혹한" 노드라고 표현하겠습니다. Selector 1. 화면 2. 기능 Selector 또한 컴포짓 노드입니다. Sequence와 동일하게 왼쪽에서 오른쪽으로 하위 노드들을 실행합니다. 하위 노드들 중 어느 하나가 성공할 때까..
게임개발
[Unreal]#16_Behavior Tree Setting Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Setting 1. Behavior Tree + Bloackboard 블루프린트 생성 2. ShooterAIController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AIController.h" #include "ShooterAIController.generated.h" /** * */ UCLASS() cla..
[Unreal]#15_Line Of Sight, Acceptance Radius of AI Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Acceptance Radius 1. ShooterAIController.h // ShooterAIController.h... #pragma once #include "CoreMinimal.h" #include "AIController.h" #include "ShooterAIController.generated.h" /** * */ UCLASS() class SIMPLESHOOTERNEW_API AShooterAIController : public AAIControl..
[Unreal_블루프린트]#29_Multiple Damage Problem Unreal 블루프린트 개발 중 "Damage 문제" 구현의 수정을 진행합니다. "블루 프린트" 활용에 대한 내용입니다. BP_Combo 1. Send Damage 함수 수정 새롭게 피격당한 Actor를 "Hitted Character" 배열에 삽입합니다. 이미 피격당한 Actor가 존재하는지 Hitted Character 배열을 순회하며 체크합니다 삽입이 모두 완료되면, BP_Weapon::Send Damage()을 호출합니다. 2. OffCollision 커스텀 이벤트 수정 OffCollision 호출은 Weapon의 공격이 모두 끝난 시점에 호출되는 BP_Combo에서 제공하는 이벤트입니다. OffCollision 호출과 함..
[Unreal_블루프린트]#28_Change Targeting Unreal 블루프린트 개발 중 "타게팅" 구현에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Camera Focal Point 1. End Lock On 커스텀 이벤트 생성 2. Tick Lock On, Targeting 액션의 실시간 업데이트 1. Lock Distance 변수 Targeting 입력 액션이 발생할 때마다, 주어진 "최대 범위"를 의미합니다. 2. Set Control Rotation Targeting이 성공적으로 이루어졌을 때, Controller, 즉 Camera의 회전을 Enemy 방향으로 설정합니다. 3. Tick 이벤트 당연하게도, Tick Lock On 이벤트를 호출하기 위해선 Tick 이벤트에..
[Unreal]#15_FText, FString, FName Unreal 개발 중 "FText, FString, FName"에 대해 알아보겠습니다. FName 재사용 시에도 데이터 테이블에 한 번만 저장되어 초경량 시스템을 제공합니다. 대 소문자 구분이 없고, 변경 혹은 조작이 불가능한 특징을 갖고 있습니다. *정적인 속성, *빠른 접근 속도 FText 문자 현지화(Text Localization)를 위한 기초적인 컴포넌트. *Text Localization FString 앞선 두 개와 달리, 조작 및 변경이 가능한 클래스. 제공하는 메서드 또한 다양하며 알고리즘도 다양합니다. *조작 및 변경 가능, *높은 메모리 사용량 변환
[Unreal_블루프린트]#27_Targeting Unreal 블루프린트 개발 중 "타게팅" 구현에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Targeting 1. Get Trace Target 함수 1. Multi Sphere Trace By Objects 최대 Radius 값(Lock On Distance 사용자 정의 변수)을 갖고 Sphere를 생성하여, Sphere와 충돌하는? 범위에 있는 특정 유형의 값을 모두 반환합니다. 2. Add Unique 지정 배열에 항목을 추가하지만, 중복 항목은 추가하지 않도록 합니다. * for each 노드 생성 시 구조체 핀 분할을 통해 항목의 모든 값을 보이도록 합니다. 2. Get Target Enemy 함수 1. Get Dot Pro..
[Unreal_블루프린트]#26_Rolling + Backstep Unreal 블루프린트 개발 중 "특수 이동" 구현에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Jump 액션 이벤트 1. Jump 액션 이벤트 수정 1. State(상태) 값이 Unarmed 일 때만 Jump 하도록 강제합니다. 2. State 값이 Unarmed가 아닌 무장 상태라면 앞으로 생성할 Backstep&Rolling 커스텀 이벤트를 호출해줍니다. Backstep 1. EState에 상태 값 추가 2. Backstep&Rolling 커스텀 이벤트 구현 1. Move Forward < 0? Move Forward가 전달하는 Axis Value가 0보다 작을 때, 즉 뒤로 이동할 때 Backstep&Rollin..
[Unreal_블루프린트]#25_Fist Attack 구현, 맨손 공격 Unreal 블루프린트 개발 중 "맨손 공격" 구현에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. ABP_Player, 애니메이션 블루프린트 * 액션 매핑 추가 관련 내용은 생략하겠습니다. 1. Blend Space 생성 및 구현 가로축 + 세로축 세팅은 이전과 같습니다. 2. Anim Graph 상태 기계 추가 Fist 상태 기계 설정도 이전과 같습니다. 3. Combat Type 열거형 멤버 추가 새로운 상태로 "Fist" 상태를 추가합니다. 4. Blend Pose By ECombat Type 1. Fist 상태 기계의 Cache Pose 생성 2. Blend Pose By ECombatType Socket 1..
[Unreal_블루프린트]#24_Skill UI Unreal 블루프린트 개발 중 "UI" 구현에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Slot 1. Widget 블루프린트 생성 2. 팔레트 구성 1. Desired On Screen 오른쪽 상단의 Full Screen을 Desired On Screen으로 변경 2. Size Box 추가 3. Border 추가 슬롯과 콘텐츠 모두 정렬 상태를 가로 + 세로 채우기 정렬로 설정합니다. 더불어, Padding 값은 10으로 설정합니다. 4. Overlay 추가 위젯을 서로 쌓을 수 있도록 해 주고, 각 레이어의 콘텐츠에 간단한 플로우 레이아웃을 사용할 수 있게 해 줍니다. 이 또한, 슬롯의 Padding 값을 10으로, 정렬 상태를 가..