GameplayCue GameplayCue를 이용하여 VFX를 적용하는 방법에 대해 알아보자. GameplayCue(GC)는 시각 이펙트나 사운드 같은 게임 로직과는 관련이 없는 부가적인 기능을 담당한다. GC에는 두 가지 종류가 있다. 스태틱 게임플레이 큐: 일시적으로 발생하는 특수효과에 사용, Excute 이벤트 발동 액터 게임플레이 큐: 일정 기간동안 발생하는 특수효과에 사용, Add/Remove 이벤트 발동 C++로도 구현할 수 있지만 BP로 구현하는 것이 생산적이다. 또한, GE에서 GC와 연동할 수 있도록 기능을 제공하고 있다. 다른 GAS객체들과는 다르게 GC는 GameplayCueManager가 관리한다. 부가적인 기능이라 그런 것 같다. 또한, GC는 GameplayTag를 통해 간단하게..
전체 글
문제 설명 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 힌트로 주어 각 팀이 스스로 경로를 찾도록 할 계획이다. 라이언은 아래와 같은 특별한 규칙으로 트리 노드들을 구성한다. 트리를 구성하는 모든 노드의 ..
문제 설명 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다. 예를 들어, 학습된 단어들이 아래와 같을 때 go gone guild go를 찾을 때 go를 모두 입력해야 한다. gone을 찾을 때 gon 까지 입력해야 한다. (gon이 입력되기 전까지는 go 인지 gone인지 확신할 수 없다.) ..
UI연동 이전 포스팅에서 GE를 통해 Attribute에 영향을 주는 것까지 구현하였다. 이번 포스팅에서는 Attribute가 GE에 의해 변경되면 UI가 업데이트되도록 구현해 보자. 그러기 위해서는 Helath값을 나타내는 UserWidget을 생성하고 이를 캐릭터에 붙일 수 있게 WidgetComponent를 제작하여 진행할 것이다. UserWidget에서는 ASC로부터 Attribute가 변경될 때 Delegate를 받아 업데이트할 수 있게 구현할 예정이다. UserWidget & WidgetComponent 제작 캐릭터에 HpBar를 붙이기 위해 WidgetComponent가 필요하다. UserWidet에서는 Attribute가 변경될 때마다 업데이트되어야 하기 때문에 캐릭터의 ASC가 있어야 한..
문제 설명 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 사용자라는 이름으로 목록을 만들어서 당첨 처리 시 제외하도록 이벤트 당첨자 담당자인 "프로도" 에게 전달하려고 합니다. 이 때 개인정보 보호을 위해 사용자 아이디 중 일부 문자를 '*' 문자로 가려서 전달했습니다. 가리고자 하는 문자 하나에 '*' 문자 하나를 사용하였고 아이디 당 최소 하나 이상의 '*' 문자를 사용하였습니다. "무지"와 "프로도"는 불량 사용자 목록에 매핑된 응모자 아이디를 제재 아이디 라고 부르기로 하였습니다. 예를 들어, 이벤트에 응모한 전체 사용자 아이디 목록이 다음과 같다면 응모자 아이디..
GameplayEffect 이전 포스팅에서는 Ability에서 AttributeSet의 값을 직접 바꿨다. 이번에는 GameplayEffect를 사용하여 Attribute를 변경해 보자. 이전과 동일하게 공격 판정을 통해 공격에 적중한 타깃에게 피해를 주어야 한다. 여기서 GameplayEffect를 적용하여 간편하게 피해를 주는 로직을 구현할 수 있다. GameplayEffect GameplayEffect(GE)란 게임에 영향을 주는 객체이다. 즉, 게임에 필요한 데이터에 영향을 주는 객체를 말한다. 예를 들어, 지금의 경우 공격에 적중한 타깃의 Health값을 깎아주어야 한다. 이때, Health값을 변경하는 역할을 하는 객체가 GE이다. GE는 보통 AttributeSet과 함께 동작하도록 구성되어..
문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한 사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 풀이 레벨3 문제치고는..