Unreal Engine - Data Table
·
Unreal Engine
1. Data Table 만들기Data Table은 언리얼에서 많은 데이터를 처리할 때 사용하기 유용한 방식이다. (CSV 사용 가능)이번 예시는 data table에 actor를 스폰할 위치를 지정해두고, spawner를 통해 해당 위치에 스폰하는 것을 구현해 볼 것이다. 먼저 Data Table을 만들려고 하면, 아래 사진과 같이 먼저 행 구조를 선택하라고 한다.행 구조는 FTableRowBase를 상속받아서 만든 구조체를 사용하면 된다.이때 구조체는 UE 에디터에서 만들 수 없어서, VS에서 따로 파일을 추가하여 만들어 주면 된다.USTRUCT() 매크로와구조체 앞에 F를 붙여주어야 한다.이번 예시에서는 actor가 스폰될 위치와 회전값을 저장했다.#pragma once#include "CoreMi..
TIL day 31
·
TIL
1. 코딩테스트오늘은 프로그래머스 level 2 전력망을 둘로 나누기를 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?트리 구조 + 완전 탐색 + bfs탐색모든 경우의 수를 돌면서 트리 구조로 주어진 데이터를 벡터를 통해서 데이터를 저장한 다음, bfs를 통해서 트리의 갯수를 세서 풀었습니다.좀 더 자세한 과정모든 wires의 경우를 돌면서 한 가지씩 끊어서 adj라는 벡터에 데이터를 저장했습니다. idx라는 변수를 통해 adj에 넣지 않을 데이터를 구분해 주었습니다.n..
TIL day 30
·
TIL
1. 코딩테스트오늘 오전 코딩테스트는 프로그래머스의 level 2 큰 수 만들기를 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?스택이랑 그리디2. 언리얼 과제 진행필수 과제 현재 진행 상황 (Pawn으로 캐릭터 구현하기)Pawn을 상속받아서 캐릭터 만들기Pawn 클래스 생성CapsuleComponent, SkeletaMeshComponent, SpringArm, CameraComponent 를 추가하였고,Root Component 로 CapsuleComponent를 지..
TIL day 29
·
TIL
1. 코딩테스트오늘 오전에는 프로그래머스 level2 의 배달 문제를 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?graph구조로 이루어져있으며, 탐색을 하는 문제였습니다. 탐색에는 bfs를 사용했습니다.먼저 adj라는 벡터를 통해서 모든 노드의 연결 상태를 담아주었습니다.이후 value라는 2차원 배열에는 각 노드에 해당하는 가중치를 담아주었습니다.이때 주의할 점은 같은 시작점, 도착점 이지만 다른 가중치를 가진 도로가 존재하기 때문에, 중복된 도로가 발견되면 더 작..
UE5 Issues : C++ 충돌 처리
·
Unreal Engine
게임을 만들면서, 충돌 처리는 많이 사용하게 되는 로직 중 하나이다.발판을 밟으면 일정 시간 이후 떨어지는 로직을 구현하면서 공부한 내용을 정리해 보았다. 1. NotifyActorBeginOverlap언리얼 레퍼런스두 액터가 겹쳐지기 시작할 때 발동되는 함수이다. (예를들어, 플레이어가 트리거로 걸어 들어가는 경우)AActor 클래스를 상속받은 것들의 가상 함수로 제공되고, 아래와 같은 시그니처를 가진다.virtual void NotifyActorBeginOverlap(AActor* OtherActor) override;이 함수를 사용하려면, 해당 액터와 다른 액터 모두 컴포넌트에 bGenerateOverlapEvents가 true로 설정되어야 한다.Generate Overlap EventsBP의 디테..
UE5 Issues : Additive Animation (animation sequence 색깔)
·
Unreal Engine
1. Additive Animation참고자료들자세한 설명달리면서 멈춰있는 애니메이션을 동작시킬 때 자연스럽게 하기  2. IssuesApply Additive 노드를 통해서 아래와 같이 애니메이션을 적용하려고 하였다.그런데, 아래 사진에서 보면 Sequence Player 노드가 갈색으로 뜨는 것을 확인할 수 있다.이 상태로 애니메이션을 확인해 보면 아래와 같이 이상한 모습으로 뜨며, warning 메세지가 뜨는 것을 확인할 수 있었다.warning 메세지  애디티브 애니메이션이 아닌 'Anim_Jump_End'을  애님 인스턴스에서 애디티브를 기대하는 포즈 'ABP_PlayerCharacter_C /Game/Maps/UEDPIE_0_MainLevel.MainLevel:PersistentLevel.BP..
TIL day 28
·
TIL
1. 코딩 테스트오전 코딩테스트로 프로그래머스 level 2 프렌즈 4블록을 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?while문 안에서 이중 for문을 돌면서, 유효한 값인지 체크한 후 이중for문이 끝나면, board를 리셋해주는 작업을 반복하다가 한번도 터지지 않는 경우 while문을 탈출하면 됩니다.이중 for문을 돌면서 2x2 형태를 체크하기 while문 안에서  모든 경우의 수를 체크하면서, 2x2가 모두 같은 경우 시작점을 '0' 으로 체크해 주었습니다..
Unreal Engine - 캐릭터 만들기
·
Unreal Engine
플랫포머 게임을 테스트 하기 위해서 간단한 캐릭터를 하나 만들어 보면서, 관련 내용을 정리해 볼 예정이다.1. character 클래스 생성 및 기초 세팅우리는 걸어다니는 보행형 캐릭터를 만들기가 목적이기 때문에, Character 클래스를 하나 만들어준다.이후 먼저 할 세팅은 카메라와 spring arm 세팅이다.먼저 SpringArm과 Camera 컴포넌트를 만들어 주어야 한다.이 둘은 "컴포넌트" 이기 때문에 생성자에서 CreateDefaultSubobject를 통해서 생성해주어야 한다.추가적으로 spring arm의 길이와 회전 관련 설정을 해주면 된다.다음으로 사용할 mesh를 지정해 주면 된다.mesh는 ConstructorHelper를 이용해서 해당 mesh의 경로를 복사해서 쓰면된다.추가적..
TIL day 27
·
TIL
1. 코딩 테스트오늘 오전에 코딩 테스트 문제로는 프로그래머스의 level 2 n진수 게임을 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?0부터 차례대로 n진법으로 나열한 후(string으로 저장), m중에서 p번째 숫자로만 answer를 구성하면서 answer의 크기가 t가 되면 끝내는 식으로 구현하면 될 것 같다는 생각이 들었습니다.코드 설명Solution 함수변수들 cur은 int로 0부터 숫자를 하나씩 올려주면서 계산합니다.length는 n진수로 바꾼 값을 저장..
Unreal Engine - Enhanced Input System (PlayerController)
·
Unreal Engine
1. PlayerControllerPlayerController란사용자가 키보드, 마우스, 게임 패드 등에서 입력을 받으면 해당 입력을 해석해서 캐릭터나 다른 오브젝트에게 동작을 명령하는 클래스 이다.이전에 언급한 GameMode에서 지정해줘야할 한 가지 클래스이며,언리얼 엔진의 철학인 "플레이어의 입력은 PlayerController에서 처리하고, 실제 움직임은 Character가 빙의해서 처리한다" 를 지키기 위해서 존재하며,코드를 구조적으로 관리하기도 쉬워진다.PlayerController의 주요 기능입력 처리다양한 입력장치(키보드, 마우스 등)의 이벤트 처리언리얼5에서는 Enhanced Input System을 통해 더욱 개선된 방식으로 처리 가능C++에서는 SetInputComponent() 함..