C++: 백트랙킹(Back Tracking)
백트래킹(Backtracking) 완전 탐색에서 방향에 대한 조건 확인과 포기가 들어간 알고리즘이다. 조건에 맞지 않는다면 더이상 탐색하지 않아 탐색 시간을 줄일 수 있다. 구조 유망성 판단 (Promising) 탐색하고 있는 방향이 찾고자 하는 답의 방향성에 부합하는지 확인한다. ...
백트래킹(Backtracking) 완전 탐색에서 방향에 대한 조건 확인과 포기가 들어간 알고리즘이다. 조건에 맞지 않는다면 더이상 탐색하지 않아 탐색 시간을 줄일 수 있다. 구조 유망성 판단 (Promising) 탐색하고 있는 방향이 찾고자 하는 답의 방향성에 부합하는지 확인한다. ...
그래프 정점(Vertex)의 연결인 간선(Edge)로 이루어진 자료구조이다. 리스트나 트리는 그래프의 특수한 케이스로 볼 수 있으며, 사실상 모든 자료구조의 가장 환원적인 근본에 있는 것이 그래프이다. 종류 그래프의 연결/간선 형태에 따라 크게 몇가지 기준으로 분류할 수 있다. ...
빔 이미터 게임에서 많이 보이는 빔/레이저 형식의 이펙트는 나이아가라에선 빔을 이용해 만들 수 있다. 리본 이미터와 같은 머티리얼을 활용하지만 몇가지 차이점이 있다. 구분 리본 이미터 빔 이미터 기본 목적 움직이는 파티클의 궤적 표현 시작점과...
모듈형 캐릭터 RPG에서 캐릭터마다 장착하는 장비에 따라 외형이 달라지는건 많이 보았을 것이다. 칼이나 무기같은 정적으로 있는 채로 몸에 달리는 물체들도 있겠지만, 옷처럼 캐릭터를 따라 변형되며 움직여야 하는 매쉬들도 있을텐데 각 부위를 모듈로 만들면 이를 쉽게 관리할 수도 있다. 사실적으로 휘날리는 망토나 옷을 원한다면 카오스 클로스(Chaos C...
Gameplay Effect (GE) 내용 보충 Set By Caller를 이용하면 외부에서 전해주는 값에 따라 어트리뷰트를 변경하는 것도 가능하다. // 예: 트랩, 투사체, 스킬 등 외부 객체가 데미지 값을 정해서 GE에 전달하는 경우 FGameplayEffectContextHandle Context = ASC->Make...
Fast Array 언리얼에서 변수의 서버-클라이언트 간의 복제는 Replicated 를 UPROPERTY로 선언할 때 같이 선언함으로서 설정된다. 정수, 실수같은 원시자료형으로 선언된 자료는 복제에 별 부담이 없겠지만, 배열을 복제해야한다면 어떨까? 일반적인 Replicated를 사용하면 배열의 원소중 하나만 바뀔 때 개별 원소만 업데이트 하고 콜백...
누적 합 (Prefix Sum) 미리 전체 합을 구해놓은 후 필요하지 않은 구간만 빼서 O(1)만에 결과를 구한다. 사용 예시 1차원 배열 구간의 합 n개의 배열이 있을 때 같은 사이즈의 다른 배열에 각 인덱스까지의 합을 저장한다. 구간의 합 = prefix[R] - prefix[L] ...
슬라이딩 윈도우(Sliding Window) 투포인터와 유사한 개념이지만, 두 원소의 관계를 보기보단 구간을 판단하는 목적으로 2개의 포인터를 사용할 때 슬라이딩 윈도우라고 말한다. ex)배열속 연속된 5숫자 합의 최대, 동일하지 않은 문자로 이루어진 가장 긴 부분문자열 등 새로 모두 계산해 값을 찾아내기보단...
언리얼 엔진 6를 향한 여정 언리얼 엔진 6의 배경 게임엔진은 여러 툴의 모음집과도 같다. 단적인 예시로, UE5에서는 VFX는 나이아가라, SFX는 메타사운드, 애니메이션은 ABP, 코딩은 BP/C++등 여러 기능이 언리얼 에디터 안에서 다룰 수 있도록 제공한다. 이미 빠르게 기능들이 추가되고 발전하고 있는데 언리얼 엔진 5.8이 공개된 행사에...
Gameplay Effect (GE) AttributeSet에서 설정한 속성들을 어떻게 변경시킬지에 대한 정보를 담는 클래스이다. 일종의 데이터 에셋같은 형태이기에, 에디터상에서 작업하는 비중이 큰편이다. 변화의 시간, 방식, 계산, 중첩등 다양한 요소에 대해 설정할 수 있으며, 생성 후에는 GA나 다른 GAS시스템에서 속성을 변경하는데 사용할 수 있...