[Basic C++] #57_동적 메모리 C++의 "동적 메모리"에 대해 알아보겠습니다. "전문가를 위한 C"의 22 항목, "효과적인 메모리 관리"에 해당하는 내용입니다. 동적 메모리 1. 메모리 구조 1. 코드 영역 : 컴파일된 프로그램이 저장되는 영역, ready-only! 2. 데이터 영역 : 전역 변수 및 정적 변수가 저장되는 영역 3. 힙 영역 : 동적으로 할당된 변수를 저장하는 영역 4. 스택 영역 : 함수 매개변수, 지역 변수 및 기타 함수 관련 데이터가 저장되는 영역 2. Heap 정적 메모리와 반대로 힙은 동적 메모리 할당에 사용되는 공간입니다. 동적 메모리 할당이란, 프로그램 실행 중에 메모리 공간을 할당받는 것을 의미하며, 프로그램의 종료와 함께 해제해주어 운영체제에 반납해야 합니다..
[디자인 패턴] #11_타입 객체, Type Object 게임 디자인 패턴 중 "타입 객체"에 대해 알아보겠습니다. "게임 프로그래밍 패턴"의 13 항목, "타입 객체"에 해당하는 내용입니다. 개념 1. 타입 객체 클래스 하나를 인스턴스 별로 다른 객체형으로 표현하며, 앞으로 추가할 새로운 클래스들을 유연하게 만들 수 있게 합니다. 2. 왜 필요한가? #include using namespace std; class Monster { public: virtual ~Monster(); virtual string getAttack() = 0; protected: Monster(int initialHealth):health(initialHealth){} private: int health; }; class Dr..
[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..
[Unreal_블루프린트]#20_Magical Attack Unreal 블루프린트 개발 중 "Wizard Mode"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Fire Ball 1. Hand Fire Ball 블루프린트 생성 Hand Fire Ball은 Player의 Combat Mode가 "Wizard"일 때 장착하는 일종의 Actor입니다! 2. Fire Ball 블루프린트 생성 Fire Ball은 무기로써 활용됩니다! 3. Skeleton에 Socket 추가 같은 Particle System 템플릿이지만, 장착 용(Hand_Fireball)과 투척 용(Throw_Fireball)으로 구분합니다! 4. 투척 용 Fireball의 Use Local Space 해제 투척 용 Fire..
[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_블루프린트]#19_Wizard Animation Unreal 블루프린트 개발 중 "Wizard Mode"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Wizard Animation 1. Wizard 관련 State Machine 생성 1. Animation Blueprint 내부 Anim Graph에서 상태 기계 추가 2. Entry -> Wizard 애니메이션 Blend Space 2. Unarmed Sword 상태 기계 수정 1. Jump 관련 상태들을 별도의 "Jump" 상태 기계로 분리합니다. 2. Combat Type(Unarmed, Sword, Wizard)에 상관없이 Jump를 수행할 수 있도록 합니다. 3. Cache 포즈 생성 1. 기존의 Un..
[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 이벤트 호출..
[Unreal_블루프린트]#17_Particle System, Trailer, 공격 이펙트 Unreal 블루프린트 개발 중 "Particle System"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Particle System 1. Particle System 설정 1. Required -> Duration -> Emitter Loop을 1로 설정 Emitter Loop의 값이 0이면 반복 재생되므로, 1로 설정해줍니다. * 그 외 Lifetime 등의 설정 값들을 변경할 수 있습니다 Particle System 재생 1. Play Last Combo Effect 커스텀 이벤트 구현 1. Play Last Combo Effect 커스텀 이벤트 생성 Sword 관련 이벤트 중 "Swo..
[Unreal_블루프린트]#16_Camera Shake, 카메라 컨트롤 Unreal 블루프린트 개발 중 "Camera Move"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Camera Shake 1. Camera Shake 블루프린트 생성 2. 블루프린트 설정 값 변경 3. Notify 생성 4. Camera Shake 노티파이 구현 1. Get Player Controller(AController) 알다시피, Camera를 조종하는 것은 Controller의 몫입니다. 따라서, 우리는 Get Player Controller를 통해 "Notify"가 심어져 있는 애님 몽타주의 Controller를 가져옵니다. 2. Player Camera Manager(Player Camera Ma..
[Unreal_블루프린트]#15_Combo Attack, 콤보 구현 Unreal 블루프린트 개발 중 "Combo Attack"에 대해 알아보겠습니다. "블루 프린트" 활용에 대한 내용입니다. Notify State 1. Notify State 생성 1. 블루프린트 클래스 -> Anim Notify State 생성 Anim Notify State는 "Begin ~ End" 구간을 설정하는 Notify입니다. Animation 플레이 중 "Begin ~ End" 구간에 진입하면 Notify가 호출됩니다! 2. Enable Next Combo 노티파이 스테이트 생성 및 구현 1. Received Notify Begin : Notify의 시작 지점에서 발동되는 함수 간단하게, BP_Player 객체의 "Enab..