[Unreal]#14_AI controller 생성 및 세팅 Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. AI Controller 클래스 1. AI Controller 클래스 생성 1. 우 클릭 -> 새로운 C++ 클래스 생성 2. 모든 클래스 -> AIController를 부모 클래스로 설정 2. C++ 클래스를 상속하는 블루프린트 클래스 생성 1. 우 클릭 -> 블루 프린트 클래스 생성 2. 부모 클래스로 앞서 생성한 AI 클래스(C++)를 부모 클래스로 설정합니다. 3. Auto Possess AI 지정 1. Character 블루프린트 에디터 창 2. Pawn 탭에 있는 "Auto Posses..
[Basic C++] #56_cctype, 대문자+소문자 확인 C++의 라이브러리 중 "cctype"에 대해 알아보겠습니다. cctype 헤더가 제공하는 소문자+대문자 판별 함수에 대한 내용입니다. isdigit, isupper, islower, isspace 1. 헤더 #include 2. 코드 #include #include #include using namespace std; int main() { string str = "aBF c12"; cout
[Unreal_블루프린트]#18_Combat Style, Sword Mode, Wizard Mode Unreal 블루프린트 개발 중 "Combat Style"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Combat Style 열거형 1. 열거형 생성 2. 열거형 선언 1. Unarmed : 비 무장 상태 2. Sword : Sword로 무장한 상태 3. Wizard : Wizard 모드로 무장한 상태 Refactoring "Sword Event" 1. Sword Event 수정 1. Combat Type 열거형의 스위치 노드 현재 무슨 Combat Type 상태를 갖고 있냐에 따라서, Equip 입력 액션(칼을 뽑는 액션)의 방향이 달라집니다. 2. Equip Sword 이벤트 호출..
[디자인 패턴] #10_Sandbox Pattern, 샌드박스 패턴 게임 디자인 패턴 중 "행동 패턴"에 대해 알아보겠습니다. "게임 프로그래밍 패턴"의 12 항목, "하위 클래스 샌드박스"에 해당하는 내용입니다. 샌드박스 패턴 1. 정의 상위 클래스가 제공하는 기능들을 통해서 하위 클래스에서 행동을 정의한다. 2. 상세 내용 * 상위 클래스가 제공하는 인터페이스 없이, 하위 클래스에서 각각의 행동을 정의할 경우? 1. 중복 코드의 문제점 2. 대부분의 외부 코드와 커플링 된다. 3. Too Much Coupling 문제로 외부에서 코드를 변경할 경우, 클래스가 깨진다. 4. 모든 하위 클래스가 공통적으로 공유할 불변식을 정의하기 어렵다. * 기본적인 구현 방법? 원시 명령을 상위 클래스의 "protec..
[Unreal_블루프린트]#8_Attack, EndAttack Unreal 블루프린트 개발 중 "Armed Chracter Animation"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Attack 구현 1. Action Mapping 추가 2. Attack 애니메이션 몽타주 생성 1. Montage를 생성하고자 하는 Animation Asset 우 클릭 2. 생성 -> 애님 몽타주 생성 2. Attack 입력 이벤트 구현 1. "bAttack"이 False 일 때만 "Attack" 구현 2. "Drawn" 이 True 일 때, 즉 무장 상태 일 때 "bAttack"을 True로 설정 3. "Play Anim Montage" 이벤트 생성 후 미리 생성한 "Montage"를 지정해줍니..
[Unreal_블루프린트]#7_무기 장착, Armor Unreal 블루프린트 개발 중 "Armed Chracter Animation"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. 무기 에셋 1. 무기 애셋 이주, Migration 2. Socket 추가 1. 스켈레톤 메시 -> 스켈레톤 트리 2. "Hand_R"과 "Thigh_L"에 각각 소켓을 추가해줍니다. Spawn Actor 1. Spawn Actor By Class 이벤트 구현 1. BeginPlay 이벤트 생성 2. Spawn Actor By Class 노드 생성 및 연결 3. Spawn할 Actor 클래스를 설정합니다. 4. Actor를 Spawn 할 위치와 Owner를 연결합니다. 5. Collision Holding O..
[Unreal_블루프린트]#6_Orient Rotation To Movement, 가속 방향에 회전 맞추기 Unreal 블루프린트 개발 중 "Armed Chracter Animation"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. 무장 상태의 회전 1. Unarmed -> Armed 2. Armed -> Unarmed *Orient Rotation To Movement? Rotation Rate를 회전 양으로 사용하여 캐릭터가 가속되는 방향으로 회전을 합니다. 비 무장 상태에서 Pawn이 오른쪽 혹은 왼쪽으로 방향을 전환할 때, 카메라는 회전하지 않습니다, 반면에, 무장 상태에서 Pawn이 오른쪽 혹은 왼쪽으로 전환할 때, 카메라도 같이 회전합니다.
[BOJ 알고리즘, C++] #10815_숫자 카드, 이진 탐색, Binary Search BOJ 알고리즘 문제 풀이, 10815_숫자 카드 이분 탐색을 통해 주어진 숫자 카드가 존재하는지 탐색합니다. Overview 문제 풀이 코드 #1. 문제 #2. 풀이 1. 이진 탐색(Binary Search) Details [정의] : 정렬된 원소 목록을 반으로 나누어 찾고자 하는 원소와 중심이 되는 원소를 비교하고, 작다면 왼쪽으로 크다면 오른쪽으로 중심 원소를 옮겨서 반복적으로 비교 작업을 수행합니다. 시간 복잡도는 O(log n)으로 선형 탐색보다 뛰어난 성능을 보여줍니다! 다만 몇 가지 단점들이 물론 존재합니다! [특징] : 정렬 상태의 자료구조에서만 가능합니다. 그리고, 연결 리스트에서 사용이 힘듭니다...
[Unreal_블루프린트]#5_Armed Character 추가 세팅 Unreal 블루프린트 개발 중 "Armed Chracter Animation"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. 무장 중 움직임 제어 1. CanMove 변수 생성 2. Event Graph에서 CanMove 세팅 1. "EquipWeapon" 이벤트 발생 시 "CanMove" 변수를 "False"로 세팅합니다. 2. "EquippedWeapon" 이벤트 발생 시 "CanMove" 변수를 "True"로 세팅합니다. 3. "UnequipWeapon" 이벤트 발생 시 "CanMove" 변수를 "False"로 세팅합니다. 4. "UnequippedWeapon" 이벤트 발생 시 "CanMove" 변수를 "Tru..
[BOJ 알고리즘, C++] #1008_C++ A/B, 부동 소수점, precision(), fixed BOJ 알고리즘 문제 풀이, 1008_A/B 나누기 값을 주어진 부동소수점 자리까지 출력하기 문제 풀이 1. stdio 사용 #include int main() { double a; double b; scanf("%lf, %lf", &a, &b); printf("%.13lf", a / b); return 0; } 2. iostream 활용 // 1. std::cout.precision(n) : 실수 전체 자리수를 n까지 표현 double a = 3333.333333; std::cout.precision(6); cout