| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 언리얼엔진5 #언리얼 클라이언트 프로그래밍
- Harvard
- A* Algorithm
- 백준
- UE_5
- Gas
- Console
- topdownmove
- 헤더 경로
- CS
- 툰쉐이딩
- 원카페#무인카페#카페추천#카페맛집
- 순환 리스트
- 코드리뷰
- Module
- 네트워크 기초
- 폭설 #미친 날씨
- 언리얼
- leetcode
- 오늘밤 세계에서 이 사랑이 사라진다 해도 #독후감 #오열
- build.cs
- c++ 베이직
- STL
- 메테리얼
- CS50
- 브론즈
- Toon Shading
- 언리얼 엔진5 #언리얼 클라이언트 프로그래밍
- C++
- Unreal
- Today
- Total
목록Gas (7)
WN_인생기록
특정 effect가 실행될때 그래픽 에셋같은걸 보여줄때 유용하게 쓰인다. 당연히 레플리케이션 되어서 모든 클라이언트에게 보여질수도 있고, 특정 클라에게만 보여질 수도 있는 이벤트일수도 있다. Cue에 Tag를 붙이면 특정 Tag가 붙여져서 실행되면 Cue에 있는 에셋이 실행되게 만들 수 있다.
Effects는 주로 UObject를 상속받으며, 주로 Attribute의 변화와 Tag 나 cue를 적용하는 기능을 한다. 딱히 로직을 실행하는게 아니기 때문에, 노출된 프로퍼티를 사용하는게 다이다. 주로 BP로 Effect 만들어서 에디터에서 Attribute의 변화를 준다. 변화를 줄때, Duration은 특정 시간동안, 어떠한 주기로 효과를 적용시킬 수 있는지 설정이 가능하다. C++에서는 FActiveGameplayEffectHandle이 중요한데, 특정 액터의 인스턴스를 추적할때 유용하다고 한다. 추적을 통해서 특정 기능을 트리거 하는 경우도 있다. 또한 특정 액터에게만 Effect를 적용하거나 무시할수도 있는 기능도 있다.
AttributeSet이라는 클래스에 들어있는 시스템이다. 먼저 오버라이드를 통해서 특정 Attribute를 만들고, SubObject로 AttributeSet를 추가해준다. 에디터에서 수정도 가능하고, clamp도 가능하고 굉장히 유용하다. Attribute의 변화를 추적하고 추가적인 변화를 줄 수도 있다. 또한 외부 gameplay effect calculation에서도 접근이 가능하다
하나의 키 이며, 많은 목적으로 사용된다. 이 태그를 사용해서 레플리케이션을 가볍게 처리할 수 있다. 태그는 에디터, 데이터 테이블 등 여러 곳에서 자료를 임포트 할 수 있다. 여기에 보관되어 있다. 또한 State를 관리하는데도 편하며 멀티플레이에서 캐릭터의 State가 불에 탔을때, burning이란 태그를 붙여주면 실행되면 특정 구현내용이 실행되도록 할 수도 있다.
테스크에 대한 인스턴스를 만들고 초기화가 진행됨. 테스크가 실행되는 동안 델리게이트를 통해서 메세지를 전송할 수 있다. 세팅이 끝나면 RedayForActivation() 기능을 통해서 TaskComponent를 실행이 가능한데, 블루프린트에서도 설정이 가능하다. 주로 Task는 Montage play와 연관이 많은데, TaskCompoenent가 레플리케이트 시켜주며, 루트 모션의 레플리케이션은 몽타주와 함께 하기 때문에 많이 사용된다. 또한 Task는 Tick으로 사용될 수가 있는데, 반복적으로 할 필요가 있을때 주로 쓴다고 한다., 마지막으로, Task는 재사용성이 높다고 한다.,
GameplayAbility는 UObject를 상속받고 있다.기본적으로 게임플레이의 매커니즘을 위한 자체 로직이라고 보면 된다. 먼저 Ability에 대한 인스턴스Policy를 정해야 하는데, NonInstanced ( 기본 세팅 ) - 인스턴스 오브젝트 안씀, 클래스 기본 함수 바로 사용 함(런타임에 수정할 일 없음)InstancedPerActor ( 액터가 인스턴스를 가짐)InstancePerExecution ( 어빌리티 실행될때만 생성됨) - 그래서 어빌리티 호출전에 인스턴스 생성됨.이렇게 세가지가 있다. GiveAbility를 할때, InstancedPerActor일때 어떻게 생성하는지 저번 포스트에 나와있었다. 다음은 NetExecutionPolicy 이다...
Game Ability System의 약자로 멀티플레이 게임 제작에 있어서 뼈대가 되는 게임 제작 워크플로우다. 멀티플레이에서는 서버와 클라이언트가 동기화가 되어야 하는데, 각각의 로직을 레플리케이션 한다면 서로 작용하는 코드들이 꼬이게 될 것인데, GAS는 각각의 액션에 대한 로직이 따로 구성되어 있으며, 게임플레이 태그라는 것에 의해 레플리케이션을 따로 설정할 수 있다. UAbitlitySystemComponent는 GameAbilityAbility TaskGameplay TagGameplay AttributesGameplay EffectsGameplay CueGameplay Events 라는 큰 틀로 구성되어 있다. UAbitlitySystemComponen..