일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 시뮬레이션
- 브루트포스
- 백준
- c++
- 유니티
- 다이나믹 프로그래밍
- 투 포인터
- 그래프
- 우선순위 큐
- VR
- ue5
- 유니온 파인드
- 수학
- 알고리즘
- 구현
- 그리디 알고리즘
- XR Interaction Toolkit
- 스택
- 누적 합
- 다익스트라
- 백트래킹
- 자료구조
- Team Fortress 2
- 재귀
- Unreal Engine 5
- BFS
- 정렬
- 트리
- 문자열
- DFS
- Today
- Total
목록2024/07 (7)
1일1알
언리얼 엔진의 GAS(Gameplay Ability System)은 소유하고 발동할 수 있는 능력을 어빌리티라는 개념으로 정의하고 다른 어빌리티 및 액터간의 인터랙션 기능을 제공하는 프레임워크이다. GAS시스템을 학습할 때 감동을 많이 받았고 굉장히 세련된 시스템이라고 느껴서 전부는 아니지만 조금이라도 비슷하게 구현해 놓는다면 앞으로 콘텐츠를 개발할 때 편리하게 할 수 있을 것이라고 생각되었다. 실제 언리얼의 GAS시스템에는 많은 요소들이 존재하지만 일단Gameplay Tag, Gameplay Ability, Ability System Component 이렇게 세가지만 고려하여 구현하였다. Gameplay Ability(GA)는 행동이나 스킬들을 Ability라는 개념으로 묶어놓은 것이다.GA를 상속받아..
개인적으로 Lyra 프로젝트를 분석한 것이고, 틀린 내용이 있을 수 있습니다.UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Lyra|Character", Meta = (AllowPrivateAccess = "true"))TObjectPtr PawnExtComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Lyra|Character", Meta = (AllowPrivateAccess = "true"))TObjectPtr HealthComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Lyra|Character", M..
개인적으로 Lyra 프로젝트를 분석한 것이고, 틀린 내용이 있을 수 있습니다. 오늘은 GameMode를 분석해 보려고 한다. Lyra에서는 ALyraGameMode클래스를 GameMode 클래스로 사용한다. void ALyraGameMode::InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage){ Super::InitGame(MapName, Options, ErrorMessage); // Wait for the next frame to give time to initialize startup settings GetWorld()->GetTimerManager().SetTimerForNextTick(this, &This..
언리얼 5부터는 EnhancedInputComponent를 사용하여 입력을 처리한다.간단하게 설명하면 Input Action에서 행동에 대한 정의를 하고Input Action들을 모아서 Input Action들에 대해 어떤 입력에 대응할지를 정의하는 Input Mapping Context를 만든다.그리고 EnhancedInputComponent에 Input Action에 대응하는 함수를 만들어서 입력에 대한 처리를 한다. 이 EnhancedInputComponent를 Project Settings의 Input탭에서 설정할 수 있는데, Lyra 프로젝트에서는 EnhancedInputComponent를 상속받은 LyraInputComponent를 만들어서 사용하고 있다. templatevoid ULyraIn..
AssetManager란 이름 그대로 애셋, 데이터들을 관리하는 클래스이다.에디터의 Project Settings에서 AssetManager로 사용할 클래스를 지정하면 자동으로 이 클래스가 엔진의 AssetManager로 등록된다. 등록한 클래스는 DefaultEngine.ini파일에 기록된다. /** * ULyraAssetManager * * Game implementation of the asset manager that overrides functionality and stores game-specific types. * It is expected that most games will want to override AssetManager as it provides a good place for ga..
Gameplay Effect (GE)GAS는 게임에 영향을 주는(대부분 게임 데이터를 변경) 객체를 별도로 분리해서 관리하는데, 이것이 Gameplay Effect대부분의 GE와 어트리뷰트는 함께 동작세가지 타입 존재Instant : 어트리뷰트에 바로 적용되는 GE, 한 프레임에 실행됨Duration : 지정한 시간 동안 동작하는 GEInfinite : 명시적으로 종료하지 않으면 계속 동작하는 GEGameplayEffect 클래스를 상속받아서 구현, 함수를 통해 구현되는 기능은 거의 없고 대부분 기본 설정을 통해 사용DurationPolicy를 지정어트리뷰트에 어떻게 적용할지에 대한 명세를 지정해줘야 함, 이것을 Modifier라고 함Gameplay Effect ModifierGE에서 어트리뷰트의 변경 ..