블루프린트란, 변수, 출력, 주석
연산자, 조건문, 키보드 입력
Flow Control
timeline
blueprint에서 특정 객체 참조
Actor, Pawn, Character
Game mode
collision, simple/complex collision
hit event
UMG
위젯의 색깔, 크기, 위치 등의 속성에 대한 내용
Horizontal/Vertical Box
Grid Panel / Uniform Grid Panel
캐릭터 기본
PlayerController, Cast
Input Action / Input Mapping Context
다양한 종류의 input action
UI 텍스트를 수정하는 방법
키를 누르면 총알이 발사되어 구조물을 부술 수 있는 간단한 게임을 만들어 보고자 한다.
언리얼 엔진을 이용한 게임 개발 방법 두 가지 중 하나인 블루프린트를 이용한 개발을 지금까지 다뤄 보았고 앞으로는 C++을 이용한 개발을 중점적으로 다루고자 한다.
이제는 C++를 이용해서 액터의 변수에 접근하고 액터의 상태를 변경시키는 방법을 알아보자.
이번에는 꽤 중요한 개념인 Tick과 DeltaTime에 대해서 알아보고자 한다.
이번 글에서는 아주 중요한 트레이스라는 개념에 대해서 알아보고자 한다
이번에는 블루프린트 말고 C++를 이용해서 구현해보자
이전 글에서 다룬 트레이스를 이용해서 시선 방향에 위치한 액터를 가져오는 것까지 성공했다. 이제는 특정 키를 눌러서 그 액터에 Grab 동작을 수행해 보고자 한다.
PhysicsHandle로 물체를 잡는 기능을 구현해 보자
C++ 클래스를 생성한 후, 이 클래스로 블루프린트를 만들었을 때 내부 변수들을 블루프린트나 뷰포트 에디터, 혹은 이벤트 그래프에서 조회 및 수정할 수 있도록 하는 UPROPERTY 내부 지정자 몇 가지를 알아보고자 한다.
Enhanced Input을 이용해 이동 구현
이제 실제로 탱크를 움직여 보도록 하자.
이제 탱크의 포신 부분을 회전시키는 것을 구현해 보려고 한다.
특정 콜백 함수를 일정 시간 후에 호출해 주는 타이머
Hit event, Damage event, OnComponentHit, OnTakeAnyDamage, 콜백 함수
UGameplayStatics::ApplyDamage 함수를 이용하면 쉽게 데미지 이벤트를 발생시킬 수 있다.
blend space를 이용한 애니메이션 설정
AI 기능을 구현할 때 필요한 blackboard, behaviortree의 구성요소
조준 위치에 맞게 따라가는 aim offset
State machine (상태 기계)는 컴퓨터 프로그램뿐만 아니라 전자 논리회로를 설계하는 데 쓰이는 모델이다.
재장전 기능을 C++을 이용해서 만들어보자
뼈 단위로 Blend를 수행할 수 있는 'Layered Blend Per Bone' 에 대해서 알아보고, 문제점을 고쳐보자
네트워크를 이용한 멀티플레이어 환경 구축을 시도하기 위해 공식 문서를 정독하며 나름대로 이해한 내용을 재정리하고자 한다.
Online subsystem, Session interface 개요
네트워크 게임플레이에서 액터의 role과 remote role은 '이 액터의 상태를 변경하거나 RPC를 수행할 권한이 어느 기기에 있는가 를 결정한다.
멀티플레이어 대전을 할 때, 아이템에 다가가면 pick up 메시지를 특정 클라이언트에만 출력해보자
RPC (Remote Procedure Call)
서버-클라이언트의 구조를 가진 게임 플레이 환경에서 Replication 이해하기
멀티플레이어 환경에서 서버-클라이언트 간의 game timer를 동기화하는 방법
탄이 약간 퍼져서 발사될 수 있게 해보자.
무작위로 공격 지점을 선택함에 따라 발생하는 비일관성 문제 해결
멀티플레이어 환경의 게임은 필연적으로 지연 시간이 발생한다. 이를 해결할 수 있는 기법 중 하나인 Server side rewind에 대해 다룬다.
멀티플레이어 게임을 구현하기 위한 환경을 구축하는 플러그인을 직접 만들어 사용하고자 한다.
멀티플레이어 게임을 구현하기 위한 환경을 구축하는 플러그인을 직접 만들어 사용
Custom Delegate 생성 및 바인딩, BroadCast
멀티플레이어 게임이라면 채팅이 꼭 있어야지... 채팅 시스템을 만들어봤다.
GAS가 무엇인지 공부해보면서 개인적으로 정리하는 글입니다.
액터의 테두리 색깔을 적용하는 기능을 구현해보자
ASC (Ability System Component)의 replication mode, initAbilityActorInfo 함수의 호출 장소 등
GAS 애트리뷰트를 정의하는 방법, 편하게 사용할 수 있는 Accessor 매크로
GAS 애트리뷰트와 UI에 대해, widget controller의 존재와 독립성 및 단방향 의존성
Gameplay Effect (게임플레이 이펙트)는 GAS에서 어트리뷰트를 변경하기 위한 방법이다.
여러 게임플레이 어트리뷰트를 확인할 수 있는 상태창을 만들어보자.
Gameplay Attribute를 설정하는 데 사용할 수 있는 Curve Table을 CSV(Comma-Seperated Value) 또는 Json 파일로 Ex/Improt하여 사용하면 편리하다.
Gameplay Attribute의 값을 변화시킬 수 있는 Gameplay Effect의 Modifier Magnitude를 직접 만들기
Environment Query System (EQS)는 AI 캐릭터가 환경에서 특정 데이터나 조건을 기반으로 행동을 결정할 수 있도록 돕는다.