목록UE5 (37)
게임 개발 메모장
체크인 (Check-in) 체크인은 변경된 코드 또는 에셋을 프로젝트의 버전 관리 시스템에 반영하는 과정입니다. 변경된 내용을 현재 개발 중인 브랜치나 메인 브랜치에 반영하고 다른 개발자와 공유합니다. 이 과정은 새로운 기능 추가, 버그 수정, 에셋 업데이트 등과 같은 작업을 완료한 후에 이루어집니다. 주로 버전 관리 시스템의 커밋(Commit) 기능을 통해 이루어집니다. 체크아웃 (Check-out) 체크아웃은 프로젝트의 특정 버전이나 브랜치를 개발 환경으로 가져오는 과정입니다. 다른 개발자가 체크인한 최신 변경사항을 가져와 자신의 로컬 환경에서 작업할 수 있게 합니다. 이 과정을 통해 협업자 간에 일관된 작업 환경을 유지할 수 있습니다. 주로 버전 관리 시스템의 체크아웃(Checkout) 또는 클론(..
AbilityTask 정의 GameplayAbility는 한 프레임에서만 실행됩니다. 이는 그 자체로는 많은 유연성을 허용하지 않습니다. 시간이 지남에 따라 발생하거나 나중에 특정 시점에 발동된 델리게이트에 응답해야 하는 액션을 수행하려면 AbilityTask라는 잠재 액션을 사용합니다. GAS에는 다양한 AbilityTask가 기본으로 제공 루트모션 소스로 캐릭터를 이동하는 작업 애니메이션 몽타주 재생 작업 어트리뷰트 변경에 대응하기 위한 작업 GameplayEffect 변경에 대응하기 위한 작업 플레이어 입력에 응답하기 위한 작업 그 외 UAbilityTask 생성자는 게임 전체에 하드코딩된 최대 1,000개의 AbilityTask 동시 실행을 강제합니다. RTS 게임처럼 월드에 수백 명의 캐릭터가 ..
Gameplay Ability 정의 GameplayAbility(GA)는 엑터가 게임에서 할 수 있는 모든 액션 또는 스킬입니다. 예를 들어 전력 질주나 총을 쏘는 등 한 번에 두 개 이상의 GameplayAbility를 활성화할 수 있습니다. Blueprint 또는 C++로 만들 수 있습니다. UGameplayAbility Abilities define custom gameplay logic that can be activated by players or external game logic docs.unrealengine.com GameplayAbility의 예시입니다: 점프 질주 총 쏘기 특정 초마다 수동적으로 공격 차단하기 물약 사용 문 열기 자원 수집 건물 건설 GameplayAbility로 구현..
Attribute 정의 Attribute는 구조체 FGameplayAttributeData에 정의된 실수값입니다. 캐릭터의 체력부터 캐릭터의 레벨, 포션의 충전 수까지 모든 것을 나타낼 수 있습니다. 엑터에 속한 게임 플레이 관련 수치인 경우, Attribute를 사용하는 것을 고려해야 합니다. Attribute는 일반적으로 GameplayEffect에 의해서만 수정해야 ASC가 변경 사항을 예측할 수 있습니다. Attribute는 AttributeSet에 의해 정의되고 그 안에 존재합니다. AttributeSet는 리플리케이션을 위해 표시된 Attribute를 리플리케이트할 책임이 있습니다. 속성을 정의하는 방법은 속성 집합 섹션을 참조하세요. 💡 NOTE: 에디터의 Attribute 목록에 Attri..
게임플레이 어빌리티 시스템은 RPG나 MOBA 타이틀에서 볼 수 있는 유형의 능력(Ability)과 속성(Attribute)을 구축하기 위한 매우 유연한 프레임워크입니다. 게임 내 캐릭터가 사용할 액션이나 패시브 어빌리티 등 이러한 액션의 결과로 다양한 어트리뷰트를 높이거나 낮출 수 있는 상태 효과를 구축하고, '쿨타임' 타이머나 리소스 비용을 구현하여 이러한 액션의 사용을 조절하고, 각 레벨에서 어빌리티의 레벨과 효과를 변경하고, 파티클이나 사운드 효과를 활성화하는 등의 작업을 수행할 수 있습니다. 간단히 말해, 이 시스템을 사용하면 점프처럼 간단한 게임 내 어빌리티부터 최신 RPG 또는 MOBA 타이틀에서 즐겨 사용하는 캐릭터의 어빌리티 세트처럼 복잡한 어빌리티까지 설계, 구현하고 효율적으로 네트워크..
묵시적이란? "직접적으로 말이나 행동으로 드러내지 않고 은연중에 뜻을 나타내 보이는. 또는 그런 것." 매개변수가 한 개인 생성자를 '변환 생성자(Conversion constructor)'라고 하는데 C++에서는 변환 생성자에서 묵시적으로 형변환이 일어나는 경우가 있다. #include using namespace std; class TestClass { public: TestClass(int param) : num(param) { cout
UMG (Unreal Motion Graphic) ( 언리얼의 비주얼 UI 저작 툴 ) UWidget UI에서 가장 기본이 되는 최상위 부모 클래스 SlateWidget을 TWeakPtr로 래핑 UPanelWidget 자식을 가질 수 있지만, UWidget은 자식을 가질 수 없음 패널은 주로 레이아웃을 잡는 용도로 사용 (CanvasPanel, VerticalBox 등) 실제로 화면에 그려지는 건 위젯 (Image, TextBlock 등) UserWidget 사용자가 위젯 블루프린트로 UI를 편집하기 위한 클래스 UserWidget을 상속받은 클래스로 위젯 블루프린트 생성 Widget은 한 틱에 두 번씩 돌아감 1. Prepass 틱에서 자신의 DesiredSize 계산 2. OnPaint()에서 자식들..
https://choi-dan-di.github.io/unreal/optimization-profiling/ [Unreal Engine] 언리얼 엔진 최적화 - 1. 프로파일링 언리얼 엔진의 최적화 방법에 대해 알아보기 choi-dan-di.github.io
Stack : 프로세스의 Stack 메모리 영역 지역변수와 매개변수 데이터 값이 저장되는 공간이며, 메소드 호출시 메모리에 할당되고 종료되면 메모리가 해제되며, LIFO(Last In First Out)구조를 가진다. Queue - OS의 스케쥴러 자원의 할당과 회수를 하는 스케쥴러 역할을 큐가 할 수 있다. 메모리에 적재된 다수의 프로세스 중 어떤 프로세스에게 자원을 할당할 것인가 그 순서를 결정하는 것이 자원의 효율적인 사용에 있고, 가장 단순한 형태의 스케쥴링 정책이 선입선처리(First Com First Served) 즉, 큐라고 볼 수 있다.
- 그래프 전체를 탐색하는 하나의 방법으로써, 현재 정점으로부터 가까운 정점들을 먼저 방문한다. - DFS와 다르게 깊게 파고 드는 것이 아니라, 인접한 정점부터 넓게 탐색한다. - queue(큐)를 이용해서 구현할 수 있다. BFS의 특징 - 정점 방문 시, 반드시 방문 여부(isVisited)를 검사하고, 방문 시 isVisited를 true로 표시한다. - 시간 복잡도(Time complexity) : 인접 리스트로 구현 시 O(V+E) // 인접 행렬로 구현 시 O(V^2) - queue에 다음에 탐색할 정점들을 push하고 pop하는 과정을 거치기 때문에 DFS에 비해서 메모리가 더 필요 하다. - 발견한 경로가 여러 개인 경우에도 최단 경로이며, 발견한 경로가 최단 경로임을 보장한다. 최단 경..